本文介绍了统一建模语言(UML)图的概览,包括它们的类型及其在软件工程中的应用。它涵盖了UML图的类型和应用,并解释了UML图如何帮助软件开发人员直观化、设计和文档记录复杂系统。
在软件工程(SE)中,统一建模语言(UML)图是传达想法和理解系统的重要工具。UML 图在软件工程中至关重要,因为它们提供了一套全球公认的建模工件标准(Unhelkar(2018a))。换句话说,它们提供了一种标准的可视化语言来表示软件系统的结构、行为和交互(Tim,2024)。此外,这些图被组织在不同的建模空间(MOPS、MOSS 和 MOAS)中,指导它们在软件开发过程的特定方面的应用(Unhelkar(2018b))。它们帮助软件开发团队进行规划、设计并与相关方沟通。UML 版本 2.5 定义了 14 种类型图,包括用例图、活动图、包图、类图、轮廓图、序列图、通信图、交互概览图、对象图、状态机图、复合结构图、构件图、部署图和时序图。下表简要介绍了每种图,包括但不限于这些图。
表1
UML图
如图1所示
注: Unhelkar (2018 a) 的数据来自 “第二章 — 14 种统一建模语言图的回顾”。如有必要请修改。
如表1所示,UML图主要分为两大类,即结构图和行为图。结构图展示了系统的组织结构,而行为图展示了系统内部活动、动作或交互(即行为)的流程(Unhelkar, 2018 a)。一张图可以展示系统的静态视图或动态视图。静态图展示了系统在某一特定时间点的结构状态,而动态图则捕捉了系统在一段时间内或在执行期间的变化,强调了其随时间变化的特点。
下图将图表分为结构和行为两大类,并将交互子类划入行为类别中。交互图展示了系统各组件之间的交互,也可以描绘整个系统如何与外部实体互动(Dwivedi, 2019)。
图1. UML图示
注: 出自 GeeksforGeeks (2024) 的 “统一建模语言 (UML) 图”。
每个UML图都在对软件系统的不同部分进行建模时扮演一个角色。这些部分可以分为三类,称为建模空间,每个图负责在这些空间进行建模(Unhelkar,2018 b)。这三个建模空间包括:
- 业务问题空间模型(MOPS),也称为问题空间模型:它描述的是业务问题或用户本身。MOPS 的目标是理解和建模业务需求。
- 解决方案空间模型(MOSS):它描述的是如何实现问题的解决方案。MOSS 的目标是通过类图、序列图和对象图等来表示系统的结构、行为和交互。
- 架构空间模型(MOAS):它描述的是大局和技术环境。MOAS 的目标是定义架构约束、管理项目并保证质量。
这些阶段对于组织和结构化软件开发过程至关重要,没有它们,UML的使用会退化成错误或过度的建模(Unhelkar, 2018b)。下面这张图展示了这三个模型是如何相关联的,与不同参与者及软件开发流程的关系。
图2
空间建模
注: 来自 Unhelkar (2018b) 所著的《软件项目与建模空间:包图。基于 UML 的软件工程》,图 3.3。
每个UML图在不同的建模空间中有不同的重要性。下表将每个图对应于不同的建模空间,并最多用5个“*”来表示该图在对应空间中的重要程度,其中5个星号代表最高重要性(即至关重要的)。
*表2
5 表示该空间的重要性最高
各UML图对于相应建模空间的重要程度**
注: 摘自 Unhelkar (2018 b) 的《使用UML的软件工程》表3-2,“软件项目与UML建模空间:包图”。
例如,在解决方案空间模型(MOSS)中,最重要的三个图是类图、序列图和组合图。在构建解决方案模型时,每个图扮演不同的角色。
- 类图展示了详细的设计和编程构造。它们也可以用来建模关系数据库表结构。类图定义了系统的结构,显示了类、其属性、方法以及它们之间的关系。
- 顺序图展示了系统内部交互的详细模型。它们描绘了对象之间随时间的消息交换。
- 组合结构图展示了分类器(如类或组件)的内部结构,即一组对象和组件的内部功能,包括它们的接口和实现方式。它仅用于建模系统或业务物理组件的UML图。
(Unhelkar, 2018 b)
例如,我们来看看一个简单的物品类的复合结构图示。请看下面的图。
图3
项目类别组合结构图
注意,该物品类为网站组件提供接口,使得网站能够访问并展示商品信息,如商品名称、价格和库存状态。以下图例展示了UML复合结构图中可能包含的组件的基本示例。
图4
基本结构图的组成部分
注:来自 Udacity(2015)的“复合结构图图”
总之,UML图对于传达想法和理解系统至关重要。14种UML图可分为结构图和行为图两类,并且可以表示系统的静态或动态视图。此外,这些图在不同建模空间中的重要性各不相同。因此,选择适合软件开发生命周期每个阶段的相关UML图至关重要。例如,物品类组合结构图的应用说明了UML在适当的建模空间(如MOSS)中的应用。最终,UML图在整个软件开发生命周期中的战略性使用对于避免不必要的或过度的建模至关重要,因为它们帮助软件工程师在复杂系统中构建问题、解决方案、结构、交互和关系的准确表示。
参考资料:
Dwivedi, N. (2019年9月9日).UML模型的种类. LinkedInLearning:使用UML进行软件设计视频.https://www.linkedin.com/learning/software-design-modeling-with-uml/types-of-uml-models?u=2245842
GeeksforGeeks (2024年10月23日). 统一建模语言 (UML) 图表. GeeksforGeeks. https://www.geeksforgeeks.org/unified-modeling-language-uml-introduction/
Tim. (2024年11月5日). 软件架构中常见的7种UML图类型. Icepanel. https://icepanel.io/blog/2024-11-05-最常見的7种UML图类型
Udacity (2015, 2月23日). 组合结构图视频. YouTube. https://www.youtube.com/watch?v=pJyuKhD86Ro
Unhelkar, B. (2018a). 第二章 — 14种统一建模语言图的回顾。《使用UML的软件工程》。CRC Press。ISBN 9781138297432
Unhelkar, B. (2018b). 第三章 — 软件项目与建模空间:包结构图。《UML软件工程学》。CRC出版社。ISBN 9781138297432
2024年12月31日,最初发布于 https://www.alexomegapy.com 网站。
共同学习,写下你的评论
评论加载中...
作者其他优质文章