UML 包含三种主要的扩展组件:约束、构造型和标记值。约束是用某种形式化语言或自然语言表达的语义关系的文字说明。构造型是由建模者设计的新的模型元素,但是这个模型元素的设计要建立在 UML 已定义的模型元素基础上。标记值是附加到任何模型元素上的命名的信息块。
这些组件提供了扩展 UML 模型元素语义的方法,同时不改变 UML 定义的元模型自身的语义。使用这些扩展组件可以组建适用于某一具体应用领域的 UML 用户定制版本。
图 3–11 举例说明了约束、构造型,和标记值的使用。对剧目类的约束保证了剧目具有唯一的名称。 图 3 – 11 说明了两个关联的异或约束,一个对象某一时刻只能具有两个关联中的一个。用文字表达约束效果较好,但 UML 的概念不直接支持文字描述。
TicketdDB 构件构造型表明这个是一个数据库构件,允许省略该构件的接口说明,因为这个接口是所有数据库都支持的通用接口。建模者可以增加新的构造型来表示专门的模型元素。一个构造型可以带有多个约束、标记值或者代码生成特性。如图所示,建模者可以为命名的构造型定义一个图标,作为可视化的辅助工具。尽管如此,可以使用文字形式说明。
Scheduling 包中的标记值说明 Frank Martin 要在年底世纪前完成计划的制定。可以将任意信息作为标记值写于一个模型元素中建模者选定的名字之下。使用文字有益于描述项目管理和代码生成参数。大部分标记值保存为编辑工具中的弹出信息,在正式打印出的图表中通常没有标记值。

图 3–11 扩展组件

