UML语言体系和类图

1、UML语言组成

UML语言是一种设计语言,由构造元素规则公共机制构成。构造元素描述事物的基本成分,这些基本成分按某种规则关联在一起,组成图。同时,这些基本成分都遵循通用规则,即公共机制。

在这里插入图片描述

1.1、构造元素

构造元素包括基本元素、关系和图。这三种元素代表了软件系统或业务系统中的某个事物或事物间的关系。

1.2、规则

构造元素应该具有命名、规范、可见性、完整性和执行等属性。规则是对软件系统或业务系统中的某些事物的约束或规定。

1.3、公共机制

公共机制包括详述、修饰、通用划分、扩展机制。公共机制指适用于软件系统或业务系统中每个事物的方法或规则

2、基本元素

基本元素分为四类:结构元素、行为元素、分组元素、注释元素。

2.1、结构元素

结构元素定义了业务或软件系统中的某个物理元素,描述了事物的静态特征。结构元素常用名词表示。结构元素有7种:类、对象、接口、主动类、用例、协作、构件、节点。

2.2、行为元素

行为元素是用来描述业务系统或软件系统中,事物之间的交互或事物的状态变化。行为元素描述了事物的动态特征。行为元素用动词表示。行为元素有两种:交互和状态机。

2.3、分组元素

对于一个中大型的软件系统而言,通常会包含大量的类、接口、交互,因此也就会存在大量的结构元素、行为元素,为了能有效地对这些元素进行分类和管理,就需要对其进行分组。UML中提供了“包(Package)”来实现这一目标。

2.4、注释元素

在模型中,用来对其他元素的解释(文本解释)部分称为注释。注释元素是用一个右上角折起来的矩形,解释的文本就写在矩形中。
在这里插入图片描述

3、关系元素

反映事物之间关系的元素。UML中,定义了24种关系。它们在建模表示时可以归类为关联关系、实现关系、泛化关系、扩展关系和依赖关系五种。

4、图

基本元素描述了事物,关系描述了事物间的关系。在UML中,通过关系把多个事物连接在一起,构成了图。图可视化地描绘了系统某一方面的特征。

在UML2.0中共定义了13种图。
UML的作者们并没有把图作为UML的主要成分,因此各种图形并不是精确定义的,往往可以将一种图形中的成分合法的绘制到另一种图形中。
在这里插入图片描述

在UML参与手册第2版中,将UML图划分为4大领域9种视图:
在这里插入图片描述
一个图只能反映系统中某个侧面和特征,多个图结合在一起可以反应系统的某些侧面和多个特征。我们把能反映系统某些侧面特征的多个图的集合称为视图。
其中,结构领域的视图和图,描述了系统中的结构成员及其相互关系;动态领域的视图和图,描述了系统随时间变化的行为;物理领域的视图和图,描述了系统的计算资源和部署在这些资源上的系统工件;模型管理领域的视图和图,说明了模型自身的分层组织结构。

从使用的角度来看,将UML的13中图分为结构模型(也称为静态模型)和行为模型(也称为动态模型)两大类,但这里讲的结构、行为其含义与前面所说的是有一定区别的:前者是从定义角度,后者则是从使用角度。

在这里插入图片描述

5、规则

在UML中,基本元素在使用时,应该遵守一序列规则,其中,最常用的三种语义规则如下:

  1. 命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符。
  2. 范围:指基本元素起作用的范围,相当于程序设计语言中的变量的“作用域”。
  3. 可见性:UML元素可能属于一个类或包中,因此,所有元素都具有可见性这一属性。

6、公共机制

在UML语言中,定义了4种公共机制:

  1. 规格描述(也称详述)
  2. 修饰
  3. 通用划分:是一种保证不同抽象概念层次的机制。两种方式划分:类和对象、接口和实现。
  4. 扩展机制。

6.1、规格描述

在UML语言中,每个元素除了都用一个图形符号表示外,还可以对图形符号的语义用详细的文字进行描述,也称为详述。
如图所示,对每个用例来说,基友图形描述,也有对应的文字描述。
在这里插入图片描述

6.2、修饰

基本元素的符号对事物最重要的方面提供了可视化表示,而要把元素的细节方面表示出来,就必须通过对元素进行修饰。例如,用具体的可视化符号修饰元素、用斜体字表示抽象类。

6.3、通用划分

通用划分就是对UML元素进行分类。有2中分类方法:类与对象、接口与实现。

  1. 类与对象:类是一种抽象,一个模型,对象是类的实例。
  2. 接口与实现:接口是一种声明、是一个合同、一个计划;实现则是完成一个计划、一个合同、执行声明。

在UML中,用例就是一种对功能的声明和定义,是对事物功能的抽象描述;而协作则是实现用例声明的功能实现;操作名是声明服务的,而方法体则是实现服务的。因此,用例与协作、操作名与方法体之间就是接口与实现的关系。

6.4、扩展机制

通过一些方法对基本元素进行扩展,主要的扩展机制有:构造型、标记值和约束。

  1. 构造型
    构造型就是构造一种新的UML元素,例如,构造一个元素《exception》,用该元素来表示软件的异常。
    表示构造型的符号有三种:
    • 用符号《》把构造名字括起来,这是一种标准方法。
    • 用符号《》把构造名字括起来,并为元素增加一个图标。
    • 直接用一个图标表示新的构造元素。
  2. 标记值
    标记值是用来为事物(元素)添加新特征的。标记值的表示方法是用形如“{标记信息}”的字符串表示。标记信息通常由名称、分隔符和值组成。标记值是对元素属性的表示,因此,标记值放在UML元素中的,如,name=“邓小平”。
  3. 约束
    约束是用来表示元素之间约束条件,是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL(Object Constraint Language)两种表示方法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过,不能够把它放在元素中,而是放在相关的元素附近。

7、类的可视化表示

在UML中的一个长方形表示一个类的图标。按照UML的约定,类名的首字母大写,放在矩形的偏上部。如果类名是由两个单词组成,那么将这两个单词合并,第二个单词首字母大写。
在这里插入图片描述
如果WashingMachine(洗衣机)类是Household(家用电器)包的一部分,那么这个类的名字为:Household::WashingMachine。包名在左,类名在右,中间用双冒号隔开。这种类型的类名叫做路径名(pathName)。

8、属性

属性是类的一个特性。它描述了类的对象(也就是类的实例)所具有的一系列特性值。一个类可以具有零到多个属性。按照UML的约定,单字属性名小写。如果属性名包含了多个字,这些字要合并,并且除了第一个字外其余首字母要大写。属性名列表放在类名之下,并且和类名之间用分隔线隔开,如下图所示:
在这里插入图片描述
类的属性在该类的每个对象中都有具体值。下面是一个例子。注意,对象名首字母小写,后面跟一个冒号,冒号后面是该对象所属的类名,并且整个名字要带下划线。
在这里插入图片描述
UML还允许指明属性的附加信息。在类的图标里,可以指定每个属性值的类型。可能的类型包括字符串(string)、浮点数(floating-point)、整数(integer)和布尔型(bool)以及其他的枚举类型。要指明类型,则在类型值后面加上类型名,中间用冒号隔开。还可以为属性指定一个缺省值。下图说明了属性的各种表示方法:
在这里插入图片描述

9、操作(方法)

操作(operation)是类能够做的事情,或者别的类能对这个类做的事情。和属性名的表示类似,单字操作名小写。如果操作名包含了多个字,这些字要合并,并且除了第一个字外其余字首字母要大写。
操作名列表放在属性名列表之下,两者之间用分隔线隔开,如下图所示:
在这里插入图片描述
就像给属性指定附加信息一样,也可以为操作指定附加信息。在操作名后面的括号中可以说明操作所需要的的参数和参数类型。有一种操作叫函数(function),它在完成操作后要返回一个返回值。可以指明函数的返回值及返回值的类型。全部的操作信息(操作名、作为参数的对象和返回值)被称为操作的型构(signature)。

10、属性、操作和可视化表

当同时表示多个类的时候,通常没必要总是显示这些类的所有属性和操作,这样做会使图形表示比较混乱。相反,可以只给出类名,而将属性或者操作区空着。
有时,只显示类的一部分属性和操作很有用。为了说明你只表示出部分操作和属性,可以在列表的后面加上三个小点“…”。这个符号叫做省略符(ellipsis),这种省略了一个或多个属性或者操作的表示法叫做类的省略表示法。下图说明了类的省略表示法:
在这里插入图片描述
构造型是UML提供的扩展机制,它允许创建新的模型元素以解决具体问题。
如果属性或者操作列表太长,可以用构造型类组织属性或操作列表。构造型用双尖括号(guillenments)括住的关键字来表示。
在这里插入图片描述

11、职责和约束

类图标中还可以指明另一种类的信息。在操作列表框下面的区域,可以用来说明类的职责。职责描述了类做什么——也就是类的属性和操作能完成使命任务。
例如:一台洗衣机的职责是讲脏衣服作为输入,输出干净的衣服。
在这里插入图片描述
更形式化的方式是使用约束(constraint),它是一个用花括号括起来的自由格式的文本。括号中的文本指定了该类索要满足的一个或者多个规则。
例如:假设你想要的指定WashingMachine类的洗衣机容量只能是16、18或20磅(也可以说是对WashingMachine类的capacity属性施加约束),可以在WashingMachine类图标的旁边写个约束。
在这里插入图片描述
UML提供了另一种方式(也就是非常形式化的一种表达方式)表示施加约束,以便模型元素的语义定义更加明确。它实际上也是一个完整的语言,被称为对象约束语言(Object Constraint Language)。
OCL是UML的一个高级的但是很有用的工具,有自己的规则、术语和操作符。

12、附加注释

除了属性、操作、职责和约束之外,还可以以对类附加注释的形式给类添加更多的信息。
在这里插入图片描述

13、类应该做什么和如何识别它

类代表的是领域知识中的词汇和术语。同客户交谈,分析他们的领域知识,设计用来解决领域中的问题的计算机系统,同时也就是在学习这些领域词汇,并用UML中的类建立这些领域词汇的类模型。

在与客户的交谈中,要注意客户用来描述业务实体的名词术语。这些名词可作为领域模型中的类。还要注意你听到的动词,因为这些动词可能会构成这些类中的操作。当得到一组类的核心列表后,应当向客户询问在业务过程中每个类的作用。他们的回答将告诉你这些类的职责。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值