《8系统顺序图和操作契约》由会员分享,可在线阅读,更多相关《8系统顺序图和操作契约(20页珍藏版)》请在金锄头文库上搜索。
1、面向对象分析与设 计绘制顺序图叶文来1In theory, there is no difference between theory and practice. But, in practice, there is.Jan L.A. van de Snepscheut23系统顺序图(System Sequence Diagrams)描述与系统相关的输入和输出事件,以快速获得 系统边界责任。针对用例的一个特定场景 系统被视为黑盒SSD展示了直接与系统交互的外部参与者、系统及 外部事件使用系统的过程UML没有系统顺序图,只有顺序图。(这是过渡制品)4系统顺序图 P128系统顺序图目的:确定系统事
2、件描述与系统相关的输入和输出事件,以快速获得系统边界 责任。为用例场景创建系统顺序图进而分析系统需要实现的系统操作,为编写操作规约打基础56系统顺序图对于用例的一个特定场景,外部参与者产生的与系统的 交互的事件。系统视为黑盒,描述系统做什么,无需解释如何做。系统顺序图的好处明确外部对系统操作的事件(系统事件)从高层次分析系统行为,容易入手对主成功场景,频繁发生或复杂的场景绘制SSD7系统顺序图的目的主要捕捉系统事件系统需要处理和响应的事件类型有:参与者的外部事件时间事件错误或异常针对用例中一个场景考察系统顺序图使用操作契约详细描述系统事件8处理销售示例 P1299系统事件的命名事件意图的抽象以
3、动词开始,明确事件是 命令或请求如:增加、输入、结束、 产生系统顺序图中出现有数据 元素应放入词汇表中,在 词汇表中详细描述为复杂的场景建立系统顺 序图不用为所有场景创建SSD10Monopoly模拟游戏场景11操作契约目的定义系统操作为系统操作创建契约使用前置和后置条件 的形式,描述领域模 型里对象的详细变化围绕领域模型(过渡制品)12操作契约的编写操作契约更为详细和精确的描述领域内对象的变化针对一个系统操作,分析领域模型内的对象变化(实为 对待这一系统操作的内部实现过程)13操作:enterItme(itemID,quantity) 交叉引用:处理销售 前置条件:正在进行的销售 后置条件:
4、创建saleLineItem的实例sli sli与当前sale关联 sli.quantitiy赋值为quantity 基于itemId的匹配,将sli关联到ProductDesc操作契约 P135关键元素是后置条件SSD中展示系统操作14操作:操作名称和参数 交叉引用:发生此操作的用例 前置条件:执行操作之前,领域模型的状态 后置条件:完成后,领域模型的状态处理销售的系统顺序图15后置条件不是操作过程中执行的活动是对领域模型对象的观察结果,希望操作完成后达到的 效果着重关注后置条件创建或删除实例属性值的变化形成或消除关联后置条件检测操作的正确与否并不描述如何实现,强调产生结果16示例:ente
5、rItem后置条件创建或删除实例输入商品ID和数量后,创建SalesLineItem实例属性修改由商品数量,设置SalesLineItem的数量属性形成或消除关联新的SalesLineItem与Sale关联,并与ProductDescription关 联17准则在考虑操作契约时,发现新的概念类、属性或关联,需 要对领域模型进行改进在需要时编写契约对SSD中复杂的系统操作构造契约也可以使用OCL表示18操作契约实例 P13919操作:makeNewSale() 交叉引用: 前置条件: 后置条件:创建了Sale实例,关联到 Register,初始化Sale实例操作:enterItem(itemID,quantity) 交叉引用: 前置条件: 后置条件:根据itemID获取 ProductDescription,由此创建了 SaleLineItem实例,关联到SalePOS部分领域模型20