UML的介绍
UML (Unified Modeling Language)是一种通用的可视化的建模语言,可以用来描述、可视化、构造和文档化软件密集型系统的各种工件。它不是一种程序设计语言。
UML 是独立于过程的,它可以在软件生命周期的各个阶段运用,不过主要应用于软件开发的设计与分析阶段。
模型
什么是模型呢?模型就是对现实的简化。比如:我们在设计一款新汽车时首先需要设计该汽车的模型,只有模型设计好之后才会开始汽车的生产开发。
建模的作用
1.模型有助于按照实际情况或按照所需要的样式对系统进行可视化。
2.支持独立于编程语言和开发过程的规范。
3.模型给出了指导构造系统的模板。
4.模型对做出的决策进行文档化。
UML的组成
UML由构造块,规则和公共机制这三部分组成。
1.构造块:UML组成中构造块是对模型中最具有代表性的成分的抽象
2.规则:UML有一套规则,这些规则描述了一个结构良好的模型看起来应该像什么
3.公共机制: UML中有4种贯穿整个语言且一致应用的公共机制,因此使得UML变得较为简单。
构造块
构造块由事物,关系,模型图三个部分组成。
事物:UML模型中最基本的组成元素,可以把事物理解成汉语中的单词和词语
关系:关系是把事物紧密联系在一起,可以把关系理解成汉语中的语法
模型图:模型图是事物和关系的可视化展示,可以把模型图理解成汉语中的文章。
构造块之事物
事物分为结构事物,行为事物,分组事物,注解事物四种。
结构事物:指的是模型中的静态部分,用于呈现概念或者实体的表现元素。
行为事物:指模型里随着时空不断变化的部分。
分组事物:可以把分组事物看成一个"盒子",模型可以在其中被分解。
注解事物:UML模型的解释部分
下面就分别对这几种事物进行介绍
结构事物
结构事物下有类,用例,接口,协作,活动类,组件,节点
1.类:类是指具有相同属性、方法、关系和语义的对象的集合;
2.用例:定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;
3.接口:定义行为规范,描述了类或组件对外可见的动作;
4.协作:合作完成某个特定任务的一组类及其关联的集合
5.活动类:活动类的对象有一个或多个进程或线程。活动类和类很相象
6/组件:组件是物理的、可替换的部分,包含接口的集合
7.节点:系统在运行时存在的物理元素,代表一个可计算的资源
行为事物
行为事物分为交互,状态机两种
交互:由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作;交互就是指时序图中的消息。
状态机:状态机由一系列对象的状态组成。
分组事物
分组事物只有一个就是包
包:结构事物、动作事物甚至分组事物都有可能放在一个包中
构造块之四种基本关系
在UML中的关系有四种基本关系,分别是
1.泛化关系:就是继承关系,子类和父类的关系,比如鸟与动物的关系就是泛化关系,实线的三角箭头从子类指向父类。
2.实现关系:实现关系是实现类与接口之间的关系,比如大雁实现了飞翔的功能。他是虚线的三角箭头从实现类指向接口。如下图所示:
3.关联关系:一组对象之间连接的结构关系,如下图老师,学生与课程之间的关系。
老师和学生之间是双向关联关系,老师有多个学生,学生也可能有多名老师。但是学生与某个课程间的关系是单向关联关系,一个学生可能要上多门课程,但是课程是个抽象的东西它不拥有学生。
4.依赖关系:一个类的实现必须依赖于其他类的协助,比如人依赖空气。
这四种关系的强弱顺序是:泛化=实现>关联>依赖
构造块之模型图
UML模型图图表共有十三种,本文将对其中比较常用的图表进行详细介绍。首先让我们来看看这些图表的介绍以及作用。
UML建模的图表按照种类可以分为结构型图表和行为型图表。
结构型图表:从不同的抽象和实现程度上描述了一个系统和系统构建的静态结构,并且描述他们是如何直接关联到一起的。
该类型的图表包括:
类图(Class Diagram),
对象图(Object Diagram),
包图(Package Diagram),
组件图(Component Diagram),
部署图(Deployment Diagram),
复合结构图(Composite Structure)
行为型图表:展示系统中的对象的动态行为,它描述了一个系统中的对象如何随时间变化而变化。
该类型的图表包括:
用例图(Use Case Diagram),
活动图(Activity Diagrams),
状态图(State Machine Diagram),
时序图(Sequence Diagram),
通信图(Communication Diagram)
交互概览图(Interaction Overview Diagram):
- 定时图(Timing Diagram):
规则
命名:为事物、关系和图起名。
范围:给一个名称以特定含义的语境
可见性:怎样让其他人使用或者看见名称
完整性:事物如何正确、一致地相互联系
执行:运行或模拟动态模型的含义是什么
公共机制
公共机制分为:规则说明,修饰,通用划分,扩展机制
规则说明
规格说明提供了对构造块的语法和语义的文字描述
规格说明用来描述系统的细节
UML的规格说明提供了一个语义底版,它包含了一个系统的各个模型的所有部分,并且各部分相互联系,并保持一致。
总而言之,规格说明就是UML图的产品说明书
修饰
修饰:UML表示法中的每个元素都有一个基本符号,可以把各种修饰细节加到这个符号上。
通用划分
类/对象二分法(class/object dichotomy): 类是一个抽象,对象是这个抽象的一个具体表现形式,UML的每一个构造块几乎都存在像类/对象这样的二分法。例如:用例和用例实例(场景),构件和构件实例,节点和节点实例等。
接口/实现二分法(interface/realization dichotomy)接口声明了一个契约,而实现则表示了对该契约的具体实施,它负责如实地实现接口的完整语义。几乎每一个UML的构造块都有像接口/实现这样的二分法。例如:用例和实现它们的协作,操作和实现他们的方法。如下图所示:
扩展机制
对UML图示符号的扩展。包含:构造型Stereotype-标注值Taggedvalue-约束Constraint。如下图所示:
UML的应用范围
如上图展示了UML在软件生命周期中的应用范围。
在需求分析阶段可以通过用例图来描述系统的使用者,以及系统有哪些功能
在分析与设计阶段经常需要使用到类图、包图、组件图几种静态视图,以及所有动态视图。静态视图用来描述系统的设计类,动态视图用来确定任一时刻某一对象或者实体需要执行的操作,或者应该处于的状态。
在开发阶段根据UML图表来编写代码,
在测试阶段根据UML图表来设计测试用例,使用活动图来辅助测试
在部署阶段根据部署图来部署项目。