1-用例图

概述

  1. 展现了一组用例、参与者以及他们之间的关系

  2. 用例图从用户角度描述系统的静态使用情况,用于建立需求模型

用例特征

  • 保证用例能够正确捕捉功能性需求,判断用例是否准确的依据。
  1. 用例是动宾短语

  2. 用例是相互独立的

  3. 用例是由用户参与者启动的

  4. 用例要有可观测的执行结果

  5. 一个用例是一个单元

参与者 Actor

  • UML中,参与者使用一个小人表示: image
  1. 参与者为系统外部与系统直接交互的人或事务,于系统外部与系统发生交互作用

  2. 参与者是角色而不是具体的人

  3. 代表参与者在与系统打交道时所扮演的角色

  4. 系统实际运作中,一个实际用户可能对应系统的多个参与者。不同角色也可以只对应一个参与者,从而代表同一参与者的不通实例

用例 Use Case

系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。

系统单元用椭圆表示,椭圆中的文字简述系统功能:image

关系 Relationship

常见关系类型有关联、泛化、包含和扩展
image

关联 Association

表示参与者与用例之间的通信,任何一方都可发送或接受消息。
箭头指向:指向消息接收方:image

子系统 SubSystem
  • 用来展示系统的一部分功能(紧密联系)
    image

泛化 Inheritance

继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象。。
箭头指向:指向父用例
image

2-类图

  • 描述系统中的类,以及各个类之间的关系的静态试图
  • 表示类、接口以及它们之间的协作关系,用于程序设计阶段

注意:

  1. 抽象类或抽象方法用斜体表示
  2. 如果是接口,则在类名上方加 <<Interface>>
  3. 字段和方法返回值的数据类型非必需
  4. 静态类或静态方法加下划线
    类图实例:image

类图中的事务及解释

image
如图,类图从上到下分为三部分,分别为类名、属性和操作

  1. 属性:如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等
  2. 操作:如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等

类图中的六种关系

1.实现关系 implements (类实现接口)

  • 用空心三角虚线表示
    image

2.泛化关系 extends (表示一般与特殊的关系) is-a

  • 用空心三角实线表示
    image

3.组合关系 (整体与部分的关系) contains-a

  • 实心菱形实现表示
    image
    eg.有头类、身体类与人类类三个类,则人类类中应包含头类及身体类这两个属性,则人类类与头类和身体的关系即为组合关系。

注: 在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。

4.聚合关系 (整体与部分的关系) has-a

  • 空心菱形实线表示
    eg.BusDriver类有Hat类与Clothes属性,BusDriver类没了Hat与Clothes仍可存在
    image
    注:聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在

5.关联关系(一般关联关系) (对象之间的一种引用关系)

  • 关联可以是双向的,也可以是单向的。在 UML 类图中,双向的关联可以用带两个箭头或者没有箭头的实线来表示,单向的关联用带一个箭头的实线来表示,箭头从使用类指向被关联的类。也可以在关联线的两端标注角色名,代表两种不同的角色。
    image
    关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。

6.依赖关系

  • 依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类
    image

类关系的记忆

image

3-时序图

时序图将交互关系表示为一个二维图

注:

  1. 主要用于展示对象之间交互的顺序。
  2. 纵向代表时间轴,时间沿竖线向下延伸。
  3. 横向代表了在协作中各独立对象的类元角色。
  4. 类元角色用生命线表示。
  5. 当对象存在时,角色用一条虚线表示。
  6. 当对象的过程处于激活状态时,生命线是一个双道线。
  7. 消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。
    image
生命线
  1. 生命线可带下划线
  2. 当使用下划线时意味着序列图中的生命线代表一个类的特定实体。
    image
同步消息&

同步消息: 发送人再它继续之前将等待同步消息相应
image

异步消息:在发送方继续之前无需等待相应的消息
image

注释

虚线引出一条说明注释
image

约束

约束格式: [Boolean Test]
image

组合片段

用来解决交互执行的条件和方式,它允许在时序图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域。
类型与说明如下:
image

抉择Alt:抉择用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的if..else..。

image

选项Opt:包含一个可能发生或不发生的序列

image

循环Loop:片段重复一定次数。 可以在临界中指示片段重复的条件。

image

时序图的画法及应用实践

  1. 绘制交互场景中的角色及对象梳理出来
  2. 从出发某个交互的某个消息开始,在生命线之间从上到下依次画出所有消息。

eg.学生在教务系统中查询其课程的成绩

在本例中,角色有学生,对象有教务系统、课程、成绩。
对象的梳理是一个相对主观的过程,比如本例中,课程以及成绩分别作为了对象存在,也可以合并为数据库这一个对象。请注意:角色以及对象,都为名词,动词不可作为角色和对象,如“成绩查询”不可作为对象。
image

学生的登录验证作为本时序图的前置行为,可直接引用到本时序图中,也可忽略不画;学生进入成绩查询页面后,页面会加载本学生的成绩查询课程列表,并显示出课程对应的成绩。
image

版权声明:本文为jingqz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jingqz/p/15271199.html