ооп 7. Модель взаимодействия объектов (МВО). Диаграмма взаимодействия объектов в подсистеме. Типы событий. Схемы управления. Имитирование. Каналы управления. - keykranz/oop_ex GitHub Wiki

Модель взаимодействия объектов (МВО).

Модель взаимодействия объектов (МВО) – графическое представление взаимодействия между моделями состояний и внешними сущностями. (Строится для каждой подсистемы или домена. Что ВОВНЕ нас не интересует, но ИЗВНЕ могут приходить события.)

Домен - отдельный мир (реальный, гипотетический, абстрактный), населенный определенным набором объектов, которые ведут себя в соответствии с определенным доменом правилами.

Каждая модель состояний – овал. Сущность – прямоугольник(называется терминатором). События, которые порождаются одной моделью состояний для другой или терминатором, рисуются стрелкой. События могут быть направлены к терминаторам.


Диаграмма взаимодействия объектов в подсистеме. Типы событий. Схемы управления.

МВО формируется иерархически – объекты, наиболее осведомленные о всей системе (активные) располагаются вверху диаграммы. Если событие приходит извне к МВО, находящимся вверху, терминаторы рисуются вверху – терминаторы верхнего уровня. Если события уходят или приходят к МВО нижнего уровня, терминаторы рисуются снизу. Может быть схема верхнего и нижнего управления –система ограничена терминаторами сверху или снизу.

  • Схема верхнего управления (Эти события приходят от верхних терминаторов)
  • Схема нижнего управления (Эти события приходят от нижних терминаторов

Надо стремиться к тому, чтобы на верхнем уровне взаимодействие терминатора сводилось к одной модели. С нижним этого ограничения нет – может быть сколько угодно МВО, взаимодействующих с терминаторами нижнего уровня.

Типы событий

  • Внешние события (приходят от терминатора или уходят к нему)
    • Незапрашиваемые события (не являются результатом предыдущих действий подсистемы, то есть это события управляющие, при этом не переводят объект в новое состояние)
    • Запрашиваемые события(являются результатом действий, переводят объект в новое состояние)
  • Внутренние (соединяют одну модель состояний с другой)

Имитирование.

После построения МВО надо выполнить процесс имитирования (тесты) – понять, насколько правильно была выбрана модель, нет ли ошибок. Необходимо рассмотреть всевозможные начальные состояния объектов подсистемы. Далее, в любом состоянии надо проверить, как подсистема будет реагировать на все незапрашиваемые события, и построить соответствующие каналы управления.

Имитирование - задание некоторых начальных состояний и генерация события. Наблюдение за работой системы. Оценка конечного результата.

Мы генерируем некоторое начальное состояние. Принимает незапрашиваемое состояние, смотрим какое состояние приняли все объекты в нашей системе.

2 времени имитирования:

  • Время выполнения действия
  • Время задержки – время, на протяжении которого объект должен находиться в состоянии (невозможен резкий переход из одного состояния в другое, мы должны учитывать время задержки)

Этапы имитирования (тесты)

  • Установить начальное состояние системы
  • В любом состоянии проверить, как подсистема будет реагировать на все незапрашиваемые события, и построить соответствующие каналы управления.
  • Оценить конечный результат

Каналы управления.

Канал управления – последовательность действий и событий, которые происходят в ответ на поступление некоторого незапрашиваемого состояния, когда система находится в определённом состоянии. Если возникло событие к терминатору, и эти события приводят к дальнейшим событиям от терминатора, то мы их тоже включаем в канал управления.

Пример в с++ экз Андрея и Димы