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的各种图形以及意义,如果你打算考中级软件设计师可以收藏起来,因为这是必考点可以解决此类问题的试题

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

相关推荐
A_cot3 小时前
理解设计模式与 UML 类图:构建稳健软件架构的基石
microsoft·设计模式·简单工厂模式·工厂方法模式·uml
肖老师+3 小时前
可视化建模与UML《协作图实验报告》
uml·可视化建模
J老熊5 小时前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
The_Ticker8 小时前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
代码欢乐豆2 天前
第12章小测
软件工程
田梓燊2 天前
湘潭大学软件工程算法设计与分析考试复习笔记(四)
笔记·算法·软件工程
shinelord明3 天前
【再谈设计模式】适配器模式 ~接口兼容的桥梁
数据结构·设计模式·软件工程
豆豆3 天前
如何选择国产化CMS来建设政务网站?
服务器·开发语言·前端·php·软件构建·政务
张彦峰ZYF3 天前
互联网数字化商品管理浪潮思考:从信息化到精准运营
大数据·软件工程·软件需求
代码欢乐豆3 天前
软件工程9、10章小测
软件工程