UML构造块的基本特性(类的属性和操作以及包的内容等)一般足以表达建模的大多数事物。然而,如果要扩展这些基本构造块的特性,就需要定义衍型和标记值。
对新特性建模,要遵循以下策略:
• 首先,要确认用基本的UML已无法表达要做的事情。
• 如果确信没有其他的方法能表达这些语义,则定义衍型并且为衍型添加新的特性。泛化的应用规则是:为一种衍型定义的标记值,可应用到它的子孙。
例如,假设想把建立的模型与项目配置管理系统捆在一起。这意味着在要做的其他事情中还要包括追踪版本号和当前的检入/检出状态,甚至还要包括追踪各子系统的创建或修改日期。由于这是过程特有的信息,因此不是UML的基本部分,但是可以把这些信息作为标志值添加近来。此外,这种信息也不是类的属性。子系统的版本号是它的元数据的一部分,而不是模型的一部分。