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

软件设计师----UML

事物

UML中有四种事物:

  1. 结构事物:结构事物是UML模型中的名词,通常是模型的静态部分,描述概念或物理元素。

  2. 行为事物:行为事物是UML模型的动态部分,它们是模型中的动词,描述了跨越时间和空间的行为。

  3. 分组事物:分组事物是UML模型的组织部分,是一些由模型分解成“盒子”。

  4. 注释事物:注释事物是UML模型的解释部分。这些注释事物用来描述、说明和标注模型的任何元素。

关系

UML中有四种关系:依赖、关联、泛化和实现。

  1. 依赖:依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事务(依赖事务)的语义。

  2. 关联:关联是一种结构关系,它描述了一组链,链是对象之间的连接。


    a. 聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在。
    b. 组合: 部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在。

  3. 泛化:泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对 象。子元素共享了父元素的结构和行为。

  4. 实现(了解): 实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。

B     D

A     D    C

B

C

C

B

A

类图

类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系

符号:

 

类图用于对系统的静态设计视图建模。通常以下述3种方式之一使用类图:

  1. 对系统的词汇建模。
  2. 对简单的协作建模。
  3. 对逻辑数据库建模。

B    A

D

抽象类不能实例化,直接对象就是实例化对象,非直接对象:用A的子类实例化的对象

对象图

对象图展示了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实列的静态快照

对象图给出系统的静态设计视图静态进程视图。对象图一般包括对象和链(关联)

用例图

  • 用例图展示了一组用例、参与者以及它们之间的关系
  • 一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的拓展用例。
  • 参与者:参与者是与系统交互的外部实体。可能是使用者,也可能是与系统交互的外部系统、基础设备等。
  • 用例:用例是从用户角度描述系统的行为,它将系统的一个功能描述成一系列的事件,这些事件最终对操作者产生有价值的观测结果。用例是一个类,它代表一类功能而不是使用该功能的某一具体实例。
  • 之间的关系:
    • 包含关系(<<include>>)(用例之间):一个用例包含另一个用例
    • 扩展关系(<<extend>>)(用例之间):一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的扩展用例
    • 关联关系(参与者和用例之间
    • 泛化关系(用例与用例以及参与者与参与者之间
  • 用例图用于对系统的静态用例视图进行建模。可用以下两种方式来使用用例图:
    • 对系统的语境建模
    • 对系统的需求建模。

A

交互图(序列图、通信图)

  • 交互图用于对系统的动态方面进行建模。一张交互图表现的是一个交互,由一组对象和它们之间的关系组成。包含它们之间可能传递的消息。
  • 交互图一般包括对象、链和消息
  • 序列图是强调消息时间顺序的交互图,通信图是强调接收和发送消息的对象的结构组织的交互图。
  1. 序列图(顺序图、时序图):序列图是场景的图形化表示,描述了对象之间的时间顺序。序列图用于展示系统中一个用例和多个对象的行为。 序列图有两个不同于通信图的特征:
    1. 序列图有对象生命线
    2. 序列图有控制焦点
  1. 通信图(协作图):通信图强调收发消息的对象的结构组织,在早期的版本中也被称作协作图。 通信图展现了对象之间的消息流及其顺序。 通信图有两个不同于序列图的特性:
    1. 通信图有路径
    2. 通信图有顺序号
  2. 交互概览图(不考)
  3. 计时图(不考)

C    B

状态图

  • 状态图展现了一个状态机,它由状态、转换、事件和活动组成。
  • 状态图展现了对象的状态转换及事件顺序
  • 可以用状态图对系统的动态方面建模。当对系统、类或用例的动态方面建模时,通常是对反应型对象建模。
  • 定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。
  • 三种标准事件:entry、exit、do
    • entry:入口动作,进入状态立即执行
    • exit:出口动作,退出状态立即执行
    • do:内部活动,占有限时间,并可以中断的工作
  • 事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。
  • 监护条件是一个布尔表达式。

转换包括两个状态(源状态,目标状态)

事件,监护条件,动作

事件触发转换(迁移)

活动(动作)可以在状态(迁移)内执行,也可以在状态转换时执行。

C   D

C

活动图

  • 活动图是一种特殊的状态图,它展示了在系统内从一个活动到另一个活动的流程。
  • 活动图一般包括活动状态和动作状态、转换和对象。
  • 通常有两种使用活动图的方式:
    • 对工作流建模
    • 对操作建模

C

构件图(组件图)

  • 构件图展现了一组构件之间的组织和依赖。
  • 构件图专注于系统的静态实现试图

部署图

  • 部署图是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。
  • 部署图展现了系统的软件和硬件之间的关系,在实施阶段使用

UML图汇总

  • 静态建模:类图、对象图、用例图
  • 动态建模:序列图(顺序图、时序图)、通信图(协作图)、状态图、活动图
  • 物理建模:构件图(组件图)、部署图
  • 交互图:序列图(顺序图、时序图)、通信图(协作图)


http://www.kler.cn/news/365805.html

相关文章:

  • 鸿蒙实现相机拍照及相册选择照片
  • 【贪心算法】(第十四篇)
  • 【Linux 从基础到进阶】系统故障排查思路与实战
  • vue3 选中对话框时,对话框右侧出一个箭头
  • 【电子元件】光通量和色温 (欧司朗LED灯珠 KW3 CGLNM1.TG命名规则)
  • 基于Multisim的四人智力竞赛抢答器设计与仿真
  • JavaWeb合集16-JWT令牌验证
  • Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (一)
  • 【Sublime Text】设置中文 最新最详细
  • 【Android】Convenient ADB Commands
  • jupyter notebook改变默认启动路径
  • C++:map和set类
  • SQLITE排序
  • Vision Transformer 神经网络在水果、动物、血细胞上的应用【深度学习、PyTorch、图像分类】
  • 【web安全】缓慢的HTTP拒绝服务攻击详解
  • 从零开始:Python与Jupyter Notebook中的数据可视化之旅
  • 从PDF文件中提取数据
  • 理解深度学习模型——高级音频特征表示的分层理解
  • 【Linux系统】如何证明进程的独立性
  • 追寻数组的轨迹,解开算法的情愫
  • 【CCL】浅析 CFX Command Language
  • Java应用程序的测试覆盖率之设计与实现(一)-- 总体设计
  • 51单片机的学习之路1
  • ArcGIS001:ArcGIS10.2安装教程
  • 【实战案例】Django框架连接并操作数据库MySQL相关API
  • Obsidian·Zotero·无法联动问题