> 技术文档 > uml图学习应用,实战项目

uml图学习应用,实战项目


一.UML图简介

UML(Unified Modeling Language,统一建模语言)是一种标准化的图形化建模语言,用于软件系统的分析、设计、实现和文档化。它通过可视化的图形符号描述系统的结构、行为、交互等,帮助开发团队理解需求、设计架构并沟通协作。

1.UML图的分类及用途

UML图可分为结构图行为图两大类,共13种主要类型。以下是常见类型及其在项目中的应用场景:

结构图(静态模型)
  1. 类图(Class Diagram)

    • 描述系统中的类、接口、属性、方法及它们之间的关系(如继承、关联、依赖)。
    • 用途:面向对象设计阶段,定义系统核心模块和数据结构。
  2. 对象图(Object Diagram)

    • 展示某一时刻对象的状态及对象间的链接关系,是类图的实例化。
    • 用途:调试或验证类图的正确性。
  3. 组件图(Component Diagram)

    • 描述系统的物理组件(如库、可执行文件)及其依赖关系。
    • 用途:系统架构设计时划分模块,支持模块化开发。
  4. 部署图(Deployment Diagram)

    • 展示硬件节点(服务器、设备)及软件组件在运行时的分布。
    • 用途:系统部署阶段,规划硬件资源和网络拓扑。
  5. 包图(Package Diagram)

    • 用包(Package)组织类或组件,表示高层次的分组和依赖。
    • 用途:管理大型项目的代码结构,避免命名冲突。
2.行为图(动态模型)
  1. 用例图(Use Case Diagram)

    • 描述系统与外部角色(Actor)的交互,列出系统功能(用例)。
    • 用途:需求分析阶段,明确系统功能边界。
  2. 活动图(Activity Diagram)

    • 类似流程图,展示业务流程或算法的步骤分支。
    • 用途:详细设计复杂业务逻辑或并行流程。
  3. 状态图(State Machine Diagram)

    • 描述对象在其生命周期内的状态转换(如订单状态:创建→支付→完成)。
    • 用途:设计具有复杂状态变化的系统(如工单系统、游戏角色)。
  4. 时序图(Sequence Diagram)

    • 强调对象间消息传递的时间顺序,展示交互细节。
    • 用途:设计关键功能的执行流程(如用户登录、支付流程)。
  5. 通信图(Communication Diagram)

    • 类似时序图,但侧重对象间的结构关系而非时间顺序。
    • 用途:分析对象协作模式,尤其适合复杂调用关系。
  6. 交互概览图(Interaction Overview Diagram)

    • 结合活动图和时序图,宏观描述交互流程。
    • 用途:高层设计多个交互场景的整体逻辑。
  7. 定时图(Timing Diagram)

    • 展示状态或条件变化的时间约束(如硬件响应时间)。
    • 用途:实时系统或性能敏感场景(如嵌入式系统)。

实际项目中的选择

  • 需求分析阶段:用例图、活动图。
  • 系统设计阶段:类图、时序图、状态图。
  • 架构设计阶段:组件图、部署图。
  • 详细实现阶段:对象图、通信图。

不同项目类型(如Web应用、嵌入式系统)可能侧重不同的UML图。例如,电商系统常用类图和时序图设计订单模块,而物联网项目可能依赖部署图和状态图。

二.项目实战

1.题干

编码实现一个简单的人员和对应电脑设备的资产管理功能,可以支持人员和对应电脑设备增加、修改、删除、设备清单显示(支持排序),具体细节要求如下:

建立一个MFC对话框应用程序,示意如下

  1. 点击加载数据,加载《data.json》中的默认数据,需要完成两步功能:
  2. 根据json 第一层key创建对应的表,分别是人员表t-person表、电脑资产表t-pc、人员和电脑资产关系表t-personpc,每张表的字段来源json的第二层key值
  3. 建表后,需要把json中的数据全部插入到对应的表中
    1. 点击显示所有人员就在列表中显示第一步加载的默认数据中的人员信息,按拼音排序显示。
    2. 选中列表一行点击编辑:弹出编辑对话框,保存就修改人员数据