用UML图表示句子类型

用UML图表示句子类型,uml,Uml,我想创建一个uml图,它可以表示以下句子: “2020年3月21日,面包师A以每公斤1.20欧元的价格从面粉公司B购买了20公斤AAA型面粉,后来他用这些面粉生产了70片面包,然后于2020年3月23日以每片1.10欧元的价格出售给商店的不同客户。” 下面你可以看到我的第一个想法。这是非常一般的,我还没有添加属性。我的问题是,我不确定如何表示两个不同的人进行了交易,买方(即baker A)和卖方(公司B),以及如何表明某人(即baker A)既可以是买方(即他从B处购买)也可以是卖方(即A向客户

我想创建一个uml图,它可以表示以下句子:

“2020年3月21日,面包师A以每公斤1.20欧元的价格从面粉公司B购买了20公斤AAA型面粉,后来他用这些面粉生产了70片面包,然后于2020年3月23日以每片1.10欧元的价格出售给商店的不同客户。”

下面你可以看到我的第一个想法。这是非常一般的,我还没有添加属性。我的问题是,我不确定如何表示两个不同的人进行了交易,买方(即baker A)和卖方(公司B),以及如何表明某人(即baker A)既可以是买方(即他从B处购买)也可以是卖方(即A向客户出售面包):


图表类型比类图多得多。您是否有任何限制,它必须只有一个图表?若然,原因为何?每种图类型都集中在设计中的系统的特定视图上,因此它们一起使用。UML的目的不是在一个图中反映所有信息。例如,尝试用活动图或序列图来补充您的图。你会发现它很有用

如何证明某人(如面包师A)既可以是买方(如他从B处购买)也可以是卖方(如A向顾客出售面包)

您已经通过
交易者
的抽象实现了这一点

我不知道如何表示两个不同的人进行了交易,买方(即贝克A)和卖方(公司B)

只需将它们作为属性添加到
事务


提示:“单位/价格/产品”关系不符合UML。

首先请注意,UML类图只能表示语句类型,而不能表示特定的语句,但是可以用所谓的“对象图”来表示

如何表示两个不同的人进行交易 买方(即贝克A)和卖方(B公司)

您已经在第二个类图中用
买方
/
卖方
交易
之间的关联表示了这一点,但是由于您还定义了
买方
卖方
以形成交易者的重叠分段,因此需要附加一个约束对于您的
交易
类,“买方不同于卖方”

为了完整性,您还应该在这两个一对多关联的两端添加多重性(在
买方
/
卖方
端添加一个“1”,在
交易
端添加一个“*”

如何证明某人(如baker A)既可以是买家也可以是买家 B)和卖方(即a向顾客出售面包)


根据您的第二个图表,这已经是可能的,其中每个
买家
卖家
都是
交易者
,并且此细分重叠(默认情况下)因此,交易者可以是一笔交易中的买家,也可以是另一笔交易中的卖家。

我建议在开始之前先学习一些基本的UML课程。上面的课程不是UML。人们可能会识别类和关联。大箭头可能是泛化。符号错误。Y形关联也是如此。也许你指的是关联我知道这不是一个UML图,问题是老师说只创建一个UML图而不说是什么类型的UML,加上我想到了在课堂上看到的另一个通用模型,这个模型与练习现在要求我做的很接近.我会问她,并做一个真正的UML,Y形关联可能是兼容的(我不知道任何约束;如果你知道,请指定UML引用)但令人困惑。通常人们使用叠加来概括,但你也可以弯曲/叠加关联。当你像在OP的绘图中那样做时,会令人困惑,因为你不知道哪一个关联结束。我把它看作是三个类之间的一个单一关联。你可能错过了要求。表示句子需要定义词汇表(或谓词逻辑签名),这只能通过类模型来完成,类定义一元谓词,关联定义二元或n元谓词。不,我没有错过这个要求,Gerd。很明显,这更像是一个初学者级别的问题,因此我相信我已经选择了适当的细节和措辞级别。再说一次:只有类模型才能表示词汇y、 虽然你也建议看看其他类型的UML模型,但这是没有意义的。Hi Gerd,这句话表达的约束(买方和卖方不是同一个人)与你建议的多重性(有一个买方和一个卖方的交易)所实施的约束不同。最后一句话复制了我的答案。@observer:你说得对,这个约束必须用一个额外的OCL不变量来表示,我应该将它添加到我的答案中。你的评论“只是将它们添加为属性”在这里没有帮助。