在使用Papyrus (+Eclipse) 时,我遇到了一个我最初认为是不一致的问题。但是在思考之后,我开始认为我的 UML 设计的基本概念中可能存在“错误”。
好吧,考虑基本的类继承问题,其中Man
和Woman
是Person
. (换句话说,Person
是 and 的超类Man
)Woman
。
然后,如果您将Stereotype Worker
(例如包含参数job
和salary
)应用于Person
,子类不应该也收到相同的原型Worker
吗?它们不应该包含job
和salary
参数吗?
我真的虽然 Stereotypes 也是从超类继承的,但是当我在 Papyrus 工具中实现这个设计时,我看不到任何继承的job
或salary
. 每个子类都与没有任何应用的 Stereotype 相同。
提前致谢!
======================已编辑以获取更多信息========================
我发现在 2000 年针对 UML v1.3 提出了一个关于子类中原型继承的问题。
在我的解释中,讨论中提供的例子正是我上面问的。然而,审稿人似乎理解问题是要求 Stereotype 的子类型,而不是从一个原型类到其子类的约束传播。
这是添加到 UML v1.3 的要点:
刻板印象是GeneralizableElements。如果一个原型是另一个原型的子类型,那么它会从它的原型超型继承所有的约束和标记值,并且它必须应用于相同类型的基类。构造型跟踪它可能应用到的基类。
后来,它在 UML v1.4 中被弃用并在 UML 2 中被删除。
所以,基本上,根据我的解释,问题存在......但UML规范仍然没有指定它。