现在的位置: 首页 > 综合 > 正文

《UML用户指南》学习笔记(九)

2013年08月26日 ⁄ 综合 ⁄ 共 1547字 ⁄ 字号 评论关闭

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://jeffrey.blogbus.com/logs/66331.html

第九章 高级类

从第四章到第八章讲述的是对基本结构建模的内容,从这一章开始进入了第三部分,对高级结构建模。

类是面向对象系统中最重要的构造块,但在UML中更一般的构造块是类元,类仅仅是一种类元。类元包括有:类、接口、数据类型、信号、构件、节点、用
况和子系统。在第四章讲述类的时候只讲述了基本特征(属性、操作等等),实际描述类元还有很多高级特性(多重性、可见性、特征标记、多态性和其他特征)。

①类元(classifier)
一般而言类元是有实例、具有结构特征和行为特征的建模元素。除了类以外,UML还包含有以下的类元:
⑴接口(interface)
接口用文字描述是类或构件的一个服务的操作集,它和面向对象中的接口是一个概念。
⑵数据类型(datatype)
指其值没有任何标识的类型,包括简单的内置类型(如数值和串)以及枚举类型(如布尔)。
⑶信号(signal)
对实例之间的通信的异步激发的描述(不懂)。
⑷构件(component)
它遵循一组接口,并提供了该组接口的实现。
⑸节点(node)
一般用于描述运行时存在的物理元素,如硬件等。
⑹用况(use case)
一组动作序列的描述,系统对它的执行将为特定的参与者产生可观察的结果值。
⑺子系统(subsystem)
如名字般解释。

②可见性
对类元的属性和操作进行详述的最重要的细节之一就是它的可见性。在第二章说明修饰的时候曾提
到,这里的可见性是修饰的一种。UML中将可见性分为公有的(public)、受保护的(protected)、私有的(private)三种。这对程序
员而言很容易理解,大多数语言中都有这样的机制。

③范围
对类元的属性和操作进行详述的另一个重要细节是其拥有者的范围。在UML中,可以说明两种范围:
⑴实例(instance)
对一个特征,类元的每个实例均有它自己的值。
⑵类元(classifier)
类元的所有实例只有该特征的一个值。
从程序的角度来描述就是该属性或方法是否为静态的。

④抽象、根、叶和多态性元素
实际讲的是关于抽象类,以及它的子类对其抽象方法实现的描述。

⑤多重性
并非每一个类元都可以有任意个实例,有的时候我们希望一个类只有一个实例,这在程序中也很多见,多重性用来描述类元可以拥有实例的个数。

⑥属性
属性的完整语法形式如下:
[可见性]属性名[多重性][:类型][=初始值][{特性串}]
UML中定义了3种用于属性的特性:
⑴可变(changeable)
对修改属性值没有约束
⑵只增(addonly)
对于多重性大于1的属性,可以增加附加值,但一旦被创建,九不可对值进行消除或改变。
⑶冻结(frozen)
在初始化对象后,就不允许改变属性值。在程序中表现为常量。

⑦操作
操作的完整语法形式如下:
[可见性]操作名[(参数表)][:返回类型][{特性串}]
其中参数的语法形式如下:
[方向]参数名:类型[=缺省值](有关"方向"不理解,可能和编程语言有关)
有四种用于描述操作的特性:
⑴查询(isQuery)
执行该操作不会改变系统的状态。
⑵顺序(sequential)
执行该操作要保证在一个对象中一次仅有一个流,在多控制流下,不能保证对象的语义和完整性。
⑶监护(guarded)
在多控制流下也保证对象的语义和完整性。
⑷并发(concurrent)
不懂,总之它和上面两个特性来描述操作的并发特性。

⑧模板类
与JAVA无关,难懂。

⑨标准元素
UML定义了多种用于类的标准构造型:元类、强类型、构造型、实用程序、接口、类型、实现类、参与者、异常事件、信号、进程、线程等。实际这应该是属于UML已经存在的对类使用扩展机制形成的新构造块。

抱歉!评论已关闭.