UML建模

目录

前言:

1、UML概述

[1.1. 定义](#1.1. 定义)

[1.2. UML的组成分类 :](#1.2. UML的组成分类 :)

1.2.1结构图示例:

1.2.2行为图示例:

[3. UML 2.x核心图(14种)详解 :](#3. UML 2.x核心图(14种)详解 :)

[3.1重点掌握(7种高频考试图表) :](#3.1重点掌握(7种高频考试图表) :)

[(1) 类图(Class Diagram):](#(1) 类图(Class Diagram):)

[(2) 用例图(Use Case Diagram):](#(2) 用例图(Use Case Diagram):)

[(3) 序列图(Sequence Diagram):](#(3) 序列图(Sequence Diagram):)

[(4) 活动图(Activity Diagram):](#(4) 活动图(Activity Diagram):)

[(5) 状态图(State Machine Diagram):](#(5) 状态图(State Machine Diagram):)

[(6) 组件图(Component Diagram):](#(6) 组件图(Component Diagram):)

[(7) 部署图(Deployment Diagram):](#(7) 部署图(Deployment Diagram):)

拓展:

结语:


前言:

博主回来了,最近事情很对,基本没有时间写文章了,今天的文章是关于UML建模的,是博主在学习过程的一点点总结和收获吧,关于这篇文章,只是作为大家学习面向对象过程中分析定义软件的需求,希望这篇文章可以帮助到大家.

1、UML概述

1.1. 定义

UML(Unified Modeling Language,统一建模语言)

本质:一种图形化、标准化的建模语言,用于软件系统的**可视化、规范设计、构造和文档化。

核心价值:

统一不同开发方法(如面向对象分析设计)的表达方式。

促进开发团队、客户、架构师之间的**高效沟通**。

适用阶段:

需求分析(用例图)、系统设计(类图、序列图)、部署规划(部署图)等。

1.2. UML的组成分类 :

UML图按**描述维度**分为两大类:

1.2.1结构图示例:

类图:描述类、接口、关联关系(如电商系统的`用户类`与`订单类`的关系)。

部署图:展示系统物理部署(如Web服务器、数据库服务器节点分布)。

1.2.2行为图示例:

用例图:定义用户(Actor)与系统的功能交互(如"用户下单"用例)。

序列图:描述对象间基于时间的消息传递(如用户登录的交互流程)。

3. UML 2.x核心图(14种)详解 :

3.1重点掌握(7种高频考试图表) :

(1) 类图(Class Diagram):

用途:定义系统的静态结构(类、接口、关联关系)。

核心元素:

类:属性(`-name: String`)、方法(`+getOrder(): void`)。

关系类型:

(2) 用例图(Use Case Diagram):

用途:描述系统功能需求及用户(Actor)与系统的交互。

核心元素:

参与者(Actor):系统外部实体(人、设备或其他系统)。

用例(Use Case):系统提供的功能单元(如"支付订单")。

关系类型:

包含(Include):必须执行的子用例(如"下单"必须包含"验证库存")。

扩展(Extend):条件触发的扩展用例(如"支付失败"扩展"支付")。

泛化:用例的继承关系(如"VIP支付"泛化"支付")。

(3) 序列图(Sequence Diagram):

用途:按时间顺序展示对象间的消息交互流程。

核心元素:

对象生命线(Lifeline):垂直虚线表示对象存活时间。

消息(Message):

同步消息:实线箭头(如调用方法需等待返回)。

异步消息:虚线箭头(如触发事件无需等待)。

激活条(Activation Bar):矩形条表示方法执行时间段。

组合片段(Combined Fragment)**:

循环(Loop):重复执行的消息块(如循环查询库存)。

条件(Alt):分支判断(如"库存充足"与"缺货"分支)。

(4) 活动图(Activity Diagram):

用途:描述业务流程或算法步骤(类似流程图)。

核心元素:

活动节点(Action):具体执行步骤(如"提交订单")。

控制节点:

开始/结束节点:流程起点与终点。

判断节点(Decision):菱形分支条件(如"库存>0?")。

分叉/汇合(Fork/Join):并行流程控制(如同时处理订单和扣款)。

泳道(Swimlane):划分责任主体(如"用户"、"支付系统"泳道)。

(5) 状态图(State Machine Diagram):

用途:描述对象生命周期内的状态变迁(如订单状态流转)。

核心元素:

  • 状态(State):对象在某一时刻的条件(如"待支付")。

  • 转移(Transition):状态间的箭头,标注**事件(Event)和守护条件(Guard)(如"支付成功[金额>0]"触发到"已支付")。

  • 初始状态/终止状态:起点与终点。

(6) 组件图(Component Diagram):

用途:描述系统组件及其接口依赖关系。

核心元素:

  • 组件(Component):可替换的功能模块(如"支付组件")。

  • 接口(Interface):组件提供的服务(如`IPaymentService`)。

  • 依赖关系:虚线箭头表示组件间的调用(如"订单组件"依赖"支付组件")。

(7) 部署图(Deployment Diagram):

用途:描述系统物理部署结构(硬件节点、软件组件分布)。

核心元素:

  • 节点(Node):硬件设备(如"Web服务器"、"数据库服务器")。

  • 组件实例:部署在节点上的软件(如"订单服务"部署在Web服务器)。

  • 通信路径:节点间的连接(如TCP/IP协议)。

拓展:

了解即可(4种低频图表)

  1. 对象图:类图的实例化(如某时刻的`用户A`与`订单001`对象关系)。

  2. 包图:代码逻辑分组(如将"用户管理"和"订单管理"划分为不同包)。

  3. 通信图(协作图):强调对象拓扑结构的交互(类似序列图,但忽略时间顺序)。

  4. 定时图:描述时间约束下的交互(如实时系统中消息的响应时间限制)。

总结:UML概述学习要点

结构图 vs 行为图:静态结构(What) vs 动态行为(How)。

高频图表:类图(关系类型)、用例图(包含/扩展)、序列图(消息与片段)。

考试重点:理解图表的核心元素与应用场景,而非死记符号。

如果需要进一步展开某一种图的细节或示例,请随时告诉我!

  1. UML的组成

结构图:描述系统静态结构(如类图、组件图、部署图)。

行为图:描述系统动态行为(如用例图、活动图、状态图、序列图)。

  1. UML 2.x核心图(14种)

重点掌握**(考试高频):

  • 类图(Class Diagram)

  • 用例图(Use Case Diagram)

  • 序列图(Sequence Diagram)

  • 活动图(Activity Diagram)

  • 状态图(State Machine Diagram)

  • 组件图(Component Diagram)

  • 部署图(Deployment Diagram)

  • 了解即可:

  • 对象图、包图、通信图、定时图等。

三、UML建模原则

  1. 抽象分层
  • 从需求分析到设计逐步细化(如用例图→类图→序列图)。
  1. 高内聚低耦合

-通过类图的关联关系设计松耦合结构。

  1. 面向对象思想
  • 封装、继承、多态在类图中的体现。

四、考试重点与学习建议

  1. 高频考点

类图的关系(组合 vs 聚合 vs 继承)。

序列图的消息时序与组合片段(如循环、条件判断)。

活动图与状态图的区别(流程 vs 状态变迁)。

用例图的包含(Include)与扩展(Extend)关系。

  1. 学习建议

理解图表本质:每个图的用途和适用场景(如类图用于设计,用例图用于需求)。

对比记忆:如活动图 vs 流程图,组件图 vs 部署图。

结合真题:通过历年试题分析高频图表和常见题型。

动手绘图:尝试用工具(如StarUML、PlantUML)绘制实际案例。

  1. 推荐资源

《UML精粹》(Martin Fowler)

软考官方教程《软件设计师教程》(UML章节)

在线工具:draw.io、Visual Paradigm(免费版)。

结语:

好的,最后也到了总结的时候了,这次写这篇文章是因为考软件设计师中级的时候刚好学到这个UML视图觉得还是比较有意义所有就分享出来,这篇文章或许还有很多地方不足之处,欢迎各位大佬的斧正。

相关推荐
昕冉3 天前
UML图之学习绘制样例
设计模式·uml
昕冉3 天前
双碳系统之UML图
前端框架·uml
Lijunyan12985 天前
DeepSeek提示词指南:从基础到高阶的全面解析
经验分享·笔记·python·uml·segmentfault
springfe01015 天前
图形化表达方法
uml·数据可视化
哆啦A梦的口袋呀9 天前
理解系统交互:UML时序图
软件工程·交互·uml
哆啦A梦的口袋呀11 天前
深入理解系统:UML类图
开发语言·python·uml
和煦的12 天前
UML、mermaid在代码中的表现形式
uml
爱喝酸奶的桃酥13 天前
【无标题】
uml
李明卫杭州14 天前
UML中用例图的绘制
架构·uml