这个问题是关于分析阶段的UML类图。 我为了说明目的编写了一个最小的例子:
票证适用于一个席位和一个特定研讨会。 可以将座位分配给多个票证,但仅限于一个唯一的票证/研讨会组合。 (研讨会和独特的门票/座位组合也是如此。)
该图未反映出来。我用红色标记了错误的多重性。
您知道正确建模需求的选项(越多越好)吗?
答案 0 :(得分:1)
UML或实体关系图无法表达这种可交换的一致性检查。顺便说一句,您无法从票证实例中表达路径票证 - >座位 - >研讨会地点必须与票证相同 - >研讨会 - >研讨会地点。
正式地,您用红色标记的多重性是正确的。一个座位看到不止一张票,只是针对不同的研讨会,反之亦然。
因此,我能提供的唯一解决方案是将要求包含在这些关系的文本规范中。这不是一件坏事,因为任何有限的图形符号集只能表达所有可能要求的子集。
答案 1 :(得分:1)
票证可以是座位和研讨会之间的关联类。或者只是使用OCL来表达这种约束
答案 2 :(得分:0)
"您无法从故障单实例中表达路径故障单 - >座位 - >研讨会地点必须与票证相同 - >研讨会 - >研讨会地点"
1)OCL - context Ticket inv:seminar.seminarLocation = seat.seminarLocation
2)在座位和研讨会之间绘制席位,研讨会和协会类门票 - 进入SeminarLocation(图13-70 http://msdl.cs.mcgill.ca/people/tfeng/docs/The%20Unified%20Modeling%20Language%20Reference%20Manual.pdf或图14-84 http://www.utdallas.edu/~chung/Fujitsu/UML_2.0/Rumbaugh--UML_2.0_Reference_CD.pdf)