Class 如何指定;“一次一个”;在UML中?
我正在制作一个包含Class 如何指定;“一次一个”;在UML中?,class,time,constraints,uml,class-diagram,Class,Time,Constraints,Uml,Class Diagram,我正在制作一个包含教室和课程课程的课堂图表 我如何表明教室一次只能有一门课程?我知道我可以使用多重性来指定一个教室只能有一门课程,但这并不能确切地指定在不同的时间可以有一门课程以外的其他课程。多重性是正确的方法,在您的情况下,它是0..1,因为教室可以不使用=>没有关联的课程。一门课程可以在不同的教室里进行,如果在室外,甚至可以不进行,所以我使用* 这并没有明确规定在不同的时间可以有不同的课程 我不同意,关联课堂---课程没有指定关联的课程(和课堂)不能更改,因此如果没有额外的约束或将其设置为
教室
和课程
课程的课堂图表
我如何表明
教室
一次只能有一门课程
?我知道我可以使用多重性来指定一个教室只能有一门课程,但这并不能确切地指定在不同的时间可以有一门课程以外的其他课程。多重性是正确的方法,在您的情况下,它是0..1
,因为教室可以不使用=>没有关联的课程。一门课程可以在不同的教室里进行,如果在室外,甚至可以不进行,所以我使用*
这并没有明确规定在不同的时间可以有不同的课程
我不同意,关联课堂---课程
没有指定关联的课程(和课堂)不能更改,因此如果没有额外的约束或将其设置为只读,它可以更改第一个解决方案和暂时性问题
如果0..1
多样性满足了您明确的要求:教室
在任何给定时间实际上最多只能容纳一门课程
。但其结果是,在此特定时间:
不知道已经或将要在教室中进行的任何其他教室
课程
- 将来在本
教室中进行的任何其他
目前都不知道将在何处进行课程
- 时段不一定与
;“C++入门”课程可能需要几节课,可以在不同的时间在多个房间进行课程绑定
- 时间段显然既不与
教室绑定,也不与
教室绑定
时隙
可被视为与课程
和教室
的关联相关。对于在一个房间内进行的每门课程,您都必须管理开始和结束时间。这是很自然地建模为关联类的:
这并不能满足您的“单一性”需求,但它通过一个用自然语言表示的约束来促进其表达:{同一教室的时间段不能重叠}
。您也可以在OCL中更正式地表达它
另一种方法
您也可以对时间问题进行不同的分析,并将<>代码>教室<代码>作为服务提供,由对应于时间间隔的<>代码> ROMsStudio组成。然后,每个
RoomSlot
将与0..1
课程相关联,正如布鲁诺所建议的:
这种方法使时隙的管理更加明显和独立:
- 您可以使用1小时的固定时间段,您可以根据需要添加、拆分和合并同一房间的时间段,从而允许动态时间段,始终强制执行无重叠
- 房间可用性的管理可以独立于房间使用情况进行分析和实施
- 未分配的
明确显示给定时间的可用房间(优惠),未分配的RoomSlots
显示需求(需求)课程