UML 的定义
作为一种建模语言,UML 的定义包括 UML 语义和 UML 表示法两个部分。
• UML 语义:描述基于 UML 的精确元模型定义。
• UML 表示法:定义 UML 符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是 UML 元模型的实例。
1.视图
UML是用模型来描述系统的结构或静态特征以及行为或动态特征的,它从不同的视角为系统的架构建模形成系统的不同视图(view)。
在UML中主要包括的视图为静态视图、用例视图、交互视图、实现视图、状态机视图、活动视图、部署视图和模型管理视图。
1.1静态视图
是对在应用领域中的各种概念以及与系统实现相关的各种内部概念进行的建模。
由于这种视图不描述与时间有关的系统行为所以我们称之为是静态的,描述与时间相关的系统行为我们在其他视图中进行描述。静态视图主要是由类与类之间的关系构成。
这些关系包括:关联、泛化和依赖关系,我们又把依赖关系具体可以再分为使用和实现关系。
1.2用例视图
描述系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。一个用例是系统的一个功能单元,是系统参与者与系统之间进行的一次交互作用。
1.3交互视图
描述执行系统功能的各个角色之间相互传递消息的顺序关系,是描绘系统中各种角色或功能交互的模型。交互视图显示了跨越多个对象的系统控制流程。
我们通过不同对象间的相互作用来描述系统的行为,是通过两种方式进行的,一种是以独立的对象为中心进行描述,另外一种方式是以相互作用的一组对象为中心进行描述。
交互视图可运使用两种图的形式来表示:序列图和协作图。
1.4状态机视图
是通过对象的各种状态来建立模型来描述对象随时间变化的动态行为。也是通过不同对象间的相互作用来描述系统的行为的,不同的它是以独立的对象为中心进行描述。
状态机视图中,每一个对象都拥有自己的状态,这些状态之间的变化是通过事件进行触发的。
对象被看成为通过事件进行触发并做出相应的动作来与外界的其他对象进行通信的独立实体。事件表达了对象可以被使用操作,同时反映了对象状态的变化。
1.5活动视图
是一种特殊形式的状态机视图,是状态机的一个变体,用来描述执行算法的工作流程中涉及的活动。
通常活动视图用于对计算流程和工作流程建模。活动视图中的状态表示计算过程中所处的各种状态。
活动视图是在假定整个计算处理的过程中没有外部事件引起的中断的条件下进行描述的,否则普通的状态机更加适合于描述这种情况。
1.6物理视图
是对应用自身的实现结构建模,例如系统的构件组织情况以及运行节点的配置等等。
物理视图提供了将系统中的类映射成物理构件和节点的机制。系统模型的大部分内容反映了系统的逻辑和设计方面的信息,并且独立于系统的最终实现单元。
1.7模型管理视图
模型管理视图是对模型自身组织进行的建模,是由自身的一系列模型元素(如类、状态机和用例)构成的包所组成的模型。模型是从某一观点以一定的精确程度对系统所进行的完整描述。
从不同的视角出发,对同一系统可能会建立多个模型,例如有系统分析模型和系统设计模型等等。模型是一种特殊的包。一个包 (package) 还可以包含其他的包。
整个系统的静态模型实际上可看成是系统最大的包,它直接或间接包含了模型中的所有元素内容。
2.五类图定义。
2.1. 用例图:
从用户角度描述系统功能,并指出各功能的操作者。
2.2. 静态图:包括类图和对象图
类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系,如关联、依赖、聚合等,也包括类的属性和操作,类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
2.3. 行为图:
描述系统的动态模型和组成对象间的交互关系, 包括状态图和活动图。状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件,状态图是对类图的补充,活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并进行活动。
2.4. 交互图:
描述对象间的交互关系,包括 时序图和协作图。时序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用时序图;如果强调上下级关系,则选择协作图。
2.5. 实现图:包括组件图和部署图。
组件图描述代码部件的物理结构及各部件之间的依赖关系,组件图有助于分析和理解部件之间的相互影响程度;部署图定义系统中软硬件的物理体系结构。
采用 UML 来设计系统时,第一步是描述需求;第二步根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图、对象图、组件图和部署图等 5 种图形,是标准建模语言 UML 的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、时序图和协作图等 4 种图形,是标准建模语言 UML 的动态建模机制。
3. UML 九种图的作用简介
3.1. 用例图
描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。
3.2. 类图
类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。
3.3. 对象图
与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系。
3.4. 活动图
描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
3.5. 状态图
描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充。
3. 6. 序列图(顺序图)
序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
3.7. 协作图
和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
3.8. 构件图 (组件图)
描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
3.9. 部署图 (配置图)
是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。
4. 几种图的区别
4.1. 这九种模型图各有侧重,
1:用例图侧重描述用户需求,
2:类图侧重描述系统具体实现;
4.2. 描述的方面都不相同,
1:类图描述的是系统的结构,
2:序列图描述的是系统的行为;
4.3. 抽象的层次也不同,
1:构件图描述系统的模块结构,抽象层次较高,
2:类图是描述具体模块的结构,抽象层次一般,
3:对象图描述了具体的模块实现,抽象层次较低。
4.4. 补充说明:
在有的文献书籍中,将这九种模型图分为三大类:结构分类、动态行为和模型管理:
1:结构分类包括用例图、类图、对象图、构件图和部署图,
2:动态行为包括状态图、活动图、顺序图和协作图,
3:模型管理则包含类图。