320 likes | 607 Views
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ. Докладчик : Соколов В.В. (СПбГУ) svv@tercom.ru. Введение: современные системы. Распределенность Сложность Параллелизм Встроенность и отказоустойчивость Различные производители. Формальное описание протоколов взаимодействия
E N D
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕMSC И SDL МОДЕЛЕЙ,НОВЫЕ ПОДХОДЫ Докладчик:Соколов В.В. (СПбГУ) svv@tercom.ru
Введение: современные системы • Распределенность • Сложность • Параллелизм • Встроенность и отказоустойчивость • Различные производители • Формальное описание протоколов взаимодействия • Использование стандартов на протоколы
Введение: стандарты MSC и SDL Specification and Description Language Message Sequence Chart ITU-T Recommendation Z.120 ITU-T Recommendation Z.100
Введение: Подходы и проблемысовместного использования MSC и SDL Подходы: • MSC и SDL независимы • Генерация SDL по MSC - система описывается на MSC, SDL не редактируется - одноразовый синтез - инкрементальный подход • Верификация • трассы (MSC на SDL) • состояния протокола(параллельное исполнение моделей) • анализ одной модели Проблемы: • Неуправляемость генерации • Проблемы с верификацией при рассогласованияx моделей • Слабость используемой (H)MSC модели
Генерация: обзор подходов Обобщенная модель генерации: 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 – возможен в очень малом количестве случаев
Генерация: причины появления проблем в подходе с преобразованием Обобщенная модель генерации: MSC → FSM → SDL Детализация преобразований: MSC → FSM → det_FSM → min_FSM → SDL Проблемы: • неуправляемость процесса(получение SDL моделей не удобных для разработчика) • возможные неоправданные усложнения SDL
Генерация: Пример неоправданных усложнений SDL: 1(2)
Генерация: Пример неоправданных усложнений SDL:2(2) Вариант сгенерированного SDLпоследетерминизации и минимизации Желаемый вариант
Генерация:предлагаемые решения Влияния на процесс генерации: изменения автоматадля улучшения генерируемого SDL MSC → FSM → det_FSM → min_FSM → SDL настройка FSM для защиты от преобразований обратные преобразования Полученные результаты: • выделение SDL процедур • защита от эффектов ухудшения SDL • генерация SDL кода в виде, удобном для разработчика
Генерация:“переразложение” автомата Автомат можно “переразложить” для получения того или иного варианта SDL кода, реализующего одну и ту же модель. Критерием этого является возможность провести синтез – “детерминированность по входящим сигналам”.
Генерация:выделение SDL процедур • Выделяются области: • Граф области является гамаком(один вход и один выход) • Равны языки автоматов области(вход – начальная, выход – завершающая) • В области нет завершения автомата • Область “достаточно велика” Также данный способ применим для выделение не повторяющихся(одиночных) процедур для улучшения структуры генерируемого SDL.
Генерация:защита области от процедур детерминизации – минимизации Перемаркировка области неиспользуемым символом Детерминизацияиминимизация Перемаркировка обратно
Генерация:области применения • Генерация SDL из (H)MSC • Генерация SDL из других моделей, сводящихся к конечно-автоматным(частный случай – предложенное расширение MSC) • Использование в других технологиях, где SDL модель является промежуточной(например, для перехода в VHDL) • Оптимизация имеющегося SDL кода (событийная модель сохраняется, работа с переменными утрачивается)
Верификация: существующие подходы и их проблемы Подходы: 1. MSC описывает трассы, которые «накладываются» на SDL модель 2. Состояния протокола - параллельное исполнение SDL и MSC моделей снекоторым ограничением потенциальной бесконечности //Holzmann G. Design and Validation of Computer Protocols Проблемы, вызванные расхождением SDL и MSC моделей, допустимых с точки зрения человеческой логики: • SDL модель циклична, а на MSC сценарии цикличности нет • Реализация на SDL модели нескольких MSC ролей • Введение дополнительных сообщений на SDL модели • Разбиение MSC роли на несколько сервисов • Разрозненность MSC сценариев • Отсутствие на MSC диаграммах символа завершения
Верификация:предлагаемый подход • для каждого из объектов переход от MSC и SDL диаграмм к конечным автоматам с учетом предметной области • модификация автоматов: • разделение сообщений на “рассматриваемые” и “не рассматриваемые” • расширение множества завершающих состояний • поиск такого состояния на модифицированном SDL-автомате, что начиная с него можно “уложить” все возможные трассы, задаваемые модифицированным MSC-автоматом(трасс может быть бесконечное число из-за наличия циклов) • интерпретация результата Вычислениеавтомата для алгоритма проверки Поиск “одного автомата в другом”
Верификация:нахождение вложения автоматов • Выбор состояния, претендующего на начальное • Перемаркировка состояний в завершающие • Проведение анализа • Соответствующая цепочка эквивалентностей обозначает, что • вложение одного языка в другой мы можем проверить конструктивно. • Для этого используется: • “Склеивание” начальных вершин автоматов • Операции детерминизации и минимизации • Проверка изоморфности автоматов
Верификация: алгоритм MSC SDL словарь сообщений словарь сообщений FSM FSM словарь общих сообщений FSM_преобразованный FSM_преобразованный обработка получение и интерпретация результата
Верификация: пример 1(2) • SDL реализация: • удовлетворяет MSC спецификации 1, без учета спецификаций2,3и4; • удовлетворяет MSC спецификации 2, без учета спецификаций 1, 3 и 4; • удовлетворяет спецификациям 1 и 2 вместе, если начальной являетсяспецификация 1; • удовлетворяет спецификациям 1 и 2 вместе, если начальной являетсяспецификация 2;
Верификация: пример 2(2) • SDL реализация: • удовлетворяет спецификации 3, учитывая остальные спецификации; • не удовлетворяет спецификации 4, учитывая остальные спецификации.
Верификация:обработка сложных случаев (идеи) Используем несколько автоматов с переходами между ними для эмуляции работы очереди (Save и уничтожение сигналов)
Верификация: апробация РазрозненныеMSC диаграммы SDL диаграммы • MSC и SDL диаграммы были взяты из реальных проектов; • SDL диаграммы были достаточно сложными послемноголетнего сопровождения; • были найдены ошибки и проблемные места. Их качественные характеристики: • не отслеживание человеком стыков между обычными и групповыми состояниями; • возможность удалить часть состояний; • избыточность (дублирование одинаковых фрагментов).
Расширение описательных возможностей MSC: обоснование 1 (3) Существующие возможности MSC. Шаг 1: описание прямых веток,стандартная декомпозиция Для эффективного использования генерации и верификации MSCмодель должна быть максимально более близкой (по полноте) к SDL модели. Рассмотрим проблемы существующего стандарта MSC при создании подобной модели.
Расширение описательных возможностей MSC: обоснование 2 (3) Существующие возможности MSC. Шаг 2: проработка вариантов требуемые завершения после варианта исполнения
Расширение описательных возможностей MSC: обоснование 3 (3) Существующие возможности MSC. Шаг 3: описание вариантов на MSC • Отрицательные моменты: • вернулись на детализируемую диаграмму, адетализирующую выкинули; • большое количество “перерисовок”; • полученная диаграмма громоздка.
Расширение описательных возможностей MSC: граничные условия • Граничные условия длярешения: • оно должно быть удобным в использовании; • оно должно быть достаточно мощным; • в нем должны присутствовать графические описания; • по возможности оно должно быть совместимо с имеющимся стандартом MSC; • мощность модели не должна быть выше конечно-автоматной (иначе, например, не возможен переход в SDL).
Расширение описательных возможностей MSC: идеи Предлагаемая модель – это некоторое статическое описание, котороеотражает логику взаимодействия объектов, и для каждого из объектовможет быть превращено в конечный автомат. Графические диаграммы, описывающие взаимодействия объектов Текстовые описания, задающие логику стыковки сценариев while function_1=2 do begin if function_2=0 then return 1 else procedure_2 fi; procedure_7; end; • Как графические, так им текстовые описания делятся на два типа: • “процедуры”(не возвращают результат; соответствует некоторому (сложному)сценарию); • “функции” (возвращают результат; разбивают множество вариантов поведения внутри на нумерованные классы).
Расширение описательных возможностей MSC: предложенное решение Возможное расширениеграфических возможностей MSC • Предлагаемые текстовые конструкции: • if then else fi • case • for (n)повторить n раз • for ()повторить 0..∞ раз • while • alt • opt • С Pascal’e-подобным синтаксисом.
Расширение описательных возможностей MSC: структуры для разбора • Блок – конечно-автоматная структура для разбора, имеющая выделенные подмножества вершин: • вершина S обозначает начало блока; • вершина K обозначает конец блока; • множество вершин F обозначает завершениеисполнения; • Z – множество вершин выхода из “процедуры”; • C – множество вершин выхода из “функции”, маркированныхкодом возврата.
Расширение описательныхвозможностей 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 TransactionProcessesпредлагаемое решение выигрывает из-за использования АЯВУ против сетей Петри.
Интеграция подходов на базе технологии REAL
Результаты • Впервые поставлена задача настройки генерируемого SDL кода для повышения его читабельности и соответствия решаемой задаче. • Разработан оригинальный алгоритм генерации SDL по MSC, решающий данную задачу. • Разработана новая математическая модель верификации SDL по MSC. • Разработано новое расширение MSC диаграмм, позволяющее создавать описания реальных систем. • На базе данных разработок представлен оригинальный взгляд на совместное использование MSC и SDL моделей. • Данные решения были проинтегрированы на базе существующей технологии REAL. • Апробация разработанных решений на промышленных задачах.