4.1. Общая характеристика и классификация CASE-технологий

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

Большинство существующих CASE-систем ориентировано на автоматизацию проектирования программного обеспечения и основано на методологиях структурного (в основном) или объек­тно-ориентированного проектирования и программирования, использующих спецификации в виде диаграмм или текстов для описания системных требований, связей между моделями систе­мы, динамики поведения системы и архитектуры программных средств. В последнее время стали появляться CASE-системы, уделяющие основное внимание проблемам спецификации и мо­делирования технических средств.

Наибольшая потребность в использовании CASE-систем ис­пытывается на начальных этапах разработки, а именно на этапах анализа и спецификации требований к ЭИС. Это объясняется тем, что цена ошибок, допущенных на начальных этапах, на несколь­ко порядков превышает цену ошибок, выявленных на более по­здних этапах разработки.

Появлению CASE-технологии предшествовали исследования в области методологии программирования. Программирование обрело черты системного подхода с разработкой и внедрением языков высокого уровня, методов структурного и модульного программирования, языков проектирования и средств их поддер­жки, формальных и неформальных языков описания системных требований и спецификаций и т.д. Кроме того, этому способство­вали следующие факторы:

· подготовка аналитиков и программистов, восприимчивых к концепциям модульного и структурного программирования;

· широкое внедрение и постоянный рост производительности персональных ЭВМ, позволяющих использовать эффективные графические средства и автоматизировать большинство эта­пов проектирования;

· внедрение сетевой технологии, предоставившей возмож­ность объединения усилий отдельных исполнителей в еди­ный процесс проектирования путем использования разделяе­мой базы данных, содержащей необходимую информацию о проекте.

К преимуществам CASE-технологий по сравнению с традицион­ной технологией оригинального проектирования относятся:

· улучшенное качество разрабатываемого программного при­ложения за счет средств автоматического контроля и гене­рации;

· возможность повторного использования компонентов разра­ботки;

· поддержание адаптивности и сопровождения ЭИС;

· снижение времени создания системы, что позволяет на ран­них стадиях проектирования получить прототип будущей си­стемы и оценить его;

· освобождение разработчиков от рутинной работы по доку­ментированию проекта, так как при этом используется встро­енный документатор;

· возможность коллективной разработки ЭИС в режиме реаль­ного времени.

CASE-технология в рамках методологии включает в себя методы, с помощью которых на основе графической нота­ции строятся диаграммы, поддерживаемые инструментальной средой. Методология определяет шаги и этапность реализации про­екта, а также правила использования методов, с помощью кото­рых разрабатывается проект.

Методэто процедура или техника генерации описаний ком­понентов ЭИС (например, проектирование потоков и структур данных).

Нотацияотображение структуры системы, элементов дан­ных, этапов обработки с помощью специальных графических сим­волов диаграмм, а также описание проекта системы на формаль­ных и естественных языках.

Инструментальные средства CASEспециальные програм­мы, которые поддерживают одну или несколько методологий анализа и проектирования ИС.

Рис. 4.1. Архитектура CASE-средства

Рассмотрим архитектуру CASE-средства (рис. 4.1). Ядром системы является база данных проекта – репозиторий (словарь данных). Он представляет собой специализированную базу данных, предназначенную для отображения состояния про­ектируемой ЭИС в каждый момент времени. Объекты всех диаг­рамм синхронизированы на основе общей информации словаря данных.

Репозиторий содержит информацию об объектах проектиру­емой ЭИС и взаимосвязях между ними, все подсистемы обмени­ваются данными с ним. В репозитории хранятся описания следу­ющих объектов:

· проектировщиков и их прав доступа к различным компонен­там системы;

· организационных структур;

· диаграмм;

· компонентов диаграмм;

· связей между диаграммами;

· структур данных;

· программных модулей;

· процедур;

· библиотеки модулей и т.д.

Графические средства моделирования предметной области позволяют разработчикам автоматизированных ИС в наглядном виде изучать существующую информационную систему, перестра­ивать ее в соответствии с поставленными целями и имеющимися ограничениями. Все модификации диаграмм, выполняемых раз­работчиками в интерактивном (диалоговом) режиме, вводятся в словарь данных, контролируются и могут использоваться для дальнейшей генерации действующих функциональных приложений. В любой момент времени диаграм­мы могут быть распечатаны для включения в техническую доку­ментацию проекта.

Графический редактор диаграмм предназначен для отобра­жения в графическом виде в заданной нотации проектируемой ЭИС. Он позволяет выполнять следующие операции:

· создавать элементы диаграмм и взаимосвязи между ними;

· задавать описания элементов диаграмм;

· задавать описания связей между элементами диаграмм;

· редактировать элементы диаграмм, их взаимосвязи и описа­ния.

Верификатор диаграмм служит для контроля правильности построения диаграмм в заданной методологии проектирования ЭИС. Он выполняет следующие функции:

· мониторинг правильности построения диаграмм;

· диагностику и выдачу сообщений об ошибках;

· выделение на диаграмме ошибочных элементов.

Документатор проекта позволяет получать информацию о состоянии проекта в виде различных отчетов. Отчеты могут стро­иться по нескольким признакам, например по времени, автору, элементам диаграмм, диаграмме или проекту в целом.

Администратор проекта представляет собой инструменты, необходимые для выполнения следующих административных функций:

· инициализации проекта;

· задания начальных параметров проекта;

· назначения и изменения прав доступа к элементам проекта;

· мониторинга выполнения проекта.

Сервис представляет собой набор системных утилит по обслуживанию репозитория. Эти утилиты выполняют функции архивации данных, восстановления данных и создания нового репозитория.

Современные CASE-системы классифицируются по следую­щим признакам:

1) по поддерживаемым методологиям проектирования: функ­ционально (структурно)-ориентированные, объектно-ориентиро­ванные и комплексно-ориентированные (набор методологий про­ектирования);

2) по поддерживаемым графическим нотациям построения ди­аграмм: с фиксированной нотацией, с отдельными нотациями и наиболее распространенными нотациями;

1) по степени интегрированности: tools (отдельные локальные средства), toolkit (набор неинтегрированных средств, охватыва­ющих большинство этапов разработки ЭИС) и workbench (пол­ностью интегрированные средства, связанные общей базой про­ектных данных – репозиторием);

2) по типу и архитектуре вычислительной техники: ориенти­рованные на ПЭВМ, ориентированные на локальную вычисли­тельную сеть (ЛВС), ориентированные на глобальную вычисли­тельную сеть (ГВС) и смешанного типа;

3) по режиму коллективной разработки проекта: не поддер­живающие коллективную разработку, ориентированные на ре­жим реального времени разработки проекта, ориентированные на режим объединения подпроектов;

4) по типу операционной системы (ОС): работающие под уп­равлением WINDOWS 3.11 и выше; работающие под управле­нием UNIX и работающие под управлением различных ОС (WINDOWS, UNIX, OS/2 и др.).

В разряд CASE-систем попадают как относительно дешевые системы для персональных компьютеров с ограниченными воз­можностями (такие, как редакторы диаграмм), так и дорогостоя­щие системы для больших ЭВМ. Современные CASE-системы охватывают обширную область поддержки различных технологий проектирования и программи­рования: от простых средств анализа и документирования ИС до полномасштабных средств автоматизации, покрывающих весь жизненный цикл ИС.

Помимо поддержки начальных этапов разработки большое значение приобретают CASE-системы, ориентированные на про­ектирование и генерацию баз данных и пользовательских интер­фейсов.

Генерация интерфейсов с базами данных и возможность пре­образования (конвертирования) между различными концепту­альными схемами и моделями данных увеличивает мобильность прикладных систем при переходе в другие операционные сре­ды. Генерация кода и (или) таблиц, описывающих интерфейс прикладной системы с базой данных, не только позволяет со­кратить время разработки, но и дает возможность отделить раз­работку приложений от ведения архива проектной докумен­тации.

Наиболее трудоемкими этапами разработки ЭИС являются этапы анализа и проектирования, поэтому CASE-системы, как правило, предназначены для автоматизации отслеживания ка­чества принимаемых проектных решений и подготовки докумен­тации. При этом большую роль играют методы визуального представления информации. Это предполагает построение структурных или иных диаграмм в реальном масштабе време­ни, использование многообразной цветовой палитры, сквозную проверку синтаксических правил.

Стратегия выбора CASE-систем для конкретного применения зависит как от целей и потребностей самого проекта, так и от квалификации вовлеченных в процесс проектирования специа­листов. В большинстве случаев одно средство не может обеспе­чить все потребности проекта. Разработчики, как правило, при­меняют набор средств. Например, одно средство наилучшим об­разом подходит для анализа, а другое – для проектирования систем.

В общем случае при выборе CASE-системы необходимо учитывать следующие аспекты:

v наличие базы проектных данных, архива или словаря. СУБД и словари данных обеспечивают высокую степень интеграции данных и предоставляют широкие возможности для центра­лизованного сбора, хранения и распределения проектной ин­формации между различными этапами проекта и выполняе­мыми операциями;

v интерфейсы с другими CASE-системами. В процессе проек­тирования ЭИС могут использоваться различные методо­логии, поэтому важно, чтобы применяемые CASE-системы предоставляли возможности для эффективного использо­вания нескольких методов. При этом должна быть обеспе­чена терминологическая совместимость различных методо­логий;

v возможности экспорта/импорта. Спецификации, полученные на этапах анализа, проектирования и кодирования для одной ЭИС, могут быть использованы для проектирования другой системы. Повторное проектирование и кодирование могут быть обеспечены при помощи средств экспорта/импорта спе­цификаций в различные CASE-системы;

v многопользовательский режим. Развитые CASE-системы дол­жны обладать возможностями разделения полномочий пер­сонала разработчиков и объединения отдельных работ в об­щий проект;

v открытую архитектуру. Открытая к доступу проектировщи­ков информация об используемых форматах файлов и интер­фейсах должна позволять безболезненно переходить от одной CASE-системы к другой;

v расширение новыми методологиями. Как и любое програм­мное средство, CASE-система должна обладать возможнос­тью совершенствоваться с учетом появления новых требова­ний или новых предметных областей;

v наличие графических средств поддержки методологий проек­тирования. Большинство CASE-систем базируется на графи­ческом отображении методологий. Графические элементы структурных диаграмм и объекты словаря должны позволять декомпозировать различные компоненты проекта и детали­зировать изображения с той степенью, с какой это необходи­мо для понимания проектных решений;

v обеспечение качества проектной документации. Это требова­ние относится к возможностям CASE-системы анализировать и проверять описания и документацию на полноту и непро­тиворечивость, а также на соответствие принятым в данной методологии стандартам и правилам. В результате анализа должна формироваться информация, указывающая на имею­щиеся противоречия или неполноту проектной документации, находящейся в архиве или словаре;

v автоматическую генерацию отчетов о проектных решениях. Решения (спецификации), созданные в процессе проектиро­вания, служат источником документирования системы. Час­то возникает потребность получения твердой копии специфи­каций в текстовой или графической форме;

v генерацию кодов программ. CASE-системы с жесткой ориента­цией на конкретные СУБД должны обеспечивать возможность генерации программ в среде этих СУБД;

v планирование и управление проектом. Использование CASE-систем не исключает потребности в эффективном управлении проектом. Многие развитые CASE-системы имеют в своем составе средства планирования и управления проектом. Спе­цификации, которые используются этими средствами, пред­ставляют собой опорные точки управления, позволяющие определять сроки разработки.