'

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

Понравилась презентация – покажи это...





Слайд 0

Интегрированная методика автоматизированного построения формальных поведенческих моделей C-приложений по исходному коду Юсупов Юрий Вадимович Специальность 05.13.11 – Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей Научный руководитель: проф. кафедры ИУС, ФТК Котляров Всеволод Павлович


Слайд 1

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


Слайд 2

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


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 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,…)


Слайд 8

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 <tool> <event> [<data>...] [-notification]\n", argv[0]); exit (1); … 1. Исходный код 3. Дерево поведения 4. Поведенческие сценарии 2. Базовые протоколы


Слайд 9

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 – базовые протоколы.


Слайд 10

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


Слайд 11

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


Слайд 12

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


Слайд 13

14 В рамках работы для решения поставленных задач и реализации разработанных методик создан следующий инструментарий: Программная поддержка c c c h h Формальная модель Динамически подключаемая библиотека Исходные файлы обработчика Приложение dll Исходные C-файлы Базовые протоколы Klocwork Объект разработки Конфигурационный файл dll АСД


Слайд 14

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


Слайд 15

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


Слайд 16

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


Слайд 17

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


Слайд 18

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


Слайд 19

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


Слайд 20

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


Слайд 21

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


×

HTML:





Ссылка: