Классификация инструментальных средств.
Введение
В процессе разработки программного обеспечения используется большое количество самого разностороннего программного обеспечения (ПО). Данный курс лекций рассматривает когда и что используется на протяжении всего этапа разработки приложений.
Чтобы дать более полное представление о роли каждой утилиты или срезы разработки в процессе создания ПО, все рассмотренные в данном курсе лекций инструментальные средства будут рассмотрены на примере разработки приложений с использованием одного их высокоуровневых языков. Для простоты, все используемые инструментальные средства можно разделить на 4 группы. Рассмотрим подробнее каждую из групп.
Необходимые
Необходимые инструментальные средства - это те, без которых в принципе невозможно получить исполняемый код; К этой группе можно отнести:
§ редакторы текстов;
§ компиляторы и ассемблеры;
§ компоновщики или редакторы связей (linkers);
Часто используемые
Это средства, использования которых, в отличие от необходимых, можно избежать. Но без них процесс разработки весьма затрудняется и удлиняется; Из часто используемых средств стоит назвать:
§ утилиты автоматической сборки проекта;
§ отладчики;
§ программы создания инсталляторов;
§ редакторы ресурсов;
§ профилировщики;
§ программы поддержки версий;
§ программы создания файлов помощи (документации).
Специализированные
Эти инструментальные средства используются в исключительных случаях, решают довольно специфичные задачи:
§ программы отслеживания зависимостей;
§ дизассемблеры;
§ декомпиляторы;
§ hex-редакторы;
§ программы отслеживания активности системы и изменений, происходящих в системе;
§ программы-вериферы и контейнеры (создают виртуальную среду для отдельных классов программ, в которой можно исследовать поведение программы);
Интегрированные среды разработки
Интегрированные среды разработки содержат большую часть из приведенных выше программ и позволяют упростить процесс создания приложений. По большому счету, среда разработки - это программа, которая собирает вместе несколько инструментальных средств из первой и второй (а иногда и третьей) групп.
В дальнейшем, мы более подробно познакомимся с основными представителями каждой группы, а так же рассмотрим как это всё работает в интегрированной среде разработки.
КЛАССИФИКАЦИЯ ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ
ТЕМА 1 ПОНЯТИЕ ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ.
КЛАССИФИКАЦИЯ ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ.
Инструментальная система технологии программирования - это интегрированная совокупность программных и аппаратных инструментов, поддерживающая все процессы разработки и сопровождения больших ПС в течение всего его жизненного цикла в рамках определенной технологии.
Инструментальные системы технологии программирования можно выделить три основные компоненты:
· репозиторий,
· инструментарий,
· интерфейсы.
Инструментарий - набор инструментов, определяющий возможности, предоставляемые системой коллективу разработчиков. Обычно этот набор является открытым и структурированным. Помимо минимального набора (встроенные инструменты), он содержит средства своего расширения (импортированными инструментами). Кроме того, в силу интегрированности по действиям он состоит из некоторой общей части всех инструментов (ядра) и структурных (иногда иерархически связанных) классов инструментов.
Интерфейсы разделяются на пользовательский и системные. Пользовательский интерфейс обеспечивает доступ разработчикам к инструментарию. Он реализуется оболочкойсистемы. Системные интерфейсы обеспечивают взаимодействие между инструментами и их общими частями. Системные интерфейсы выделяются как архитектурные компоненты в связи с открытостью системы - их обязаны использовать новые (импортируемые) инструменты, включаемые в систему.
Самая общая архитектура инструментальных систем технологии программирования представлена на рис.
Рис. Общая архитектура инструментальных систем технологии программирования.
Различают два класса инструментальных систем технологии программирования: инструментальные системы поддержки проекта и языково-зависимые инструментальные системы.
Инструментальная система поддержки проекта - это открытая система, способная поддерживать разработку ПС на разных языках программирования после соответствующего ее расширения программными инструментами, ориентированными на выбранный язык. Набор инструментов такой системы поддерживает разработкой ПС, а также содержит независимые от языка программирования инструменты, поддерживающие разработку ПС (текстовые и графические редакторы, генераторы отчетов и т.п.). Кроме того, он содержит инструменты расширения системы. Ядро такой системы обеспечивает, в частности, доступ к репозиторию.
Языково-зависимая инструментальная система - это система поддержки разработки ПС на каком-либо одном языке программирования, существенно использующая в организации своей работы специфику этого языка. Эта специфика может сказываться и на возможностях ядра (в том числе и на структуре репозитория), и на требованиях к оболочке и инструментам.