我试图为下面的问题绘制并定义UML中的类。
--地铁信息系统 设计上述系统概念方案的一部分,使我能够登记车站(通过区分交汇处和终点站)、车站的互连(即网络拓扑结构)和它们划分的距离(以公里为单位)。 每列火车通过连续的路线行驶(在规定的极端车站之间移动,在每条线路上不一定相同)(如布朗克斯-曼哈顿、布鲁克林-皇后区)。每条路线都有特定的到达时间,并在每个车站停留。每个车站的实际到达时间可能不同于程序到达时间,以及各站之间的交通速度。
我的第一个想法是,主要课程应该是:
Metro Line, Metro Station, Metro Route, Metro Route Stop, Metro Train我一直在挣扎着如何代表预定的和真实的时代。
发布于 2019-03-22 08:17:15
最后,
我想出了这个设计

非常感谢
发布于 2019-03-21 22:37:27
让我们来看看这些类,它们是相当明显的:
Metro line是一组Metro routesMetro route与Metro stations序列相关联。Metro route由两个极端的Metro stations定义Train运行在Metro routes上每条路线都有特定的到达时间,并在每个车站停留。
这意味着路线不是一般的(例如布鲁克林-皇后区),而是非常具体的(例如布鲁克林-皇后区从15:03开始)。
此外,由于几个Metro routes可能使用相同的Metro station,而且由于Metro route是由几个Metro stations组成的,所以在这两个类之间有很多到多个关联。时间和停留既不单单取决于路线,也不完全取决于车站。所以最好把它看作是联想类的一个属性:

事实上,您有计划的时间和停留以及实际的时间和停留,这意味着只有两个不同的属性。每列火车在车站之间的位置告诉我们有关火车的情况。
最后,处理不同时间的更详细的方法是考虑一个Time table类。然后,Metro route、Metro station和Time table之间的关联将是一个三元缔合,三元关联关联类可以保存时间数据(计划表的计划数据或实际表的实际数据);但是您也可以有计划的几个版本,以及一年中每一天的实际数据的一个版本。这将是完全灵活的。
现在,如果您对关联类感到不舒服,您可以将多到多的关联分解为与中产阶级的两个多对一的关联,您可以将其命名为Route stop。
https://stackoverflow.com/questions/55220341
复制相似问题