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

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

相关推荐
星图易码1 小时前
软件工程的范式演进:深度解构低代码(Low-Code)的技术逻辑与未来图景
低代码·软件工程
赛希咨询1 小时前
生成式人工智能问答:在软件工程中的应用
人工智能·软件工程
caoxiaoye2 小时前
SDD规范驱动开发新范式:软件工程的未来变革与落地实践
驱动开发·软件工程
三方测试小学徒1 天前
GB/T 38634.3-2020《系统与软件工程 软件测试 第3部分:测试文档》之整体解读
软件工程·cma·cnas·38634
张较瘦_1 天前
[论文阅读] AI + 软件工程 | 突破AAA游戏测试瓶颈!选择性插桩让代码覆盖“轻装上阵”
论文阅读·游戏·软件工程
XuanTao772 天前
【安卓工具实测】影视仓更新!!追剧党狂喜!影视仓无广告版太香了!
深度学习·数码相机·智能手机·软件工程·软件构建
三方测试小学徒2 天前
GB/T 38634.2-2020《系统与软件工程 软件测试 第2部分:测试过程》之整体解读
软件工程·cma·cnas·38634
浩子智控2 天前
不同RPA实现技术的比较
软件工程·rpa
搞科研的小刘选手3 天前
【数字经济专题会议】第三届粤港澳大湾区数字经济与人工智能国际学术会议(DEAI 2026)
人工智能·aigc·软件工程·电子商务·数字经济·经济学·学术会议
张彦峰ZYF3 天前
从概念拆解到架构现实的系统性认知低代码平台
低代码·架构·软件工程·概念拆解到架构现实的系统性认知·低代码并非单一技术·应用交付工程范式·建模与可视化工程能力