且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《软件建模与设计: UML、用例、模式和软件体系结构》一一2.10 UML扩展机制

更新时间:2022-10-10 17:36:00

本节书摘来自华章计算机《软件建模与设计: UML、用例、模式和软件体系结构》一书中的第2章,第2.10节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.10 UML扩展机制

UML提供了三种语言扩展机制(Booch,Rumbaugh,and Jacobson 2005;Rumbaugh,Booch,and Jacobson 2005),它们是构造型(stereotype)、标记值(tagged value)和约束(constraint)。
2.10.1 构造型
一个构造型定义了一个从已有UML建模元素中派生出来的、且针对建模者问题进行裁剪的构造块(Booch,Rumbaugh,and Jacobson 2005)。本书广泛使用了构造型。UML已经定义了多种标准的构造型。另外,建模者可以定义新的构造型。本章包括了多个使用构造型的示例,既有标准构造型,也有COMET特定的构造型。构造型是用书名号(??)表示的。
图2-9的包图使用构造型?系统?(system)和?子系统?(subsystem)来区别这两种不同类型的包。图2-11则使用构造型来区别不同种类的消息。
在UML1.3中,一个UML建模元素只能具有一个构造型。然而,UML1.4及其后的版本扩展了构造型的概念,它们允许一个建模元素被附加多个构造型。因此,一个建模元素不同的、可能正交的特性可以通过不同的构造型被描绘出来。COMET方法就是利用了这个附加的功能。
UML构造型表示法允许一个建模者针对一个特定的问题对UML建模元素进行裁剪。如图2-14a所示,UML的构造型一般位于建模元素(例如类或对象)内部,并且使用书名号标记。然而,UML也允许将构造型表示为符号。其中一个最通常的表示方式是Jacobson提出的,它用于统一软件开发过程(Unified Software Development Process,USDP)中(Jacobson,Booch,and Rumbaugh 1999)。该过程使用构造型表示?实体?(entity)类、?边界?(boundary)类和?控制?(control)类。图2-14b展示了使用USDP的构造型符号所表示的Process Plan?实体?类、Elevator Control?控制?类以及Sensor Interface?边界?类。
《软件建模与设计: UML、用例、模式和软件体系结构》一一2.10 UML扩展机制

图2-14 UML构造型的可选择的表示法
2.10.2 标记值
标记值扩展了一个UML构造块的属性(Booch,Rumbaugh,and Jacobson 2005),从而为其增加新的信息。标记值以{标记=值}的形式书写在大括号中。新添加的标记值用逗号分隔。《软件建模与设计: UML、用例、模式和软件体系结构》一一2.10 UML扩展机制
如图2-15所示,一个类可具有标记值{版本=1.0,作者=Gill}。
2.10.3 约束
约束指定了一个必须为真的条件。在UML中,约束是一个UML元素语义的扩展,它允许新规则的加入或修改已存在的规则(Booch,Rumbaugh,and Jacobson 2005)。如图2-15中的Account类在其属性balance上具有约束{balance>=0},表示账户的余额不能为负数。另外,UML也提供了对象约束语言(Object Constraint Language,Warmer and Kleppe 1999)来表达约束。