UML で分析モデルを作成していますが、クラス図でいくつかの属性に対する制約を表現しようとすると、少し行き詰まります。次のクラスで:
+-----------+
| SomeClass |
+-----------+
| isFoo |
| isBar |
| isBaz |
| isQuux |
+-----------+
リストされている属性はすべてブール型で、最後の 2 つのisBaz
とisQuux
は相互に排他的です。それをどのように示しますか?その場しのぎのメモは使いたくありません。
UMLの制約について私が見つけることができるものはすべて、それらを属性ではなく関連に適用しているようです。属性を関連付けられたクラスに分割することもできますが、それらは単純なブール型であるため、次のようなものはやり過ぎのように思えます。
+-----------+
| SomeClass |
+-----------+ 0..1 isBaz 1 +-------------------+
| isFoo |------------------| ThereCanBeOnlyOne |
| isBar | | +-------------------+
| | |{NAND} | isBaz |
| |------------------| isQuux |
+-----------+ isQuux +-------------------+
UMLで相互に排他的な属性をモデル化する「正しい」方法は何ですか?