Средства автоматизации разработки программ (CASE-средства)
Средства автоматизации разработки программ - инструментарий для системных аналитиков, разработчиков и программистов, позволяющий автоматизировать процесс проектирования и разработки программного обеспечения. Первоначально под CASE-средствами понимались средства, применяемые на ранних процессах жизненного цикла." В первую очередь - на наиболее трудоемких процессах анализа и проектирования. Международный стандарт [ISO/IEC 14102:1995] определяет CASE-средства более широко - как программное средство, поддерживающее процессы жизненного цикла программного обеспечения. CASE-средства характеризуются наличием мощных средств визуального моделирования.
Особенности средств автоматизации разработки программ:
- поддерживают единственную методологию;
- ориентируются на определенную технологию;
- предназначаются для команд, работающих над единственным проектом (так сложилось исторически);
- используются для разработки информационных систем;
- разрабатываются одной компанией. Возможность интеграции инструментов других компаний отсутствует.
Примеры CASE-средств:
- Oracle Designer (компании Oracle ();
- ERwin (компании Computer Associates International, Inc. (http://www.cai.com/));
- Rational Rose (компании Rational Software Corporation (http://www.rational.com/)).
Интегрированные среды
Интегрированная среда - совокупность программных инструментов, поддерживающая все процессы жизненного цикла программного обеспечения в рамках определенной технологии. Компонентами интегрированных сред являются:
- инструменты управления процессами;
- инструменты управления проектом;
- инструменты конфигурационного управления;
- инструменты верификации;
- инструменты поддержки разработки документации.
Выделяют три уровня интеграции инструментов в интегрированных средах.
- Уровень 1. Интеграция инструментов очень слабая. Как правило, обмен информацией между ними происходит через интерфейсы экспорта и импорта.
- Уровень 2. Интеграция инструментов одной компании осуществляется на основе единого репозитория. Интеграция инструментов других компаний с первыми инструментами происходит по образцу уровня 1.
- Уровень 3. Интеграция всех инструментов осуществляется с помощью общего репозитория. При этом любой инструмент любой компании может осуществлять взаимодействие через службы взаимодействия с репозиторием.
Особенности интегрированных сред:
- поддерживают различные методологии;
- определяют технологию разработки;
- применяются командами, работающими вместе над несколькими проектами;
- как правило, используются для разработки научных и инженерных приложений;
- разрабатываются одной компанией, но имеется возможность интеграции инструментов других компаний.
Примеры интегрированных сред:
- WebSphere Studio WorkBench (компании IBM));
- CohesionWorX (компании Digital Equipment Corp.);
- SorfBench (компании Hewlett-Packard (http://www.hp.com/)).
Об аппаратной платформе интегрированных сред Обратим внимание, что интегрированные среды практически отсутствуют на персональных компьютерах. Это можно объяснить сильным монополизмом компаний разработчиков инструментария на рынке персональных компьютеров и их нежеланием предоставлять возможность интеграции инструментов других компаний.
Репозитории проекта
Репозитории - хранилище информации, связанной с проектом разработки программного продукта в течение всего его жизненного цикла. В современных инструментальных системах репозитории приобретают роль фундамента всей информационной среды. Важно, чтобы репозитории помогали работе инструментальных систем.
Филипп Бернштейн (Philipp Bernstein) определяет репозитории как разделяемую базу данных с информацией об артефактах проектирования, требующую некоторых дополнительных функций управления помимо предоставляемых обычными системами баз данных.
Большинство технологических подходов к разработке программного обеспечения предполагает работу с тремя основными типами информации - модельными спецификациями, интерфейсом прикладного программиста и окружением проекта. Выделим три уровня репозиториев, соответствующих этим типам.
- Модельный.
- Программного интерфейса.
- Окружения.
Уровень моделирования достаточно хорошо может быть описан универсальным языком UML. Данный язык является абстрактным, не привязанным к конкретной модели. Язык дает возможность описать зависимости элементов, иерархию, взаимосвязи, свойства и т. п.
Уровень программного интерфейса разумно описывать с помощью языка определения интерфейсов IDL, обеспечивающего независимость спецификации интерфейсов от их реализации. Уровень играет не только роль промежуточного слоя, также его средства поддерживают распределенное программирование (в том числе в Интернете).
Репозитории окружения программного проекта предназначен для хранения информации, разделяемой компонентами и подкомпонентами систем программирования в процессе их работы. Приведем ниже основные группы и подгруппы полезной информации.
- Языково-независимая группа.
- Информация для отладчика.
- Информация для просмотрщика исходных текстов.
- Языково-зависимая группа (например, для языка C++).
- Информация для шаблонов.
- Коды встроенных функций.
- Виртуальные функции.
- Группа контроля репозитория.
- Контроль информации о версиях.
- Контроль отношения к проекту.
- Тип параллельной обработки.
- Тип управления репозиторием.
- Проверка цифровой подписи.
Основными достоинствами применения репозиториев окружения являются:
- эффективность работы с информацией;
- использование информации для целей оптимизации;
- распределенность (из которой следуют доступность, параллелизм и специализация);
- модульность, включающая независимость от конкретных инструментов (например, компиляторов);
- возможность работы с репозиторием как в архитектуре "клиент-сервер", так и в "связанном" с инструментом режиме.
Статистика отмечает, что около 80% программного обеспечения создается по уже имеющемуся. Следовательно, необходимо иметь инфраструктуру (электронную библиотеку), которая будет поддерживать архивы и достаточно интеллектуальный поиск нужных прототипов и фрагментов. Фактически, мы на более высоком уровне обращаемся к парадигме сборочного программирования, которая характеризуется стремлением к выделению независимой единицы программистского знания (модульной абстракции). Одним из наиболее известных репозиториев является Microsoft Repository (компании Microsoft (http://www.microsoft.com/)).
Средства поддержки коллективной разработки
Коллективные разработки часто сталкиваются с проблемами разделения ресурсов - файлов и каталогов и необходимости синхронизации времени и места.
Системы разделения файлов
Для поддержки коллективной работы с файлами применяются три основных класса систем.
- Системы управления версиями файлов.
- Системы управления пространствами пользователей.
- Системы синхронизации удаленных пространств.
Если три класса систем выпускаются одним производителем, то часто каждая последующая система в этом списке использует предыдущую систему, выступая в качестве надстройки.
О системах управления версиями Обратим внимание, что системы управления версиями файлов следует использовать не только при коллективной, но и при индивидуальной (авторской) разработке для решения задачи отслеживания изменений между различными версиями. Мы помещаем информацию об этих системах в данном разделе лишь с целью подчеркнуть их полную незаменимость при коллективных разработках.
Поскольку данные системы действительно очень важны, их реализации существуют в большом количестве практически для всех операционных систем. Приведем два стека таких систем (табл. 5.2).
Таблица 5.2. Примеры средств поддержки коллективной разработки
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|