Презентация НИИ СП РАН

реклама
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ
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
Скачать