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