2014-12-28 4 views
0

Мне было предложено документировать кусок кода, используя диаграммы 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, м, используя наследование в то время как код не использует наследование. Как вы думаете?

ответ

1

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

enter image description here

Что касается наследования, то ответ был бы другим, что это UML для .. чтобы представить, как реализовать или объяснить понятия. Если последнее, не было бы проблем с использованием наследования.

Смежные вопросы