UML概念模型主要包括基本构造块
、运用于构造块的通用机制
和用于组织UML视图的架构
构造块
构造块是UML的基本建模元素,是UML中用于表达的语言元素,是来自现实世界中概念的抽象描述方法。包括事物、关系和图。事物是对模型中关键元素的抽象体现;关系是事物和事物之间的联系方式;图是相关事物及其关系的聚合表现。
事物
事物包含构建事物,行为事物,分组事物,注释事物
-
构建事物:UML模型的静态部分,描述概念或者物理元素;包含以下
- 类class:具有相同属性、相同操作、相同关系、相同语义的一组对象描述
- 接口interface:描述元素的外部可见行为,即服务集合的定义说明
- 协作collaboration:多个元素共同工作、相互配合达到某个目的的交互动作
- 用例use case:一组动作序列的集合,动作序列特定的参与者触发或执行,结果可以反馈给参与者或者作为参数
- 组件component:系统中封装好的模块化部件(类似java中jar包),仅将外部接口暴露出来,内部实现隐藏
- 节点node:运行时存在的物理元素
-
行为事物:UML模型图的动态部分,描述静态元素之间产生的空间和时间的行为动作,类似于句子中的动词
- 交互:实现某功能的一组构建事物(元素)之间消息的集合,涉及消息,动作序列,连接
- 状态机:描述事物或交互在生命周期内相应事件所经历的状态序列
- 活动:描述一个操作执行时的过程信息
-
分组事物: UML模型图的组织部分,描述事物的组织结构包:把元素组织成组的机制
-
注释事物: UML模型的解释部分,用来对模型中的元素进行说明,解释
关系
关系是事物之间具体化的语义连接,在UML中有四种基本关系
- 关联 association
- 描述不同类元的实例之间的连接。一种对象和另一种对象存在联系,即“从一个对象可以访问到另一个对象”,例如:人和身份证
- 依赖dependency
- 描述一对模型元素之间的内在联系(语义关系[1])。一个元素的某些特性随着另一个独立的元素的特性变化而改变,例如:人和自行车
- 泛化generalization
- 类似于面向对象方法中的继承关系,即一个具体类对另一个具体类的继承,例如:宝马类泛化了小汽车类
- 实现realization
- 一种类与接口的关系,表示类是接口所有特征和行为的实现
图
根据UML图的基本功能和作用,包含以下
结构图:捕获事物与事物的之间的静态关系,用来描述系统的静态结构模型
行为图:捕获事物交互过程如何产生系统行为,用来描述系统的动态行为模型
UML2规范包含了:类图、对象图、组合结构图、组件图、部署图、包图、外廓图、用例图、活动图、状态机图、顺序图、通信图、时序图、交互概览图(后期笔记会进行整理)
UML通用机制
通用机制描述了面向对象建模目的4种策略,并在UML不同的语境下被反复使用,使得UML更简单并易于使用
-
规格说明specifications
- 构造块的语法和语义的描述
-
修饰adornments
- 对规格说明的文字或图形的表示
-
通用划分common divisions
- 类型-实例:通用描述与某个特定的元素的对应,例如:类和对象
- 接口-实现:接口和实现它的类或组件、用例与实现它的协作、操作与实现它的方法等
-
UML扩展机制extensibility mechanisms
-
本身的描述能力可能不够,需要扩充某些细节上描述。在不改变整体语言风格的基础上定义一些通用性的扩展
-
构造型
构造型扩展了UML的词汇,可以用来创造新的构造块,这个新构造块是从现有的构造块派生的,但是针对特定的问题。 在图形上,把构造型表示成用双尖括号(<<>>)括起来的名字,放在其他元素名之上。
-
标记值
标记值扩展了构造型的特性,可以用来创建构造型规约的新信息。
如上图所示,authored是基于类扩展而来的构造型,用来表述事件队列;针对authored构造型有一个注释,注释中的version和author并不是UML的基本概念,而是新扩展的标记值,用来说明构造型的特殊信息。
-
约束
约束是对UML规则的扩展,或者是对已有规则的修改,使用{}中的文本串表示。
-
“4+1”架构
采用用例驱动,在软件生命周期的各个阶段对软件进行建模,从不同视角对系统进行解读,从而形成统一软件过程架构描述
-
组成:逻辑视图(类图)、开发视图(组件图)、进程视图(顺序图、协作图、状态机图)、物理进程(部署图)和场景视图(用例图)
-
逻辑视图:用于描述系统的功能需求,即系统给用户提供哪些服务;以及描述系统软件功能拆解后的组件关系、组件约束和边界,反映系统整体组成与系统如何构建的过程。在UML中由类图来表示
-
开发视图:开发视图关注软件开发环境下实际模块的组织,反映系统开发实施过程。
一个设计良好的开发视图,应该能够满足以下要求:
通过逻辑架构元素,能够找到它所有代码和所有的二进制交付件 每一个代码源文件,都能够找到它所属的逻辑架构元素 每一个二进制交付件,都能够找到它集成了哪些逻辑架构元素
-
进程视图:用于描述系统软件组件之间的通信时序,数据的输入输出。在UML中通常由时序图和流程图表示
-
物理视图:开发出的软件系统,最终是要运行在物理或软件环境上。物理环境可能是服务器、PC机、移动终端等物理设备;软件环境可以是虚拟机、容器、进程或线程。部署视图就是对这个部署信息进行描述。在UML中通常由部署图表示
-
场景视图:场景视图,即4+1中的1,4+1中的4个视图都是围绕着场景视图为核心的。它用于描述系统的参与者与功能用例间的关系,反映系统的最终需求和交互设计
-
软件架构设计流程:场景视图(架构师与客户)=〉逻辑视图(架构师与开发人员)=〉进程视图、开发视图、物理视图(开发小组)
语义关系,指语言单位之间在意义上的关系,主要表现为纵的方向上的聚合关系和横的方向上的组合关系,以及逻辑关系。语义的聚合关系指根据语言单位之间在意义上的对比而确立的可替代的垂直关系,包括同义关系、反义关系、类义关系、异义关系等;语义的组合关系指语言单位在语言体系中和语流中相互搭配构成的关系,包括施受关系、领属关系、限定关系、并列关系、支配关系、判断关系、说明补充关系等;语义的聚合关系和组合关系都是建立在逻辑关系的基础上的。语义的逻辑关系还有预设关系、蕴涵关系等。 ↩︎