СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ msc И sdl МОДЕЛЕЙ , НОВЫЕ...

31
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ, НОВЫЕ ПОДХОДЫ Докладчик : Соколов В.В. (СПбГУ) [email protected]

Upload: keelty

Post on 31-Jan-2016

83 views

Category:

Documents


0 download

DESCRIPTION

СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ. Докладчик : Соколов В.В. (СПбГУ) [email protected]. Введение: современные системы. Распределенность Сложность Параллелизм Встроенность и отказоустойчивость Различные производители. Формальное описание протоколов взаимодействия - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕMSC И SDL МОДЕЛЕЙ,

НОВЫЕ ПОДХОДЫ

Докладчик: Соколов В.В. (СПбГУ)

[email protected]

Page 2: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

2

Введение: современные системы

• Распределенность

• Сложность

• Параллелизм

• Встроенность и отказоустойчивость

• Различные производители

Формальное описание протоколов взаимодействия

Использование стандартов на протоколы

Page 3: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

3

Введение: стандарты MSC и SDL

Message Sequence Chart

process S

State_1

A B

If

Msg Code

State_2

-

Connector

Specification and Description Language

ITU-T Recommendation Z.100ITU-T Recommendation Z.120

msc Sample O1 O2 O3 x y z

Page 4: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

4

Введение: Подходы и проблемысовместного использования MSC и SDL

Подходы:• MSC и SDL независимы• Генерация SDL по MSC

- система описывается на MSC, SDL не редактируется

- одноразовый синтез

- инкрементальный подход

• Верификация– трассы (MSC на SDL)– состояния протокола

(параллельное исполнение моделей)– анализ одной модели

Проблемы:• Неуправляемость

генерации• Проблемы с

верификацией при рассогласованияx моделей

• Слабость используемой (H)MSC модели

Page 5: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

5

Генерация: обзор подходов

Подходы и их оценка:• Непосредственный (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где FSM (Finite State Machine) описывает поведение только одного объекта

Page 6: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

6

Генерация: причины появления проблем в подходе с

преобразованиемОбобщенная модель генерации:

MSC → FSM → SDL

Детализация преобразований:

MSC → FSM → det_FSM → min_FSM → SDL

Проблемы:

– неуправляемость процесса(получение SDL моделей не удобных для разработчика)

– возможные неоправданные усложнения SDL

Page 7: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

7

Генерация: Пример неоправданных усложнений SDL: 1(2)

msc Отчет

1 2

Расходы

Доходы

alt

msc Расходы

1 2 Запрос Начало работы Расходы_N Отчет о расходах

С1

С1

msc Доходы

1 2 Запрос Начало работы Доходы_N Отчет о доходах

С2

С2

Доходы_N

Запрос Начало работы Отчет о доходах

Запрос Начало работы Отчет о расходах Расходы_N

Page 8: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

8

Генерация: Пример неоправданных усложнений SDL: 2(2)

С3

Запрос

Начало работы

Отчет о расходах

Отчет о доходах

Отчет о доходах

Доходы_N Отчет о расходах Расходы_N

С1 С2

Доходы_N Расходы_N

State

Запрос

Начало работы

Отчет о доходах

Доходы_N

Начало работы

Отчет о расходахРасходы_N

С1 С2

State

Вариант сгенерированного SDLпосле детерминизации и минимизации

Желаемый вариант

Page 9: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

9

Генерация:предлагаемые решения

MSC → FSM → det_FSM → min_FSM → SDL

Полученные результаты:

– выделение SDL процедур

– защита от эффектов ухудшения SDL

– генерация SDL кода в виде, удобном для разработчика

обратные преобразованиянастройка FSMдля защиты от

преобразований

Влияния на процесс генерации:

изменения автоматадля улучшения

генерируемого SDL

Page 10: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

10

Генерация:“переразложение” автомата

D E A B C

D E A B C E

Автомат можно “переразложить” для получения того или иного варианта SDL кода, реализующего одну и ту же модель.

Критерием этого является возможность провести синтез –“детерминированность по входящим сигналам”.

Page 11: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

11

Генерация:выделение SDL процедур

P

P

Выделяются области:1. Граф области является гамаком

(один вход и один выход)2. Равны языки автоматов области

(вход – начальная, выход – завершающая)3. В области нет завершения автомата4. Область “достаточно велика”

Также данный способ применим для выделение не повторяющихся(одиночных) процедур для улучшения структуры генерируемого SDL.

Page 12: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

12

Генерация:защита области от процедур

детерминизации – минимизации D A C E E A B F B H G H

A L A B F B H G H

Перемаркировка области неиспользуемым символом

A L A F B B H G

Детерминизацияи

минимизация

D A C E E A B F H B G

Перемаркировка обратно

Page 13: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

13

Генерация:области применения

1. Генерация SDL из (H)MSC

2. Генерация SDL из других моделей, сводящихся к конечно-автоматным(частный случай – предложенное расширение MSC)

3. Использование в других технологиях, где SDL модель является промежуточной(например, для перехода в VHDL)

4. Оптимизация имеющегося SDL кода (событийная модель сохраняется, работа с переменными утрачивается)

Page 14: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

14

Верификация: существующие подходы и их проблемы

Подходы:1. MSC описывает трассы, которые «накладываются» на SDL модель

2. Состояния протокола - параллельное исполнение SDL и MSC моделей с некоторым ограничением потенциальной бесконечности

// Holzmann G. Design and Validation of Computer ProtocolsПроблемы, вызванные расхождением SDL и MSC моделей,

допустимых с точки зрения человеческой логики:• SDL модель циклична, а на MSC сценарии цикличности нет• Реализация на SDL модели нескольких MSC ролей• Введение дополнительных сообщений на SDL модели• Разбиение MSC роли на несколько сервисов• Разрозненность MSC сценариев• Отсутствие на MSC диаграммах символа завершения

Page 15: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

15

Верификация:предлагаемый подход

1. для каждого из объектов переход от MSC и SDL диаграмм к конечным автоматам с учетом предметной области

2. модификация автоматов:• разделение сообщений на

“рассматриваемые” и “не рассматриваемые”

• расширение множества завершающих состояний

3. поиск такого состояния на модифицированном SDL-автомате, что начиная с него можно “уложить” все возможные трассы, задаваемые модифицированным MSC-автоматом(трасс может быть бесконечное число из-за наличия циклов)

4. интерпретация результата

process S

State_1

A B

If

Msg Code

State_2

-

Connector

Вычисление автоматадля алгоритма проверки

Поиск“одного автомата в другом”

Page 16: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

16

Верификация:нахождение вложения автоматов

)))2min(det())21(min(det(

))))2(min(det()))21(min(det((

))2()21((

))2()2()1((

))2()1((

MMM

MLangMMLang

MLangMMLang

MLangMLangMLang

MLangMLang

Соответствующая цепочка эквивалентностей обозначает, что вложение одного языка в другой мы можем проверить конструктивно.Для этого используется:1. “Склеивание” начальных вершин автоматов2. Операции детерминизации и минимизации3. Проверка изоморфности автоматов

1. Выбор состояния, претендующего на начальное2. Перемаркировка состояний в завершающие3. Проведение анализа

Page 17: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

17

Верификация: алгоритмMSC SDL

FSM FSMсловарьсообщений

словарьсообщений

словарьобщих

сообщений

FSM_преобразованный

обработка

получение и интерпретация результата

FSM_преобразованный

Page 18: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

18

Верификация: пример 1(2)

msc 1 Checked a b c d

C1

C1

C2

msc 2 Checked 1 2

Message 3 4

C2

C2

S1

a 3

b 4

S2

c 1

d 2

S1

Notification

C2

C1

SDL реализация:• удовлетворяет MSC спецификации 1, без учета спецификаций 2, 3 и 4;• удовлетворяет MSC спецификации 2, без учета спецификаций 1, 3 и 4;• удовлетворяет спецификациям 1 и 2 вместе, если начальной являетсяспецификация 1;• удовлетворяет спецификациям 1 и 2 вместе, если начальной являетсяспецификация 2;

Page 19: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

19

Верификация: пример 2(2)

S1

a 3

b 4

S2

c 1

d 2

S1

Notification

C2

C1

msc 3

Checked

a

b

1

2

msc 4

Checked

a

b

3

4

SDL реализация:• удовлетворяет спецификации 3, учитывая остальные спецификации;• не удовлетворяет спецификации 4, учитывая остальные спецификации.

Page 20: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

20

Верификация:обработка сложных случаев

(идеи)

B X A Y A B X Y B X D Z A B X D Z

A

Y

X

Z

alt

B

A D

A [нет сохраненных сигналов] [сохранен сигнал A]

B X

A Y

D Z

B X

A Y

D Z

Используем несколько автоматов с переходами между ними для эмуляцииработы очереди (Save и уничтожение сигналов)

Page 21: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

21

Верификация: апробация

РазрозненныеMSC диаграммы

SDL диаграммы

• MSC и SDL диаграммы были взяты из реальных проектов;• SDL диаграммы были достаточно сложными после многолетнего сопровождения;• были найдены ошибки и проблемные места. Их качественные характеристики:

– не отслеживание человеком стыков между обычными и групповыми состояниями;– возможность удалить часть состояний;– избыточность (дублирование одинаковых фрагментов).

msc Sample1 O1 O2 O3 x y z

msc Sample2 O1 O2 O3 x y z

msc Sample3 O1 O2 O3 x y z

msc Sample4 O1 O2 O3 x y z

msc Sample5 O1 O2 O3 x y z

Page 22: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

22

Расширение описательных возможностей MSC: обоснование 1 (3)

A

B

C

B1

B2

B3

Существующие возможности MSC.

Шаг 1: описание прямых веток,стандартная декомпозиция

Для эффективного использования генерации и верификации MSCмодель должна быть максимально более близкой (по полноте) к SDL модели. Рассмотрим проблемы существующего стандарта MSC при создании подобной модели.

Page 23: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

23

Расширение описательных возможностей MSC: обоснование 2 (3)

Существующие возможности MSC.

Шаг 2: проработка вариантов

A

B

C С

С1 или F1

C2

B1

B2B3

D1E1

D2E2

alt

требуемые завершенияпосле варианта исполнения

Page 24: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

24

Расширение описательных возможностей MSC: обоснование 3 (3)

Существующие возможности MSC.

Шаг 3: описание вариантов на MSC

B1

B2 B3 C

D1 E1 C1

D2 E2 C2

D1 E1 F1

alt

A

Отрицательные моменты:1. вернулись на детализируемую диаграмму, а

детализирующую выкинули;2. большое количество “перерисовок”;3. полученная диаграмма громоздка.

Page 25: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

25

Расширение описательных возможностей MSC: граничные

условия

Граничные условия для решения:

• оно должно быть удобным в использовании;

• оно должно быть достаточно мощным;

• в нем должны присутствовать графические описания;

• по возможности оно должно быть совместимо с имеющимся стандартом MSC;

• мощность модели не должна быть выше конечно-автоматной (иначе, например, не возможен переход в SDL).

Page 26: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

26

while function_1=2 do beginif function_2=0 then

return 1else

procedure_2fi;procedure_7;

end;

Графические диаграммы,описывающие взаимодействия объектов

Текстовые описания, задающиелогику стыковки сценариев

A B E A C F

1 2 3

Расширение описательных возможностей MSC: идеи

Как графические, так им текстовые описания делятся на два типа:• “процедуры” (не возвращают результат; соответствует некоторому (сложному) сценарию);• “функции” (возвращают результат; разбивают множество вариантов поведения внутри на нумерованные классы).

Предлагаемая модель – это некоторое статическое описание, котороеотражает логику взаимодействия объектов, и для каждого из объектовможет быть превращено в конечный автомат.

Page 27: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

27

Расширение описательных возможностей MSC: предложенное решение

Предлагаемые текстовые конструкции:• if then else fi• case• for (n) повторить n раз• for () повторить 0..∞ раз• while• alt• optС Pascal’e-подобным синтаксисом.

msc advanced a b c

Proc_1

Proc_2

1

Proc_3

5

alt

7

Возможное расширениеграфических возможностей MSC

Page 28: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

28

Расширение описательных возможностей MSC: структуры для разбора

Структура для разбора: S C Z K F

S0 S = S0 C0 Ø K0

C0-then C0-else

S1 S2

C1 C2 C = C1 U C2

Z1 Z2 Z = Z1 U Z2

K1 K2

q K = q

F1 F2 F0 F = F0 U F1 U F2

часть then часть else

выражение для if

Пример разбора if общего вида:

Блок – конечно-автоматная структура для разбора, имеющая выделенные подмножества вершин:• вершина S обозначает начало блока;• вершина K обозначает конец блока;• множество вершин F обозначает завершение исполнения;• Z – множество вершин выхода из “процедуры” ;• C – множество вершин выхода из “функции”, маркированных кодом возврата.

Примеры: одно сообщение два сообщения

S1 S1

a a K1 K1 S2 b K2

Page 29: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

29

Расширение описательных возможностей 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предлагаемое решение выигрывает из-за использования АЯВУ против сетей Петри.

Page 30: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

30

Интеграция подходов на базе технологии REAL

Верификация Генерация

Структуры данных

Расширение MSC

SDL с фрагментами АЯВУ

Базовый MSC

SDL

Page 31: СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ MSC И SDL МОДЕЛЕЙ , НОВЫЕ ПОДХОДЫ

31

РезультатыВпервые поставлена задача настройки генерируемого

SDL кода для повышения его читабельности и соответствия решаемой задаче.

Разработан оригинальный алгоритм генерации SDL по MSC, решающий данную задачу.

Разработана новая математическая модель верификации SDL по MSC.

Разработано новое расширение MSC диаграмм, позволяющее создавать описания реальных систем.

На базе данных разработок представлен оригинальный взгляд на совместное использование MSC и SDL моделей.

Данные решения были проинтегрированы на базе существующей технологии REAL.

Апробация разработанных решений на промышленных задачах.