我明天有个考试,我们拿到了样考,但是因为样考没有答案,所以我想在这里问一下。
那么我们开始吧,这是我不确定自己是否做对的问题之一:Q:画一个描述以下领域的概念模型。在这个领域里有猴子和香蕉。一只猴子可以吃香蕉,但两只猴子不能吃同一根香蕉。
A(我认为是正确的):http://gyazo.com/722ee8618bfee76ed9f616d45d800819
现在,我认为我的答案不正确的原因是因为两只猴子能够吃到同样的香蕉(或者它是正确的吗?)
您的模型缺少关联端点,这是非常重要的。它们在两个方向上赋予语义和多样性。一个实现模型是:
|Monkey|--eatingMonkey[0..1]---------eatenBanana[0..*]--|Banana|
这可以防止香蕉被一只以上的猴子吃掉。这是一种混杂的UML,所以我希望你明白如何制作这样的UML图。
由于这应该是一个概念模型,您可以将eatingMonkey
重命名为is eaten by
,将eatenBanana
重命名为eats
,如下所示:
|Monkey|--is eaten by[0..1]---------eats[0..*]--|Banana|
该模型形成了自然语言句子:
- 一只猴子吃任何数量的香蕉。
- 一根香蕉被最多一只猴子吃掉。