- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5-3SMA0502UML协作图
Page * ? 1 3 Core Message: Modeling captures essential parts of the system Key Point 1: Computer system basically automate business processes. However, it’s not easy to build software systems on time and within budget. Key Point 2: Building a complex software system requires blueprint. You don’t construct a building without a blueprint. Visual modeling is the blueprint for software systems. Conclusion: VM is a key to successful software development 第05讲-2 UML协作图 SUST2016.10 主要内容 什么是协作图如何运用协作图如何对主动对象、并发和同步建模 1、概述 与顺序图一样,协作图也展示对象之间的交互关系。它绘制出对象与对 象之间的消息连接。 顺序图与协作图很相似,实际上这两种图表达的是同一种信息,并且可 以将顺序图转换为等价的协作图,反之亦然。 顺序图和协作图虽然都可以表示各对象间的交互关系,但它们的侧重点 不同。顺序图强调的是交互的时间顺序。协作图强调的是交互的语境与 参与交互的对象的整体组织。 顺序图用消息的几何排列关系来表达消息的时间顺序,各角色之间的相 关关系是隐含的。协作图用各个角色的几何排列图形来表示角色之间的 关系,并用消息来说明这些关系。 还可以从另外一个角度来看两种图的定义:顺序图按照时间顺序布图, 而协作图按照空间组织布图。 在实际中可以根据需要选用这两种图。 2、协作图在UML中的表示方法 对象图展示出对象和对象之间的静态关系。协作图是对象的扩展。协作图除了展示出对象之间的关联,还显示出对象之间的消息传递。通常在协作图中省略掉关联的名字,因为表示出关联的名字会使图变得混乱。 关联线附近的箭头线表示对象之间传递的消息,箭头指向消息接收对象。消息名称和消息序号附在箭头线附近。消息的一般含义是触发接收消息的对象执行它的一个操作。箭头的含义和顺序图中的一样。 :对象名2 :对象名1 add() 协作图图符集 :对象名2 上面说过,可以将顺序图转换为协作图。反过来也成立。因此在协作图中也应能表示出消息的顺序。可以在消息名前面加上消息的序号,它代表该消息在消息序列中的序号。消息名和序号之间用冒号隔开。 :对象名1 :对象名3 1:add() 2:modify() 3:update() 3、协作图和顺序图的比较 下面我们来绘制一张对象图来对类的实例建模,这张图协作图的基础。 :汽车 :遥控车钥匙 :车主 对类的实例建模的对象图 3.1、协作图和顺序图的基础--类图示例 拥有 ▲ 开启 ▲ 搭载 ▲ :汽车 :遥控车钥匙 :车主 2:processKeyMessage(b) 4:blinkLights 1:getButtonPress(b) 3.2、协作图示例 5:beep [b=“lock”] 3:lock 对对象间消息建模得到的协作图 3.3、顺序图示例 :车主 :遥控车钥匙 :汽车 1:getButtonPress(b) 2:processKeyMessage(b) 4:blinkLights 5:beep [b=“lock”] 3:lock 和协作图等价的顺序图 3.4、状态变化和消息的嵌套 假设汽车有一个Locked 属性,其值可以是True或False。你可以假设汽车有两个状态,分别是Locked和Unlocked,如图所示。 Unlocked Locked Lock Message Unlock Message 对汽车的Locked和Unlocked状态建模 我们能够在协作图中表示状态的变化。在本例中,我们在一个汽车对象 中给出 locked值。然后,我们复制一个带有不同locked值的汽车对象。把 这两个对象连接起来,再表示出从第一个对象到第二个对象的消息。用 关键字《become》标示出这条消息。 这个例子是我们有机会来体验和协作图相关的另一个概念,使用数字系 统来表示消息之间的某些关系。到目前为止,我们已见过按顺序出现的 消息,其实消息也可能以嵌套的形式出现。你可以这样对嵌套消息编号 :首先是它所嵌入其中的消息的号码,然后是一个小数点,然后是被嵌 套的消息的号码。下图展示了状态变化和消
文档评论(0)