Процесс разработки программного обеспечения состоит из многогранной деятельности, и – это творческий процесс, нацеленный на интенсивный обмен информацией, создания карт размещения информации, анализа, визуализации. Создаваемые в процессе разработки единицы информации должны быть взаимосвязаны между собой. Такой подход позволяет при изменении т.н. функционального требования легко найти требующие изменения части кода и при их изменениях, в свою очередь, искать требующие перетестирования модули. Для облегчения этой работы используются специальные средства, которые известны под общим наименованием CASE-средств (Computer-Aided Software Engineering Tools). CASE-средства -это программные средства, которые поддерживают процесс разработки и управления программного обеспечения. CASE-инструментарий помогает внедрять как рабочие средства, так и методы для создания высококачественных систем. Итак, средства могут быть построены таким образом, что поддерживать и содействовать использованию конкретных методов разработки.
vallaste.ee предлагает «tarkvara raaltehnoloogia» (компьютерная технология программного обеспечения) в качестве эстонского термина для CASE. Это среда разработки, которая позволяет автоматизировать, управлять и упростить процесс разработки системы. Сюда относятся, например, средства анализа исходных условий, составления блок-схем и временного графика работ разработки, написание документации, программы управления версиями, для написания программного кода и т.д. В более узком смысле под CASE подразумеваются системы, поддерживающие объектно-ориентированное программирование, однако в целом под это понятие попадают все среды разработки программного обеспечения.
CASE-средства помогают автоматизировать деятельность на различных фазах жизненного цикла разработки системы. Например, в случае необходимости использовать прототипирование в наличии имеются специальные программные средства, при помощи которых удобно и быстро создавать графические модели скриншотов (копии экрана) приложения.
CASE-средства можно классифицировать в соответствии с их целевым назначением по нескольким направлениям.
Поддерживающие жизненный цикл систем разработки CASE-средства подразделяются, например, на две категории:
- CASE-средства «верхнего уровня» (высокоуровневые) (upper CASE tools) поддерживают анализ и проектирование. В основном они используются при анализе и документировании требований пользователей. Они, прежде всего, подходят для визуализации, для создания различных схем и генерирования документации. Они поддерживают использование традиционных языков диаграмм (диаграммы сущность-связь, моделей данных, UML-схемы и т.д.).
- CASE-средства «низкого уровня» (низкоуровневые) (lower CASE tools) сосредотачиваются на тех реализациях, в которых из моделей может быть создан реальный программный продукт. Они поддерживают генерирование структуры базы данных, генерирование кода, проведение тестирования, управление версиями кода, управление конфигурацией, реверсивное проектирование и тому подобное.
CASE-средства могут использоваться для поддержки некоторого узкого направления, однако наиболее передовое направление заключается в соединении средств так образом, чтобы создаваемая документация, модели, код, тесты и т.д. на различных этапах разработки системы были бы лучше взаимосвязаны. Посему, в одно программное обеспечение объединяют низко- и высокоуровневые CASE-средства.Различные CASE-средства поддерживают процесс разработки программного обеспечения в разных масштабах – от нескольких шагов разработки до интегрированных решений, т. е. начиная со сбора требований до управления программным обеспечением. Специальный сорт CASE-средств формируют программы, которые позволяют проводить процесс разработки программного обеспечения в «обратном направлении», т.е. делать реверсивное проектирование (reverse engineering), например, сгенерировать из кода описательную архитектурную схему структуры системы или из скомпилированного кода в исходный код. Такие средства часто используют при отсутствующей, неполной или устаревшей документации программного обеспечения.