UML建模

发布于:2025-06-19 ⋅ 阅读:(11) ⋅ 点赞:(0)

目录

前言:

1、UML概述  

1.1. 定义

1.2. UML的组成分类 :

1.2.1结构图示例: 

1.2.2行为图示例:  

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

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

(1) 类图(Class Diagram):

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

(3) 序列图(Sequence Diagram):

(4) 活动图(Activity Diagram):

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

(6) 组件图(Component 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)。  
高频图表:类图(关系类型)、用例图(包含/扩展)、序列图(消息与片段)。  
考试重点:理解图表的核心元素与应用场景,而非死记符号。  

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

2. UML的组成
   结构图:描述系统静态结构(如类图、组件图、部署图)。
   行为图:描述系统动态行为(如用例图、活动图、状态图、序列图)。

3. UML 2.x核心图(14种)
   重点掌握**(考试高频):
     - 类图(Class Diagram)
     - 用例图(Use Case Diagram)
     - 序列图(Sequence Diagram)
     - 活动图(Activity Diagram)
     - 状态图(State Machine Diagram)
     - 组件图(Component Diagram)
     - 部署图(Deployment Diagram)
   - 了解即可:
     - 对象图、包图、通信图、定时图等。

三、UML建模原则
1. 抽象分层
   - 从需求分析到设计逐步细化(如用例图→类图→序列图)。
2. 高内聚低耦合
   -通过类图的关联关系设计松耦合结构。
3. 面向对象思想
   - 封装、继承、多态在类图中的体现。

四、考试重点与学习建议
1. 高频考点
   类图的关系(组合 vs 聚合 vs 继承)。
   序列图的消息时序与组合片段(如循环、条件判断)。
    活动图与状态图的区别(流程 vs 状态变迁)。
   用例图的包含(Include)与扩展(Extend)关系。

2. 学习建议
   理解图表本质:每个图的用途和适用场景(如类图用于设计,用例图用于需求)。
   对比记忆:如活动图 vs 流程图,组件图 vs 部署图。
   结合真题:通过历年试题分析高频图表和常见题型。
   动手绘图:尝试用工具(如StarUML、PlantUML)绘制实际案例。

3. 推荐资源
  《UML精粹》(Martin Fowler)
   软考官方教程《软件设计师教程》(UML章节)
  在线工具:draw.io、Visual Paradigm(免费版)。

结语:

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


网站公告

今日签到

点亮在社区的每一天
去签到