Шаг 212.
Унифицированный язык моделирования UML.
Моделирование реализации операции

    На этом шаге рассмотрим типичные приемы моделирования реализации операции в UML.

    Еще одно назначение коопераций – это моделирование реализации операций. Часто ее можно специфицировать непосредственно в коде, однако для тех операций, которые требуют совместной работы нескольких объектов, перед написанием кода лучше смоделировать реализацию с помощью кооперации.

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

    Чтобы смоделировать реализацию операции, необходимо:

  1. Идентифицировать параметры, возвращаемые значения и другие объекты, видимые операции. Они выступят в качестве ролей кооперации.
  2. Если операция достаточно проста, представить ее реализацию непосредственно в коде, который можно поместить на задний план модели либо явно визуализировать в примечании.
  3. Если операция сложна алгоритмически, смоделировать ее реализацию с помощью диаграммы деятельности.
  4. Если операция сложна либо требует долгого и тщательного проектирования, представить ее реализацию в виде кооперации. В дальнейшем можно развернуть структурную и поведенческую составляющие кооперации, используя соответственно диаграммы классов и диаграммы взаимодействия.

    В качестве примера на рис. 1 показан активный класс RenderFrame (ПостроениеФрейма) и раскрыты три его операции.


Рис.1. Моделирование реализации операции

    Функция progress (обработка) достаточно проста и может быть реализована сразу в коде, приведенном в примечании. А вот операция render (визуализировать) намного сложнее, поэтому ее реализация возложена на кооперацию Ray trace (Трассировка лучей). Хотя на рисунке это не показано, вы могли бы изучить кооперацию изнутри и увидеть ее структурные и поведенческие аспекты.

    Операцию можно моделировать и с использованием диаграмм деятельности. Эти диаграммы, по сути, представляют собой блок-схемы, поэтому для алгоритмически сложных операций, которые нужно моделировать явно, это обычно наилучший выбор. Однако если операция требует участия множества объектов, лучше выбрать кооперации, поскольку они позволяют моделировать как структурные, так и поведенческие аспекты операции.

    На следующем шаге рассмотрим типичные приемы моделирования механизма в UML.




Предыдущий шаг Содержание Следующий шаг