Интегрированная методика автоматизированного построения формальных поведенческих моделей C-приложений по исходному кодуЮсупо

Содержание

Слайд 2

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

Особенности промышленной разработки программного обеспечения постоянный рост требований к качеству производимого ПО
качество начинается на самых ранних этапах разработки ПО и заключается в нахождении и исправлении ошибок в первых версиях программных продуктов
обеспечение необходимого уровня качества только за счет динамической проверки (тестированием) правильности функционирования ПО становится невозможным
переиспользование старого кода
восстановление документации и ее поддержка в актуальном виде

Слайд 3

Цели и задачи исследования

Цель – разработка методики автоматизированного построения формальных
поведенческих моделей

Цели и задачи исследования Цель – разработка методики автоматизированного построения формальных поведенческих
C-приложений по исходному коду, пригодных для
статического и визуального анализа поведенческих и структурных свойств.
Задачи:
анализ области автоматизированного построения формальных моделей по их исходному коду на основе сравнительного анализа промышленных инструментов возвратного проектирования и формальных нотаций;
определение модели поведения для систем, реализованных на языке C, пригодной для статического и визульного анализа;
создание методик формализации фрагментов исходного кода C-приложений с помощью выбранной формальной нотации;
разработка программной реализации, позволяющей обеспечить генерацию формальных спецификаций по фрагментам исходного кода C-приложений;
внедрение разработанной методики и программных средств в процесс производства и поддержки ПО.

Слайд 4

Область исследования

Возвратное проектирование –
“это процесс анализа системы с целью идентификации системных

Область исследования Возвратное проектирование – “это процесс анализа системы с целью идентификации
компонентов и их взаимодействий (поведенческих свойств) и создания представления системы в другой форме или на более высоком уровне абстракции”. (E. Chikofsky, J. Cross)
Цели возвратного проектирования:
создание альтернативных форм описания системы для облегчения понимания и повышения уровня осмысления;
восстановление утраченной информации о системе с целью восстановления документации;
построение моделей программ с целью верификации и тестирования.
Методы возвратного проектирования:
Статический анализ.
Динамический анализ.

Слайд 5

Инструментарий возвратного проектирования

Klocwork
Insight

Source-
Navigator

CodeSurfer

CC-Rider

Imagix 4D

Cristal
FLOW

* Пригодных для статического и визуального

Инструментарий возвратного проектирования Klocwork Insight Source- Navigator CodeSurfer CC-Rider Imagix 4D Cristal
анализа автоматизированными средствами

Слайд 6

Сравнительный анализ формальных нотаций

Сравнительный анализ формальных нотаций

Слайд 7

Концепция предлагаемого подхода

Концепция предлагаемого подхода

Слайд 8

Атрибутная транзиционная система
< S, A, T, L, l >
– S – множество

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

Аппарат описания модели поведения программной системы

E = (e1, e2, e3,…)
M = (m1, m2, m3,…)

Sin = (in1, in2, in3,…)
Sout = (out1, out2, out3,…)

Слайд 9

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


int pid;
int replyEvent;
char *replyMessage;
void *replyPointer;
int

Динамические аспекты модели поведения … int pid; int replyEvent; char *replyMessage; void
len;
int notification = 0; /* not notification by default */
char * rpcmode = ""; /*no extra text by default */
if (argc > 1 && strcmp (argv[1], "-listpm") == 0) {
/* Get all postmaster! */
int bufferPid[100];
char* bufferText[100];
int noOfPM;
int i;
noOfPM = SPFindActivePostMasters (bufferPid, bufferText, 100);
for (i = 0; i < noOfPM; i++) {
if (bufferText[i] != NULL) {
printf ("Pid: %d, Created: %s\n", bufferPid[i], bufferText[i]);
SPFree (bufferText[i]);
}
}
/* break when ready*/
exit (0);
}
if ( argc > 3 && !strcmp( argv[argc-1], "-notification" ) ) {
notification = 1;
rpcmode = "NOTIFICATION";
argc--;
argv[argc] = 0; /* hide this flag to avoid later confusion */
}
if (argc < 3) {
printf ("usage: %s [...] [-notification]\n", argv[0]);
exit (1);

1. Исходный код

3. Дерево поведения

4. Поведенческие сценарии

2. Базовые протоколы

Слайд 10

Методика 1: сохранение потока управления программы

False

True

for
while

do-
while

switch

default

case1

case2


Фрагменты систем

Методика 1: сохранение потока управления программы False True for while do- while
переходов
для нелинейных фрагментов кода

Связь базовых протоколов по
состояниям агента-приложения

st_2, st_3, st_4, st_5, st_6 – состояния агента-приложения;
bp2, bp3, bp4, bp5 – базовые протоколы.

Слайд 11

Методика 2: формализация вызовов функции (1)

начало

конец

БП вызывающей функции

1

Протокол-коннектор для
передачи управления в

Методика 2: формализация вызовов функции (1) начало конец БП вызывающей функции 1

вызываемую функцию

2

Протокол-коннектор для
возвращения управления в
вызывающую функцию

4

БП вызывающей функции

5

РП вызываемой функции

3

1) bpn=(an-1,an)

2) cp1=(an,b1)

3) ep=(b1, bm)

4) cp2=(bm,an+1)

5) bpn+1=(an+1,an+2)

(an-1, an)

A

(b1, bm)

B

(an+1)

A

(bm)

B

(an)

A

(b1)

B

(an+1, an+2)

A

A – множество состояний
вызывающей функции
B – множество состояний
вызываемой функции

Слайд 12

<Имя базового протокола>

<Имя файла>

Графическое представление
шаблона MSC диаграммы

Текстовое представление
шаблона

Графическое представление шаблона MSC диаграммы Текстовое представление шаблона MSC диаграммы Методика 3: построение базовых протоколов
MSC диаграммы

Методика 3: построение базовых протоколов

Слайд 13

– функция_Det – базовые протоколы, описывающие поведение функции на детальном уровне

– функция_Det – базовые протоколы, описывающие поведение функции на детальном уровне –
– функция_Comp – базовые протоколы, описывающие поведение функции на некотором уровне абстракции
– !Connectors – протоколы-коннекторы для моделирования вызовов функций
– EP_ функция – расширенные протоколы, описывающие поведение вызываемых функций

Методика 4: структурирование базовых протоколов

1

директория

2

файл

директория

3

файл

директория

функция

5

файл

директория

функция

!Connectors

функция_Det

функция_Comp

EP_функция

4

файл

директория

функция

функция_Det

функция_Comp

Слайд 14

В рамках работы для решения поставленных задач и реализации разработанных методик создан

В рамках работы для решения поставленных задач и реализации разработанных методик создан
следующий инструментарий:

Программная поддержка

c

c

c

h

h

Формальная модель

Динамически
подключаемая
библиотека

Исходные файлы обработчика

Приложение

dll

Исходные
C-файлы

Базовые
протоколы

Klocwork

Объект разработки

Конфигурационный файл

dll

АСД

Слайд 15

Метрика оценки объема модели
k – количество функций в проекте;
BP – количество базовых протоколов,

Метрика оценки объема модели k – количество функций в проекте; BP –
кодирующих детальное поведение функции;
EP – количество расширенных протоколов, кодирующих поведение вызываемых функций;
CP – количество протоколов-коннекторов, необходимых для моделирования вызовов функций.
LOC – количество строк кода функции, каждая из которых содержит хотя бы один оператор;
i, e, f, s, w, F – количество операторов if, else, for, switch, while и вызовов функций в коде функции соответственно.

Слайд 16

Общая схема применения методики

Общая схема применения методики

Слайд 17

Пилотирование и применение разработанного комплекса методик и программных средств проведено в следующих

Пилотирование и применение разработанного комплекса методик и программных средств проведено в следующих
4 проектах:
Учебный проект. Применение методики к исходному коду приложения с целью проверки всех разработанных методик и программных средств (40 BPs).
Проект автомобильного радио (CarRadio). Применение методики структурирования базовых протоколов для получения проекта, структура которого позволяет работать с моделью покомпонентно и на разных уровнях абстракции (70 BPs).
Проект анализатора A-деревьев. Применение методики к исходному коду реализованного обработчика с целью проверки корректности его реализации (8000 BPs).
Приложение для тестирования мобильного телефона. Применение методики к исходному коду приложения для мобильного телефона с целью верификации реализованного приложения (70000 BPs).

Проекты пилотирования и применения методики

Слайд 18

Анализ результатов применения Зависимость трудозатрат от размеров модели (аппроксимация на основе пилотирования)

чел.-часа

чел.-часа

чел.-часа

чел.-часа

Тип А

Тип

Анализ результатов применения Зависимость трудозатрат от размеров модели (аппроксимация на основе пилотирования)
Б

- трудозатраты автоматиз. подхода

- трудозатраты ручного подхода

- трудозатраты автоматиз. подхода

- трудозатраты ручного подхода

Слайд 19

Анализ результатов применения Зависимость размеров моделей от уровня абстракции (аппроксимация на основе пилотирования)

Анализ результатов применения Зависимость размеров моделей от уровня абстракции (аппроксимация на основе пилотирования)

Слайд 20

Заключение

На основе теории агентов и сред предложена модель поведения C-приложений в виде

Заключение На основе теории агентов и сред предложена модель поведения C-приложений в
структурированного множества базовых протоколов, пригодная для статического и визуального анализа поведенческих и структурных свойств в среде инсерционного программирования.
Разработана методика структуризации представления модели, обеспечивающая свойство декомпозиции модели на структурные элементы и их независимый анализ на заданном уровне абстракции.
Разработана методика использования расширенных протоколов и протоколов-коннекторов для спецификации и моделирования вызовов функций и других фрагментов исходного кода, обеспечивающая сокращение размеров модели и достижение различной степени ее детализации
Создана программная реализация разработанных методик формализации исходного кода C-приложений, обеспечивающая автоматизацию построения поведенческих моделей.
Оценка эффективности разработанных методик и ПО проведена в 4-х программных проектах различной сложности и позволила установить минимум трехкратное преимущество по трудозатратам автоматизированного подхода перед ручным.
Анализ результатов позволил получить оценки применения методики в промышленных проектах.

Слайд 21

модель поведения приложений, реализованных на языке C, представляемая структурированным множеством базовых протоколов.

модель поведения приложений, реализованных на языке C, представляемая структурированным множеством базовых протоколов.
Модель является пригодной для статического и визуального анализа ее поведенческих и структурных свойств в среде инсерционного программирования;
методика структуризации представления модели, позволяющая проводить ее докомпозицию на структурные элементы и их независимый анализ, что обеспечивает возможность работы с крупными моделями промышленных систем;
методика использования расширенных протоколов для формализации отдельных фрагментов исходного кода, обеспечивающая сокращение размеров модели и предоставляющая возможность достижения различной степени ее детализации;
программные средства, обеспечивающие автоматизацию построения формальных моделей C-приложений по их исходному коду;
проверка работоспособности предложенных методик и инструментальных средств в ряде учебных и промышленных проектов.

На защиту выносятся

Имя файла: Интегрированная-методика-автоматизированного-построения-формальных-поведенческих-моделей-C-приложений-по-исходному-кодуЮсупо.pptx
Количество просмотров: 169
Количество скачиваний: 0