我正在研究UML中的分析模型,当试图在类图中的几个属性上表示约束时,我有点卡住了。在下面的类:如何在UML中建模互斥属性?
+-----------+
| SomeClass |
+-----------+
| isFoo |
| isBar |
| isBaz |
| isQuux |
+-----------+
列出的所有属性都是布尔类型,最后两个,isBaz
和isQuux
,是互斥的。我如何表明这一点?我宁愿不使用临时备忘录 - 更混乱。
我能找到的有关UML约束的一切似乎将它们应用于关联,而不是属性。我可以打破的属性伸到相关的类,但他们简单的布尔类型,所以这样的事情似乎有点小题大做:
+-----------+
| SomeClass |
+-----------+ 0..1 isBaz 1 +-------------------+
| isFoo |------------------| ThereCanBeOnlyOne |
| isBar | | +-------------------+
| | |{NAND} | isBaz |
| |------------------| isQuux |
+-----------+ isQuux +-------------------+
什么是“正确”的方式在UML相互排斥的属性模型?
谢谢,很好的说明。是的,在我的模型中,isBaz和isQuux实际上是“运营费用”和“主要运营费用”父合同对象可以分为一种,另一种或两种都不是(都是假的),但不是两种。 – Val