我正在 UML 中建立一个分析模型,当我试图在类图中表示对几个属性的约束时,我有点卡住了。在以下课程中:
+-----------+
| SomeClass |
+-----------+
| isFoo |
| isBar |
| isBaz |
| isQuux |
+-----------+
所有列出的属性都是布尔类型,最后两个isBaz
和isQuux
是互斥的。我该如何表示?我宁愿不使用临时笔记——更混乱。
我能找到的关于 UML 中约束的所有内容似乎都将它们应用于关联,而不是属性。我可以将属性分解为一个关联的类,但它们是简单的布尔类型,所以这样的事情似乎有点过头了:
+-----------+
| SomeClass |
+-----------+ 0..1 isBaz 1 +-------------------+
| isFoo |------------------| ThereCanBeOnlyOne |
| isBar | | +-------------------+
| | |{NAND} | isBaz |
| |------------------| isQuux |
+-----------+ isQuux +-------------------+
在 UML 中对互斥属性建模的“正确”方法是什么?