Максимально упростить и формализовать процессы формирования требований и проектирования системы позволяют современные CASE-средства.
В 70-х и 80-х гг. ХХ в. при разработке информационных систем достаточно широко стала применяться структурная методология анализа, предоставляющая в распоряжение разработчиков строгие формализованные методы описания системы и принимаемых технических решений. Она основана на применении наглядной графической техники (схем и диаграмм), предназначенной для описания различного рода моделей. Наглядность и строгость средств структурного анализа позволяла разработчикам и будущим пользователям системы с самого начала неформально участвовать в ее создании, обсуждать и закреплять понимание основных технических (проектных) решений.
Перечисленные факторы способствовали появлению специальных программных средств – CASE-средств, реализующих CASE-технологию создания и сопровождения информационных систем. Термин CASE используется в настоящее время весьма широко. Первоначальное значение термина CASE, ограниченное вопросами автоматизации разработки только лишь программного обеспечения, в настоящее время приобрело новый смысл, охватывающий процесс разработки и сопровождения сложных систем в целом.
CASE-технология представляет собой методологию проектирования информационных систем, набор методов, нотаций1 и инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать модель системы на всех этапах разработки и сопровождения системы и разрабатывать приложения в соответствии с информационными потребностями пользователей.
В качестве инструментария реализации технологии используются CASE-средства, основными функциями которых являются:
- централизованное хранение в единой базе данных проекта (репозитарии) информации об информационной системе в течение всего жизненного цикла. Репозитарий может хранить объекты различных типов: диаграммы, определения экранов и меню, проекты отчетов, описание данных, логику их обработки, исходные коды программ и т.п.;
- прямое проектирование программного обеспечения и баз данных. При этом порядок использования разработчиками CASE-средства следующий:
создается логическая модель системы;
выбирается конкретный язык программирования или СУБД для построения физической модели, после чего CASE-средство автоматически создает физическую модель системы;
дорабатывается физическая модель;
выполняется автоматическая генерация текста программы или структуры базы данных на диске;
- обратное проектирование (реинжиниринг). В этом случае порядок использования CASE-средства обратный – от текста программы или базы данных на диске к логической модели. Помимо построения, CASE-средства позволяют быстро интегрировать полученные таким образом модели в проект, а также с меньшими потерями переходить от одной физической реализации к другой (например, в случае ухода "старых" разработчиков, плохо документирующих программное обеспечение, или появления новых, более перспективных языков программирования и СУБД);
- синхронизация моделей системы с ее физической реализацией. В случае изменения модели системы могут быть автоматически внесены необходимые изменения в физическую реализацию или наоборот;
- автоматическое обеспечение качества и тестирование моделей на наличие ошибок (например, ошибок нормализации БД), полноту и непротиворечивость;
- автоматическая генерация документации. Вся документация по проекту генерируется автоматически на базе репозитария (как правило, в соответствии с требованиями действующих стандартов). Несомненное достоинство CASE-технологии заключается в том, что документация всегда отвечает текущему состоянию дел, поскольку любые изменения в проекте автоматически отражаются в репозитарии.
Основная цель использования CASE-технологий заключается в максимальной автоматизации стадий анализа и проектирования систем с целью построения формальных и непротиворечивых моделей системы.
Другая, не менее важная, цель использования CASE-технологий – вынесение части деятельности (чем больше, тем лучше) из стадии кодирования в стадию проектирования.
Большинство современных CASE-средств поддерживает методологии структурногои/или объектно-ориентированного анализа и проектирования информационных систем. Выбор того или иного подхода (парадигмы2) подразумевает следование ему и на стадии кодирования (согласно принципу концептуальной общности). Их отличие друг от друга заключается в выборе способа декомпозиции системы (задачи). Если за основу принимается функциональная (алгоритмическая) декомпозиция, то речь идет о структурном подходе, если объектная – об объектно-ориентированном.
Выбор того или иного подхода зависит от специфики решаемой задачи. Как правило, структурный подход применяется для автоматизации задач, оперирующих большими объемами "пассивных" данных и ориентированных на использование реляционных баз данных (например, учет, сбор статистики, математические и инженерные расчеты, анализ данных). Объектно-ориентированный подход в основном ориентирован на решение задач, в которых четко прослеживается деление системы на взаимодействующие между собой сущности (например, имитационное моделирование, управление техническими объектами или технологическими процессами, мониторинг3). Наиболее характерна эта особенность для распределенных систем.
Современные средства программирования и управления БД в подавляющем большинстве обеспечивают возможность как структурного (процедурного, функционального), так и объектно-ориентированного программирования. От разработчиков зависит, как использовать эти возможности. Одно можно точно утверждать, что при построении интерфейса систем окончательно "победил" объектно-ориентированный подход. Его уже давно никто не программирует, а "рисуют" с помощью средств визуальной разработки. При этом каждый элемент интерфейса (поле ввода, командная кнопка, переключатели, таблицы и т. д.) представляет собой объект со свойствами, методами и событиями. При программировании бизнес-логики, хранения и обработки больших объемов данных методы и средства структурного подхода еще долго будут находить свое применение.
1Нотация – установленные способы отображения элементов системы, т. е. графы, таблицы, блок-схемы, формальные и естественные языки.
2Парадигма – исходная концептуальная схема (модель) постановки проблемы и ее решения.
3Мониторинг – комплексная система наблюдения, контроля, оценки и прогноза явлений, процессов, объектов и т. п.