На этом шаге рассмотрим типичные приемы моделирования реализации варианта использования в UML.
Одно из назначений коопераций состоит в моделировании реализации варианта использования. Как правило, анализ системы диктуется теми вариантами использования, которые вы идентифицировали. Переходя же к этапу реализации, вы должны материализовать их в виде конкретных структур и поведений. В общем случае каждый вариант использования должен быть реализован одной или несколькими кооперациями. Если рассматривать систему в целом, то классификаторы, участвующие в кооперации, которая связана с некоторым вариантом использования, будут принимать участие и в других кооперациях. Таким образом, структурное содержимое коопераций имеет тенденцию перекрываться.
Чтобы смоделировать реализацию варианта использования, следует:
Например, на рис. 1 изображены варианты использования, относящиеся к системе контроля кредитных карточек, включая основные: Place order (Разместить заказ) и Generate bill (Выдать счет), а также подчиненные: Detect card fraud (Обнаружить мошенничество) и Validate transaction (Проверить транзакцию).
Рис.1. Моделирование реализации варианта использования
Хотя в большинстве случаев не возникает необходимости в явном моделировании этой связи – такую задачу можно возложить на инструментальные средства, – на данном рисунке показана явная модель реализации Place order с помощью кооперации Order management (Управление заказами). В свою очередь, эта кооперация может быть разложена на структурный и поведенческий аспекты, что в итоге дает диаграммы классов и диаграммы взаимодействия. Таким образом, через связь реализации вариант использования связывается с его сценариями.
В большинстве случаев нет необходимости моделировать явно связь между вариантом использования и реализующей его кооперацией. Можно оставить это соединение на заднем плане модели, а затем позволить инструментальным средствам использовать его, чтобы упростить навигацию между вариантом использования и его реализацией.
На следующем шаге рассмотрим типичные приемы моделирования реализации операции в UML.