一,系统顺序图

  • 系统顺序图(system sequence diagram–SSD): 是为阐述与所讨论系统相关的输入和输出事件而创建的需求制品
  • 表示用例的一个特定场景中,外部参与者发出的事件、系统返回值及其顺序关系。
  • 属于面向方案的需求制品

系统顺序图

  • 系统顺序图表示的是参与者发出的事件以及系统响应事件的操作;二者其实是同一个交互的两个方面,他们的名称一样;

  • 系统顺序图将系统作为一个黑箱看待(需求过程中系统是黑箱)。只表示系统有什么响应,不说明如何响应。

  • 系统顺序图是为了便于导出设计方案

  • 事件的类型通常有:

    • 来自参与者(人或系统外部的软硬件设备)的外部
    • 事件时间
    • 事件错误或异常事件
  • 命名:动词+名词(与物理设备无关的命名)

  • 系统顺序图采用UML中顺序图的语法,但不是UML中的概念;

  • 系统顺序图不仅可以表示一个系统的行为(只有参与者与系统),也可以表示多个系统之间的交互关系(多个系统参与

  • 例子

    系统顺序图例子

二,操作契约

  • 操作契约是操作行为的定义。描述操作对系统状态的影响

  • 通过操作发生前后系统状态的描述,反映或定义系统的行为

  • 契约由操作、交叉引用、前置条件和后置条件等部分组成。

    • 操作 :操作的名称和参数

    • 交叉引用 :发生此操作的用例

    • 前置条件 :执行操作前,对系统或领域模型对象状态的重要假设

    • 后置条件 :操作完成后,领域模型对象的状态(操作完成后的结果)!!!关键因素

      • 描述了领域模型内对象状态的变化,包括创建了实例、形成了关联或改变了属性。
      • 三种类型:
        • 创建或删除实例型
        • 修改属性型
        • 形成或删除关联型(精确地说是对链接而言)
  • 例子:

    • 契约CO2: enterItem
    • 操作:enterItem(itemID:ItemID,quantity:Integer)
    • 交叉引用:用例——处理销售
    • 前置条件:有一个销售正在进行
    • 后置条件:
      • 创建了SalesLineItem的实例sli(创建实例)
      • sli与当前Sale关联(形成关联)
      • sli.quantity赋值为 quantity(修改属性)
      • 基于itemID的匹配,将sli关联到ProductDescription(形成关联)
  • 操作契约是对系统操作的描述。系统操作是系统响应事件的行为(系统操作往往带有参数)

  • 在UML中,作为整体的系统可以表示成名称为System的对象。

System

契约和其它制品

  • 操作契约主要由后置条件表达。