UML Stereotypes应用于类继承设计模式

时间:2012-10-22 22:05:52

标签: inheritance uml papyrus stereotype

在使用 Papyrus (+ Eclipse)时,我遇到了一个我最初认为是不一致的问题。但是在想知道之后,我开始认为我在UML设计的基本概念中可能有一个“bug”

好吧,请考虑基本的类继承问题,其中ManWomanPerson的特化。 (换句话说,PersonManWoman的超类。

然后,如果您将刻板印象 Worker(例如,包含参数jobsalary)应用于Person,则应该子类也接收相同的原型Worker?它们不应包含jobsalary参数吗?

我真的虽然Stereotypes也是继承自超类,但是当我在Papyrus工具中实现这个设计时,我看不到任何继承的jobsalary。每个子类都没有任何应用的Stereotype。

提前致谢!

======================编辑了解更多信息================== ==

我发现在2000年为UML v1.3打开了一个关于继承子类中构造型的问题。

Issue 3210: Inheritance of Stereotypes (uml-rtf)

在我的解释中,讨论中提供的示例正是我上面提到的。但是,审稿人似乎明白问题是要求Stereotype的子类型,而不是将Constraints从一个原型类传播到它的子类。

这是添加到UML v1.3中的要点:

  

刻板印象是GeneralizableElements。如果构造型是另一个构造型的子类型,那么它从其构造型超类型继承所有约束和标记值,并且它必须应用于相同类型的基类。构造型跟踪可以应用它的基类。

稍后,它在UML v1.4中被弃用,并在UML 2中被删除。

所以,基本上,根据我的解释,存在的问题......但是UML规范仍然没有指定它。

1 个答案:

答案 0 :(得分:1)

我也认为刻板印象是继承的,但我在网上或UML标准中找不到关于这一点的任何引用。但是根据您的描述,您应该使用多重继承或接口。

原型用于扩展类 - 为类元素提供更多属性,而不是实例。 UML中的类具有名称,属性(字段)和方法。向类添加构造型时,实际上是在向类中添加另一组属性。例如,如果您正在编写MVC(模型 - 视图 - 控制器)系统,并且您想要指定哪些类是视图,哪些是模型,哪些控制器使用构造型将是一个很好的答案,因为您正在描述属性类的,而不是特定的实例。这似乎不是你的情况。