CASE-технология представляет собой совокупность методов разработки ПО и набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех стадиях разработки и сопровождения ПО и разрабатывать приложения в соответствии с информационными потребностями пользователей.
CASE-технология является наиболее перспективным направлением в инженерном программировании. Практически ни один серьезный зарубежный программный проект не осуществляется без использования CASE-средств.
CASE-технология позволяет не только создавать "правильные" продукты, но и обеспечить "правильный" процесс их создания. При использовании CASE-технологий изменяются все этапы ЖЦ ПО, при этом наибольшие изменения касаются этапов анализа и проектирования, происходит перераспределение затрат на создание ПО (рис. 14.1).
Рис. 14.1. Распределение затрат на создание программного обеспечения
Некоторые CASE-технологии ориентированы только на системных проектировщиков:
- предоставляют специальные графические средства для изображения различного вида моделей, при этом для описания моделей используются графы, диаграммы, таблицы и схемы (таким образом, обеспечивается строгое и наглядное описание проектируемой системы, которое начинается с ее общего обзора и затем детализируется, приобретая иерархическую структуру со все большим числом уровней);
- выполняют автоматизированное проектирование спецификаций программ (задание основных характеристик для разработки программ);
- ведут словарь данных.
Другой класс CASE-технологий поддерживает только разработку программ, включая:
- автоматическую генерацию кодов программ на основании их спецификаций (выполняется двумя способами — созданием каркаса программ и созданием полного продукта. Каркас служит для последующего ручного варианта редактирования исходных текстов, обеспечивая возможность вмешательства программиста; полный продукт не редактируется вручную);
- проверку корректности описания моделей;
- документирование программ согласно принятым стандартам и актуальному состоянию проекта;
- тестирование и отладку программ.
В рамках CASE-технологий проект сопровождается целиком, а не только его программные коды. Проектные материалы служат заданием программистам, а само программирование сводится к кодированию, если не предусмотрена автоматическая кодогенерация.
Основная цель CASE-технологий — отделить проектирование ПО от его кодирования и последующих этапов разработки ПО. Большинство CASE-технологий использует метод "прототипов" для быстрого создания программ на ранних этапах разработки.
Основное достоинство CASE-технологии — поддержка коллективной работы над проектом за счет возможности работы в локальной сети разработчиков, экспорта/импорта любых фрагментов проекта, организационного управления проектом.
CASE-технологии успешно применяются для построения практически всех типов систем ПО, однако, устойчивое положение они занимают в следующих областях:
- обеспечение разработки делового и коммерческого ПО. В этой прикладной области CASE-технологии применяются не только для разработки ПО, но и для соз-дания моделей систем, помогающих коммерческим структурам решать задачи стратегического планирования, управления финансами, определения политики фирм, обучения персонала и др. Это направление получило свое собственное название — бизнес-анализ;
- разработка системного и управляющего ПО. Активное применение CASE-технологий связано с большой сложностью данной проблематики и со стремлением повысить эффективность работ.