9. Message sequence chart
Указываются: вид сообщения (с параметрами), интервалы между сообщениями, максимальное время ожидания и т.д.
Нужно рисовать все возможные сценарии, чтобы система не падала при любых внешних воздействиях. Надо рисовать как можно больше (и дольше). Надо понять, всё ли мы учли.
“What if” – анализ “что, если”.
Это – первооснова системы. Здесь ещё нет алгоритмов её работы. Но есть поведение системы в целом.
MSC даёт материал для написания тестов.
10. State transition diagram
Берём один объект из всех сценариев поведения. Пытаемся описать только его поведение. Делим его на устойчивые состояния, рисуем диаграмму переходов: откуда куда переходит объект, получив какое-то сообщение.
Реально переходы занимают какое-то время. Мы даём объекту закончить переход.
Переход 5 ® 6 тоже важен: можно сделать много состояний, можно мало; плохо, когда один переход занимает много операций, а остальные – мало (нужно вводить дополнительные состояния).
Главная работа проектировщика – переход от 5 к 6.
|
|
11. Specification and description language(SDL)
Состояния приёма, посылки сигнала Þ можно моделировать работу параллельных процессов.
На диаграмме должны быть видны пути передачи сигналов.
Если 6 выполнено хорошо, то переход 6 ® 7 не сложен.
В RTST было по сути только 4 и 7, т.н. semantic gap (семантический разрыв). В REAL есть ещё 5 и 6.
Конечная автоматная SDL-модель – удобное выразительное средство для рисования событийной логики системы.
12. Конвертер из SDL в объектный программный код
Почему сложно: посылка-приём сообщения ~ 300 команд.
Удалось найти сужение, основываясь на ограничениях (переходы короткие, есть только 20% критичных объектов, можно локализовать данные), т.е. учитываем специфику предметной области. Применяется не свёртка-развёртка. Есть только один объект – ФПО (функциональное ПО), остальные объекты – вызов процедуры (~ 30 команд).