Термин CASE (Computer Aided System/Software Engineering) используется в довольно широком смысле. Первоначальное значение термина CASE, ограниченное вопросами автоматизации разработки только лишь программного обеспечения, в настоящее время приобрело новый смысл, охватывающий процесс разработки сложных ИС в целом. С самого начала CASE-технологии развивались с целью преодоления ограничений при использовании структурной методологии проектирования (сложности понимания, высокой трудоемкости и стоимости использования, трудности внесения изменений в проектные спецификации и т. д.) за счет ее автоматизации и интеграции поддерживающих средств. Таким образом, CASE-технологии не могут считаться самостоятельными, они только обеспечивают, как минимум, высокую эффективность их применения, а в некоторых случаях и принципиальную возможность применения соответствующей методологии. Большинство существующих CASE-систем ориентировано на автоматизацию проектирования программного обеспечения и основано на методологиях структурного (в основном) или объектно-ориентированного проектирования и программирования, использующих спецификации в виде диаграмм или текстов для описания системных требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств. В последнее время стали появляться CASE-системы, уделяющие основное внимание проблемам спецификации и моделирования технических средств.
Наибольшая потребность в использовании CASE-систем испытывается на начальных этапах разработки, а именно на этапах анализа и спецификации требований к АИС. Это объясняется тем, что цена ошибок, допущенных на начальных этапах, на несколько порядков превышает цену ошибок, выявленных на более поздних этапах разработки.
Появлению CASE-технологии предшествовали исследования в области методологии программирования. Программирование обрело черты системного подхода с разработкой и внедрением языков высокого уровня, методов структурного и модульного программирования, языков проектирования и средств их поддержки, формальных и неформальных языков описания системных требований и спецификаций и т. д. Кроме того, этому способствовали перечисленные ниже факторы:
– подготовка аналитиков и программистов, восприимчивых к концепциям модульного и структурного программирования;
– широкое внедрение и постоянный рост производительности персональных ЭВМ, позволяющих использовать эффективные графические средства и автоматизировать большинство этапов проектирования;
– внедрение сетевой технологии, предоставившей возможность объединения усилий отдельных исполнителей в единый процесс проектирования путем использования разделяемой БД, содержащей необходимую информацию о проекте.
Преимущества CASE-технологии по сравнению с традиционной технологией оригинального проектирования сводятся к следующему:
– улучшение качества разрабатываемого программного приложения за счет средств автоматического контроля и генерации;
– возможность повторного использования компонентов разработки;
– поддержание адаптивности и сопровождения АИС;
– снижение времени создания системы, что позволяет на ранних стадиях проектирования получить прототип будущей системы и оценить его;
– освобождение разработчиков от рутинной работы по документированию проекта, так как при этом используется встроенный документатор;
– возможность коллективной разработки АИС в режиме реального времени.
CASE-технология в рамках методологии включает в себя методы, с помощью которых на основе графической нотации строятся диаграммы, поддерживаемые инструментальной средой.
Методология определяет шаги и этапность реализации проекта, а также правила использования методов, с помощью которых разрабатывается проект.
Метод – это процедура или техника генерации описаний компонентов АИС (например, проектирование потоков и структур данных).
Нотация – отображение структуры системы, элементов данных, этапов обработки с помощью специальных графических символов диаграмм, а также описание проекта системы на формальных и естественных языках.
Инструментальные средства CASE – специальные программы, которые поддерживают одну или несколько методологий анализа и проектирования ИС (см. рис. 7).
Рис. 7. Архитектура CASE-средства