Лекция 10. Автоматизация процесса программирования. CASE-технологии

Аббревиатура CASE (Computer-Aided Software Engineering – автоматизированная разработка программного обеспечения) обозначает специальный тип программного обеспечения, предназначенного для поддержки таких процессов создания ПО, как разработка требований, проектирование, кодирование и тестирование программ. Поэтому к CASE-средствам относятся редакторы проектов, словари данных, компиляторы, отладчики, средства построения систем и т.п. CASE-средства предлагают поддержку процесса создания ПО путем автоматизации некоторых этапов разработки, а также создания и представления информации, необходимой для разработки.

В настоящее время подходящие CASE-технологии существуют для большинства процессов, выполняемых в ходе разработки ПО. Это ведет к улучшению качества создаваемых программ и повышению производительности труда разработчиков программного обеспечения. Уже сложилась развитая индустрия CASE-средств, а круг поставщиков и разработчиков этих программных продуктов очень широк.

Классификация CASE-средств

Существует несколько различных классификаций CASE-средств, и каждая предлагает свой взгляд на эти программные продукты. Рассмотрим классификацию по категориям, где CASE-средства классифицируются по степени интеграции программных модулей, поддерживающих различные процессы разработки ПО. Эта классификация содержит три основные категории:

1. Вспомогательные программы (tools) поддерживают отдельные процессы разра

ботки ПО, такие как проверка непротиворечивости архитектуры системы, компиляция программ, сравнение результатов тестов и т.д. Вспомогательные программы могут быть универсальными функционально законченными средствами или могут входить в состав инструментальных средств.

2. Инструментальные средства (workbenches) поддерживают определенные про

цессы разработки ПО, такие как создание спецификации, проектирования. Обычно они представляют собой набор интегрированных вспомогательных программ.

3. Рабочие среды разработчиков (environments) поддерживают все или большин-

ство процессов разработки ПО и включают в себя несколько различных интегрированных инструментальных средств.

Схематично классификация по категориям с примерами CASE-средств различных категорий представлена на рис. 2.

 

Рис. 2. Классификация CASE-средств по категориям

 

Вспомогательные программы выбираются разработчиками ПО обычно по своему усмотрению. Инструментальные средства поддерживают определенные методы разработки на основе некоторой модели разработки ПО, наборов правил и нормативных указаний. Интегрированные рабочие среды представляют инфраструктуру поддержки для данных, управления и интеграции системных представлений. Экспертные рабочие среды более интеллектуальны. Они включают базу знаний о процессах создания ПО и механизм, предлагающий разработчику те или иные вспомогательные или инструментальные средства.

Инструментальные средства обычно объединяют через общий репозиторий.

Структура пакета инструментальных средств показана на рис. 3.

Рис. 3. Пакет инструментальных CASE-средств

 

Такой пакет образуют следующие средства.

1. Редакторы диаграмм предназначены для создания диаграмм потоков данных, иерархий объектов, диаграмм «сущность-связь». Эти редакторы не только имеют средства рисования, но и поддерживают различные типы объектов, используемых в диаграммах.

2. Средства проектирования, анализа и проверки выполняют проектирование ПО и создают отчет об ошибках и дефектах в системной архитектуре. Они могут работать совместно с системой редактирования, поэтому обнаруженные ошибки можно устранить на ранней стадии проектирования.

3. Центральный репозиторий позволяет проектировщику найти нужный проект и соответствующую ему проектную информацию.

4. Словарь данных хранит информацию об объектах, которые используются в структуре системы.

5. Средства генерирования отчетов на основе информации из центрального репозитория автоматически генерируют системную документацию.

6. Средства создания форм определяют форматы экранных форм и документов.

7. Средства импортирования и экспортирования позволяют обмениваться информацией из центрального репозитория различным инструментальным средствам.

8. Генераторы программного кода автоматически генерируют программы на основе проектов, хранящихся в центральном репозитории.

Различают два класса инструментальных систем технологии программирования: инструментальные системы поддержки проекта и языково-зависимые инструментальные системы.

Инструментальная система поддержки проекта - это открытая система, способная поддерживать разработку ПС на разных языках программирования после соответствующего ее расширения программными инструментами, ориентированными на выбранный язык. Набор инструментов такой системы поддерживает разработкой ПС, а также содержит независимые от языка программирования инструменты, поддерживающие разработку ПС (текстовые и графические редакторы, генераторы отчетов и т.п.). Кроме того, он содержит инструменты расширения системы. Ядро такой системы обеспечивает, в частности, доступ к репозиторию.

Языково-зависимая инструментальная система - это система поддержки разработки ПС на каком-либо одном языке программирования, существенно использующая в организации своей работы специфику этого языка. Эта специфика может сказываться и на возможностях ядра (в том числе и на структуре репозитория), и на требованиях к оболочке и инструментам. Примером такой системы является среда поддержки программирования на языке Ада.

На сегодняшний день наиболее развитым из всех поставляемых в России комплексов такого рода является комплекс технологий и инструментальных средств создания информационных систем, основанный на методологии и технологии DATARUN. В состав комплекса входят следующие инструментальные средства:

- CASE-средство Silverrun;

- средство разработки приложений JAM;

- мост Silverrun-RDM JAM;

- комплекс средств тестирования QA;

- менеджер транзакций Tuxedo;

- комплекс средств планирования и управления проектом SE Companion;

- комплекс средств конфигурационного управления PVCS;

- объектно-ориентированное CASE-средство Rational Rose;

- средство документирования SoDA.