Диаграмма синхронизации
Диаграмма синхронизации
Заголовок раздела «Диаграмма синхронизации»Диаграмма синхронизации (timing diagram) — это разновидность диаграммы взаимодействия (interaction diagram). Она показывает изменение состояния или значения участника взаимодействия во времени.
В отличие от диаграммы последовательности, где главный акцент сделан на сообщениях между участниками, диаграмма синхронизации делает главным объектом анализа временную ось и изменение состояний. Она полезна там, где важно не просто “кто кому что отправил”, а “когда объект был в каком состоянии” и “какие временные ограничения должны соблюдаться”.
В прикладных ИС эта диаграмма используется редко. Она чаще полезна для систем, где есть протоколы, устройства, таймеры, ожидания, дедлайны, последовательности сигналов или критичные интервалы времени.
Основные элементы
Заголовок раздела «Основные элементы»На диаграмме синхронизации обычно используются следующие элементы:
- линия жизни (lifeline);
- состояние или значение (state or value);
- временная ось (time axis);
- изменение состояния или значения (state/value change);
- событие (event);
- сообщение (message);
- ограничение длительности (duration constraint);
- временное ограничение (time constraint);
- наблюдение времени (time observation);
- наблюдение длительности (duration observation).
Линия жизни (lifeline) представляет участника, состояние которого отслеживается. Это может быть объект, устройство, компонент или другой элемент модели.
Состояние или значение (state or value) показывает, в каком состоянии находится линия жизни или какое значение имеет её характеристика в определённый момент времени.
Временная ось (time axis) задаёт направление времени. Обычно время читается слева направо.
Состояния и значения
Заголовок раздела «Состояния и значения»Диаграмма синхронизации может показывать не только состояния в смысле диаграммы состояний, но и значения некоторого свойства.
Примеры состояний:
Ожидает оплату;Оплачен;Передан в доставку;Завершён.
Примеры значений:
дверь = открыта;температура = высокая;соединение = активно;доступ = разрешён.
Если речь идёт о предметном объекте с жизненным циклом, состояния должны быть согласованы с диаграммой состояний. Если речь идёт о техническом параметре, нужно явно понимать, почему этот параметр важен для модели.
Временные ограничения
Заголовок раздела «Временные ограничения»Главная ценность диаграммы синхронизации — возможность явно показать ограничения времени.
Временное ограничение (time constraint) задаёт условие на момент времени. Например:
{t < 10 секунд}Ограничение длительности (duration constraint) задаёт условие на интервал между двумя событиями. Например:
{длительность <= 5 минут}Такие ограничения важны, если система должна реагировать в заданный срок, удерживать состояние не дольше определённого времени или соблюдать протокол взаимодействия.
Когда использовать
Заголовок раздела «Когда использовать»Диаграмма синхронизации полезна, если в модели существенны временные свойства.
Хорошие случаи использования:
- объект должен перейти в новое состояние за ограниченное время;
- устройство или внешний сервис имеет протокол с временными интервалами;
- нужно показать таймауты, ожидания и дедлайны;
- нужно сравнить состояния нескольких линий жизни на одной временной шкале;
- нужно проверить согласованность state diagram с временными ограничениями.
Для обычных бизнес-сценариев диаграмма синхронизации часто избыточна. Если время не является важным ограничением, лучше использовать диаграмму деятельности, диаграмму состояний или диаграмму последовательности.
Связь с другими диаграммами
Заголовок раздела «Связь с другими диаграммами»Диаграмма синхронизации связана с диаграммой состояний: она может показывать, когда объект находится в состояниях, описанных в state machine. Также она связана с диаграммой последовательности, потому что события и сообщения могут объяснять, почему линия жизни изменила состояние.
Если на диаграмме синхронизации показано состояние Оплачен, оно должно соответствовать состоянию или признаку объекта в информационной модели. Если показан таймаут, он должен быть связан с требованием, бизнес-правилом или техническим ограничением.
Типичные ошибки
Заголовок раздела «Типичные ошибки»Частые ошибки при использовании диаграммы синхронизации:
- применять её для обычного сценария без важных временных ограничений;
- показывать UI-состояния вместо состояний предметного или технического объекта;
- вводить временные интервалы без связи с требованиями или правилами;
- дублировать диаграмму последовательности, не добавляя информации о времени;
- показывать состояния, которых нет в жизненном цикле объекта;
- смешивать физическое время, логические шаги сценария и порядок сообщений без пояснения.