Разделы презентаций


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

Содержание

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

Слайды и текст этой презентации

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

коду Юсупов Юрий Вадимович
Специальность 05.13.11 –
Математическое и программное обеспечение
вычислительных

машин, комплексов и компьютерных сетей

Научный руководитель: проф. кафедры ИУС, ФТК
Котляров Всеволод Павлович

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

Слайд 2Особенности промышленной разработки программного обеспечения

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

ПО

борьба за качество начинается на самых ранних этапах разработки ПО

и заключается в нахождении и исправлении ошибок в первых версиях программных продуктов

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

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

восстановление документации и ее поддержка в актуальном виде


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

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

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

анализа поведенческих и структурных свойств.

Задачи:
анализ области автоматизированного построения формальных моделей по их исходному коду на основе сравнительного анализа промышленных инструментов возвратного проектирования и формальных нотаций;

определение модели поведения для систем, реализованных на языке C, пригодной для статического и визульного анализа;

создание методик формализации фрагментов исходного кода C-приложений с помощью выбранной формальной нотации;

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

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

Слайд 4Область исследования
Возвратное проектирование –
“это процесс анализа системы с целью

идентификации системных компонентов и их взаимодействий (поведенческих свойств) и создания

представления системы в другой форме или на более высоком уровне абстракции”. (E. Chikofsky, J. Cross)


Цели возвратного проектирования:
создание альтернативных форм описания системы для облегчения понимания и повышения уровня осмысления;
восстановление утраченной информации о системе с целью восстановления документации;
построение моделей программ с целью верификации и тестирования.

Методы возвратного проектирования:
Статический анализ.
Динамический анализ.
Область исследования Возвратное проектирование – 	“это процесс анализа системы с целью идентификации системных компонентов и их взаимодействий

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

и визуального анализа автоматизированными средствами

Инструментарий возвратного проектирования  Klocwork InsightSource-NavigatorCodeSurferCC-RiderImagix 4DCristal FLOW* Пригодных для статического и визуального анализа автоматизированными средствами

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

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

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

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

Слайд 8Атрибутная транзиционная система
< S, A, T, L, l

>
– S – множество состояний;
– А – множество действий;
– T – множество размеченных

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

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

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

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

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

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


int pid;
int replyEvent;
char

*replyMessage;
void *replyPointer;
int 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



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


состояниям агента-приложения

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

Методика 1: сохранение потока управления программыFalseTruefor whiledo- whileswitchdefault case1 case2 …Фрагменты систем переходов для нелинейных фрагментов кодаСвязь

Слайд 11Методика 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 – множество состояний
вызываемой функции

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

Слайд 12

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

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

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

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

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

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

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

1

директория

2

файл

директория

3

файл

директория

функция

5

файл

директория

функция

!Connectors

функция_Det

функция_Comp

EP_функция

4

файл

директория

функция

функция_Det

функция_Comp

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

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

методик создан следующий инструментарий:

Программная поддержка
c
c
c
h
h
Формальная модель
Динамически
подключаемая
библиотека
Исходные файлы обработчика
Приложение
dll
Исходные
C-файлы


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

Klocwork

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

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

dll

АСД

В рамках работы для решения поставленных задач и реализации разработанных методик создан следующий инструментарий:Программная поддержка ccchhФормальная модельДинамическиподключаемаябиблиотекаИсходные

Слайд 15Метрика оценки объема модели

k – количество функций в проекте;
BP – количество

базовых протоколов, кодирующих детальное поведение функции;
EP – количество расширенных протоколов,

кодирующих поведение вызываемых функций;
CP – количество протоколов-коннекторов, необходимых для моделирования вызовов функций.





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

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

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

Слайд 17
Пилотирование и применение разработанного комплекса методик и программных средств проведено

в следующих 4 проектах:

Учебный проект. Применение методики к исходному коду

приложения с целью проверки всех разработанных методик и программных средств (40 BPs).

Проект автомобильного радио (CarRadio). Применение методики структурирования базовых протоколов для получения проекта, структура которого позволяет работать с моделью покомпонентно и на разных уровнях абстракции (70 BPs).

Проект анализатора A-деревьев. Применение методики к исходному коду реализованного обработчика с целью проверки корректности его реализации (8000 BPs).

Приложение для тестирования мобильного телефона. Применение методики к исходному коду приложения для мобильного телефона с целью верификации реализованного приложения (70000 BPs).

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

Пилотирование и применение разработанного комплекса методик и программных средств проведено в следующих 4 проектах:Учебный проект. Применение методики

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

пилотирования)
чел.-часа
чел.-часа
чел.-часа
чел.-часа
Тип А
Тип Б
- трудозатраты автоматиз. подхода
- трудозатраты ручного подхода
- трудозатраты

автоматиз. подхода

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

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

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

основе пилотирования)

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

Слайд 20Заключение
На основе теории агентов и сред предложена модель поведения C-приложений

в виде структурированного множества базовых протоколов, пригодная для статического и

визуального анализа поведенческих и структурных свойств в среде инсерционного программирования.

Разработана методика структуризации представления модели, обеспечивающая свойство декомпозиции модели на структурные элементы и их независимый анализ на заданном уровне абстракции.

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

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

Оценка эффективности разработанных методик и ПО проведена в 4-х программных проектах различной сложности и позволила установить минимум трехкратное преимущество по трудозатратам автоматизированного подхода перед ручным.

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

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

базовых протоколов. Модель является пригодной для статического и визуального анализа

ее поведенческих и структурных свойств в среде инсерционного программирования;

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

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

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

проверка работоспособности предложенных методик и инструментальных средств в ряде учебных и промышленных проектов.

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

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

Слайд 22

СПАСИБО ЗА ВНИМАНИЕ

СПАСИБО ЗА ВНИМАНИЕ

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика