Введение к работе
Актуальность проблемы. Проблема качества программного обеспечения становится сегодня все более острой, особенно по мере расширения использования информационных технологий и роста сложности программного обеспечения. Не менее актуальными являются проблемы, связанные с обеспечением проектирования надежных программ. В связи с широким распространением Интернет-технологий вопросы безопасности и конфиденциальности программного обеспечения для многих, отраслей человеческой деятельности приобретает все большее и большее значение.
Программный продукт является результатом нового вида современного промышленного производства. Из объекта научного творчества и произведения искусства отдельных программистов программы превратились в объект планомерной разработки, эксплуатации и сопровождения больших коллективов специалистов. Превращения программирования б современную инженерную дисциплину предполагает, что проектирование программного обеспечения следует осуществлять научными и промышленными методами, с обязательным применением различных способов измерения характеристик программ и установлением между ними причинно-следственных связей.
В связи г этим все большую актуальность приобретают разработка автоматизированных программных систем анализа, как статического, так и динамического; и контроля программ на всех этапах их жизненного цикла. Данная работа посвящена разработке методов восстановления и декомпозиции исполняемого кода программ, ориентированных на их статический анализ.
Цель работы: создание методов построения графо-аналитических моделей программ в части декомпозиции управляющего графа исполняемого кода программы; разработка машинно-ориентированных алгоритмов формирования и представления в памяти ЭВМ этого графа. В соответствии с поставленной целью необходимо решить следующие основные задачи:
разработать модель исполняемого кода функциональной программы;
разработать метод формирования управляющего графа функциональной проіраммьі на основе ее модели;
разработать методы процедурной и структурной декомпозиции управляющего графа функциональной программы;
Методы исследования. Поставленные в диссертационной работе задачи решаются с использованием положений и методов математической логики, теоретического программирования, теории графов, теории алгоритмов. В работе сочетаются формальный и содержательный подход.
Научная новизна. В работе получены следующие существенные результаты:
разработан метод построения графо-аналитической модели функциональной программы, базирующийся на оригинальном представлении вершин и дуг управляющего графа функциональной программы;
разработан метод процедурной декомпозиции управляющего графа исполняемого кода функциональной программы;
разработан метод структурной декомпозиции управляющего графа исполняемого кода фуіікциональной программы, выделяющий циклические участки кода с учетом их вложенности.
Практическая ценность. Разработаны алгоритмы, структуры представления данных в памяти ЭВМ и программы, осуществляющие формирование управляющего графа исполняемого кода функциональной программы, ориентированные на проведение статического анализа исполняемого кода. Разработаны программы формирующие матрицы смежности, инцидентности и достижимости для управляющего графа. Разработаны алгоритмы и программы, осуществляющие поиск процедур в теле исполняемого кода программы по ее восстановленному управляющему графу, а также программы осуществляющие проверку корректности такого поиска. Разработаны алгоритмы и программы поиска циклических участков исполняемого кода программы с учетом вложенности циклов.
Внедрение результатов. Разработанная программная система формирования и декомпозиции управляющего графа функциональной программы используется в СПбТУ ИТМО на кафедре информатики и прикладной математики в рамках учебно-исследовательской САПР верификации и тестирования, для анализа результатов лабораторных работ по курсам «Системное программное обеспечение», «Программирование на языке ассемблера», «Технология программирования» для студентов специальности 230101 «Вычислительные машины, системы, комплексы и сети».
Апробация работы Основные результаты диссертационной работы докладывались и получили одобрение на Всероссийской научно-технической конференции «Диагностика веществ, изделий и устройств» (Орел, 1999), научно-технических конференциях профессорско-преподавательского состава ИТМО (С.-Петербург 1999, 2000, 2002, 2003 г.г.).
Публикации. По материалам диссертации опубликовано 10 работ.
Структура и объем работы Диссертация состоит из введения, четырех глав, заключения, библиографического списка из 82 наименований и приложения. Общий объем работы 142 страницы текста, диссертация содержит 2) рисунок и 9 таблиц.