UML统一建模语言简单理解
Posted 耿股的DaShen梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML统一建模语言简单理解相关的知识,希望对你有一定的参考价值。
耿股在软件开发中经常看到UML这个词,以前根本不知道说的是什么,通过一段时间的理解后耿股分享一个自己对UML的简单理解。
1、UML概述
2、UML的构成
3、一个UML的例子
1、 UML概述
UML是一个通用的可视化建模语言,是用于对软件进行描述、可视化处理、构造和建立软件系统支配的文档。
制品:指软件开发过程中产生的各种产物,如模型、源代码、测试用例等。
UML适用于各种软件开发方法、软件生命周期的各阶段、各种应用领域及各种开发工具。
1.1 什么是UML
作为一种语言,UML定义了一系列的图形符号来描述软件系统。
图形符号有严格的语义和清晰的语法。
图形符号及其背后的语义和语法组成了一个标准。
UML描述了一个系统的静态结构和动态行为。
通过静态结构定义系统中对象的属性和操作以及这些对象之间的相互关系。
动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制。
UML标准没有定义一个标准的开发过程。它支持面向对象开发过程而设计的。
UML不是一门程序设计语言,但可以利用代码生成器工具将UML模型转换为多种程序设计语言代码。
UML特点:(1)统一的标准;(2)面向对象;(3)概念明确,建模表示法简洁,图形结构清晰,可视化、表达能力强,容易掌握和使用;(4)独立于过程
1.2 UML中的视图
图1 UML的视图
(1)用例视图:1、用来支持软件系统的需求分析,定义边界,关注功能;2、从系统参与者的角度描述系统的外部行为和静态功能3、该图使用者是客户、开发人员及测试人员;4、一个用例就是系统的一个用法的通用描述;5、用例图是核心;6、通过用例图可以检验和最终校验系统。
(2)逻辑视图:1、定义系统的实现逻辑;2、它描述了在对软件系统进行设计时产生的设计概念;3、它的使用者主要是开发人员和设计者;4、描述系统的静态结构,也描述系统内部的动态协作关系;5、原则上与软件系统的实现平台无关;6、它的图形模型包括:类图、对象图、状态图、顺序图、协作图及活动图等。
(3)组件视图:1、描述系统的实现模块及它们之间的依赖关系;2、它的使用者主要是开发人员;3、组件是不同类型的代码模块,通过代码模块的结构和依赖关系来表示;4、组件视图中也可以添加组件的其他附加的信息。
(4)实现视图:1、描述的是组成一个软件系统的各个物理部件,这些部件已各种方式组合起来,构成一个可实际运行的系统。2、实现视图的使用者主要是开发人员和系统集成人员。3、该视图有动态图(状态图、协作图以及活动图)和实现图(组件图和部署图)组成。
(5)部署视图:1、描述软件系统在计算机硬件系统和网络上的安装、分发和分布情况;2、它的使用者是开发人员、系统集成人员和测试人员;3、该视图由部署图表示。
2、 UML的构成
图2 UML构成
2.1 UML的体系结构
1、基本构造块;2、规则;3、公用机制。详细描述见图2。
2.2 UML的模型元素
UML把可以在图中使用的概念统称为模型元素。
图形符号隐含表示了模型元素的语法和语义。
模型元素描述了系统结构(静态特征)和行为(动态特征)。
UML定义了两类模型元素:一类模型元素用于表示模型中的某个概念(图3);另一类模型元素用户表示模型元素之间相互连接关系(图4)。
图3 模型元素符号示例
图4 关系的图示符号示例
2.3 UML的模型结构
包含4个抽象层次,即:元元模型、元模型、模型层和用户模型。同时下一层是上一层的基础,上一层是下一层的实例。
图5 UML模型结构
图6 元元模型示例
2.4 UML的模型图
表1 UML视图和图
主要的域 |
视图 |
图 |
主要的概念 |
结构 |
静态视图 |
类图、对象图 |
类、关联、泛化、依赖关系、实现、接口 |
用例视图 |
用例图 |
用例、参与者、关联、扩展、包括、用例泛化 |
|
实现视图 |
组件图 |
组件、接口、依赖关系、实现 |
|
部署视图 |
部署图 |
节点、组件、依赖关系、位置 |
|
动态 |
状态视图 |
状态图 |
状态、事件、转换、动作 |
活动视图 |
活动图 |
状态、活动、完成转换、分叉、结合 |
|
交互视图 |
顺序图 |
交互、对象、消息、激活 |
|
协作图 |
协作、交互、协作角色、消息 |
||
模型管理 |
模型管理视图 |
类图 |
包、子系统、模型 |
可扩展性 |
所有 |
所有 |
约束、构造型、标记值 |
2.5 UML建模规则
一个完备的UML模型必须对以下内容给出完整的解释。
(1)名字:任何一个UML成员都必须包含一个名字;
(2)作用域:UML成员所定义的内容起作用的上下文环境;
(3)可见性:UML成员被其他成员引用的方式;
(4)完整性:UML成员之间相互连接的合法性和一致性;
(5)运行属性:UML成员在运行时的特性。
UML模型在不同的视图中出现时,出于不同的交流侧重点,其表达式可以是不完备的。
在系统开发过程中,模型可以:1、被省略,即模型本身是完备的,但在图上某些属性被隐藏起来,以简化表达;2、不完全,即在设计过程中某些元素可以暂时不存在;2、不一致,即在设计过程中暂时不保证设计的完整性。
2.6 UML的公用机制
在UML模型图上使用UML成员进行建模时,需要对UML成员进行描述。UML使用公用机制为图附加一些信息,这些信息通常无法用基本的模型元素表示。UML对不同的UML成员使用共同的描述方式,这些方式称之为公用机制。包含(1)规范说明:模型的完整的或完备的信息被保存在模型的规范说明中;(2)修饰:添加修饰,可为模型元素附加一定的语义;(3)公共划分:许多事物可以划分为抽象的描述和具体的实例这两种存在形式;(4)扩展机制:为UML提供了扩充其表达内容的范围的能力。包括构造型、标记值及约束。
构造型是对类的进一步的分类;
标记值用来扩充UML成员的规范说明。
约束用来扩充UML成员的语义
3、一个UML的例子
3.1 用例图
用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。
图形表示法:1、椭圆表示用例,用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用;2、线条人/稻草人表示参与者,是系统的各种用户。
用例图实例:
图7 ATM系统的用例图实例
3.2 活动图
活动图描述了活动发生的顺序。
图形表示法:1、圆角矩形表示方框中的活动;2矩形表示工作流影响的对象;3实心圆表示工作流的开始状态;4双层圆表示工作流的结束状态;5菱形表示决策点;垂直泳道表示工作流中的不同参与者及相关活动。
活动图实例:
图8 开户的活动图实例
3.3 顺序图
顺序图表示对象之间传送消息的时间顺序。
图形表示法:1、垂直线,即生命线,表示在整个交互过程中一个对象的生命周期;2、生命线之间的箭头连线表示消息;3、箭头连线上的文字表示相关的事件。
顺序图实例:
图9 张三取款的顺序图实例
3.4 协作图
协作图对在一次交互中有意义的对象和对象间的链建模。
图形表示法:1、直线表示对象之间直接通信关系;2、附在直线上箭头表示消息传送方向;3、箭头旁文字表示消息及消息编号。
协作图实例:
图10 张三取款的协作图实例
3.5 类图
以类为中心组织起来的图形,用以表示软件系统中各类之间的相互关系。
图形表示法:1、矩形框表示类图中的类;2、连线表示类之间的关系;3、类之间的关系有关联、聚集、泛化和依赖。
类图实例:
图11 类图实例
3.6 状态图
状态图是一个类对象所经历的所有历程的模型图。状态图有对象的各个状态和连接这些状态的变迁组成。
图形表示法:1、圆角矩形表示状态;2、带箭头的直线表示对象从一种状态变迁到另一种状态的过程;3、附在直线上的信息表示触发对象状态变迁的条件。
状态图实例:
图12 状态图实例
3.7 组件图
组件图表示了系统中的各种组建。组件可以是源代码、二进制文件或可执行文件。逻辑视图与组件视图之间存在着映射关系。组件可以与公开的任何接口一起显示。
图13 组件图实例
3.8部署图
用来描述位于节点实例上的运行组件的安排,描述系统的实际物理结构。
图形表示法:1、立方体表示节点,节点可以是一组运行的资源,如计算机、设备或存取器等;2、直线表示节点之间连接方式。
部署图实例:
图14 部署图实例
至此耿股今天的分享就结束了,由于耿股能力有限,不完善之处欢迎大家指正。
装载请注明出处
以上是关于UML统一建模语言简单理解的主要内容,如果未能解决你的问题,请参考以下文章