СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ, НОВЫЕ ПОДХОДЫ Докладчик: Соколов В.В. (СПбГУ) svv@tercom.ru Введение: современные системы • • • • • Распределенность Сложность Параллелизм Встроенность и отказоустойчивость Различные производители Формальное описание протоколов взаимодействия Использование стандартов на протоколы 2 Введение: стандарты MSC и SDL Message Sequence Chart Specification and Description Language process S msc Sample State_1 O1 O2 O3 A B x If y State_2 Code Msg z Connector - ITU-T Recommendation Z.120 ITU-T Recommendation Z.100 3 Введение: Подходы и проблемы совместного использования MSC и SDL Подходы: Проблемы: • MSC и SDL независимы • Генерация SDL по MSC • Неуправляемость генерации • Проблемы с верификацией при рассогласованияx моделей • Слабость используемой (H)MSC модели - система описывается на MSC, SDL не редактируется - одноразовый синтез - инкрементальный подход • Верификация – трассы (MSC на SDL) – состояния протокола – (параллельное исполнение моделей) анализ одной модели 4 Генерация: обзор подходов Обобщенная модель генерации: MSC → FSM → SDL где FSM (Finite State Machine) описывает поведение только одного объекта Подходы и их оценка: • Непосредственный (FSM модель не подвергается преобразованиям) // Robert G., Khendek F., Grogono P. Deriving an SDL specification with a given architecture from a set of MSCs + в полученной SDL модели лучше узнаваема MSC модель – невозможность синтеза в части случаев – излишне громоздкая SDL модель в части случаев • С преобразованием (FSM модель изменяется) √ // Mansurov N., Zhukov D. Automatic synthesis of SDL models in Use Case Methodology + работает всегда + возможное улучшение SDL модели в части случаев – возможное ухудшение SDL модели в части случаев – SDL модель хуже узнаваема • Инкрементальный перенос изменений с MSC // Khendek F., Vincent D. Enriching SDL Specifications with MSCs – возможен в очень малом количестве случаев 5 Генерация: причины появления проблем в подходе с преобразованием Обобщенная модель генерации: MSC → FSM → SDL Детализация преобразований: MSC → FSM → det_FSM → min_FSM → SDL Проблемы: – неуправляемость процесса (получение SDL моделей не удобных для разработчика) – возможные неоправданные усложнения SDL 6 Генерация: Пример неоправданных усложнений SDL: 1(2) msc Доходы msc Расходы 1 msc Отчет 2 Запрос 1 alt 2 2 Запрос Начало работы Начало работы С2 Расходы 1 С1 Доходы_N Расходы_N Доходы С2 С1 Отчет о доходах Отчет о расходах Доходы_N Запрос Начало работы Отчет о доходах Запрос Начало работы Отчет о расходах Расходы_N 7 Генерация: Пример неоправданных усложнений SDL: 2(2) State State Запрос Запрос Начало работы Начало работы Доходы_N Начало работы Расходы_N С1 С1 Отчет о доходах Доходы_N Отчет о доходах С2 С2 Отчет о расходах С3 Отчет о расходах Расходы_N Доходы_N Вариант сгенерированного SDL после детерминизации и минимизации Отчет о доходах Расходы_N Отчет о расходах Желаемый вариант 8 Генерация: предлагаемые решения Влияния на процесс генерации: изменения автомата для улучшения генерируемого SDL MSC → FSM → det_FSM → min_FSM настройка FSM для защиты от преобразований → SDL обратные преобразования Полученные результаты: – выделение SDL процедур – защита от эффектов ухудшения SDL – генерация SDL кода в виде, удобном для разработчика 9 Генерация: “переразложение” автомата D A E B C Автомат можно “переразложить” для получения того или иного варианта SDL кода, реализующего одну и ту же модель. D A E B C E Критерием этого является возможность провести синтез – “детерминированность по входящим сигналам”. 10 Генерация: выделение SDL процедур Выделяются области: 1. Граф области является гамаком (один вход и один выход) 2. Равны языки автоматов области (вход – начальная, выход – завершающая) 3. В области нет завершения автомата 4. Область “достаточно велика” P P Также данный способ применим для выделение не повторяющихся (одиночных) процедур для улучшения структуры генерируемого SDL. 11 Генерация: защита области от процедур детерминизации – минимизации D L A A C E E A Перемаркировка области неиспользуемым символом A B F B B F H B G H H G H Детерминизация и минимизация D A C E E B Перемаркировка обратно L A A A F F H G B B B H G 12 Генерация: области применения 1. Генерация SDL из (H)MSC 2. Генерация SDL из других моделей, сводящихся к конечно-автоматным (частный случай – предложенное расширение MSC) 3. Использование в других технологиях, где SDL модель является промежуточной (например, для перехода в VHDL) 4. Оптимизация имеющегося SDL кода (событийная модель сохраняется, работа с переменными утрачивается) 13 Верификация: существующие подходы и их проблемы Подходы: 1. MSC описывает трассы, которые «накладываются» на SDL модель 2. Состояния протокола - параллельное исполнение SDL и MSC моделей с некоторым ограничением потенциальной бесконечности // Holzmann G. Design and Validation of Computer Protocols Проблемы, вызванные расхождением SDL и MSC моделей, допустимых с точки зрения человеческой логики: • • • • • • SDL модель циклична, а на MSC сценарии цикличности нет Реализация на SDL модели нескольких MSC ролей Введение дополнительных сообщений на SDL модели Разбиение MSC роли на несколько сервисов Разрозненность MSC сценариев Отсутствие на MSC диаграммах символа завершения 14 Верификация: предлагаемый подход 1. для каждого из объектов переход от MSC и SDL диаграмм к конечным автоматам с учетом предметной области 2. модификация автоматов: • разделение сообщений на “рассматриваемые” и “не рассматриваемые” • расширение множества завершающих состояний 3. поиск такого состояния на модифицированном SDL-автомате, что начиная с него можно “уложить” все возможные трассы, задаваемые модифицированным MSC-автоматом (трасс может быть бесконечное число из-за наличия циклов) 4. process S State_1 A B If State_2 Code Msg Connector - Вычисление автомата для алгоритма проверки Поиск “одного автомата в другом” интерпретация результата 15 Верификация: нахождение вложения автоматов 1. Выбор состояния, претендующего на начальное 2. Перемаркировка состояний в завершающие 3. Проведение анализа ( Lang ( M 1) Lang ( M 2)) ( Lang ( M 1) Lang ( M 2) Lang ( M 2)) ( Lang ( M 1 M 2) Lang ( M 2)) ( Lang (min(det( M 1 M 2))) Lang (min(det( M 2)))) (min(det( M 1 M 2)) min(det( M 2))) Соответствующая цепочка эквивалентностей обозначает, что вложение одного языка в другой мы можем проверить конструктивно. Для этого используется: 1. “Склеивание” начальных вершин автоматов 2. Операции детерминизации и минимизации 3. Проверка изоморфности автоматов 16 Верификация: алгоритм MSC FSM SDL словарь сообщений словарь сообщений FSM словарь общих сообщений FSM_преобразованный FSM_преобразованный обработка получение и интерпретация результата 17 Верификация: пример 1(2) msc 1 msc 2 Checked Checked C1 S1 C2 a 1 b 2 a 3 b 4 C1 C2 Message c 3 d 4 Notification S2 C1 C2 c 1 d 2 C2 SDL реализация: • удовлетворяет MSC спецификации 1, без учета спецификаций 2, 3 и 4; • удовлетворяет MSC спецификации 2, без учета спецификаций 1, 3 и 4; • удовлетворяет спецификациям 1 и 2 вместе, если начальной является спецификация 1; • удовлетворяет спецификациям 1 и 2 вместе, если начальной является спецификация 2; S1 18 Верификация: пример 2(2) S1 msc 3 msc 4 Checked Checked a a b b 1 3 2 4 a 3 b 4 C1 Notification S2 c 1 d 2 C2 S1 SDL реализация: • удовлетворяет спецификации 3, учитывая остальные спецификации; • не удовлетворяет спецификации 4, учитывая остальные спецификации. 19 Верификация: обработка сложных случаев (идеи) alt B X A B A A Y A B B X X X B X Y D B X A A D Y Z A Y A D D Z Y Z Z B X [нет сохраненных сигналов] [сохранен сигнал A] D Z … Используем несколько автоматов с переходами между ними для эмуляции работы очереди (Save и уничтожение сигналов) 20 Верификация: апробация Разрозненные MSC диаграммы SDL диаграммы msc Sample1 O1 O2 msc Sample2 O3 xO1msc Sample3O2 O3 y xO1msc Sample4O2 O3 y xO1msc Sample5O2 z z O3 y xO1 z O2 O3 y x y z z • MSC и SDL диаграммы были взяты из реальных проектов; • SDL диаграммы были достаточно сложными после многолетнего сопровождения; • были найдены ошибки и проблемные места. Их качественные характеристики: – не отслеживание человеком стыков между обычными и групповыми состояниями; – возможность удалить часть состояний; – избыточность (дублирование одинаковых фрагментов). 21 Расширение описательных возможностей MSC: обоснование 1 (3) Существующие возможности MSC. Шаг 1: описание прямых веток, стандартная декомпозиция A B 1 B B 2 C B 3 Для эффективного использования генерации и верификации MSC модель должна быть максимально более близкой (по полноте) к SDL модели. Рассмотрим проблемы существующего стандарта MSC при создании подобной модели. 22 Расширение описательных возможностей MSC: обоснование 2 (3) Существующие возможности MSC. Шаг 2: проработка вариантов B1 A B C alt B2 B3 D1 E1 С D2 E2 С1 или F1 C2 требуемые завершения после варианта исполнения 23 Расширение описательных возможностей MSC: обоснование 3 (3) Существующие возможности MSC. A B1 alt Шаг 3: описание вариантов на MSC B2 B3 C D1 E1 C1 D2 E2 C2 D1 E1 F1 Отрицательные моменты: 1. вернулись на детализируемую диаграмму, а детализирующую выкинули; 2. большое количество “перерисовок”; 3. полученная диаграмма громоздка. 24 Расширение описательных возможностей MSC: граничные условия Граничные условия для решения: • оно должно быть удобным в использовании; • оно должно быть достаточно мощным; • в нем должны присутствовать графические описания; • по возможности оно должно быть совместимо с имеющимся стандартом MSC; • мощность модели не должна быть выше конечно-автоматной (иначе, например, не возможен переход в SDL). 25 Расширение описательных возможностей MSC: идеи Предлагаемая модель – это некоторое статическое описание, которое отражает логику взаимодействия объектов, и для каждого из объектов может быть превращено в конечный автомат. Графические диаграммы, описывающие взаимодействия объектов 1 2 3 A B E A C F Текстовые описания, задающие логику стыковки сценариев while function_1=2 do begin if function_2=0 then return 1 else procedure_2 fi; procedure_7; end; Как графические, так им текстовые описания делятся на два типа: • “процедуры” (не возвращают результат; соответствует некоторому (сложному) сценарию); • “функции” (возвращают результат; разбивают множество вариантов поведения внутри на нумерованные классы). 26 Расширение описательных возможностей MSC: предложенное решение Предлагаемые текстовые конструкции: • if then else fi • case • for (n) повторить n раз • for () повторить 0..∞ раз • while • alt • opt С Pascal’e-подобным синтаксисом. Возможное расширение графических возможностей MSC msc advanced alt Proc_1 Proc_2 1 Proc_3 5 a b c 7 27 Расширение описательных возможностей MSC: структуры для разбора Структура для разбора: S Пример разбора if общего вида: S = S0 S0 выражение для if C0 C Z Примеры: одно сообщение S1 a K Ø C0-else C0-then F два сообщения K0 S1 S2 часть then часть else S1 C1 a Z1 K1 C = C1 U C2 Z = Z1 U Z2 C2 Z2 K1 K2 K1 K=q q S2 b K2 F1 F2 Блок – конечно-автоматная структура для разбора, имеющая выделенные подмножества вершин: • вершина S обозначает начало блока; • вершина K обозначает конец блока; • множество вершин F обозначает завершение исполнения; • Z – множество вершин выхода из “процедуры” ; • C – множество вершин выхода из “функции”, маркированных кодом возврата. F0 F = F0 U F1 U F2 28 Расширение описательных возможностей MSC: сравнение с существующими решениями • Ряд решений (HMSC, UML Sequence и Collaboration, Use Case Maps…) так же обладают недостаточными возможностями в части описания обратных ветвей • Текстовые языки, нацеленные на описание взаимодействия различных объектов (Pascal--FC, Occam, Ada, Java, Lotos…). Они предназначены для описания поведения только одного объекта, а не группы. Поэтому они проигрывают в выразительности Похожие решения: • LSCs (Life Sequence Charts) // Damm W., Harel D. LSCs: Breathing Life into Message Sequence Charts она разбивает все сценарии на несколько (3) классов по критичности завершения, а в нашем случае вариантов поведения может быть произвольное количество проигрывает по описательным возможностям требует специальных средств для исполнения, а в нашем случае мы переходим в SDL • CTP является комбинацией сетей Петри и MSC //Roychoudhury A., Thiagarajan P.S. Communicating Transaction Processes предлагаемое решение выигрывает из-за использования АЯВУ против сетей Петри. 29 Интеграция подходов на базе технологии REAL Расширение MSC Базовый MSC Верификация Структуры данных Генерация SDL SDL с фрагментами АЯВУ 30 Результаты Впервые поставлена задача настройки генерируемого SDL кода для повышения его читабельности и соответствия решаемой задаче. Разработан оригинальный алгоритм генерации SDL по MSC, решающий данную задачу. Разработана новая математическая модель верификации SDL по MSC. Разработано новое расширение MSC диаграмм, позволяющее создавать описания реальных систем. На базе данных разработок представлен оригинальный взгляд на совместное использование MSC и SDL моделей. Данные решения были проинтегрированы на базе существующей технологии REAL. Апробация разработанных решений на промышленных задачах. 31