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

Презентация:



Advertisements
Похожие презентации
1 Диаграммы реализации (implementation diagrams).
Advertisements

СОБОЛЕВ Сергей Сергеевич ЗОЛЬНИКОВ Владимир Константинович КРЮКОВ Валерий Петрович СОБОЛЕВ Сергей Сергеевич ЗОЛЬНИКОВ Владимир Константинович КРЮКОВ Валерий.
МЕТОДЫ ОРГАНИЗАЦИИ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ С ПОДОБНЫМИ СТРУКТУРАМИ КАК ЕДИНЫЙ ИФОРМАЦИОННЫЙ РЕСУРС ХРАНИЛИЩА МНОГОМЕРНЫХ ДАННЫХ. Волков Антон Андреевич.
Автоматное программирование А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
ParaCon Система параллельного программирования на основе типовых алгоритмических структур Истомин Тимофей Научный руководитель: д.ф-м.н. Берзигияров П.К.
Расширение технологии UniTESK средствами генерации структурных тестов Дмитрий Воробьев
Положение об отделе В.Андреев, Д.Сатин. Штат отдела начальник отдела; бизнес-аналитик; проектировщик пользовательских интерфейсов; специалист по анализу.
СПбГУИТМО, каф. Вычислительной техники Выбор исполнимой модели для описания логики переходов веб- приложений Чепурной Александр Иванович Начный руководитель:
Дисциплина «Технология разработки программного обеспечения» Тема 1 « Основы разработки Тема 1 « Основы разработки программного продукта » программного.
Кандидат технических наук, доцент Грекул Владимир Иванович Учебный курс Проектирование информационных систем Лекция 9.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Тема ВКР Автор: ФИО Руководитель: ФИО, уч. степень, уч. звание.
Декомпозиция сложных дискретных систем, формализованных в виде вероятностных МП-автоматов. квалификационная работа Выполнил: Шляпенко Д.А., гр. ИУ7-83.
Магистрант кафедры телекоммуникаций и информационных технологий Комиссар Дмитрий Семёнович Руководители: Доцент Резников Геннадий Константинович.
Тестирование Обеспечение качества. Тема 7 тестирование2 Аттестация и верификация Обзоры Инспекционные проверки Сквозной контроль.
Модуль анализа и планирования содержания учебных курсов для LCMS 1С:Электронное обучение. Конструктор курсов И. О. Семенов, Г. С. Сиговцев Петрозаводский.
Тема работы Обзор CASE-средств. Что это? Термин CASE (Computer Aided Software Engineering) CASE-средства CASE-система CASE-технология CASE-индустрия.
Верификация автоматных программ Г. А. Корнеев А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики.
РАЗРАБОТКА И ВНЕДРЕНИЕ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ АНАЛИЗА И ПРОГНОЗИРОВАНИЯ ПРОИЗВОДСТВЕННЫХ СИТУАЦИЙ ДОМЕННОГО ЦЕХА С ЦЕЛЬЮ ПОВЫШЕНИЯ ЭФФЕКТИВНОСТИ УПРАВЛЕНИЯ.
УТКИН Денис Михайлович ЗОЛЬНИКОВ Владимир Константинович УТКИН Денис Михайлович МОДЕРНИЗИРОВАННАЯ МЕТОДИКА ПРОЕКТИРОВАНИЯ СЛОЖНЫХ БЛОКОВ ПРОГРАММНО-ТЕХНИЧЕСКИХ.
Транксрипт:

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

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

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

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

5 Инструментарий возвратного проектирования Целевая платформа Win32, Unix Win32, Unix Win32, Unix Win32, Unix Win32, Unix Win32 Поддержка языков C, C++, C#, Java C, C++, Java, Tcl, FORTRAN,COBOL C, C++ C, C++, JavaC, C++ Объем поддерж. кода (MLOC) >5>50.5 1

6 Сравнительный анализ формальных нотаций Критерии Теоретич. модель Инструмент. поддержки Текстовое предст-е Графич. предст-е Композ./ декомпоз. Мин. един. описания Поведенческ. сценарии MSCCSP Telelogic SDL TTCN, Telelogic TAU G2, VRS +--Сценарий- SDLCFSM Telelogic SDL TTCN +++ Кон.-авт. диаграмма + UMLCFSM Telelogic TAU G2 +++ Кон.-авт. диаграмма + Basic protocols ATSVRS+++ Базовый протокол + PromelaCSPSpin+--Процесс+ LotosCCS, CSPLOTOS+--Процесс- EstelleCNSMEDT+-- Кон.-авт. диаграмма + VDM-SLLPFVDM+--Функция- RSL VDM-SL, CSP RAISE+--Процесс-

7 Формализация Организация проекта из базовых протоколов Генерация поведенческих сценариев Старт Финиш Визуализация модели А А - Автоматический этап А А Р - Ручной этап Исходный код проекта (С) Формальная модель (Базовые протоколы) Поведенческие сценарии (MSC) Анализ кода и исправление найденных ошибок Р А Графические представления 7 Р VRS Klocwork Концепция предлагаемого подхода

8 Атрибутная транзиционная система – S – множество состояний; – А – множество действий; – T– множество размеченных переходов и неразмеченных (скрытых) переходов – L – множество атрибутных разметок; – – частично определенная функция разметки состояний. Аппарат описания модели поведения программной системы E = (e 1, e 2, e 3,…) M = (m 1, m 2, m 3,…) S in = (in 1, in 2, in 3,…) S out = (out 1, out 2, out 3,…)

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: сохранение потока управления программы … … st_2 st_3 st_4 st_5 st_3 st_4 st_5 st_6 bp 2 bp 4 bp 3 bp 5 FalseTrue for while do- while switch defaultcase1case2 … Фрагменты систем переходов для нелинейных фрагментов кода Связь базовых протоколов по состояниям агента-приложения st_2, st_3, st_4, st_5, st_6 – состояния агента-приложения; bp 2, bp 3, bp 4, bp 5 – базовые протоколы.

11 Методика 2: формализация вызовов функции (1) начало конец БП вызывающей функции 1 Протокол-коннектор для передачи управления в вызываемую функцию 2 Протокол-коннектор для возвращения управления в вызывающую функцию 4 БП вызывающей функции 5 РП вызываемой функции 3 1) bp n =(a n-1,a n ) 2) cp 1 =(a n,b 1 ) 3) ep=(b 1, b m ) 4) cp 2 =(b m,a n+1 ) 5) bp n+1 =(a n+1,a n+2 ) (a n-1, a n ) A (b 1, b m ) B (a n+1 ) A (b m ) B (a n ) A (b 1 ) B (a n+1, a n+2 ) A A – множество состояний вызывающей функции B – множество состояний вызываемой функции

12 Графическое представление шаблона MSC диаграммы mscdocument ; msc ; ENV#envir: instance; MODEL#model: instance; all: condition PRE /*MODEL(model, ); */; MODEL#model: action ' '; MODEL#model: out ( ) to ENV#env; ENV#env: in ( )from MODEL#model; all: condition POST /*MODEL(model, ); */; ENV#envir: endinstance; MODEL#model: endinstance; endmsc; Текстовое представление шаблона MSC диаграммы Методика 3: построение базовых протоколов

13 – функция_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 – количество базовых протоколов, кодирующих детальное поведение функции; EP – количество расширенных протоколов, кодирующих поведение вызываемых функций; CP – количество протоколов-коннекторов, необходимых для моделирования вызовов функций. LOC – количество строк кода функции, каждая из которых содержит хотя бы один оператор; i, e, f, s, w, F – количество операторов if, else, for, switch, while и вызовов функций в коде функции соответственно.

16 Общая схема применения методики Исходный код (С) 1 Klocwork Insight Результаты анализа кода 3 Специальный обработчик Базовые протоколы 7 Исправление исходного кода Описание окружения Описание сигналов VRS Генерация трасс Построение диаграмм Изменение уровня абстракции 5 6 ТрассыДиаграммы Верификация 1616 Требования 1414 Структури- рованный проект из базовых протоколов 9 8 Критериальные цепочки 1515 Исправления Анализ результатов 1717 VRS

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

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

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

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

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

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