我正在努力 分析 </跨度> UML中的模型,在尝试表示类图中的几个属性的约束时,我有点卡住了。在以下课程中:
我将研究使用对象约束语言来描述它。
我从来没有真正使用它,除了几个讲座,但我很确定这是你需要的。
这样的事情可能表达你想要的条件:
{context SomeClass inv isBaz==True implies isQuux==False inv isQuux==True implies isBaz==False}
这个 介绍 可能会给你一个很好的起点。
只有两个选项,将属性建模为与布尔数据类型的关联或使用OCL约束。
简化和更正(在OCL中等于只有一个“=”)可能是:context SomeClassinv not isBaz = isQuux
顺便说一句,我不确定“互斥”概念对你的确切含义。这通常实现XOR(标准中关联的预定义约束),然后使用NAND。您的模型中是否有可能两个属性都具有错误值? (我假设这在我的OCL约束中是不可能的)