专栏系列文章:
2025高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2025年软考高级系统架构设计师冲刺知识点总结-案例分析篇-先导篇)
综合知识篇00-综合知识考点汇总目录(2025年软考高级系统架构设计师冲刺知识点总结-综合知识篇-先导篇)
......
UML统一建模语言考点目录
3 UML统一建模语言
3.1 用例图
3.2 类图
3.2.1 定义
3.2.2 类图中的关系
3.3 交互图
3.3.1 交互图-序列图(时序图、顺序图)
3.3.2 交互图-通信图(协作图)
3.4 状态图
3.5 活动图
3.6 构件图
3.7 部署图
3.8 包图
1、用例图
1.1 定义
用例图是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。通过用例图,人们可以获知系统不同种类的用户和用例。它为“系统做什么”提供了简化了的图形表示,因此被誉为“搭建系统的蓝图”。
用例图是需求分析中的产物,主要作用是描述参与者和用例之间的关系,帮助开发人员可视化的了解系统的功能,描述系统需求。
用例图由参与者、参与者之间的关系、系统边界构成。由于参与者实质上也是类,所以它拥有与类相同的关系描述,即参与者与参与者之间主要是泛化关系(或称为“继承”关系)。
1.2 用例之间的关系 掌握!
包含、扩展、泛化,注意与类图中的关系区分!
包含关系:
包含关系指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。在处理包含关系时,具体的做法就是把几个用例的公共部分单独的抽象出来成为一个新的用例。主要有两种情况需要用到包含关系:第一,多个用例用到同一段的行为,则可以把这段共同的行为单独抽象成为一个用例,然后让其他用例来包含这一用例。第二,某一个用例的功能过多、事件流过于复杂时,我们也可以把某一段事件流抽象成为一个被包含的用例,以达到简化描述的目的。
扩展关系:
在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例(Extension),原有的用例叫做基础用例(Base),从扩展用例到基础用例的关系就是扩展关系。一个基础用例可以拥有一个或者多个扩展用例,这些扩展用例可以一起使用。注意下图的方向,其实倒过来画更好。基用例是一个完整用例,即使没有扩展用例参与,也可以完成一个完整的功能。
扩展关系是备选事件,不一定发生,包含关系一定会发生。
泛化关系:
用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。
PS:Essential Use Cases 和 Real Use Cases 有哪些区别?
Essential Use Cases 可翻译为抽象用例,而Real Use Cases可翻译为基础用例。他们是区别在于:基础用例是实实在在与用户需求有对应关系的用例,是从用户需求获取的渠道得到的,而抽象用例是从基础用例中抽取的用例的公共部分,是为了避免重复工作,优化结构而提出的用例。比如病人和家属。
2、类图
2.1 定义
类图显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及类之间的关系等,它用于描述系统的结构化设计,类图最基本的元素是类或者接口。
类图主要用在面向对象软件开发的分析和设计阶段,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据,描述系统的静态结构。它是构建其他设计模型的基础,没有类图,就没有对象图、状态图、协作图等其他UML图。
2.2 类图中的关系
聚合、组合、依赖、泛化、实现。组合、聚合在软考中归到了关联的特例。
只有依赖和实现关系是虚线,其他都是实线。
(1)依赖关系
是一种使用关系,如果在一个A类中用到了另一个B类,那么就说A类依赖B类。某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类 (被依赖类)
(2)泛化关系
父类与子类之间的关系,子类继承父类
(3)关联关系
是一种拥有的关系,它使一个类知道另一个类的属性和方法;关联可以是双向的也可以是单向的,双向关联可以有两个箭头或者没有箭头,单向关联有一个箭头。除了单向关联和双向关联,还有自关联和多重关联。(包括一般关联关系、聚合关系和组合关系)。将一个类的对象作为另一个类的成员变量来实现关联关系,成员变量如果是一个类就是组合,是一个列表就是聚合。
聚合关系:聚合关系是关联关系的一种特例,他体现的是整体与部分、拥有的关系,has-a的关系,部分可以属于多个整体对象。
组合关系:组合关系也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也成为强聚合;他同样体现整体与部分的关系,但此时整体与部分不可分。
聚合:
组合:
(4)实现关系
接口与实现类之间的关系
B类实现了A接口,就说A接口和B类之间有实现关系。
类图的整体样子:
3、交互图
交互图表现为时许图、协作图、交互概览图、计时图;用于动态建模。
时序图强调消息时间顺序的交互,协作图强调接收和收发信息的对象结构组织的交互。
3.1 交互图-时序图
也叫(序列图、顺序图)
定义:描述消息在对象之间如何发送和接收,强调对象之间消息发送的顺序,同时显示对象之间的交互。构成:对象、生命线、控制焦点、消息。
3.2 交互图-协作图
也叫(通信图)
定义:强调的是发送和接收消息的对象之间的组织结构。
构成:对象、消息、链、顺序号。
作用:显示了对象及其交互关系的组织结构,表现了一个类的操作实现。
协作图与时许图的区别:时许图强调的是时序,而通信图强调的是对象之间的组织结构(或关系)。
4、状态图
用于描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化,用于系统的动态方面建模。描述一个对象在其生存周期的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。侧重描述行为的结果。
5、活动图
将进程或其他计算的结构展示为计算内部一步步的控制流和数据流,主要用来描述系统的动态视图。活动图本质是一种流程图。活动图主要描述行为的动作,而状态图主要描述行为的结果。
用于描述系统的工作流程和并发行为。活动图可以看作是状态图的特殊形式。侧重描述行为的动作。活动图中一个活动结束后将立即进入下一个活动,而在状态图中状态的转移可能需要事件的触发。
状态图与活动图的区别:状态图侧重于描述行为的结果,而活动图侧重描述行为的动作。其次活动图可描述并发行为,而状态图不能。
6、构件图
构建图的思想是复用,一组源代码文件、二进制代码文件和可执行文件(构件)之间的关系。
7、部署图
用来显示系统中软件和硬件的物理架构。
8、包图
在UML中用类似于文件夹的符号表示模型元素的组合,包图用来描述系统总体结构,通过对包图中各个包以及包之间的关系描述,展现出系统的模块与模块之间的依赖关系。
包图的作用:描述需求,设计的高阶概况,包图是最终组织源码的方式。
专栏系列文章:
2025高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2025年软考高级系统架构设计师冲刺知识点总结-案例分析篇-先导篇)
综合知识篇00-综合知识考点汇总目录(2025年软考高级系统架构设计师冲刺知识点总结-综合知识篇-先导篇)
......