UML(第二章:可视化建模实践概念知识)

前言

本文是结合《Enterprise Java with UML》的摘要与上课ppt的笔记


2. UML可视化建模实践概念知识

2.1 UML结构

在这里插入图片描述

2.2 Things(物件)

在这里插入图片描述

2.2.1 类

  • 定义:类是具有相同属性、操作、关系和语义的对象集合的总称。通常在UML中类被画成矩形。
  • 形式
  • 名称:每个类名需是首字母大写的字符串
  • 类型:
    在这里插入图片描述
种类 作用
实体类 用以表示客观实体;一般对应着业务领域中的客观事物;命名一般使用名词
界面类 用以描述系统与外界之间交互的系统要素,也称边界类;界面类是对外界与系统之间交互的抽象表示;命名使用名词
控制类 表示系统用来进行调度、协调、处理以及业务处理的系统要素;命名使用动词
  • 属性:描述类所表示事物的静态性质
    属性格式:
    【可见性】属性名【类型】【‘【’多重性【次序】‘】’】【=初始值】【{特性}】
    在这里插入图片描述

  • 操作:描述类所表示事物的动态性质
    [可见性]操作名[(参数列表):返回类型]

操作名:第1个英文单词首字母小写,其他单词首字母大写。
参数列表:
该操作的形式参数可以为空
返回类型:
该操作的返回值类型

2.2.2 接口

在这里插入图片描述

接口是未给出实现的对象行为的描述,一个或多个类可以实现接口,每个类实现接口的操作

2.2.3 组件

在这里插入图片描述

组件代表了一个接口定义良好的软件模块。一个组件可能是源代码、可执行程序或动态库

2.2.4 节点

在这里插入图片描述

节点代表系统运行时的物理单元,主要用于系统物理方面的建模。

2.2.5 包

在这里插入图片描述

包是一个用来将模型单元分组的通用机制
包可以含有类、组件、接口、用例等物件或其它的包

在这里插入图片描述

2.2.6 注解

在这里插入图片描述

用于解释设计思路,便于理解

2.3 关系

注意下图中箭头的画法
在这里插入图片描述

2.3.1 关联——has a

  • 定义:关联关系描述表示两个类之间存在某种语义上的联系
    关联到类的连接点称为关联端点。在这里插入图片描述

  • 表示形式
    在这里插入图片描述

  • 连接:最弱的关联,只是表示两类对象之间有导航关系

  • 聚合:具有has a语义,对象A是对象B的一个组成部分
    在这里插入图片描述

  • 组合:强语义的聚合,整体对象消失,部分对象也消失
    在这里插入图片描述

2.3.2 Dependency(依赖)——use a

依赖:一个模型元素的变化会影响另一个模型元素。

2.3.3 Generalization(泛化)——is a || is a kind of

泛化是一般化和具体化之间的一种关系
继承就是一种泛化关系,更一般化的描述称为双亲,双亲的双亲称为祖先,更具体化的描述称为孩子

2.3.4 Realizations(实现)——like a

2.4 公共机制

在这里插入图片描述

2.4.1 规格说明

UM模型的两种维度:

  • 图形维度:允许使用可视化模型
  • 文本维度:由各种建模元素的规格说明组成

2.4.2 Adornments(修饰)

图中建模元素上暴露的信息项以表现某个要点

2.4.3 公共分类

  • 公共分类描述认识世界的特殊方法
    • 类元和示例
      • 类元:一类事物的抽象概念
      • 实例:一类事物的特定实例
  • 接口和实现
    • 接口:说明事物行为的契约
    • 实现:事物是如何工作的特殊细节

2.4.4 扩展机制

扩展机制的三个组成

  • 约束:允许对模型元素添加新的规则
    • 约束是用文字表达式表示的语义限制
    • 约束用大括弧内的字符串表达式表示
  • 构造型:基于已有的建模元素引入新的建模元素
  • 标记值:标记值是一组字符串,存储着有关元素的一些信息

2.5 构架

在这里插入图片描述
构架是一个系统的组织结构,包括系统分解成的各个部分,它们的连接性、交互机制和通知系统设计的向导规则

用例视图:(case view)
用于描述项目干系人的用户需求,(将系统的基本需求捕获成用例,并成为其他视图构建的基础)

逻辑视图(logical view)
系统的功能和词汇,重点是展示对象和类是如何组成系统,是极限所需系统工位的

过程视图(process view
系统的性能,可伸缩性和吞吐量,是逻辑视图的动态实现

实现视图(implementation view)
系统组装和配置管理;对组成基于系统的物理代码的文件和组件进行建模,展示出组件之间的依赖关系

发展视图(devolopment view)
系统的拓扑结构、分布、移交和安装;允许建模横跨分布式系统节点上的组件分布

2.7 用例图

  • 场景:是用来描述用户和系统之间交互的顺序的步骤
  • 用例:是为了达到某一用户目标而组合在一起的一组场景的集合(命名:动词+宾语)
  • 角色:即参与者,涉及身份定位,是触发用例的人

在这里插入图片描述

2.8 类图

2.8.1 概述

描述了系统内各个对象的类型,以及这些类之间的静态关系
在这里插入图片描述

2.8.2 类图的阅读方法

1)把握类图信息的关键:

  • 类:类的种类,通过类实现的不同行为进行区分
  • 关系:类之间的关系
  • 多重性、属性和方法:结合多重性来理解类图的结构特点和方法

2)找出关系:

  • 从关系最复杂的类开始阅读
  • 根据箭头方向理解包含关系
  • 理解关联关系

3)理解多重性、属性和方法
多重性是用来说明关联的两个类之间的数量关系

2.8.3 类图的抽象层次

  • 概念层
  • 逻辑层
  • 实现层

在这里插入图片描述

2.8.4 类图的构建步骤

  1. 研究分析问题,确定系统需求
  2. 抽取类,明确类的含义和职责,确定类的属性和操作
  3. 确定类之间的关系。关联、泛化、聚合、组合、依赖
  4. 调整和细化及其关系解决重复和冲突
  5. 绘制类图

2.9 对象图和包图

2.9.1 对象图

表示在莫一时刻类的对象静态结构和行为。
对象图=对象+链

  • 对象
    • 是真实世界中的一个物理上的或概念上具有自己状态和行为的实体
    • 表示方法:①在矩形框中放置对象的名字;②名字下加下划线
  • 链:对象图用链将对象捆绑在一起,链用实线表示

2.9.2 包图

  • 包:是UML用来组织模型元素的模型元素
  • 包往往被视作文件夹,类似于一个存放模型元素的箱子或容器,可以在其中存储多个模型元素
  • 模型元素可以是:类、接口、构件、用例、节点、活动、状态、包和图

2.10 顺序图和通信图

2.10.1 交互图

交互图:

  • 为基于交互的对象行为建模,是UML用于描述对象之间信息的交互过程的方法,是描述对象间协作关系的模型
  • 交互图指出对象如何通过协作来完成用例中捕获的业务流程
  • 交互图中的对象可能是一个子系统,一个构件或一个类的对象
  • UML有两种表达形式的交互图:①顺序图(按照时间顺序对消息的交互过程建模);②通信图(按对象关联对消息的交互过程建模,则使用通信图,通信图强调的是消息交互传递中对象之间的关联);

2.10.2 顺序图(强调消息调用的顺序)

顺序图:
由参与者(每个参与者及系统运行中的对象都用一条垂直的生命线表示)、生命线(表示了一个对象在交互过程中的生命期限、存在时间长度)、活动条和消息组成

  • 生命线
    UML用矩阵框和虚线表示生命线,矩形框中添加生命线的名称,虚线展示了参与交互的对象的生命长度。在这里插入图片描述
    生命线的描述标签可以使用下面的语法:
    对象名:类名
    objec_name:Class_name
  • 活动条
    活动条也称为执行发生,它用来表示对象的某个行为所处的执行状态,活动条用小矩形条表示
  • 消息
需要掌握的概念 详细
什么是消息 在面向对象的分析和设计中,对象的行为也称为消息,通常当一个对象调用另一个对象中的行为时,即完成了一次消息传递,UML用生命线间带有实心箭头的实线表示消息,每条消息从发送对象指向接收对象
消息的命名 属性=信号或消息名(参数:参数类型):返回值在这里插入图片描述
消息的分类 ①简单消息:只表示控制如何从一个对象发送给另一个对象,并不包含控制的细节;②同步消息:意味着阻塞和等待,如果对象A向对象B发送一个消息,对象A发出消息后必须等待消息返回,只有当对象B处理消息的操作执行完毕后,对象A才可以继续执行自己的操作;③异步消息:非阻塞,对象A向B发送一个消息,对象A不必等待对象B执行完这个消息,就可以继续执行自己的下一个行为(UML用实体箭头表示同步消息,用开放式箭头表示异步消息:在这里插入图片描述
对象创建消息 创建对象的消息,通过构造型<<create>>来表示
对象销毁消息 一个对象可以通过对象销毁消息,销毁另一个对象,也可以销毁它本身,通过构造型<<destroy>>作为消息的标签来表达对象销毁消息,同时在对象生命线的结束部分画一个"x"来表示该对象被销毁
自我调用消息 表示从一个对象发送到它本身,可以通过活动条的嵌套来表示自我调用消息
控制信息 ①有两种情况可以应用控制信息表达:条件:仅当条件为真的时候消息才被发送;在这里插入图片描述②迭代:如上图为了接收多次对象消息被发送多次在这里插入图片描述
消息的返回值 在这里插入图片描述
  • 交互框:指图中的一块区域或片段
    • alt:选择片段,在警戒中表达互斥的条件逻辑
    • Loop:循环片段
    • opt:可选片段
    • par:并行片段,表达并行执行

2.10.3 通信图(强调交互参与者间的链接)

通信图基于交互作用的对象行为建模(强调对象之间在交互作用时的关联):交互作用是的对象结构;

通信图的表达方式为:交互的参与者+通信链+消息

  1. 交互的参与者:用一个对象符号表示,在矩形框中放置交互的参与者
  2. 链接:链接是两个对象间的连接路径,表示两个对象间的导航和可视性(用直线表示)
  3. 消息
消息的种类 内容
自我委派消息 从一个对象又发送到它自身
控制消息 表示当控制条件为真时消息才发送
嵌套消息 当一个消息导致了另一个消息被发送
循环 用“*”表示,循环自居放在顺序号后,按照给定的循环子句进行重复
并发消息 几个消息被同时发送

2.11 状态图和活动图

2.11.1 状态图

  1. 基于状态的对象行为建模
  2. 状态图=状态+迁移(用具有开放式箭头的实线表示)
  3. 状态
状态的种类 内容
简单状态 没有子状态,只带有一组转换和可能的入口与出口动作
复合状态 一个状态由一组或多组子状态图组成
初始状态 状态图状态的起点
终止状态 表明完成了状态图中的所有活动
结合状态 将两个转换连接成一次就可以完成的转换
历史状态 保存组成状态中先前被激活的状态

状态内部的活动:
1)entry:当进入一个状态的时候被自动触发
2)do:do活动在进入活动之后执行,并且一直运行到它本身完成
3)exit:所有的其他活动都完成后被触发

  1. 迁移:指从一个状态到另一个状态的瞬间变化过程
引发迁移的事件 具体
信号事件 指在实时系统运行中,对象接受到一个系统外的信号
变化事件 指对象的内部或外部条件发生变化而引起对象状态发生变化的事件
调用事件 是指系统之外的其他系统通过接口和某种协议,直接执行该系统内部的对象行为,从而引发对象状态的迁移
时间事件 指对象的状态在绝对时间上或某个时间段内自动发生迁移

迁移的文字标签

  • 触发:trigger
  • 警戒条件:guard
  • 行为:behavior
    在这里插入图片描述

2.11.2 活动图

更关注的是:这些活动之间的逻辑而不关注这些活动到底属于哪些类

描述过程逻辑、业务流程和工作流程。本质是从一个活动到另一个活动或动作的控制流(流程图)。

活动图的四种元素组成——

  • ①活动:由一个或多个动作组成的行为
  • ②动作:是活动中的一个基本执行单位
  • ③活动边:表现动作与动作之间、动作与数据之间、数据与动作之间的关联和方向
  • ④活动节点:除了动作外的其他活动信息
    • 1)参数节点:是出现在活动框上的长方形,表示与其相连的动作的输入或输出数据
    • 2)对象节点:表示活动中移动的数据
    • 3)控制节点:用于表示活动中的控制判断、同步运输、路径分叉、路径合并
      • 起始节点:活动的开始节点
      • 判断节点:通过布尔值的选择给出不同的输出流的控制节点
      • 汇合节点:具有多个输入边和一个输出边,两个输入边并不需要并行到达汇合节点
      • 分叉节点:一个动作在该点同时并行产生多个并发活动边
      • 结合节点:是指多个并发活动边在该点各自产生返回值,当所有的返回值均正确产生后,传递给该结点唯一输出边
      • 终点节点:①用于终止活动图的一个路径,用“圆形+x”表示;②用于结束整个活动,用加圈的实心圆表示
        在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/KQwangxi/article/details/114891509
今日推荐