当前位置: 首页 > news >正文

软考架构师考试-UML图总结

考点

选择题 2-4分
案例分析0~1题和面向对象结合考察,前几年固定一题。近3次考试没有出现。但还是有可能考。

UML图概述

1.用例图:描述系统功能需求和用户(参与者)与系统之间的交互关系,聚焦于“做什么”。
2.类图:展示系统的静态结构,描述类、接口、属性、方法及类之间的继承、关联、依赖等关系。
对象图:类图的运行时实例,显示某一时刻具体对象的状态及对象间的链接关系。
4.顺序图:强调对象间消息传递的时间顺序,通过垂直时间轴直观呈现交互时序。
5.协作图(通信图):侧重对象间的结构关联和协作路径,通过编号消息体现交互顺序。
6.活动图:描述业务流程或算法的动态流程,支持分支、并行、循环等逻辑,类似流程图。
7.状态图:描述对象在其生命周期内状态的变化及触发转换的事件,关注“状态驱动的行为”。

附加对比:
类图 vs 对象图:类图是“设计蓝图”,对象图是“运行时快照”。
顺序图 vs 协作图:顺序图重时序,协作图重结构(二者可互相转换,但侧重点不同)。
活动图 vs 顺序图:活动图关注流程控制,顺序图聚焦对象间消息时序。
活动图 vs 状态图:活动图关注流程控制,状态图关注单一对象的状态迁移。
状态图 vs 类图:类图描述静态结构,状态图描述动态行为

1.用例图

在这里插入图片描述

参与者:人形。
用例:椭圆。
系统:方框。

4种关系:
关联:横线。 参与者与用例之间。
泛化:横线+空心三角箭头。 用例之间,参与者之间。
包含:虚线+小箭头+标注<> 用例之间
扩展:虚线+小箭头+标注<> 用例之间。

使用场景:需求分析和需求规约时候的功能需求,常使用用例图来表示。
用例模型流程
1.识别参与者。
2.合并用例获得需求。
3.细化用例描述。
用例模版:
(1)用例名,
(2)用例ID,
(3)用例说明,
(4)前置条件,
(5)后置条件,
(6)事件流,
(7)优先级和非功能需求。
4.调整用例模型。

2.类图

类图(class diagram):类图描述一组类、接口、协作和它们之间的关系。
对象图(object diagram):对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。

三元关联

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

聚合

组合类经常涉及整体和部分之间的物理关系。因此,ATM机是一个由四个部分组成的组合类:“读卡器”(CardReader),“吐钞器”(Cash Dispenser),凭条打印机(Receipt Printer)以及“ATM客户键盘显示器”(ATM Customer Keypad Display)类(如图7-12所示)。ATM组合类和它的四个部分类中的每一个都有一个一对一关联。
在这里插入图片描述

组合

聚合层次是整体/部分关系的一种较弱的形式。在一个聚合里,部分实例能添加到聚合体中,也能从聚合整体中移除。由于这个原因,聚合有可能被用来对概念类建模,而不是对物理类建模。此外,一个部分可以属于多个聚合。聚合层次的一个例子是大学里的“学院”(College)(图 7-13),其部分是“管理办公室”(Admin Office)、一些“系”(Department)以及一些“研究中心”(Research Center)。可以创建新的系,时常也可以撤销老的系或者与其他系合并。可以创建研究中心,或者撤销、合并研究中心。
在这里插入图片描述

泛化

有一些类相似但不相同,它们有些共同的属性,也有其他不同的属性。在泛化 / 特化层次中,共同属性被抽象到一个泛化类,称作超类。不同的属性是特化类的性质,特化类被称作子类。在子类和超类之间有一个 Is a 的关系。超类也被称为父类或祖先类。子类也被称为孩子类或者子孙类。
在这里插入图片描述

3.顺序图

顺序图(sequence diagram, 序列图)。顺序图是一种交互图(interaction diagram),它强调对象之间消息发送的顺序,同时显示对象之间的交互。

在这里插入图片描述

在这里插入图片描述

4.通信图

通信图(communication diagram)。通信图也是一种交互图,它强调对象之间存在的信息收发关系,而不专门突出这些信息发送的时间顺序。

在这里插入图片描述

顺序图和通信图对比

以下是顺序图与通信图的对比表格:

对比维度顺序图(Sequence Diagram)通信图(Communication Diagram)
主要目的强调消息的时间顺序,展示对象间交互的时序逻辑。强调对象的结构关系,展示对象间的关联及协作方式。
消息序列表示通过垂直时间轴自然展示消息顺序,直观清晰。需通过消息编号(如1, 2, 3或嵌套1.1, 1.2)表示顺序,需主动阅读编号。
对象关联可视化对象间关联(如链接)较难直接观察,需通过消息推断。**对象间的链接(连线)**明确显示关联关系,结构布局一目了然。
复杂逻辑适应性循环、条件分支的可读性较差,需用片段(如loopalt)标记。通过编号和消息路径可灵活表示分支,但复杂度高时可能混乱。
多对象交互场景对象过多时,横向排列导致空间紧张,需分页或压缩。对象布局灵活,可自由排列,适合展示多对象的协作网络。
适用场景- 调试时序问题
- 分析用例执行流程
- 需要明确操作顺序时。
- 设计对象协作模式
- 理解系统结构关系
- 重构对象交互时。
优点- 时序清晰
- 适合展示动态流程
- 易理解消息触发顺序。
- 结构关系明确
- 适合展示静态协作
- 灵活适应复杂布局。
缺点- 对象关联隐式
- 分支/循环降低可读性
- 横向扩展性差。
- 消息顺序需主动解析
- 编号复杂时易混乱
- 时序不够直观。
  • 优先用顺序图:当关注**“何时发生什么”**(如API调用顺序、事件流程)。
  • 优先用通信图:当关注**“谁与谁协作”**(如微服务架构中的对象依赖关系)。

5.活动图

活动图是一种描述控制流和活动中序列的UML 图。活动图显示了活动序列、决策结点和循环,甚至还有并发活动。活动图在工作流建模中被广泛使用,例如,在面向服务的应用中。

在这里插入图片描述

6.状态图

状态图是UML中的一种行为图,专注于描述单个对象在其生命周期内可能经历的不同状态,以及触发状态变化的事件。

在这里插入图片描述

架构师考试 出题内容

选择题:

(1)根据描述选择是哪种类型图。

在这里插入图片描述
(2)根据描述选择是哪种关系。
在这里插入图片描述

案例分析题

前几年考过案例分析题,案例分析题属于和面向对象设计相结合考察,
在这里插入图片描述
在这里插入图片描述

相关文章:

  • eward hacking 问题 强化学习钻空子
  • 科研领域开源情报应用:从全球信息网络到创新决策
  • SpringBoot与Eventuate Tram整合 - 实现转账最终一致性系统
  • 替换 FastJSON:推荐 Jackson 及详细用法指南(含工具类 + 替换方案)
  • Shell脚本实践(修改文件,修改配置文件,执行jar包)
  • 2025年中期大语言模型实力深度剖析
  • 如何使用远程桌面控制电脑
  • 【计算机视觉】OpenCV实战项目:基于OpenCV与face_recognition的实时人脸识别系统深度解析
  • 力扣hot100——347.前K个高频元素(cpp手撕堆)
  • 霍夫圆变换全面解析(OpenCV)
  • 在scala中使用sparkSQL连接MySQL并添加新数据
  • 需求跟踪矩阵准确性的5大策略
  • java使用 FreeMarker 模板生成包含图片的 `.doc` 文件
  • 《数据库原理》部分习题解析
  • MySQL——八、SQL优化
  • 精简大语言模型:用于定制语言模型的自适应知识蒸馏
  • 商业航天运动控制系统中的高可靠性芯片解决方案:挑战、策略与应用研究
  • 每周靶点分享:Nectin-4、CDH6及文献分享
  • Deno、Bun、Node.js 性能对比与选型指南
  • Linux进程信号处理(26)
  • 一个多月来上海交大接连“牵手”三区,在这些方面进行区校合作
  • 王征、解宁元、牛恺任西安市副市长
  • 沧州制造展现硬核实力:管道装备支撑大国基建,核电锚栓实现国产
  • 陕西河南山西等地将现“干热风”灾害,小麦产区如何防范?
  • 安徽省委副秘书长、省委政研室主任余三元调任省社科院院长
  • 习近平同巴西总统卢拉共同出席合作文件签字仪式