Работа подготовлена и защищена в 2017 году в ФГАОУ ВО «Севастопольский государственный университет», Институт информационных технологий и управления в технических системах, направления подготовки 09.03.2 «Информационные системы и технологии».
Актуальность проблемы разработки средств анализа программного кода не вызывает сомнения, о чем свидетельствует большое количество публикаций на эту тему. Современные технологические, промышленные и бизнес- процессы сложно представить без обеспечения соответствующим программным обеспечением (ПО). Однако, каждое ПО проходит стадию разработки, сопряженную с процессом проверки ПО на соответствие требований по автоматизируемым процессам.
Во время процесса разработки и отладки ПО разработчики анализируют программный код с различными целями, которые условно разделяются на следующие типы:
Первый и второй тип анализа проводятся вручную, разработчик просматривает программный код и принимает решение о его корректности и соответствии стандартам разработки. Третий и четвёртый тип анализа выполняется специальными программными средствами для анализа программного кода.
Современные средства анализа программного кода широко представлены на рынке ПО, изначально встроенными в среды разработки ПО (Visual Studio, IntelliJ IDEA и другие), интегрируемыми в среды разработки или отдельными программными средствами, от различных компаний-разработчиков как зарубежных [6,8], так и отечественных [2,4,9]. Представленные на рынке анализаторы имеют широкую градацию по области применения, например от инструментов, предназначенных для поиска уязвимостей в безопасности приложения, которыми может воспользоваться злоумышленник и для определения степени соответствия программы международным стандартам разработки [2,4,6,8,9], до инструментов, анализирующих изменения в программном коде для оптимизации выполнения автоматизированных тестов, реализуемых и поддерживаемых разработчиками ПО [4,7].
Целью дипломной работы является разработка системы анализа статистического кода с целью определения степени их похожести на основании сравнения количества используемых операторов и библиотек.
Анализ зависимостей в программном коде реализован в большинстве средств анализа программного кода. Однако первоочередной задачей является анализ изменений в программном коде с целью прогнозирования их влияния на работоспособность ПО. Экономически выгодным является применение такого средства анализа изменений в программном коде для сложных (entarprise) проектов, в которых изменение небольшого участка программного кода может повлиять на различные разделы в ПО. Программное средство анализа изменений в программном коде отследит внесенные изменения в программном коде и, сопоставив программный код разделам ПО, спрогнозирует возможное влияние на определенные разделы ПО. Использование средства, проводящего автоматизированный анализ изменений в исходном коде, позволит:
Кроме того, помимо проблемы прогнозирования влияния изменений, необходимо просматривать результат анализа изменений в программном коде, и для чего целесообразно использовать средство когнитивной графики [1,3,10,11], представляющее данные, на основе которых программное средство спрогнозировало бы влияние изменений программного кода на тот или иной раздел ПО с целью обоснованного принятия решения разработчиками о необходимости проверять тот или иной раздел ПО после внесения изменений.
В результате выполнения работы было разработано программное обеспечение, позволяющее анализировать программой код исполняемых файлов. Программный продукт позволяет анализировать два фала и в качестве выходных данных формирует отчет об анализе с указанием количества используемых библиотек и вычислением коэффициента корреляции. Следовательно цель работы достигнута.
В комплект работы входит программа на языке С++ и СУБД Mysql.