Обобщение действующих лиц

Обобщение действующих лиц (actors) обеспечивает возможность вынести поведение, общее для двух и более действующих лиц, в действующее лицо-родителя

  • ДЛ-родитель является более обобщенным, чем его потомки, а ДЛ-потомки — более специализированными, чем их родитель
  • Дочернее ДЛ везде может заменять ДЛ-родителя — это принцип замещаемости
  • ДЛ-родитель обычно абстрактный — он определяет абстрактную роль
  • Дочерние ДЛ конкретны — они определяют конкретные роли
  • Обощение ДЛ может упрощать диаграммы вариантов использования

Рассмотрим простой, но достаточно показательный пример.

Рис. 1. Пример двух ДЛ с общим поведением

На рисунке видно, что Клиент и Торговый агент имеют много общего: оба ДЛ могут инициировать одни и те же варианты использования — Получить список продуктов, Заказать продукты, Принять платеж. Разница только в ВИ Вычислить комиссию.

Следовательно мы можем обобщить Клиента и Торгового агента — конкретные ДЛ, в абстрактное ДЛ — Покупатель.

Рис. 2. Общее поведение вынесено в ДЛ-родителя

Следует отметить, что ДЛ-родитель в обобщении ДЛ не всегда абстрактен. Это может быть конкретная роль. Однако хорошим стилем считается делать ДЛ-родителя абстрактным для сохранения простоты семантики обобщения.

Материал подготовлен по книге Джима Арлоу и Айлы Нейштадта "UML 2 и Унифицированный процесс: практический объектно-ориентированный анализ и проектирование, 2-е издание"

Дополнительную информацию можно получить в блоге Дениса Иванова и еще раз в блоге Дениса Иванова
{smfdispute}