欢迎来到天天文库
浏览记录
ID:44317460
大小:212.00 KB
页数:30页
时间:2019-10-20
《交互视图—协作图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第十章交互视图——协作图(CollaborationDiagram)任课老师:黄武提纲协作图概述协作图内容协作图和顺序图之间的关系协作图建模技术UML语言协作图图标1协作图概述协作图(Collaborationdiagram)是一种交互图,是动态视图的另一种表现形式,强调的是发送和接收消息的对象之间的组织结构协作图可以被视为对象图的扩展,它除了展现出对象之间的关联外,还显示了一系列对象之间的消息传递协作图和顺序图都是交互视图,他们是表达同一信息的两种方式1.1对象图和协作图对象图表示特例:Backa1:Accounta2:Account:Ba
2、ck/Debtor:Account/Creditor:AccountWithdraw(50)Deposit(50)WithdrawDeposit协作图表示对象交互1.1协作图的组成协作图强调参与一个交互的对象的组织,它由以下基本元素构成:活动者(Actor),对象(Object),连接(Link)和消息(Message)协作图和顺序图的组成非常相似,它们之间可以相互转换顺序图由哪些基本元素组成?1.2协作图的表示在UML中,连接使用实线表示消息由标记在连接上方的带有标记的箭头表示连接实线附近的箭头线表示对象之间传递的消息,指向接收消息的对象;而
3、消息名称,参数和序号标在箭头上方:对象1:对象21.Message(parameters)2协作图的内容协作(Collaboration)类元角色(Classifierrole)交互(Interaction)关联角色(Associationroles)多对象(Multi-Object)返回结果(Returnresults)同步(Synchronous)2.1协作(Collaboration)协作(Collaboration)定义了一组对象,它们按照支持给定交互的方式相互联系协作通常使用一个对象图定义,该对象图显示特定的一组连接对象,然后通过在这
4、个对象图中增加消息来表示交互a1:Account:Backa2:AccountWithdraw(50)Deposit(50)两个银行帐户之间的转账2.2类元角色(Classifierrole)直接使用对象图+消息来表示协作图有些缺陷,就银行系统账户转账的例子而言:a1和a2仅表示一个特例对象图仅能表示固定数据的对象和他们之间的连接一些操作在不同的场合可能会展示不同的可能,比如根据条件进行分支为了达到所需的一般性,UML中的协作通常不是显示对象,而是显示这些对象的角色2.2.1类元角色定义对象在交互图中可以扮演的角色被称为类元角色(classif
5、ierrole)。类元角色具有一个名字和一个基类(baseclass)比如银行转账例子,我们用借方代替一个账户,贷方表示另外一个账户/Creditor:Account:Back/Debtor:AccountWithdrawDeposit2.2.2类元角色说明类元角色以斜杠开始,然后是角色名,然后是冒号,最后是基类角色的名字下面不加下划线,表示类元角色不是实例,而是更一般的概念在交互图中,充当特定角色的对象必须是该角色的基类的实例,说明类元角色的特性的唯一方法是命名一个基类UML中,并不总是清楚地区分对象和类元角色2.3交互(Interactio
6、n)交互(Interaction)是协作中的一组消息集合,这些消息被类元角色通过关联角色交换一个协作图可以包含一个或多个交互,每个交互描述了一系列消息,交互中的对象为了达到目的而交换这些消息2.4关联角色(Associationrole)关联角色(Associationrole)是对象之间关联的抽象。协作中的类元角色通过关联角色进行连接关联角色很少用角色名标注对象能够连接的一种方式是,在它们的类之间存在一个定义的关联,该关联被称为这些关联角色的基关联(baseassociation)AccountBankIsHeldAtBalance():fl
7、oatDeposit(amt:float)Withdraw(amt:float)*1基关联2.4.1关联角色的构造型两个类之间的关联暗示了这两个类的实例可以链接,并且可以在它们之间发送消息UML区分下面一些一个对象访问另一个对象的不同方式,用这种方式访问另一个对象就好像能够向它发送消息一样一个对象可以被作为消息的参数(parameter)传递给另一个对象。在编程语言中通过传递该对象的引用实现2.4.1关联角色对象间的访问方式操作的实现可以创建任何类的局部实例(local),然后在操作执行期间向这些对象发送消息如果存在任何全局变量(global)
8、,一个对象可以向保存在这样的变量中的对象发送消息对象永远可以向自己(self)发送消息,即使没有定义明确的“到自己的链接”2.4.2关联角色构造型关联
此文档下载收益归作者所有