当前位置: 首页 > news >正文

十七、统一建模语言 UML

        统一建模语言(Unified Modeling Language,UML)是一种通用的建模语言,具有创建系统的静态结构和动态行为等多种结构模型的能力,具有可扩展性和通用性,适合于多种多变结构系统的建模。

统一建模语言的特点:

  • 统一标准
  • 面向对象
  • 可视化、表达能力强
  • 独立于过程
  • 易掌握、易用

一、UML 组成元素

1、事物

        1)结构事物

  • 类(Class)
  • 接口(Interface)
  • 协作(Collaboration)
  • 用例(User)
  • 主动类(Active Class)
  • 构件(Component)
  • 制品(Arifact)
  • 节点(Node)

        2)行为事物

  • 交互(Interaction)
  • 状态机(State Machine)
  • 活动(Activity)

        3)分组事物:最主要的分组事物就是包

        4)注释事物:UML 模型的解释部分

2、关系

        1)依赖:实心箭头的虚线

        2)关联和聚集:描述一组链,链是对象之间的连接

        3)泛化:空心箭头的实线

        4)实现:空心箭头的虚线

两种场景会用到实现

  • 接口和实现他们之间的类或者构件
  • 用例和实现用例的协作

3、图

序号生命周期阶段涉及角色
1用例图需求分析阶段客户、分析者、设计者、开发者、测试者
2类图概要设计阶段分析者、设计者、开发者
3对象图详细设计阶段分析者、设计者、开发者
4包图概要设计阶段分析者、设计者、开发者
5构件图

概要设计阶段

详细设计阶段

分析者、设计者、开发者
6配置图

概要设计阶段

详细设计阶段

分析者、设计者、开发者
7活动图

详细设计阶段

编码实现阶段

设计者、开发者
8顺序图

详细设计阶段

编码实现阶段

设计者、开发者
9状态图

详细设计阶段

编码实现阶段

设计者、开发者
10合作图

详细设计阶段

编码实现阶段

设计者、开发者

二、模型图

1、用例图(Use Case Diagram)

        用例模型(Use Case Model)描述的是外部执行者所理解的系统功能。主要用于需求分析阶段,是系统开发者和用户反复讨论,对需求规格说明书达成共识。

        用例图的组成元素:1)方框符号代表系统;2)椭圆符号代表用例;3)人形符号代表执行者。他们之间的关系用连接线表示,其关系由连接线上的文字标明。

2、类图(Class Diagram)

        用类和它们之间的关系描述系统一种图示,展示了系统中类的静态结构和类与类之间的相互联系,表示一个系统的逻辑结构。

       类的图符中的属性只注明类型而不能有具体值。

        类的图符分为长式和短式:长式由类名、属性和操作组成;短式只有类名。

3、对象图(Object Diagram)

        对象是类的实例,及时地反映了系统执行到某处时系统的工作状况。

        对象的图符中,也分为长式和短式,对象名加了下划线,对象名后面可以接冒号和类名,用来说明创建该对象的类。

4、包图(Package DIagram)

        包是一种组合结构,包由关系密切的一组模型元素组成,还可以由其他包嵌套构成。

        包将许多累集合成一个更高层次的单位,形成一个高内聚、低耦合的类集合,降低系统的复杂性。

构件的组成元素:

公有访问(+)

私有访问(-)

保护访问(#)

包之间的关系:泛化和依赖

5、构件图

        构件图又称为组件图,显示代码本身的逻辑结构,描述系统中存在的软件结构以及他们之间的依赖关系。

http://www.xdnf.cn/news/383365.html

相关文章:

  • Win11安装APK方法详解
  • Trex -用 Python生成特定的流量模式
  • C++:this指针
  • CMake 入门实践
  • 牛客练习赛138
  • 8.5 表格进阶
  • (四)毛子整洁架构(Presentation层/Authentiacation)
  • 批量修改json文件中的标签
  • 【MCAL】TC397+EB-tresos之I2c配置实战(同步、异步)
  • 2025年客运从业资格证备考单选练习题
  • Wallcraft 3.53.0 | 提供高质量动态4D壁纸,解锁高级版,无广告干扰
  • 《Python星球日记》 第50天:深度学习概述与环境搭建
  • 数据治理框架在企业中的落地:从理念到实践
  • OSPF案例
  • 完整进行一次共线性分析
  • Java代理
  • Android开发-图像显示
  • 如何通过合法数据变现实现收入增长
  • LVGL对象的盒子模型和样式
  • Arduino 开源按键库大合集(单击/双击/长按实现)
  • VB与Excel无缝连接实现指南
  • 编译后的js文件如何跟进调试
  • OpenAI的商业化之路:从非营利到盈利的转型
  • IC ATE集成电路测试学习——开尔文连接
  • 最速下降法和梯度下降法的异同
  • python基础(十一)-逻辑运算符
  • nextjs 部署失败:cause: Error: unable to verify the first certificate
  • C语言加餐--一些关键字
  • 数字信号处理|| 离散系统的冲激响应和阶跃响应
  • 【Python训练营打卡】day21 @浙大疏锦行