UML图(软件设计师)

UML图

1.UML介绍

UML(统一建模语言,Unified Modeling Language)是一种标准的图形化建模语言,用于可视化、描述、构造和记录软件系统的各个部分。它帮助开发人员和系统架构师在软件开发过程中表达设计和体系结构。UML不是一种编程语言,而是用来创建模型的语言。以下是UML的一些主要方面:

UML的主要图表类型

UML包含许多图表,可以分为两大类:结构图和行为图。

1.1结构图

  • 类图(Class Diagram):描述系统中的类及其相互关系。它展示了类的属性、方法以及类之间的静态关系(如继承、实现、关联)。
  • 对象图(Object Diagram):展示某一时刻系统中的对象实例及其关系,主要用于验证类图。
  • 组件图(Component Diagram):展示系统的物理组件(如文件、数据库表)以及组件之间的依赖关系。
  • 部署图(Deployment Diagram):展示系统的硬件节点(如服务器)以及这些节点上部署的软件组件。
  • 包图(Package Diagram):组织和分组类、组件等模型元素,展示包之间的依赖关系。

1.2行为图

  • 用例图(Use Case Diagram):展示系统与外部用户(角色)之间的交互。用例图主要用于捕捉系统的功能需求。
  • 顺序图(Sequence Diagram):描述对象之间的交互顺序。展示对象之间的消息传递顺序。
  • 协作图(Communication Diagram):展示对象间的交互关系,着重于对象的角色及其关系。
  • 状态图(State Diagram):描述对象的状态变化以及导致状态变化的事件。
  • 活动图(Activity Diagram):展示系统中活动的流程和并行操作,类似于流程图。
  • 时间图(Timing Diagram):描述对象的状态随时间的变化。

1.3UML图示例

● 用例图,用例图显示了一组用例、参与者以及它们之间的关系,可以便用用侧例图展示系流具有的功能,可以理解为系流提供的服务。

适用于: 对新系统需求进行建模, 规划开发什么功能或测试用例

● 对象图: 展示某一时刻一组对象以及它们之间的关系。(图中有:)

● 部署图:(看上去图中有立体图形)

适用于: 展示交付系统的软件组件和硬件之间的关系

● 活动图: 展示了系流内从一个活动到另一个活动的流程。(有开始->结束而且有分叉:黑色横杠)

● 序列图: 描述了以时间顺序组织的对象之间的交互活动。(有生命线: 虚线)

考察: 虚线的方法是返回方法, 实线是同步方法, 半箭头是异步消息

● 状态图: 描述状态(事件触发一个没有特定监护条件的迁移, 对象不一定离开当前状态)

● 构件图(组件图) : 如图所示: 1是供接口 2是需接口(带有1, 2结构的就是组件图)

● 通信图:(箭头连接有1.2.3的方法)

● 类图: (存在 的关系)

2.UML图类型含义

  • 系统在它的周边环境的语境中所提供的外部可见服务是"用例图"的描述
  • 某一时刻一组对象以及它们之间的关系是"对象图"的描述
  • 系统内从一个活动到另一个活动的流程是"活动图"的描述
  • 以时间顺序组织的对象之间的交互活动是"序列图"的描述
  • 专注于系统的静态实现图是 "构件图"

3.UML中的关系

类之间的关系

● 关联: 结构关系,描述一组链, 链是对象之间的连接

● 泛化: 使子元素共享其父元素的结构和行为(也就是继承)

4.UML图中属性前的修饰符号(±~#)

+是public, -是private, ~是package, #是protected

如下题(1)处对应的就是protected

5.UML建模

采用UML对系统进行建模时,

● 首先确定系流边界,识别出主要用例,建模用例图。

● 然后对用例图中的复杂用例采用活动图进一步进行建模,以对用例中执行过程中对象如何通过消息相互交互进行建模。

● 系统的领域模型采用类图进行建模,

● 交互关系采用顺序图、交互概览图等进行建模。

注意 :这些只是UML的部分知识,不过能大致概括UML的各种图形以及意义,如果你打算考中级软件设计师可以收藏起来,因为这是必考点可以解决此类问题的试题

(考试报名)官方链接: 中国计算机技术职业资格网

相关推荐
宇钶宇夕4 小时前
三旺 INP314T 网关快速入门指南:从登录到基础配置
运维·自动化·软件工程
唐·柯里昂79810 小时前
野火鲁班猫5使用正点原子 RTL8188EUS Wifi模块驱动移植(Linux5.10 Debian系统) 解决zsh报错
linux·c语言·mcu·物联网·ubuntu·硬件工程·软件构建
郝学胜-神的一滴20 小时前
OpenGL错误检查与封装:构建健壮的图形渲染系统
开发语言·c++·程序人生·软件工程·图形渲染
达不溜的日记20 小时前
BootLoader—基于CAN的FBL详解
网络·stm32·嵌入式硬件·mcu·车载系统·软件工程·信息与通信
公众号/头条号:技术很有趣20 小时前
2025年11月 系统架构设计师考试复盘
职场和发展·软件工程
SoftwareTeacher1 天前
提高软件工程质量 - 租易项目
软件工程
询问QQ:180809511 天前
基于TCN-LSTM的时序预测模型:多特征到单变量预测的深度学习框架
软件构建
程序员霸哥哥2 天前
XYplorer(多标签文件管理器) v27.20.0700 / 28.00.1200 多语便携版
windows·macos·软件工程·mac·应用软件·xyplorer
SoftwareTeacher2 天前
漫游式渐进阅读项目软件工程质量提升建议
软件工程
爱思德学术2 天前
中国计算机学会(CCF)推荐学术会议-C(软件工程/系统软件/程序设计语言):EASE 2026
软件工程·软件构建·软件需求