第一次更新: 2021/12/2 16:07
注意:本文很多内容尚不完整,主要用来应付考试。
用例图
-
概念
用例图主要用于描述角色以及角色与用例之间的链接关系,说明的是谁要使用系统,以及他们使用系统可以做些什么。
-
用例图的元素
-
用例图的三个元素 :
{参与者(Actor),用例(Use Case),子系统}
-
参与者 Actor
大多数系统具有多种类型的用户,每类用户表示为一个参与者。
用一个火柴人表示:

-
用例 Use Case
在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。
用椭圆表示

-
子系统
用来展示系统的一部分功能,这部分功能联系紧密
用方框表示

-
-
用例图的关系
| 关系类型 | 说明 | 表示符号 |
|---|---|---|
| 关联 | 参与者与用例之间的关系 | ![]() |
| 泛化 | 参与者之间或用例之间的关系 | ![]() |
| 包含 | 用例之间的关系 | ![]() |
| 扩展 | 用例之间的关系 |
-
关联
表示参与者与用例之间的通信,用实线表示,指向消息接收方。

-
泛化
表示继承关系,指向父用例
-
包含
将一个复杂的用例的功能拆解成多个简单的步骤。
当用例事件流过于复杂时,要简化用例的描述,可以将一段事件流抽象成一个被包含的用例;另一种情况,当用例划分过于细致繁琐时,可以抽象出一个基用例。
箭头指向分解出来的功能用例。
-
扩展
扩展是基础用例的一个延伸,为基础用例一个附加的功能。
箭头指基础用例
-
@startuml
left to right direction
Actor 超市管理员 as admin
Actor 收银员 as cashier
Actor 顾客 as customer
rectangle 超市商品管理系统 {
admin --> (商品录入)
admin --> (用户信息管理)
admin --> (OS登录)
admin --> (退出)
admin --> (进货管理)
admin --> (销售管理)
admin --> (库存管理)
(商品录入) --> cashier
(OS登录) --> cashier
(退出) --> cashier
(结账) -> cashier
(结账) <-- customer
}
@enduml
类图
-
概念
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。
-
类图的元素
-
类(Class)
类一般包含三个组成部分:{类名,属性,方法}
第一行 类名 ; 第二行 属性 ;第三行 方法
-
属性和方法之前可附加的可见性修饰符:
加号("+")修饰 -> 公有成员 public
减号("-")修饰 -> 私有成员 private
井号("#")修饰 -> 保护成员 protected
-
静态属性或方法具有下划线
如
class Sample{ private static double var=0; public static void add(double j){ var +=j; } public static double getVar() { return var; } }描述为类图中的类
-
抽象方法或抽象类为斜体
Shape.java
abstract class Shape{ public abstract void draw(); }Star.java
public class Star extends Shape { @Override public void draw() { System.out.println("★"); } }Star类继承于抽象类Shape。
-
-
包(Package)
包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。
用方框表示
-
接口(Interface)
接口在类图中为斜体,如
-
关系
-
常见的关系有:
{继承(Inheritance),共享关系(Associaion),聚合关系(Aggregation),复合关系(Compositon),依赖关系(Dependency),实现关系(Implementation)}
-
其中 {聚合关系(Aggregation),复合关系(Compositon)}属于关联关系(Association)。
-
类图中的关系表示

-
在类图中,关系还分一对一关系,一对多关系等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nddei0uL-1638431176635)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211201225902995.png)]
图中,图中Professor和TeacherAssistant之间连线上的数字代表:
一个教授(Professor)可以有多个教师助理(TeacherAssistant),即教授对应教师助理是一对多关系。
同理,Teacher和TeacherAssistan互为一对一关系。
-
-
活动图
-
概述
活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图
-
活动图的元素
{开始结点,终止结点,活动状态图,分支与合并,动作流,对象,数据存储对象,对象流}
-
▞开始结点(Initial Node)
实心黑色圆点
-
▞终止结点(Final Node)
-
▞活动状态图(Activity)
有如下特点
- 活动状态可以分解成其他子活动或者动作状态。
- 活动状态的内部活动可以用另一个活动图来表示。
- 和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。
- 动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。
平滑的圆角矩形
-
▞动作流(Control Flow)
动作之间的转换
动作之间的转换称之为动作流活动图的转换
-
▞分支与合并
-
对象(Objects)
-
数据存储对象(DataStore)——关键字**<>**
-
对象流(Object Flows)
对象流是动作状态或者活动状态与对象之间的依赖关系**,表示动作使用对象或动作对对象的影响**。
状态图中的对象用矩形表示,矩形内是该对象的名称,名称下的方括号表明对象此时的状态。
-
-
实例
新雇员信息管理系统:
状态图
-
概述
状态图描述了一个实体基于事件反映的动态行为,显示了该实体是如何根据当前所处的状态对不同的事件作出反应的。
-
状态图的元素
{状态,转换,初始状态,终止状态,判定}
-
状态
状态用于对实体在其生命周期中的各种状况进行建模,一个实体总是在有限的一段时间内保持一个状态。
-
转换
在UML的状态建模机制中,转换用带箭头的直线表示,一端连接源状态,箭头指向目标状态。转换还可以标注与此转换相关的选项,如事件、监护条件和动作等,如下图所示。
-
判定
活动图和状态图中都有需要根据给定条件进行判断,然后根据不同的判断结果进行不同转换的情况。实际就是工作流在此处按监护条件的取值发生分支,在UML中,判定用空心菱形表示。
-
初始状态
每个状态图都应该有一个初始状态,它代表状态图的起始位置。
初始状态用一个实心圆表示
-
终止状态
终止状态是一个状态图的终点,一个状态图可以拥有一个或者多个终止状态。
终止状态用一个含有实心圆的空心圆表示
3.实例
公共汽车状态图
-
时序图
待填坑…
包图
待填坑…
本文介绍了软件工程中的五种重要图表:用例图、类图、活动图、状态图和时序图。用例图展示了系统中的角色、用例和子系统之间的关系;类图描绘了类的结构和它们之间的继承、关联等关系;活动图用于描述系统动态行为,类似流程图;状态图则反映了实体基于事件的动态行为;时序图尚未展开讨论。文章适合于理解和学习软件建模。































1万+

被折叠的 条评论
为什么被折叠?



