CASE-технология (Computer-AidedSoftware / SystemEngineering) представляет собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных систем программного обеспечения (ПО), поддержанную комплексом взаимосвязанных средств автоматизации. CASE предоставляет системным аналитикам, проектировщикам и программистам инструментарий для автоматизации проектирования и разработки ПО.
CASE позволяет не только получать корректные программные продукты, но и обеспечивает технологически правильный процесс их создания. Главная цель CASE состоит в том, чтобы отделить проектирование ПО от его кодирования и последующих этапов разработки, а также скрыть от разработчиков все детали среды разработки ПО. Основной акцент в процессе создания ПО приходится на этапы анализа и проектирования, в отличие от кодирования.
CASE-технологии широко применяются для многих типов систем ПО, но чаще всего они используются в следующих областях:
1. Разработка делового и коммерческого ПО. Широкое применение CASE-технологий обусловлено массовостью этой прикладной области, в которой CASE применяется не только для разработки ПО, но и для создания моделей систем, помогающих коммерческим структурам решать задачи стратегического планирования, управления финансами, определения политики фирм, обучение персонала (этот направление получил собственное название - бизнес-анализ).
2. Создание системного и управляющего ПО. Использование CASE-технологии в этой отрасли вызвано высокой сложностью данного вида работ и необходимостью повышения их производительности.
Помимо автоматизации структурных методологий и возможности применения современных методов системной и программной инженерии, CASE-средства имеют следующие преимущества:
• повышают качество создаваемого ПО благодаря использованию средств автоматического контроля, в частности контроля проекта;
• поддерживают создание прототипа будущей системы, что позволяет на ранних этапах оценить ожидаемый результат;
• ускоряют процесс проектирования и разработки;
• освобождают разработчика от рутинной работы, предоставляя ему возможность сосредоточиться на творческой части разработки;
• поддерживают развитие и сопровождение разработки;
• обеспечивают технологии повторного использования компонентов разработки.