《chapter09协作图.ppt》由会员分享,可在线阅读,更多相关《chapter09协作图.ppt(48页珍藏版)》请在三一办公上搜索。
1、1,UML系统分析与设计UML-System Analysis&Design,李鹏飞,2,重点内容:Review什么是协作图组成协作图的元素使用Rose创建协作图在项目中创建协作图及案例分析协作图与序列图的区别与联系协作图与序列图的相互转换,第9章 协作图,3,重点内容:Review什么是协作图组成协作图的元素使用Rose创建协作图在项目中创建协作图及案例分析协作图与序列图的区别与联系协作图与序列图的相互转换,第9章 协作图,4,用例模型中对系统的功能(用例)进行了描述,但所关注的重点是:系统能做什么(What)问题:怎么做(How)才能实现系统的每一种功能?在静态模型中,确定了所有构成系统的
2、类,并且确定了类之间的关系以及类的属性问题:类之间的关系是否正确?类的操作该如何确定?,为什么要进行动态分析,Review,5,通常用来描述用例的行为实现显示用例实现/类操作(方法)涉及的对象和对象间的消息传递情况用于对系统中一组对象群体的行为建模主要用来表达对象之间的动作协作关系,动态分析的任务,Review,6,动态分析模型描述系统的动态行为,显示对象在系统运行期间不同时刻的动态交互。动态分析模型包括下列图形:,序列图协作图状态图活动图,交互图,行为图,Review,7,序列图协作图状态图活动图,动态分析模型包括下列模型图:,Review,8,重点内容:Review什么是协作图组成协作图的
3、元素使用Rose创建协作图在项目中创建协作图及案例分析协作图与序列图的区别与联系协作图与序列图的相互转换,第9章 协作图,9,一、什么是协作图,所谓协作是指在一定的语境中一组对象以及用以实现某些行为的这些对象间的相互作用。它描述了一组对象为实现某种目的而组成相互合作的“对象社会”。,1、协作图的基本概念,10,一、什么是协作图,协作图(Collaboration Diagram)就是表现对象协作关系的图,它表示了协作中作为各种类元角色的对象所处的位置,在图中主要显示了类元角色(Classifier Roles)和关联角色(Association Roles)。,1、协作图的基本概念,11,一、
4、什么是协作图,1、协作图的基本概念,类元角色(Classifier Roles)表示参与协作执行的对象的描述,系统中的对象可以参与一个或多个协作,关联角色(Association Roles)表示参与协作执行的关联的描述,12,一、什么是协作图,在UML的表示中,协作图将类元角色表示为类的符号(矩形),将关联角色表现为实线的关联路径,关联路径上带有消息符号。,1、协作图的基本概念,13,一、什么是协作图,1、协作图的基本概念,协作图是动态分析模型的另一种表现形式协作图强调发送和接受消息的对象之间的结构组织的交互图,显示对象、对象之间的链接以及对象之间的消息,14,一、什么是协作图,协作图作为一
5、种在给定语境中描述协作中各个对象之间的组织交互关系的空间组织结构图形化方式,在使用其进行建模时,可以将其作用分为以下三个方面:1 通过描绘对象之间消息的传递情况来反映具体的使用语境的逻辑表达。一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。这和序列图的作用类似。,2、为什么要使用协作图,15,一、什么是协作图,协作图作为一种在给定语境中描述协作中各个对象之间的组织交互关系的空间组织结构图形化方式,在使用其进行建模时,可以将其作用分为以下三个方面:2 显示对象及其交互关系的空间组织结构。协作图显示了在交互过程中各个对象之间的组织交互关系以及对象彼此之间的链接。与序列图不同,协作图显示的
6、是对象之间的关系,并不侧重交互的顺序,它没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。,2、为什么要使用协作图,16,一、什么是协作图,协作图作为一种在给定语境中描述协作中各个对象之间的组织交互关系的空间组织结构图形化方式,在使用其进行建模时,可以将其作用分为以下三个方面:3 协作图的另外一个作用是表现一个类操作的实现。协作图可以说明类操作中使用到的参数、局部变量以及返回值等。当使用协作图表现一个系统行为时,消息编号对应了程序中嵌套调用结构和信号传递过程。,2、为什么要使用协作图,17,重点内容:Review什么是协作图组成协作图的元素使用Rose创建协作图在项目中创
7、建协作图及案例分析协作图与序列图的区别与联系协作图与序列图的相互转换,第9章 协作图,18,二、组成协作图的元素,协作图包含了3个元素:协作图(Collaboration Diagram)是由对象(Object)、消息(Messages)和链(Link)等构成的。,19,二、组成协作图的元素,协作图中的对象和序列图中的对象的概念相同,同样都是类的实例。一个协作代表了为了完成某个目标而共同工作的一组对象。对象的角色表示一个或一组对象在完成目标的过程中所应起的那部分作用。在协作图中,不需要关于某个类的所有对象都出现,同一个类的对象在一个协作图中也可能要充当多个角色。,1、对象,20,二、组成协作图
8、的元素,协作图中对象的表示形式也和序列图中的对象的表示方式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称带有下划线,二者用冒号隔开,使用“对象名:类名”的形式,与序列图不同的是,对象的下部没有一条被成为“生命线”的垂直虚线,并且对象存在多对象的形式。,1、对象,21,二、组成协作图的元素,在协作图中,可以通过一系列的消息来描述系统的动态行为。在协作图中,消息使用带有标签的箭头来表示,它附在连接发送者和接收者的链上。链连接了发送者和接收者,箭头的指向便是接收者。每个消息包括一个顺序号以及消息的名称。,2、消息,22,二、组成协作图的元素,顺序号是消息的一个数字前缀,是一个整数,由1开
9、始递增,每个消息都必须由唯一的顺序号。嵌套消息使用点表示法。,2、消息,23,二、组成协作图的元素,在协作图中的链和对象图中链的概念和表示形式都相同,都是两个或多个对象之间的独立连接,是对象引用元组(有序表),是关联的实例。链是关联的实例,当一个类与另一个类之间有关联时,这两个类的实例之间就有链,一个对象就能向另一个对象发送消息。所以链是对象间的发送消息的路径。,3、链,24,二、组成协作图的元素,在协作图中,链的表示形式为一个或多个相连的线或弧。在自身相关联的类中,链是两端指向同一对象的回路,是一条弧。为了说明对象是如何与另外一个对象进行连接的,我们还可以在链的两端添加上提供者和客户端的可见
10、性修饰。如图所示,是链的普通和自身关联的表示形式。,3、链,25,二、组成协作图的元素,为了说明一个对象如何与另一个对象连接,可以在链的末路上附上一个路径构造型。如构造型,表示指定对象对发送方而言是局部的。,3、链,26,重点内容:Review什么是协作图组成协作图的元素使用Rose创建协作图在项目中创建协作图及案例分析协作图与序列图的区别与联系协作图与序列图的相互转换,第9章 协作图,27,三、使用ROSE创建协作图,创建一个新的协作图,可以通过以下方式进行。右键单击浏览器中的Use Case View(用例视图)、Logical View(逻辑视图)或者位于这两种视图下的包。在弹出的菜单中
11、,选中“New”(新建)下的“Collaboration Diagram”(协作图)选项。输入新的协作图名称。双击打开浏览器中的协作图。,创建新的协作图,28,三、使用ROSE创建协作图,使用菜单栏中添加对象的步骤如下:使用工具栏时,在菜单栏中,选择“Tools”(工具)下的“Create”(创建)选项,在“Create”(创建)选项中选择“Object”(对象),此时光标变为“”号。在协作图中单击选择任意一个位置,系统在该位置创建一个新的对象。在对象的名称栏中,输入对象的名称。这时对象的名称也会在对象上端的栏中显示。,1、创建对象,29,三、使用ROSE创建协作图,在协作图中创建链的操作与在
12、对象图中创建链的操作相同,可以按照在对象图中创建链的方式进行创建。同样我们也可以在链的规范对话框的“General”选项卡中设置链的名称、关联、角色以及可见性等。,2、创建链,30,三、使用ROSE创建协作图,链的可见性是指一个对象是否能够对另一个对象可见的机制。,2、创建链,31,三、使用ROSE创建协作图,在协作图中添加对象与对象之间的简单消息的步骤如下:1 选择协作图的图形编辑工具栏中的图标,或者选择菜单栏“Tools”(工具)中“Create”(新建)下的“Message”选项,此时的光标变为“+”符号。2 单击连接对象之间的链。3 此时在链上出现一个从发送者到接收者的带箭头的线段。4
13、 在消息线段上输入消息的文本内容即可。,3、创建消息,32,重点内容:Review什么是协作图组成协作图的元素使用Rose创建协作图在项目中创建协作图及案例分析协作图与序列图的区别与联系协作图与序列图的相互转换,第9章 协作图,33,四、在项目中创建协作图案例分析,1 根据系统的用例或具体的场景,确定协作图中应当包含的元素。2 确定这些元素之间的关系,可以着手建立早期的协作图,在元素之间添加链接和关联角色等。3 将早期的协作图进行细化,把类角色修改为对象实例,并且链上添加消息并指定消息的序列。,1、创建协作图的步骤,34,四、在项目中创建协作图案例分析,仓库管理员将生产的产品入库的基本工作流程
14、步骤如下:1 仓库管理员将通过库存管理子系统将生产的产品处理入库 2 仓库管理员通过库存管理子系统中的产品入库界面获取产品信息。3 产品入库界面根据产品的编号将产品类实例化并请求该类产品信息。4 产品类实例化对象根据产品的编号加载产品信息并提供给产品入库界面。5 仓库管理员通过产品入库界面增加产品数目。6 产品入库界面通过产品类实例化对象修改产品信息。7 产品类实例化对象向产品入库界面返回修改信息。8 产品入库界面向仓库管理员显示添加成功信息。,2、需求分析,35,四、在项目中创建协作图案例分析,从已经描述的用例中,我们可以确定需要“仓库管理员”和“产品”二个对象。对于本系统来说,我们需要一个
15、提供仓库管理员与系统交互的场所,那么我们需要一个“界面”对象。仓库管理员通过“产品入库的界面”对象才能将产品放进仓库。将将这些对象列举到协作图中。,3、确定协作图元素,36,四、在项目中创建协作图案例分析,创建协作图的下一步是确定这些对象之间的连接关系,使用链和角色将这些对象连接起来。在这一步中,我们基本上可以建立早期的协作图,表达出协作图中的元素如何在空间上进行交互。,4、确定元素间的关系,37,四、在项目中创建协作图案例分析,4、完成协作图,38,协作图的创建练习,根据“学生信息管理系统”的一个简单用例“教师查看学生成绩”,创建该用例的协作图。,39,确定协作图的元素,从已经描述的用例中,
16、可以确定需要“教师”、“学生信息”、“学生成绩”对象对于本系统来说,需要一个提供教师与系统交互的场所,那么就需要一个“用户界面”,如果“用户界面”对象需要获取“学生信息”和“学生成绩”对象的信息,那么需要一个数据库的对象,40,确定元素之间的结构关系创建协作图的下一步是确定这些对象之间的连接关系,使用链和角色将这些对象连接起来。,41,细化协作图创建协作图的最后一步就是将早期的协作图进行细化。,42,重点内容:Review什么是协作图组成协作图的元素使用Rose创建协作图在项目中创建协作图及案例分析协作图与序列图的区别与联系协作图与序列图的相互转换,第9章 协作图,43,取100元人民币的时序
17、图,协作图与序列图的区别与联系,44,取100元人民币的协作图,协作图与序列图的区别与联系,45,协作图与序列图的区别与联系,都是交互图,描述对象之间的交互都包含一系列消息集合,使用消息传递描述交互时序图强调消息传送的时间先后顺序协作图中描述了该协作所有对象组成的网络结构以及相互发送消息的整体形为,即强调对象之间的结构关系,46,重点内容:Review什么是协作图组成协作图的元素使用Rose创建协作图在项目中创建协作图及案例分析协作图与序列图的区别与联系协作图与序列图的相互转换,第9章 协作图,47,顺序图与协作图之间的转换,1 从顺序图转换成协作图 从sequence框图创建collaboration框图:打开sequence 框图;选择Browse Create collaboration Diagram;或者,直接按下F5键;浏览协作图并调整图中模型元素的位置。,48,顺序图与协作图之间的转换,2 从协作图转换成顺序图 从collaboration 框图创建sequence框图:打开collaboration 框图;选择Browse Create Sequence Diagram;或者,直接按下F5键;浏览顺序图并调整图中模型元素的位置。,
链接地址:https://www.31ppt.com/p-2846541.html