文章目录
1. UML是什么
2. UML的适用领域
3. UML中的四种主要关系
4. UML中的两类九种图
4.1. 用例图
4.1.1. 用例与用例之间的关系
4.1.1.1 包含关系
4.1.1.2. 扩展关系
4.1.1.3. 泛化关系(继承关系)
4.1.2. 用例规约
正文
1. UML是什么
UML,统一建模语言,是被广泛认可的图形化建模标准,它可以帮助开发人员在面向对象设计(OOAD)过程中标识元素、构建模块、分析过程,并可以通过文档来注明系统中的重要细节。
2. UML的适用领域
UM适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。
需求分析。用例图描写叙述需求,用类图描写叙述静态结构,采用顺序图、合作图、活动图、状态图描述动态行为
设计。采用类图、包,对类的接口进行设计
编码。将类用某现象对象语言实现
测试。按类图、测试用例图对软件进行测试
部署。按照部署图进行部署
3. UML中的四种主要关系
- 关联关系(Association)
- 依赖关系(Dependency)
- 泛化(一般化)关系(Generalization)
泛化指的是类之间的继承关系 - 聚集关系(Aggregation)
聚集指的是整体与部分之间的关系,在实体域对象之间很常见
4. UML中的两类九种图
静态模型图:描述系统的结构
1、 类图;2、对象图;3、组件图;4、部署图
动态模型图:描述系统的行为
1、用例图;2、活动图;3、时序图;4、协作图;5、状态图
4.1. 用例图
用例图是从软件需求分析到最终实现的第一步,它是从客户的角度来描述系统功能,让不懂技术细节的客户能够直观的理解系统的功能。
所谓用例,就是系统的一个功能,如下例所示,该用例图显示了该系统有两个参与者(客户、管理员)和三个用例(登录、查询、修改)。用例图中的箭线则是参与者与用例之间的关系,下图中的关系表示了:客户可以使用登录和程序用例,管理员可以使用登录、程序和修改用例。
一张用例图通常包含三个基本组件:
参与者(Actor)
与系统打交道的人或其他系统即使用该系统的人或事物。在UML中参与者用人形图标表示
用例(Use Case)
代表系统的某项完整的功能。在UML中使用一个椭圆来表示
关系
定义用例之间的关系。在UML中使用各种不同样式的线条来表示。虽然关系有三种不同的类型(包含关系 Include,扩展关系 Extend,泛化关系 Generalization),但它们的共性都是从现有的用例中抽取出共同的信息,组成一个可重用的单独用例。
4.1.1. 用例与用例之间的关系
4.1.1.1 包含关系
将一组跨越多个用例的相似功能用包含用例进行封装,以便多个基用例进行复用。包含关系可以用编程时的函数调用来类比。在UML中包含关系用虚线箭头加“<<include>>",箭头指向被包含的用例。
如下图所示,该用例图中的“查询”、“登录”用例都涉及查询数据库,因此封装一个“数据库查询操作”用例供“查询”和“登录”两个用例包含;“修改”、“删除”用例都涉及修改数据库,因此封装一个“数据库修改操作”用例供“修改”和“删除”用例包含
4.1.1.2. 扩展关系
将基用例中一段相对独立的非必需功能用扩展用例进行封装,从而使基用例行为更简练和流程更集中。扩展用例为基用例添加新的行为。在UML中扩展关系用虚线箭头加"<<extend>>",箭头指向被扩展的用例。
如下图所示,该用例图中“查询”用例是基本用例,而“打印”和“导出”用例是相对独立的非必需功能,也即,客户在查询时可以选择打印和导出,也可以不选择打印和导出。因此我们将“打印”和“导出”用例视为“查询”用例的扩展用例
4.1.1.3. 泛化关系(继承关系)
泛化关系可以类比面向对象语言中的类继承来理解。即子用例和父用例相似,但表现出更特别的行为,子用例将继承父用例的所有结构、行为和关系,可以使用父用例的一段行为,也可以重写它。在UML中,泛化关系用一个实线空心三角箭头从子用例指向父用例。
如下图所示,参与者“管理员”可以使用“客户注册审批”用例和“客户注销审批”用例,这两个用例都可以由一个父用例泛化而来,因此将“客户注册审批”用例、“客户注销审批”用例与“审批”用例之间的关系称作泛化关系
4.1.2. 用例规约
所谓用例规约,就是用例的使用文档,可以当做测试用例或者用作用户说明书,通常用一个表格来展示
一个典型的用例规约结构如下表所示
主要事件流描述的是实现功能的过程中,参与者和系统之间的交互过程;系统响应结果讲的是最终展示给用户的结果,而不是处理数据的细节。
次要事件流起源于主事件流某个步骤,矫正后,又会回到主事件流的某个步骤
例如,后台管理系统用户登录功能用例规约