UML行为建模:用例图

行为建模被称为动态建模,主要用来刻画系统中的动态行为、过程、步骤。UML行为建模中提供的视图,可以从不同的侧面来描述软件系统的动态过程.

用例建模技术

用例图定义:用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。用例图列出系统中的用例和系统外的参与者,并示哪个参与者参与了哪个用例的执行(或称为发起了哪个用例)。用例图多用于静态建模阶段(主要是业务建模和需求建模)。

用例建模(Use Case Modeling)是使用用例的方法来描述系统的功能需求的过程,用例建模促进并鼓励了用户参与,这是确保项目成功的关键因素之一。

用例建模主要包括以下两部分内容:

  • 用例图(Use Case Diagram)
  • 用例描述文档 (Use Case Specification)

绘制用例图

识别执行者

执行者——Actor:在系统之外,透过系统边界与系统进行有意义交互的任何事物。引入执行者的目的:帮助确定系统边界。

订票系统中的系统边界是真正的使用者:售票员;若乘客当面购票时需要通过售票员去进行购票,那么乘客就不算一个真正的执行者,因为售票员才是该售票系统的系统边界。

识别用例

用例——Use Case:用例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义一组用例实例。

1)有意义的目标

左侧用例并非一个有意义的目标,而右边的用例能够完全表述清楚一个业务的真正目的。

2)业务语言而非技术语言

用例中更需要业务人员能够看懂和理解的业务语言,需要普适性,面向涉众;而非面向程序员,不应该出现强技术性的语言,如C++、字段、编译等计算机技术语言。

3)用户观点而非系统观点

用例应该从用户的观点出发,以用户的角度去进行描述,而非从系统的角度进行描述。

4)用例命名

用例应该选择清楚准确的命名方式,使用动词+宾语的形式进行命名,尽量避免使用弱动词和弱名词,避免掩盖真正的业务。

5)用例的粒度

粒度原则:用例要有路径,路径要有步骤。而这一切都是“可观测”的。
避免将步骤当做用例
警惕“四轮马车”CRUD泛滥:若的确是CRUD不涉及复杂的交互,一个用例“管理XX”即可代替。也可以将包含复杂交互的路径独立出去形成用例。

形式检查【执行者】使用系统来做【用例】

执行者、用例间的关系

执行者之间的关系

关联关系:在用例图中,执行者和用例之间进行交互,相互之间的关系用一根直线来表示,称为关联关系(Association)或通信关系(Communication)。

泛化关系:执行者之间可以有泛化(Generalization)关系(或称为“继承”关系)。

用例之间的关系

包含关系:描述在多个用例中都有的公共行为,由用例A指向用例B,表示用例A中使用了用例B中的行为或功能,包含关系是通过在依赖关系上应用<<include>>构造型(衍型)来表示的。

泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。泛化关系一般很少使用。

发表回复

Breeze Wang

A student majoring in Software Engineering at Central South University has an understanding of software development techniques, software architecture, and is able to use Godot to develop game projects. I am currently in the Game Development Laboratory at Central South University. I have experience participating in Global Game Jam. Loving game development.