- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 类的行为和交互 研究生课程-MDA教学课件
第七章 类的行为和交互 赵建华 南京大学计算机系 状态无关行为和状态相关行为 类行为可以分为两个基本的类别: 状态相关行为 可以在多个状态上发生,并且根据不同的当前状态可以执行不同的动作 使用状态模型表示 状态无关行为 这些行为的执行过程并不依赖于特定对象的当前状态 使用操作表示 行为的例子 使用操作的场合 需要执行的处理过程与特定对象的状态无关; 需要执行的处理过程不影响特定对象的状态; 需要执行的处理过程是多个状态动作所共有的,并且处理过程必须在动作结束之前结束; 有必要调用一个或多个其它域提供的服务; 不应使用操作的场合包括 需要执行的处理过程与给定对象的状态相关; 操作体需要读“当前状态”的值; 操作体需要写“当前状态”的值; 操作 使用通过操作提供的服务 对操作的调用是同步的,即调用者必须等待操作结束后才可以继续执行; 可以传送输入参数给操作; 操作可以返回输出参数(在xUML中允许多个输出参数); 执行结果导致的行为不受操作执行对象的状态影响; 操作通常在类的某个实例对象上执行 —— 这样的操作称为对象操作; 操作也可以在类的所有对象组成的整体上执行 —— 这样的操作称为类操作; 操作可以定义在域级别执行 —— 这样的操作称为域操作; 信号 使用通过信号提供的服务 发送信号给对象是异步的 输入参数可以与信号一起发送 不允许有输出参数,因为对于异步交互而言它们没有意义 信号发送导致的行为依赖于接收信号的对象的状态 信号总是发送给一个特定的对象 带有信号的类图 对象和类的交互 对象、类的耦合: 当一个对象向另一个对象发消息时,它们被耦合在一起。两个对象所属的类也是耦合的 。 顺序图 强调的是交互的时间顺序。 合作图 重点放在交互的模式和合作的紧密程度上 顺序图的例子 对象协作图的例子 类协作模型上的域接口 一个域向其它域提供可用操作并且也依赖于其它域提供的服务。这些东西构成了域的接口。 终端 我们对域与之交互的外部实体采用了一种抽象的视点。 一个终端是对与域交互的一个外部实体的抽象。一个域可能有多个终端。 在类协作图中表示这些外部实体。 终端 每一终端可以是传入域的消息的源头或是传出域的消息的接收者。 可用接口(provided interface)。 从终端进入域的消息定义了域提供给客户的服务。 所有的进入的消息定义了一个可用接口。 所需接口(required interface) 从域发出给终端的消息指明了该域需要其它域执行的操作。 发送给一个终端的所有消息定义了一个所需接口 组装时,必须在所需接口中的服务和可用接口中的服务之间建立桥梁。 动态建模过程 建立CCM以描述域中的类,并描述这些类是如何通过交互来表现出系统需求中要求的域行为的。 确定来自客户的对域的激励,和域对客户的响应。 确定来自服务提供者的激励,以及域对它们的响应。 使用CCM中确定的接口来: 建立状态图以描述每个类的状态相关行为。 定义每个类的操作以获取和表达状态无关行为。 顺序图在构建CCM时的角色 可以使用域层次顺序图为每一个域建立CCM。步骤如下: 使用进入消息的源头和离开消息的目的地来寻找terminator类,反映外部实体,或者其它域提供的服务 终端的名称应是从该域的视点看到的发送者和接收者的名字 分析‘主动激励’ 并将它引导到最适于处理该激励的类中 依照用例确定的接口,继续调用其它类或terminator类的操作,或者将信号传输给其它类或terminator类; 为从该系统用例中找到的每一个主动激励重复以上步骤。 CCM的层次 类分成不同的层次。 准则是基于它们封装了多少关于它们所在领域的智能,或它们在与其它类协作时担当多少责任。 类协作图的布局惯例是将责任较大的类放在左边,而将责任较小的类放在右边。 * *
文档评论(0)