За последние десятилетия сформировалось новое направление в программотехнике – CASE (Computer-Aided Software/System Engineering), в дословном переводе – разработка программного обеспечения ИС при поддержке (с помощью) компьютера. В настоящее время не существует общепринятого определения CASE, этот термин используется в весьма широком смысле. Первоначальное значение термина CASE, ограниченное вопросами автоматизации разработки только лишь программного обеспечения, в настоящее время приобрело новый смысл, охватывающий процесс разработки сложных ИС в целом. Теперь под термином CASE-средства понимаются программные средства, поддерживающие процессы создания и сопровождения ИС, включая анализ и формулировку требований, проектирование прикладного программного обеспечения (приложений) и баз данных, генерацию кода, тестирование, документирование, обеспечение качества, конфигурационное управление и управление проектом, а также другие процессы. CASE-средства вместе с системным программным обеспечением и техническими средствами образуют полную среду разработки ИС.
CASE-средства позволяют не только создавать «правильные» продукты, но и обеспечить «правильный» процесс их создания. Основная цель CASE состоит в том, чтобы отделить проектирование программного обеспечения от его кодирования и последующих этапов разработки, а также скрыть от разработчиков все детали среды разработки и функционирования программного обеспечения. При использовании CASE-технологий изменяются этапы жизненного цикла программного обеспечения ИС, при этом наибольшие изменения касаются этапов предпроектного и проектирования. Большинство существующих CASE-средств основано на методологиях структурного (в основном) или объектно-ориентированного анализа и проектирования, использующих спецификации в виде диаграмм или текстов для описания внешних требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств. Taкиe методологии обеспечивают строгое и наглядное описание проектируемой системы, которое начинается с ее общего обзора и затем детализируется, приобретая иерархическую структуру со все большим числом уровней.
CASE-технологии успешно применяются для построения практически всех типов систем программного обеспечения (ПО), однако устойчивое положение они занимают в следующих областях:
обеспечение разработки делового и коммерческого программного обеспечения – широкое применение CASE-технологий обусловлено массовостью этой прикладной
· области, в которой CASE применяется не только для разработки программного обеспечения, но и для создания моделей систем, помогающих решать задачи стратегического планирования, управления финансами, определения политики фирм, обучения персонала и др. (это направление получило свое собственное название – бизнес-анализ);
· разработка системного и управляющего программного обеспечения – активное применение CASE-технологий связано с большой сложностью данной проблематики и со стремлением повысить эффективность работ.
CASE – не революция в программотехнике, а результат естественного эволюционного развития всей отрасли средств, называемых ранее инструментальными, или технологическими. С самого начала CASE-технологии развивались с целью преодоления ограничений при использовании структурных методологий проектирования 60 – 70-х гг. XX века (сложности понимания, большой трудоемкости и стоимости использования, трудности внесения изменений в проектные спецификации и т.д.) за счет их автоматизации и интеграции поддерживающих средств. Таким образом, CASE-технологии не могут считаться самостоятельными методологиями, они только развивают структурные методологии и делают более эффективным их применение за счет автоматизации.
Помимо автоматизации структурных методологий и, как следствие, возможности применения современных методов системной и программной инженерии, CASE-средства обладают следующими основными достоинствами:
· улучшают качество создаваемого программного обеспечения за счет средств автоматического контроля (прежде всего контроля проекта);
· позволяют за короткое время создавать прототип будущей системы, что дает возможность на ранних этапах оценить ожидаемый результат;
· ускоряют процесс проектирования и разработки;
· освобождают разработчика от рутинной работы, позволяя ему целиком сосредоточиться на творческой части разработки;
· поддерживают развитие и сопровождение разработки;
· поддерживают технологии повторного использования компонентов разработки.
Появлению CASE-технологии и CASE-средств предшествовали исследования в области методологии программирования. Программирование обрело черты системного подхода с разработкой и внедрением языков высокого уровня, методов структурного и модульного программирования, языков проектирования и средств их поддержки, формальных и неформальных языков описаний системных требований и спецификаций и т.д. В 70 – 80-х гг. XX века стала на практике применяться структурная методология, предоставляющая в распоряжение разработчиков строгие формализованные методы описания АИС и принимаемых технических решений. Она основана на наглядной графической технике: для описания моделей АИС различного рода используются схемы и диаграммы.
Наглядность и строгость средств структурного анализа позволяли разработчикам и будущим пользователям системы с самого начала неформально участвовать в ее создании, обсуждать и закреплять понимание основных технических решений. Однако широкое применение этой методологии и следование ее рекомендациям при разработке конкретных ИС встречалось достаточно редко, поскольку при неавтоматизированной (ручной) разработке это практически невозможно. Это и способствовало появлению программно-технологических средств особого класса – CASE-средств, реализующих CASE-технологию создания и сопровождения ИС.
Необходимо понимать, что успешное применение CASE-средств невозможно без понимания базовой технологии, на которой эти средства основаны. Сами по себе программные CASE-средства являются средствами автоматизации процессов
проектирования и сопровождения ИС. Без понимания методологии проектирования ИС невозможно применение CASE-средств.