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

上一篇:UML(1.用UML对Java建模导论)
下一篇:UML(第三章:用例建模+ea实战)

前言

本文是结合《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 包

在这里插入图片描述

包是一个用来将模型单元分组的通用机制,包图是对各个包及包之间关系的描述,展现系统中模块与模块之间的依赖关系。包图可以由任意一种UML图组成,包可以含有类、组件、接口、用例等物件或其它的包。

包图建模步骤:

  1. 分析系统的模型元素,把概念、语义和逻辑上相近的元素包含在同一个包中
  2. 对于每个包,分析包内每个元素的可访问属性,并标识出该元素的可见性
  3. 确定包与包中元素之间的泛化、细化、依赖关系,相应处理重载、多重性及导入等关系
  4. 分析包结构,对包进行refine, merge等操作
    在这里插入图片描述

包图中的元素:

  1. 包名的位置:UML中使用文件夹的图标来表示包,包名往往放在第一栏。(也可以放在第二栏的最上面位置,但是ea不支持)

在这里插入图片描述

  1. 包名的格式:每个包都有一个字符串格式的包名唯一标识该包。
  2. 可见性:①+:public对所有包可见;②-:private对本包之外不可见;③#:对本包的子包可见
  3. 传递性:包与包之间的关系和可见性具有传递性。
  4. 包图类的关系(注意箭头的表示形式):
关系示例
泛化:继承关系,跟类之间的泛化关系相似,表明包是一个家族的在这里插入图片描述
细化:一个包中有另一个包中所有的元素,则第二个包是第一个包的细化在这里插入图片描述
依赖:一个包中引用到了另一个包,箭头从输入方包指向输出方包下列均属于依赖关系,将展示详细区别
《use》:一种默认的包依赖关系,表示客户包中的元素以某这种方式使用着提供者包中的公共元素在这里插入图片描述
《import》:最普遍的包依赖关系,表示提供者包中的公共元素被添加为客户包中的公共元素在这里插入图片描述
《access》:表示提供者包中的公共元素被添加为客户包中的私有元素在这里插入图片描述
《merge》:表示提供者包中的元素被扩展为客户包中的元素在这里插入图片描述
《trace》:表示一个包的历史版本发展为另一个包的进化版本在这里插入图片描述
《apply》:表示配置文件已应用在这里插入图片描述
《nesting》:表示包含或嵌套在这里插入图片描述
  1. 包图的分层:根据职责分层,目的是为了解耦,双向箭头表示相互依赖
    在这里插入图片描述

  2. 嵌套:包里面可以有包,不过最好避免多层嵌套,≤3层比较好。
    在这里插入图片描述

  3. 书店在线订购系统示例
    在这里插入图片描述

  4. 包被撤销,则其中的元素也会被撤销。

合理利用包图就可以与有效处理用例过多的情况:
在这里插入图片描述

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”表示;②用于结束整个活动,用加圈的实心圆表示
        在这里插入图片描述
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值