Реферат
ВВЕДЕНИЕ 6
1 АНАЛИЗ ТРЕБОВАНИЙ. АНАЛИЗ СУЩЕСТВУЮЩИХ
ПРОБЛЕМ ПРОЕКТА И МЕТОДЫ ИХ РЕШЕНИЯ 8
1.1 Постановка задачи 8
1.2 Описание предметной области 8
1.3 Анализ требований к программе 9
1.4 Анализ существующих проблем проекта 11
1.5 Анализ существующих методов решения проблем проекта 14
1.6 Рекомендации к написанию кода 25
2 ПРИМЕНЕНИЕ МЕТОДОВ РЕФАКТОРИНГА НА ПРОЕКТЕ 28
2.1 Тестирование 28
2.2 Подключение к разделяемой памяти 32
2.3 Подключение к дескрипторам очередей 33
2.4 Чтение конфигурационного файла 34
2.5 Отладочная информация 34
2.6 Сервисное окно 35
2.7 Этап расшифровки и предварительная обработка принятной порции
сообщений 36
2.8 Этап отождествления координатных отметок 38
2.9 Этап сопровождения треков 39
2.10 Этап формирования и выдачи выходного сообщения 41
2.11 Организация модулей программы 43
2.12 Выводы по разделу 43
ЗАКЛЮЧЕНИЕ 45
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 46
ПРИЛОЖЕНИЕ 1 ОПИСАНИЕ ПРОГРАММЫ 48
ПРИЛОЖЕНИЕ 2 ТЕКСТ ПРОГРАММЫ 52
Ежедневно в мире совершается около 85 000 гражданских авиарейсов. За годы прогресса и инноваций существенно увеличилось количество и качество перелетов. Данная ситуация достигается за счет успешного производства разноплановых локаторов, а также многолетнего труда конструкторов и инженеров.
В реальном времени за всеми перелетами следят диспетчеры, но каким образом? Диспетчер наблюдает за воздушной обстановкой на экране и в случае необходимости управляет и корректирует движение летательных аппаратов. Но откуда появляется информация на экране? Именно этим занимается программа автосопровождения летательных аппаратов. Она решает проблему автоматизации обмена информацией, а также формирования треков полета самолета, корректировку полетной информации, фильтрации отраженных сигналов и многое другое.
АО НИИИТ-РК более 25 лет занимается задачами обеспечения диспетчеризации полетов. За эти годы были достигнуты большие результаты в области обеспечения автоматизации процесса сопровождения летательных аппаратов. Но на данный момент качество и способы написания программного кода значительно продвинулись вперед. Возникает необходимость переработки кода программного обеспечения с целью обеспечения стабилизации сопровождения и упрощения дальнейших модернизаций.
Рефакторинг это процесс изменения внутренней структуры программного обеспечения. Сферой применения рефакторинга является исходный код, основной целью которого является упрощение будущих модификаций и облегчение понимания кода человеком. Индикатором необходимости применения рефакторинга является «проблемный код», но, в каждом конкретном случае для вынесения окончательного решения о необходимости рефакторинга необходимо произвести анализ.
Рефакторинг необходимо применять тогда, когда добавляется новая функция, исправляется ошибка или проводится разбор кода. Для корректного применения рефакторинга, необходимо знание существующих методов рефакторинга.
В процессе применения методов рефакторинга необходимо производить качественное тестирование каждого отдельно взятого шага. Но даже при применении модульных тестов нельзя утверждать об отсутствие ошибок в программе, возникших в процессе рефакторинга.
Достоинствами проведения рефакторинга является следующее:
• улучшение композиции программного обеспечения;
• облегчение понимания программного обеспечения;
• помощь в нахождении ошибок;
• ускорение написания программ;
• сохранение работоспособности программы.
Недостатками проведения рефакторинга является следующее:
• требование о наличии предварительных тестов;
• проблемы отсутствия доказательной верификации корректности изменений.
В данной работе были проанализированы требования к приложению, проведен обзор существующих методов рефакторинга, описаны их достоинства и недостатки. Были созданы рекомендации к написанию кода. Для тестирования и отладки были разработаны модульные тесты. Были произведены работы по подготовке к проведению рефакторинга, а затем и был произведен рефакторинг программы автосопровождения.
После проведения работ по рефакторингу, количество методов значительно уменьшилось. В виду того, что было выявлено множество кусков алгоритмов, которые на данный момент потеряли свою актуальность. Алгоритмы ассоциации отметок, определения кругоответа и другие, существовали в проекте, но не использовались. Таким образом, в проекте уменьшилось количество функций с 160 до 126 методов. Размеры каждого не превышают 150-200 строк, ранее встречались функции размерами до десяти тысяч строк. Было выделено 13 классов, а общее количество файлов в проекте сократилось с 61 до 34.
Программа автосопровождения тестировалась при помощи модульных тестов во время проведения рефакторинга. Последним этапом тестирования был запуск на задокументированных реальных полетах летательных аппаратов.
В результате была создана новая версия программы автосопровождения летательных аппаратов, удовлетворяющая всем указанным требованиям. Таким образом, все поставленные задачи были успешно выполнены.
Новая версия программы автосопровождения летаельных аппаратов внедрена в изделие. В настоящее время проводятся пусконаладочные работы.