UML关于'抽象'和刻板印象的问题

时间:2012-10-28 10:00:57

标签: uml

嗨,每个人都在试图理解UML,但是有一些问题呢

在UML中,使用构造型<<abstract>>标记类的重要性是什么?

以及如何将此约束表示为不变量

1 个答案:

答案 0 :(得分:4)

不存在构造型“抽象” - 应使用斜体字体描绘抽象类。抽象意味着一个类无法实例化。它需要一个子类来完成。所以作为伪代码约束,这意味着

for all instances i of MyAbstractClass holds: i.actualClass != MyAbstractClass

或在ocl中为MyAbstractClass持有

self.allInstances()->forAll(i: MyAbstractClass | i.classifier <> self)
  

由于第一个问题版本中没有显示“抽象”这个词,所以我扩展了一般的刻板印象:

首先:在学习UML时,刻板印象不应该是你要研究的第一件事。它们相当复杂。

刻板印象或关键字(均以<<MyStereotype>>表示)没有一般含义。它由特定的刻板印象定义。通常你不能将刻板印象表达为不变量。

但是UML的其他一些方面可以用相同的方式显示:UML Metalevel中的一个类标有<<metaclass>>,即使它没有构造型,甚至是不同的实际类型。刻板印象本身带有<<stereotype>>标记(即使它们是特殊类的实例)。

自定义构造型的示例可以是“服务”。您可以使用代表服务的类来标记类。可能存在一个约束,告诉您“服务”必须实现特殊的接口。在这种情况下,您可以将此约束表达为(无聊)不变量。但可能它甚至只是一个标记。在后一种情况下,您可以使用关键字作为替代。