Мне было предложено документировать кусок кода, используя диаграммы UML. Код моделирует ситуацию, подобную следующей: драйвер может быть назначен одному или нескольким маршрутам. Каждый маршрут имеет направление вверх и вниз по течению. Для каждого маршрута водитель может двигаться в направлении вверх и/или в нисходящем направлении.Отображение диаграммы классов UML на код Python
Упрощенный псевдо-код для класса драйвера заключается в следующем:
class Driver:
HashMap<Route, Direction> upstream;
HashMap<Route, Direction> downstream;
HashMap<Route, Direction> assignedTo;
где карта assignedTo на самом деле это свойство возвращает HashMap, состоящее из маршрутов, где водитель присвоенных как вверх и (подумайте об этом как о двух других хэшмапах)
До сих пор я представил следующее представление UML.
----------- ---------
| CLASS | (assignedTo) | CLASS |
| DRIVER |----------------------------| ROUTE |
----------- * | * ---------
|
-------------
| CLASS |
| DIRECTION |
-------------
^ ^
| |
------------ --------------
| CLASS | | CLASS |
| UPSTREAM | | DOWNSTREAM |
------------ --------------
Однако, я немного озадачен тем фактом, что в UML I, м, используя наследование в то время как код не использует наследование. Как вы думаете?