Диаграмма класса Uml для железной дороги метро

Я пытаюсь нарисовать и определить классы в UML для следующей проблемы.

Информационная система метрополитена

Разработайте часть концептуальной схемы вышеупомянутой системы, которая позволит мне регистрировать станции (путем различия между развязками и терминалами), взаимосвязь станций (т.е. топологию сети) и расстояния (в километрах железнодорожной линии) они делят.

Каждый поезд движется по линии, проходя последовательные маршруты, т. е. перемещаясь между заданными крайними парами станций, которые не обязательно совпадают на каждом маршруте (например, Бронкс — Манхэттен, Бруклин — Квинс). Каждый маршрут имеет определенное время прибытия и пребывания на каждой станции. Фактическое время прибытия на каждую станцию ​​может отличаться от запрограммированного, как и скорость движения между станциями.

Моя первая мысль заключается в том, что основные классы должны быть:

Metro Line, Metro Station, Metro Route, Metro Route Stop, Metro Train

И я изо всех сил пытаюсь представить запланированное и реальное время.


person giorgionasis    schedule 18.03.2019    source источник
comment
Как насчет запланированной остановки и фактической остановки?   -  person Jim L.    schedule 18.03.2019
comment
реальное время, в которое метро достигает/выходит из станции, вероятно, является просто атрибутом типа date&time поезда, обновляемым во время выполнения. То же самое для запланированного времени, потому что оно обновляется в зависимости от событий. Для меня на самом деле не нужны конкретные классы, если это вопрос. Вы уверены, что есть запрограммированное время, запланированное на несколько дней/месяцев вперед?   -  person bruno    schedule 18.03.2019
comment
Будьте уверены, что построение и представление расписания гораздо сложнее, чем можно было бы подумать. Управление отправлением в режиме реального времени еще более сложное (для этих систем нужны хорошо обученные операторы). Пока вы находитесь в какой-то университетской среде, просто будьте проще...   -  person qwerty_so    schedule 19.03.2019
comment
@ThomasKilian Я согласен. Я предоставлю свою окончательную диаграмму uml, чтобы помочь другим   -  person giorgionasis    schedule 19.03.2019


Ответы (2)


Давайте посмотрим на классы, которые довольно очевидны:

  • 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, между этими двумя классами существует связь многие ко многим. время и пребывание не зависят ни исключительно от маршрута, ни только от станции. Поэтому лучше всего рассматривать его как свойство класс ассоциации:

введите здесь описание изображения

Тот факт, что у вас есть запланированное время и пребывание и фактическое время и пребывание, означает, что есть только два разных свойства. Положение каждого поезда между станциями говорит нам о движении.

Наконец, более сложный способ обработки различных временных интервалов — рассмотреть Time table класс. Тогда связь между Metro route, Metro station и Time table будет троичной ассоциацией, и класс ассоциации троичной ассоциации может содержать данные о времени (либо запланированные для запланированной таблицы, либо фактические для фактической таблицы; но вы также можете иметь несколько версий плана и версию фактического на каждый день года. Это было бы абсолютно гибко.

Теперь, если вас не устраивает класс ассоциации, вы можете разложить ассоциацию «многие ко многим» на две ассоциации «многие к одному» со средним классом, который вы могли бы назвать Route stop.

person Christophe    schedule 21.03.2019
comment
это очень хороший подход, Кристоф, но я, наконец, подхожу к нему по-другому - person giorgionasis; 22.03.2019

Окончательно,

Я придумал этот дизайн

введите здесь описание изображения

Большое спасибо

person giorgionasis    schedule 22.03.2019
comment
Хм... интересно. Потому что повествование о маршрутах и ​​линиях было двусмысленным, поскольку неясно, относилось ли слово «последовательно» к дождям или к маршрутам. Но есть много проблем с этим решением. Во-первых, каким бы ни был маршрут, это не линия. Тогда Time и Real представлены неправильно: класс не может быть связан с ассоциацией и подчиняться трем мощностям. Поезда не имеют реального времени на станции. Наконец, очень неясно, что будет представлять ваш объект расписания и как одно конкретное расписание будет связано с соответствующим временем. - person Christophe; 22.03.2019
comment
Возможно, вам следует использовать инструмент UML для работы с UML. Эта диаграмма не похожа на действительный UML. - person Geert Bellekens; 22.03.2019