希赛考试网
首页 > 软考 > 软件设计师

uml14种图举例

希赛网 2024-04-23 13:07:21

UML,即Unified Modeling Language,是一种标准化的面向对象软件开发工具。UML包括14种图,这些图将软件系统从不同角度进行建模。本文将从多个角度分析UML14种图,并举例讲解。

1.结构图

结构图是UML中最基础也是最重要的一类图。结构图用于描述软件系统的静态结构,包括类图、对象图、组件图、部署图。

(1)类图

类图是最常用的UML图之一,用于描述系统中各个类之间的关系。类图主要包括类、接口、属性、方法等元素。如下图所示,展示了一个简单的类图,包括两个类(Person和Address),以及它们之间的关系。

![类图示例](https://i.imgur.com/vkAXkjR.jpg)

(2)对象图

对象图展示了一个系统在特定时间点的对象状态。它是类图的实例,它展示了各个对象以及它们之间的关系。如下图所示,展示了一个简单的对象图,包括两个对象(person1和address1)以及它们之间的关系。

![对象图示例](https://i.imgur.com/uNW9AJP.jpg)

(3)组件图

组件图用于描述系统中各个组件之间的关系。组件是系统的基本构建单元,由一个或多个类或接口组成。如下图所示,展示了一个简单的组件图,包括三个组件(Storage、Application和UI)以及它们之间的关系。

![组件图示例](https://i.imgur.com/9TSJJ9v.jpg)

(4)部署图

部署图用于描述系统中各个组件的部署方案。它展示了各个组件在物理硬件上的分布情况。如下图所示,展示了一个简单的部署图,包括两个节点(Server和Client)以及它们之间的关系。

![部署图示例](https://i.imgur.com/iXWnlWZ.jpg)

2.行为图

行为图描述了系统中各个对象之间的动态交互,包括用例图、活动图、状态图、序列图和通信图。

(1)用例图

用例图用于描述系统的功能需求和角色之间的关系。它展示了各种用例(操作系统中用户完成的任务)和各种角色(参与用例的人、组织或系统)之间的关系。如下图所示,展示了一个简单的用例图,包括一个用例(添加联系人)和两个角色(用户和系统)。

![用例图示例](https://i.imgur.com/vQq9OBK.jpg)

(2)活动图

活动图用于展示系统或对象内部的活动流程。它展示了一个或多个对象之间的活动以及它们之间的关系。如下图所示,展示了一个简单的活动图,包括一个动作(登录)、两个决策(用户名和密码是否正确)和两个操作(显示错误消息和显示欢迎消息)。

![活动图示例](https://i.imgur.com/zCZ4vMh.jpg)

(3)状态图

状态图用于描述对象的所有可能状态以及它们之间的转换方式。如下图所示,展示了一个简单的状态图,包括一个对象(TrafficLight)以及它的三种状态(红灯、绿灯、黄灯)。

![状态图示例](https://i.imgur.com/kLfesUf.jpg)

(4)序列图

序列图用于展示系统中对象之间的时间顺序。它展示了一个或多个对象之间的交互以及它们之间的时间顺序。如下图所示,展示了一个简单的序列图,包括两个参与者(Client和Server)以及它们之间的交互。

![序列图示例](https://i.imgur.com/ZvGx5HU.jpg)

(5)通信图

通信图用于展示系统中各个对象之间的交互关系。它展示了各个对象之间的消息传递以及它们之间的关系。如下图所示,展示了一个简单的通信图,包括两个对象(Person1和Address1)以及它们之间的交互。

![通信图示例](https://i.imgur.com/i2oGomg.jpg)

3.交互图

交互图是一种较高级别的图,它摆脱了对象细节,重点关注对象之间的交互。交互图包括时序图和协作图。

(1)时序图

时序图展示了一系列对象之间的消息交换。如下图所示,展示了一个简单的时序图,包括两个对象(Client和Server)以及它们之间的消息交换。

![时序图示例](https://i.imgur.com/A1c0Df8.jpg)

(2)协作图

协作图用于展示各个对象之间的协作关系。它展示了各个对象之间的消息传递以及它们之间的关系。如下图所示,展示了一个简单的协作图,包括三个对象(Person1、Person2和Address)以及它们之间的关系。

![协作图示例](https://i.imgur.com/JzopWQq.jpg)

4.组合图

组合图是一种将多种图结合起来的图。它允许建模人员将UML图分层展示,并具有更高的表现力。组合图包括包图和时间序列图。

(1)包图

包图用于描述软件系统中的包结构,它展示了包之间的层次结构。如下图所示,展示了一个简单的包图,包括三个包(Controller、Model和View)以及它们之间的关系。

![包图示例](https://i.imgur.com/3Lo8bkb.jpg)

(2)时间序列图

时间序列图展示了一个系统在一段时间内的演化过程。它是序列图的一种扩展,允许将多个序列图组合成一个时间序列图。如下图所示,展示了一个简单的时间序列图,包括两个序列图(Client和Server)以及它们之间的时间序列关系。

![时间序列图示例](https://i.imgur.com/qISb30w.jpg)

微信扫一扫,领取最新备考资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考报考咨询

微信扫一扫,定制学习计划