0

例は次のとおりです。

 -----------                -------------------- 
|     X     | 1..1    0..1 |    <<abstract>>    |
|           |<>------------|         Y          |
|-----------|              |--------------------|
| +a:bool   |              | +b:positiveInteger |
'-----------'              '--------------------'

現実の世界では、次の規則に従って、抽象的な Y は具体的な A、B、または C になる可能性があります。

  • の場合、Y は A クラスですatrue
  • およびの場合、Y は B クラスですafalseb == 1
  • afalseおよびの場合b > 1、Y は C クラスです。

これらの継承規則を UML クラス図でどのようにモデル化しますか?

4

1 に答える 1

1

これにはOCL言語を使用できます。

Aまず、ダイアグラムを拡張して、 、B、およびCの3 つの具体的なサブクラスを導入するY必要があります。次に、次のような OCL 制約が必要です。

context X:
inv: (self.a implies self.y isOclTypeOf(A)) and
     (((not self.a) and (not self.y.isOclUndefined())) implies (self.y.b = 1 implies self.y.isOclTypeOf(B))) and
     (((not self.a) and (not self.y.isOclUndefined())) implies (self.y.b > 1 implies self.y.isOclTypeOf(C)))
于 2012-10-21T06:13:40.260 に答える