Статический анализ кода для автоматизированного обнаружения ошибок при переносе программ на 64-битные платформы

Статический анализ кода для автоматизированного обнаружения ошибок при переносе программ на 64-битные платформы

Автор: Рыжков, Евгений Александрович

Шифр специальности: 05.13.11

Научная степень: Кандидатская

Год защиты: 2009

Место защиты: Тула

Количество страниц: 135 с. ил.

Артикул: 4368715

Автор: Рыжков, Евгений Александрович

Стоимость: 250 руб.

Статический анализ кода для автоматизированного обнаружения ошибок при переносе программ на 64-битные платформы  Статический анализ кода для автоматизированного обнаружения ошибок при переносе программ на 64-битные платформы 

Введение.
Глава 1. Постановка задачи переноса приложений на битные платформы
1.1 Проблема переноса приложений на битные платформы.
1.2 Способы тестирования приложений для подтверждения корректности переноса кода.
1.2.1 Просмотр кода.
1.2.2 Статический анализ кода.
1.2.3 Динамический анализ кода
1.2.4 Метод белого ящика
1.2.5 Метод черного ящика.
1.2.6 Ручное тестирование.
1.3 Основные задачи исследования
Глава 2. Статический анализ кода как наиболее удобное решение для проверки корректности битных программ
2.1 Применение статического анализа кода при разработке программ
2.1.1 Процесс анализа.
2.1.2 Дерево кода.
2.1.3 Методы статическою анализа
2.2 Разработка статическою анализатора требования, архитектура,
реализация
2.2.1 Требования к анализатору кода.
2.2.2 Архитектура анализатора кода
2.2.3 Реализация анализатора кода.
Глава 3. Обнаружение ошибок при переносе программ на битные платформы.
3.1 Примеры потенциальноопасных конструкций в коде программ на языке Си
3.1.1 Использование функций с переменным количеством аргументов.
3.1.2 Магические константы
3.1.3 Хранение в целочисленных значений
3.1.4 Операции сдвига.
3.1.5 Упаковка указателей.
3.1.6 iтипы в объединениях.
3.1.7 Изменение типа массива
3.1.8 Виртуальные функции с аргументами типа i
3.1.9 Сериализация и обмен данными
3.1. Битовые ноля.
3.1. Адресная арифметика с указателями
3.1. Индексация массивов
3.1. мешанное использование простых целочисленных типов и iтипов.
3.1. Неявные приведения типов при использовании функций.
3.1. Перегруженные функции
3.1. Выравнивание данных
3.1. Исключения.
3.1. Использование устаревших функций и предопределенных констант
3.1. Явные приведения типов.
3.2 Правила статического анализа кода для диагностики потенциальноопасных конструкций.
3.2.1 Приведение битных целых типов к iтипам
3.2.2 Приведение iтипов к целым битным типам
3.2.3 iтипы в виртуальных функциях
3.2.4 iтипы в перегруженных функциях
3.2.5 риведение типов указателей на iтипы.
3.2.6 Приведение iтипов к
3.2.7 iтипы в функции с переменным количеством аргументов .
3.2.8 Опасные константы
3.2.9 iтипы в объединениях
3.2. Исключения и iтипы.
3.3 Методика создания новых правил диагностики ошибок
Глава 4. Программный комплекс для статического анализа битных приложений Viv
4.1 Обзор программы Viv.
4.2 Сравнение диагностических возможностей современных анализаторов при проверке битного кода
4.3 Применение Viv для проверки системы i i.
4.3.1 Библиотека компонентов i .
4.3.2 Программный интерфейс для работы с облаками точек и трианг улированными сетками.
4.3.3 Библиотека подгонки деталей.
4.3.4 Библиотека обработки граней и ребер.
4.3.5 Необходимость миграции библиотеки компонентов на битную
платформу.
4.3.6. Участие компании ООО СиПроВер в миграции библиотеки компонентов.
Заключение.
Сггисок использованных источников.
Приложение
Приложение 2 риложение З Приложение 4 Приложение
Введение


Приложение для визуализации данных, в котором используемый объем оперативной памяти приближался к двум гигабайтам, было естественным кандидатом на битную версию. Новая битная версия работала прекрасно, пользователи не видели никаких проблем. До тех пор, пока ктото не захотел построить изображение по данным, превышающим несколько гигабайт. Картинка была построена, но на экране показалось. Почему Некорректная работа в программе с большими объемами данных. Незнакомый с индустрией разработки программных систем человек может задаться вопросом Почему подобные ошибки в программах не выявляются на этапе тестирования Ответ на этот вопрос не совсем очевиден. Дело в том, что существующие системы внутренних и внешних тестов программного обеспечения не позволяют выявить ошибки, характерные именно для битных систем. Ведь по своей сути часто тесты должны выполняться очень быстро, поэтому, скажем, тестировать обработку нескольких гигабайт данных в таких тестах не будут. Инструменты для разработчиков долгое время также оставались в стороне от проблемы битного программного обеспечения. Специализированные инструменты начали появляться относительно недавно, в году. В разработке одного из таких инструментов и принимает участие автор данной работы. О каких инструментах идет речь Есть специальный класс программ, называемый статические анализаторы кода. После чего программист их исправляет, и программа уже получается готовой к выходу в битный мир. Настоящая работа посвящена как раз исследованию и реализации такого инструмента под названием Упга, разрабатываемому в компании ООО СиПроВер. Анализатор кода У1уа предназначен для диагностики ошибок в исходном коде программ, проявляющихся при миграции приложений на битные платформы. При переносе программ на битныс платформы, в программах проявляются ошибки. Эти ошибки были допущены при разработке программ, намного раньше процесса миграции на битные системы. Однако в рамках битной платформы они не проявлялись и стали проявляться только на битной платформе. Анализатор Угуа предназначен для выявления подобных ошибок в программах. Основное содержание данной работы это формулировка правил диагностики ошибок и реализация системы автоматической диагностики. Анализатор У1уа разработан для анализа программ на языках программирования Си и Си. Выбор этих языков обусловлен тем, что с одной стороны, много коммерческих программных продуктов реализованы на этих языках. С другой стороны, данные языки наиболее сильно подвержены возможности программисту написать код с ошибками, так как они являются достаточно низкоуровневыми языками. Вопросами повышения качества программного обеспечения занимаются С. Макконнел, М. Фаулер, С. Майерс, в России В. В. Липаев. Проблемами битного кода М. Питрек, А. Зейчик, М. Уолл, К. А. МакНаутон. Разработкой статических анализаторов занимаются С. А. Колава. Недостатком работ данных авторов является тот факт, что они не уделяли внимание автоматизированному обнаружению ошибок в битных приложениях. Они обращали свое внимание либо на различные методики обучения программистов написанию качественного кода, либо на другие способы повышения качества. При этом автоматизированное обнаружение ошибок рассматривалось лишь для наиболее традиционных ошибок программистов битный код оставался в стороне. Объектом исследования является процедура миграции переноса программного обеспечения с разрядной на разрядную платформу. Предметом исследования являются правила диагностики потенциально опасных синтаксических конструкций в коде программ на языках Си и Си. Цель диссертации. Целью работы является повышение качества программных продуктов и сокращение количества программных ошибок во время процедуры миграции программного обеспечения на битные платформы. Для достижения этой цели разработаны правила диагностики потенциально опасных синтаксических конструкций и реализован программный продукт в виде статического анализатора кода для проверки корректности процесса переноса программ на языках Си и Си на битную платформу. Основные задачи исследовании.

Рекомендуемые диссертации данного раздела

28.06.2016

+ 100 бесплатных диссертаций

Дорогие друзья, в раздел "Бесплатные диссертации" добавлено 100 новых диссертаций. Желаем новых научных ...

15.02.2015

Добавлено 41611 диссертаций РГБ

В каталог сайта http://new-disser.ru добавлено новые диссертации РГБ 2013-2014 года. Желаем новых научных ...


Все новости

Время генерации: 0.212, запросов: 244