什么是uml刻板印象以及如何使用它

问题描述

我正在为Java软件设计一个类UML。我不太了解什么是刻板印象。正式定义:

构造型是一个配置文件类,它定义了如何将现有的元类扩展为配置文件的一部分。它可以代替扩展元类使用的平台或领域专用术语或符号来使用

这是否意味着构造型应该是父类名称?但是为什么有些超类也有构造型?

因此,例如,我有一个超类Animal和一个扩展Animal类的类狗,这两个类的刻板印象是什么?另外,为什么有些类没有构造型。

解决方法

什么是刻板印象,目的是什么?

构造型通过允许进行某些分类的元素(比UML本身预见的更详细)来扩展UML。这有助于使模型更具表现力。

example是典型的Entity,Control,and Boundary刻板印象。它们用在用例驱动的设计中:在类图中,您可以立即找出哪些类代表用例逻辑(标记为«control»构造型),哪些类代表与参与者的用户界面( «boundary»原型),以及哪些类代表业务/域对象(标记为«entity»)。

构造型的另一种用法是指示应该实现类的方式,example可以将与内存中对象相关的数据库表对应的类标记为«table»,或者指示对象中的«persistent»。一个更常见的用法是显示一些language specific并且在UML中没有等效概念的概念。我特别认为C#«struct»具有值语义,而C#类具有引用语义,即C#«属性»(在属性级别是原型)。

如何定义构造型?

定型在profile中定义。您可以在配置文件图中将stereotype视为类。

但是您不能将其与模型中的其他类相关联的普通类。因此,这里没有继承。您永远不会将超类表示为构造型。

构造型是与“元模型”相关的类,其表示UML标准中定义的UML标准元素。因此,它是一类类(或关联类或任何其他UML元素)。

要详细说明您的示例,请使用抽象超类Animal和具体子类CatDog

  • 您可能会影响他们所有的«entity»配置文件,因为它们都属于域模型。
  • 如果您想使用concrete table inheritance将对象存储在RDBMS中,则可以对CatDog使用构造型«persistent»(因为具体的表继承模式不实现抽象类的持久性)