Что такое диаграмма временных интервалов?
A Диаграмма временных интервалов — это специализированная поведенческая диаграмма UML предназначен для визуализации точной продолжительности состояний и точных условий, при которых эти состояния изменяются вдоль линейной временной шкалы. Как важная часть спецификации унифицированного языка моделирования (UML), эта конкретная тип диаграммы UML в значительной степени фокусируется на жестких временных ограничениях, циклах тактовых импульсов и сигналах волн. Она отслеживает формы сигналов или ступенчатые линии, чтобы точно показать, как долго объект остается в определенном состоянии до того, как внешний триггер изменит его состояние.
Диаграммы временных интервалов широко используются инженерами встроенных систем, разработчиками сетевых протоколов и архитекторами аппаратного обеспечения для моделирования гонок, отслеживания изменений жизненного цикла потоков или отображения переходов регистров аппаратного обеспечения. С помощью VPasCode, вам не нужно вручную рассчитывать ширину пикселей или отображать координаты временной шкалы. Наш движок отображения автоматически обрабатывает всю временную сетку на основе ваших текстовых скриптов.
Руководство по основному синтаксису: элементы и конструкции
Чтобы создать точную, соответствующую стандартам диаграмму временных интервалов UML в PlantUML, необходимо освоить типы участников, определения состояний, временные интервалы и ограничения синхронизации.
1. Объявление участников (надежные vs. краткие)
Вы можете моделировать временные интервалы с помощью двух различных визуальных стилей в зависимости от того, насколько подробной должна быть ваша система. Их необходимо объявлять с помощью явных ключевых слов:
- Надежные временные интервалы: Отображает состояния как отдельные, стекающиеся строки. Подходит для высокого уровня программных процессов.
robust "Поток приложения" as Thread - Краткие временные интервалы: Отображает состояния вдоль одной плоской линии, используя штриховку для обозначения изменений. Идеально подходит для компактных карт сигналов аппаратного обеспечения.
concise "Регистр ЦП" as Reg
2. Определение переходов состояний и временных шагов
В отличие от других диаграмм, вы изменяете состояния, объявляя контрольную точку времени с помощью символа @ символа, указывая на участника, и используя ключевое слово is ключевое слово. Имена состояний, содержащие пробелы или специальные символы, должны быть заключены в кавычки:
@0
Thread is Idle
@10
Thread is "Обработка данных"
3. Генерация тактовых сигналов
Для моделирования двоичных аппаратных часов используйте clock ключевое слово. Вы должны указать период цикла, необязательный коэффициент заполнения и внутреннее имя:
clock "Системный часовой сигнал" как CLK с периодом 2
4. Добавление строгих ограничений по времени и временных графиков
Для документирования строгих сроков выполнения (например, обеспечение перехода системы в заданный временной интервал) используйте <-> синтаксис для соединения двух временных координат с описательной меткой:
@10 <-> @40 : {Меньше 30 мс}
Рекомендации по созданию чистых временных схем
- Сохраняйте единообразие единиц времени: PlantUML рассматривает целые числа временной шкалы как общие последовательные шаги. Выберите единый временной интервал для вашего проекта (например, такты, микросекунды или секунды) и соблюдайте его последовательно.
- Используйте метки для сложных переходов: Вы можете добавить текстовые сообщения непосредственно к изменениям состояния, добавив двоеточие сразу после присвоения состояния (например,
@10nReg читает : "Запустить прерывание"). - Стратегически расставляйте объявления: PlantUML располагает линии жизни вертикально в том же порядке, в котором они объявлены в вашем скрипте. Всегда размещайте основные часы в самом верху для удобства выравнивания.
Примеры диаграмм временных интервалов PlantUML в реальных условиях
Пример 1: Кэш и состояния регистров микроконтроллера (Кратко и с формой импульсов часов)
Этот исполняемый чертеж демонстрирует классическую временную шкалу инженерии встраиваемых систем, в которой работает стандартный системный тактовый сигнал вместе с кратким регистром хранения данных, отслеживающим состояния аппаратных компонентов.
@startuml
clock "Системный часовой сигнал (CLK)" как clk с периодом 2
concise "Регистр шины данных" как Reg
@0
Reg пуст
@2
Reg читает : "Получить"
@6
Reg записывает
@10
Reg заблокирован
@14
Reg пуст
@enduml 
Разбор синтаксиса: С clock директива автоматически создает ритмичную прямоугольную волну высокого/низкого уровня. Reg строка обрабатывает несколько последовательных назначений состояний по абсолютной сетке временной шкалы. Строки текста, оканчивающиеся двоеточием (например, : "Получить") отображаются в виде аккуратных выносок непосредственно над линией границы перехода.
Пример 2: Асинхронное обновление токена веб-потребителя (надежные ограничения многопоточности)
Этот продвинутый, полностью функциональный чертеж архитектуры программного обеспечения использует надежный формат макета для отслеживания рабочего процесса многопоточного веб-приложения, отображая точные временные ограничения между веб-клиентом и рабочим процессом авторизации.
@startuml
robust "Веб-браузерный клиент" как Web
robust "Рабочий токена авторизации" как Auth
@0
Web находится в режиме ожидания
Auth спит
@5
Web ожидает токен
Auth проверяет
@15
Auth генерирует
@15 <-> @25 : {Окно генерации}
@25
Auth спит
Web отображает страницу
@40
Web находится в режиме ожидания
@enduml 
Разбор синтаксиса: Используя robust объявление, состояния четко перечислены по оси Y для каждой отдельной строки жизненного цикла. Ограничение оценки времени (@15 <-> @25 : {Окно генерации}) рисует стандартную двустороннюю стрелку размеров в верхней части сетки временной шкалы, указывая на строгое операционное ограничение.