我正在尝试为以下问题绘制和定义UML中的类。
地铁铁路信息系统
设计上述系统的概念方案的一部分,该部分将 请允许我注册电台(通过区分 互换和终端),站的互连(即 网络拓扑)和距离(以铁路公里为单位) 行)他们分开。
每列火车通过运行连续的路线而排成一行,即 在规定的极端站对之间,不是 在每条路线上都必须相同(例如布朗克斯-曼哈顿,布鲁克林- 皇后区)。每条路线都有特定的到达时间并停留在每条路线上 站。每个车站的实际到达时间可能与 程序化的站点以及站点之间的通信速度。
我首先想到的是主要类应该是:
Metro Line, Metro Station, Metro Route, Metro Route Stop, Metro Train
而且我正在努力地表示计划时间和实时时间。
答案 0 :(得分:1)
让我们看一下很明显的类:
Metro line
是一组Metro routes
Metro route
与Metro stations
的序列Metro route
由两个极端Metro stations
Train
在Metro routes
上运行每条路线都有特定的到达时间,并停留在每个车站。
这意味着路线不是一般的路线(例如,布鲁克林-皇后区),而是非常特定的路线(例如,布鲁克林-皇后区,始于15:03)。
此外,由于多个Metro routes
可能使用相同的Metro station
,并且由于Metro route
由多个Metro stations
组成,因此这两个之间存在多对多关联类。 时间和停留既不完全取决于路线,也不完全取决于车站。因此,最好的办法是将其视为association class的属性:
您有计划的停留时间和实际的停留时间,这意味着只有两个不同的属性。车站之间每列火车的位置告诉我们有关交通的信息。
最后,处理不同时间的更精细的方法是考虑一个Time table
类。 Metro route
,Metro station
和Time table
之间的关联将为ternary association,并且三元关联关联类可以保存计时数据(针对计划表进行计划,或实际表;但是您也可以有计划的多个版本,以及一年中每一天的实际版本,这将是完全灵活的。
现在,如果您对关联类不满意,则可以将多对多关联分解为带有中产阶级的两个多对一关联,您可以将其命名为Route stop
。
答案 1 :(得分:-1)