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