2.4 Обоснование выбора технологии разработки и отладки
Понятие «технология разработки программного обеспечения» (ПО) включает в себя совокупность инструментальных средств автоматизации разработки ПО и технологический процесс, регламентирующий порядок организации и проведения этих работ. На современном рынке появились разнообразные технологии и поддерживающие их инструментальные средства, зачастую с близкими характеристиками и возможностями, что ставит перед программистами проблему выбора технологии, которая в значительной степени связана с выбором инструментальных средств автоматизации разработки программ.
Возникает задача определения совокупности показателей и разработки методики сопоставительного анализа инструментальных средств, поддерживающих конкретные технологии программирования. Решение этой задачи позволит осуществить обоснованный выбор инструментальных средств применительно к конкретным условиям разработки.
Задача выбора состоит в установлении соответствия между характеристиками разрабатываемого ПО, организационно-техническими условиями его разработки и параметрами выбираемых инструментальных средств автоматизации с учетом ограничений ресурсов проектирования. При этом проблемная область разрабатываемого ПО является одним из важнейших факторов, учитываемых при выборе. Рассмотрим задачу выбора инструментальных средств применительно к разработке конкретного класса программного обеспечения, а именно: программ реального времени.
Архитектура инструментальных средств автоматизации
Основные требования, предъявляемые к программам реального времени, - надежность, эффективность, длительная непрерывная работа и возможность широкого тиражирования.
Особенность программ этого класса – сложность (логическая и информационная), значительные объемы, большие коллективы разработчиков, высокие требования к использованию ресурсов ЭВМ.
Современные инструментальные системы автоматизации разработки ПО (САРПО) различаются двумя показателями. Первый – это взаимосвязь систем команд технологической ЭВМ (ТЭВМ), обеспечивающей функционирование САРПО, и встроенной специализированной ЭВМ (СЭВМ), на которой работает проектируемое ПО; второй – степень интегрированности САРПО. С позиции взаимосвязи системы команд известны три класса инструментальных систем: резидентные, кроссовые и смешанные. Для систем реального времени характерно использование разнообразных типов встроенных ЭВМ, специально предназначенных для выполнения проблемно-ориентированных задач управления, поэтому наибольшее распространение при создании ПО получили кроссовые и смешанные САРПО[5].
С точки зрения степени интегрированности САРПО представляют в одном случае набор независимых пакетов, каждый из которых может быть использован автономно для поддержки отдельных технологических этапов или операций, в другом – единую интегрированную систему, поддерживающую весь процесс разработки ПО.
Этапы и операции разработки ПО реального времени, требования к этим программам определяют типовой состав и структуру САРПО.
В общем случае такие системы включают в себя следующие компоненты:
база данных проектирования, хранящая всю информацию о разрабатываемых программах;
организующая система, обеспечивающая взаимодействие пользователей с САРПО и ТЭВМ;
средства автоматизации системного анализа проектируемого ПО;
средства автоматизации программирования;
средства автоматизации отладки и тестирования на ТЭВМ;
сродства автоматизированного выпуска документации и носителей;
средства имитации внешней среды и обработки результатов функционирования программ, а также их комплексной отладки на СЭВМ.
Одним из основных параметров САРПО является уровень автоматизации технологического процесса, который может быть выражен количеством и номенклатурой автоматизируемых этапов и операций[5]. Определено пять таких уровней (см. таблицу 1). Первый автоматизирует простейшие операции – трансляцию с ассемблера, отладку в машинном коде, выпуск минимального числа документов. Следующие уровни характеризуются увеличением количества автоматизируемых функций. Пятый уровень включает функционально полную совокупность средств автоматизации по всему жизненному циклу ПО.
Этапы разработки
|
Уровень автоматизации
|
|
1
|
2
|
3
|
4
|
5
|
Системный анализ и проектирование алгоритмов.
|
++
|
+++
|
+++
|
+++
|
+++
|
Структурное проектирование. Подготовка технологических средств.
|
|
|
+++
|
|
+++
|
Разработка программ. Отладка программ в статике.
|
+
|
+
|
++
|
+++
|
+++
|
Комплексная динамическая отладка. Выпуск машинных носителей и документирование
|
|
|
|
+++
|
+++
|
Испытание ПС
|
|
|
|
+++
|
+++
|
Таблица 1. Уровни автоматизации технологического процесса.
Очевидно, что чем выше уровень автоматизации в САРПО, тем более высокие требования предъявляются к ресурсам ТЭВМ.
Основные положения методики выбора САРПО
Выбор наиболее эффективной САРПО зависит от ресурсов проектирования, характеристик объекта разработки и номенклатуры существующих технологий и средств. Поэтому выбор целесообразно осуществлять в три этапа, последовательно уточняя характеристики выбираемых систем.
В первую очередь готовится информация о разработке ПО, включающая размер комплекса программ (КП), тип СЭВМ, объем ее памяти, тип ТЭВМ и ее характеристики, степень совместимости систем команд ЭВМ, сроки начала и окончания работ, предполагаемую численность коллектива разработчиков. Парк ТЭВМ рассматривается с позиции возможного размещения на них выбранной САРПО, определяется класс САРПО.
Второй этап начинается с анализа оснащенности предполагаемого коллектива программистов ресурсами ТЭВМ. Особое значение имеет объем их внешней памяти. Поэтому выбираемые САРПО проверяются на удовлетворение требованиям по объемам проектируемых КП. Объем внешней памяти ТЭВМ по существу определяет уровень автоматизации технологического процесса.
Далее САРПО рассматриваются с точки зрения реализованных в них языков программирования. В первую очередь анализируются системы, поддерживающие языки высокого уровня. При этом оцениваются ресурсы памяти и производительность СЭВМ и производится их сопоставление с прогнозными оценками общего объема КП с учетом характеристик расширения трансляторов, входящих в САРПО. Затем определяются преимущества альтернативных вариантов САРПО с точки зрения автоматизируемых в них операций технологического процесса разработки КП, при этом обращается внимание на наиболее трудоемкие операции, и учитываются ресурсы выбранной ТЭВМ.
После этого проводится анализ характеристик взаимодействия программистов с выбираемой САРПО, поскольку этот интерфейс во многом определяет производительность программистов и качество получаемых программ. С этим анализом тесно связана оценка возможностей развития и сопровождения САРПО. Трудоемкость создания современных САРПО очень велика, поэтому с точки зрения рентабельности производства ПО, а также с позиции организационно-психологической их целесообразно внедрять для разработки многих программных проектов на длительный период времени. В этих условиях вопросы развития САРПО и их сопровождения переходят в разряд определяющих.
На третьем этапе выбора технологии основной задачей является определение САРПО, адаптированных или настроенных на системы команд СЭВМ нужного типа. При отсутствии готовых версий САРПО, в которых предусмотрена возможность настройки, проводится оценка трудоемкости этих работ и в случае их нецелесообразности принимается решение о разработке новой САРПО.
Отладка с помощью Qt Creator
Qt Creator не имеет собственного отладчика. Вместо этого он предоставляет графический интерфейс к различным отладчикам (см. таблицу 2).
Платформа
|
Компилятор
|
Отладчик
|
Linux, Unixes, Mac OS
|
gcc
|
GNU Symbolic Debugger (gdb)
|
Windows/MinGW
|
gcc
|
GNU Symbolic Debugger (gdb)
|
Windows
|
Microsoft Visual C++ Compiler
|
Debugging Tools for Windows/Microsoft Console Debugger (CDB)
|
Таблица 2. Отладчики к соответствующим платформам
Интерфейс позволяет отлаживать программу построчно или по каждой инструкции, прерывать запущенную программу, устанавливать точки останова, просматривать содержимое стека вызовов, локальных и глобальных переменных .
В Qt Creator сырая информация, предоставляемая отладчиком, отображается явным и лаконичным образом, упрощая процесс отладки.
В дополнение к базовой функциональности IDE: просмотр стека, просмотр локальных и наблюдаемых переменных, регистров и т.д.
Qt Creator имеет дополнительные особенности, делая отладку приложений, основанных на Qt, проще. Интерфейс отладчика знает о внутреннем устройстве некоторых классов Qt, таких как QString, контейнеры QTL и, что особенно важно, QObject (и унаследованные от него классы). Таким образом, он может ясно представлять данные Qt.
|