UML面向对象分析与设计——可视化建模基础
本文最后更新于:2022年5月14日 晚上
摘要:
可视化建模基础
模型
- 模型是现实世界的简化
建模的目的
建模的根本目的是为了更好地理解待开发的系统
- 模型有助于按照所需的样式可视化(Visulize)目标系统
- 模型能够描述(Specifu)系统的结构和行为
- 模型提供构造构造(Construct)系统的模版
- 模型可以文档化(Document)设计决策
建模的基本原则
- 选择合适的模型
- 模型具有不同的精确程度
- 好的模型是与现实相联系的:简化不能掩盖掉任何重要的细节
- 单一的模型是不够的:需要从多个视角创建不同的模型
统一建模语言(UML)
UML——Unified Modeling Language
UML是一种标准的图形化建模语言,是面向对象分析与设计的标准表示
统一建模语言 is a language for
- visualizing
- Specifying
- Constructing
- Documenting
the artifacts of a software-intensive system
UML2组成结构
UML语法结构
UML的抽象语法使用UML元模型来定义
- 这个元模型本身也是用UML来定义(准确来说是一个受限的UML子集,这个子集符合OMG的MOF规范)
- 在UML规范中,主要采用UML类图来描述各元素的抽象语法,菜用约束机制和自然语言(文本)来描述模型语义
UML语义结构
UML自身的语义与被建模系统的UML模型上所声明的标准含义有关,这有时被称为UML运行时语义
UML模型划分为两类语义域
- 结构语义:定义了在静默域中关于个体的UML结构化模型元素的含义,也成为静态语义
- 行为语义:定义了在建模域中关于个体如何随着时间变化而做出不同行为的UML行为模型元素,也称为动态语义。
UML2概念模型
构造块(building blocks)
- 事物(things):结构、行为、分组、注释
- 关系(relationships):依赖、关联、泛化、实现
- 图(diagram):
- 静态(7种):类图、对象图、构件图、包图、组合结构图、外廓图
- 动态(7种):顺序图、通信图、时间图、交互纵览图、活动图、状态机图、用例图
事物(things)
- 结构(structural)事物:UML模型中的名次
- 模型的静态部分
- 用于描述概念元素或物理元素
- 常见的结构事物
- 类、接口
- 用例、协作
- 构件、工件、节点
- 行为(behavioral)事物:UML模型中的动词,表示跨越时间和空间的行为
- 交互、状态机、活动
- 分组(grouping)事物:用于将模型元素组织在一起
- 包(、框架、模型、子系统……)
- 注释(annotational)事物:用来描述、说明或标注模型中的任何元素
关系
图
通用机制
规格说明(Specifications)
- UML模型至少具有两种维度
- 图形维度:使用图和图标可视化模型
- 文本维度:各种建模元素的规格说明
- 规格说明
- 模型元素的特征和语义的文本描述
- 形成了承载模型的语义背板(semantic backplane),赋予模型意义,各种图仅仅是该背板的视图或者可视化投影
- death by diagram(由于图形而死亡)
修饰(Adornments)
UML表示法中的每一个元素都有一个基本符号,可以把各种修饰细节添加到这些符号上
- 只有在修饰增强了图形的整体清晰性和可读性或者突出模型的某些特征时,才应该表示那些修饰
通用划分(common Divisions)
- 类元(classifier)和实例的划分
- 类元表示一种抽象
- 实例则是这种抽象的一个具体表现
- 例:类/对象、用例/场景、构件/构件实例
- 接口和实现的分离
- 接口声明行为的契约(做什么)
- 接口表示对该契约的具体实现细节(如何做)
- 例:接口/子系统、用例/用例实现、操作/方法
- 类型和角色分离(UML2新增)
- 任何作为其他实体结构的一部分实体(如属性)都具有两个方面的特性:
- 从固有类型派生出来的含义
- 在语境中的角色派生出来的含义
- 类型声明了实体的种类(如对象、属性、参数)
- 角色描述了实体在语境(如类、构件、协作、组合结构)中的含义
- 任何作为其他实体结构的一部分实体(如属性)都具有两个方面的特性:
扩展机制(Extensibility Mechanisms)
- 构造型(stereotypes)
- 基于已有的建模元素引入新的建模元素
- 标记值(tagged value)
- 扩展UML构造型的特性,可以用来创建构造型的详述信息
- 约束(constraint)
- 扩展UML构造块的语义,可以用来增加新的规则或修改现有的规则
- 外廓(profile)
- 提供了一组预定义的构造型、标记值、约束和基类,以用于特定领域的建模
构造型的几种表现形式
UML面向对象分析与设计——可视化建模基础
https://shgang97.github.io/posts/uml-9a1bca1b5da9/