- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
更为复杂的情况 * 有条件的消息 带有方括号的条件子句 只有条件为真时才发送消息 * 互斥的有条件路径 使用条件路径字母修改顺序编号 * 迭代或循环 * 集合的迭代 * 多态消息 多个通信图表示 * 异常和同步调用 * * 建立顺序图 一个顺序图最好只显示一个场景(建议尽量少用迭代和分支)。因为一个完整的用例的控制流肯定是复杂的,所以将一个大的流分为几部支。分放在不同的顺序图中是合理的 。也是易于理解 虽然可以用一般顺序图在一张图上绘制出所有场景,但是一般顺序图不容易理解。 顺序图垂直方向代表时间维,时间自顶向下流逝 自左至右代表对象的布局 通常把发起交互的对象放在左边 * 步骤 依据用例规约,选择一个场景,找出完成用例场景需要的对象 在顺序图的上部并排地列出与用例有关的一组对象。并为每个对象或参与者设置生命线。 通常把发起交互的对象放在左边。 决定消息将怎样或以什么样的序列在对满足请求所必须的对象之间传递 通过参与者或首先发出消息的对象,看它需要哪些其它对象为它提供服务,它向那些对象提供信息或发布命令。追踪到新的对象,进一步做这种模拟,直到找出与当前场景有关的全部对象。如果一个对象服务在某个执行点上应该向另一个对象发消息,则从这一点向后者画一条带箭头的水平直线,并在旁边注明被引用的服务名。 * 例:预订航班 用例UC1:预订航班 … 基本流(主成功场景): 1.顾客通过终端向系统提交航班预订信息(出发地、目的地、出发日期和人数)。 2.系统检索满足这些条件的航班。 3.系统显示满足条件的航班信息。 4.顾客选择所要的航班。 5.系统检索该航班剩余的座位信息. 6.系统显示可预订的座位信息。 7.顾客选择所要的座位。 8.系统生成一个临时预订记录。 9.系统将顾客所选择的座位状态从“未预订”修改为“已预订”。通知顾客预订成功。 * 面向对象分析与设计 UML交互图 UML交互图 描述对象间通过消息的交互 用于动态对象建模 有两种类型: 顺序图(sequence diagram) 通信图(communication diagram) 交互纵览图 * * 何时需要绘制交互图 交互图 是验证逻辑使逻辑清晰的好办法 发现瓶颈的一种很好的机制 用于动态对象建模。类图是静态视图,交互图是动态视图 在用例和类模型之间搭起一座桥梁 描述对象之间以及对象与参与者之间的消息发送关系 发现类并依据其职责构建类的属性和方法 考虑OO设计细节时,要落实发送哪些消息、发送给谁、以何种顺序发送 为用例绘制交互图时有问题,很可能是你编写的用例不正确! 顺序图 显示用例的行为序列 显示了用例流程中不同对象之间的调用关系 对象、类和参与者都在顺序图中进行描述 * public class A { private B myB=new B(); public void doOne() { myB.doTwo(); myB.doThree(); } //…… } 通信图 以网格方式描述对象交互。 * * 顺序图和通信图 同质的模型,在CASE工具中可相互转换 顺序图表示调用流的顺序,由上至下,直观 通信图节省表示空间 交互图表示法 使用生命线框图表示参与者 * * 消息格式 方括号所括的是可选部分 message-name: 消息名 argument-list:消息的参数列表 示例 P165 [return-value:=]message-name ([argument-list]) :returnType 单实例类对象 对象实例化时,只能存在一个实例 在生命线框图右上角标识“1” * 顺序图基本表示法 生命线框、消息、控制期和执行活动条 * * 消息返回或应答表示 两种方式 使用消息语法returnVar=message(parameter) 使用返回消息 当返回太多使得顺序图变复杂,建议使用第一种 发送给“自身”的消息 使用嵌套的活动条表示对象发送给自身的消息 * 实例的创建 创建对象表示法 Create消息通常理解为用new操作符调用其构造器 * * 对象的销毁 对于没有垃圾回收机制的语言 对于系统资源(文件、数据库连接)需要特别标注 * 顺序图中的帧(frame) 顺序图中独立的区域或片段 P168 帧具有操作符(标签)和保护信息(条件) 循环帧 两种表示方式,规范的2.x * 条件帧 互斥条件的表示 * 互斥帧 向集合中每个成员发送同一条消息 通常无需表示这种低层机制 * 对集合的迭代 另一种简捷表示法 * * 图框的嵌套 * 关联交互图---交互总览 在交互中引用另一个交互 要简化图时,将其中一部分分解到另一个图中 或存在可复用的交互部分 * 对类调用静态方法的消息 在生命线框标记表示 * 多态消息 使用多个顺
文档评论(0)