软考架构师考试-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)表示顺序,需主动阅读编号。 |
对象关联可视化 | 对象间关联(如链接)较难直接观察,需通过消息推断。 | **对象间的链接(连线)**明确显示关联关系,结构布局一目了然。 |
复杂逻辑适应性 | 对循环、条件分支的可读性较差,需用片段(如loop 、alt )标记。 | 通过编号和消息路径可灵活表示分支,但复杂度高时可能混乱。 |
多对象交互场景 | 对象过多时,横向排列导致空间紧张,需分页或压缩。 | 对象布局灵活,可自由排列,适合展示多对象的协作网络。 |
适用场景 | - 调试时序问题 - 分析用例执行流程 - 需要明确操作顺序时。 | - 设计对象协作模式 - 理解系统结构关系 - 重构对象交互时。 |
优点 | - 时序清晰 - 适合展示动态流程 - 易理解消息触发顺序。 | - 结构关系明确 - 适合展示静态协作 - 灵活适应复杂布局。 |
缺点 | - 对象关联隐式 - 分支/循环降低可读性 - 横向扩展性差。 | - 消息顺序需主动解析 - 编号复杂时易混乱 - 时序不够直观。 |
- 优先用顺序图:当关注**“何时发生什么”**(如API调用顺序、事件流程)。
- 优先用通信图:当关注**“谁与谁协作”**(如微服务架构中的对象依赖关系)。
5.活动图
活动图是一种描述控制流和活动中序列的UML 图。活动图显示了活动序列、决策结点和循环,甚至还有并发活动。活动图在工作流建模中被广泛使用,例如,在面向服务的应用中。
6.状态图
状态图是UML中的一种行为图,专注于描述单个对象在其生命周期内可能经历的不同状态,以及触发状态变化的事件。
架构师考试 出题内容
选择题:
(1)根据描述选择是哪种类型图。
(2)根据描述选择是哪种关系。
案例分析题
前几年考过案例分析题,案例分析题属于和面向对象设计相结合考察,