CASE

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

CASE — это инструментарий для системных аналитиков, разработчиков и прогpаммистов, заменяющий им бумагу и карандаш на компьютер для автоматизации процесса проектирования и разработки ПО.

Основные концепции

Большинство CASE-средств основано на парадигме методология/метод/нотация/средство:

  • Методология определяет руководящие указания для оценки и выбора проекта разрабатываемого ПО, шаги работы и их последовательность, а также правила распределения и назначения методов.
  • Метод — это систематическая процедура или техника генерации описаний компонент ПО (например, проектирование потоков и структур данных).
  • Нотации предназначены для описания структуры системы, элементов данных, этапов обработки и включают графы, диаграммы, таблицы, блок-схемы, формальные и естественные языки.
  • Средства — инструментарий для поддержки и усиления методов. Эти инструменты поддерживают работу пользователей при создании и редактировании графического проекта в интерактивном режиме, они способствуют организации проекта в виде иерархии уровней абстракции, выполняют проверки соответствия компонентов.

Отличия CASE от традиционной разработки

Традиционная разработка CASE
1 Основные усилия – на кодирование и тестирование Основные усилия - на анализ и проектирование
2 “Бумажные” спецификации Быстрое итеративное прототипирование
3 Ручное кодирование Автоматическая кодогенерация
4 Ручное документирование Автоматическая генерация документации
5 Тестирование кодов Автоматический контроль проекта
6 Сопровождение кодов Сопровождение спецификаций проектирования

Модель жизненного цикла ПО

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

Простейшая модель ЖЦ:

Прототипирование -> Проектирование спецификаций -> Контроль проекта -> Кодогенерация -> Системное тестирование -> Сопровождение

Классификация CASE-средств

Все CASE-средства делятся на типы, категории и уровни.

Классификация по типам

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

  1. АНАЛИЗ И ПРОЕКТИРОВАНИЕ. Средства данной группы используются для создания спецификаций системы и ее проектирования; они поддерживают широко известные методологии проектирования. К таким средствам относятся:
    • CASE.Аналитик (Эйтэкс),
    • The Developer (ASYST Technologies),
    • POSE (Computer Systems Advisers),
    • ProKit*Workbench (McDonnell Douglas),
    • Excelerator (Index Technology),
    • Design-Aid (Nastec),
    • Design Machine (Optima),
    • MicroStep (Meta Systems),
    • vsDesigner (Visual Software),
    • Analist/Designer (Yourdon),
    • Design/IDEF (Meta Software),
    • BPWin (Logic Works),
    • SELECT (Select Software Tools),
    • System Architect (Popkin Software & Systems),
    • Westmount I-CASE Yourdon (Westmount Technology B.V. & CADRE Technologies),
    • CASE/4/0 (microTOOL GmbH).
    Их целью является определение системных требований и свойств, которыми система должна обладать, а также создание проекта системы, удовлетворяющей этим требованиям и обладающей соответствующими свойствами. На выходе продуцируются спецификации компонент системы и интерфейсов, связывающих эти компоненты, а также “калька” архитектуры системы и детальная “калька” проекта, включающая алгоритмы и определения структур данных.
  2. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ И ФАЙЛОВ. Средства данной группы обеспечивают логическое моделирование данных, автоматическое преобразование моделей данных в Третью Нормальную Форму, автоматическую генерацию схем БД и описаний форматов файлов на уровне программного кода:
    • ERWin (Logic Works),
    • Chen Toolkit (Chen & Asssociates),
    • S-Designor (SDP),
    • Designer2000 (Oracle),
    • Silverrun (Computer Systems Advisers).
  3. ПРОГРАММИРОВАНИЕ. Средства этой группы поддерживают этапы программирования и тестирования, а также автоматическую кодогенерацию из спецификаций, получая полностью документированную выполняемую программу:
    • COBOL 2/Workbench (Mikro Focus),
    • DECASE (DEC),
    • NETRON/CAP (Netron),
    • APS (Sage Software).
    Помимо диаграммеров различного назначения и средств поддержки работы с репозитарием, в эту группу средств включены и традиционные генераторы кодов, анализаторы кодов (как в статике, так и в динамике), генераторы наборов тестов, анализаторы покрытия тестами, отладчики.
  4. СОПРОВОЖДЕНИЕ И РЕИНЖИНИРИНГ. К таким средствам относятся документаторы, анализаторы программ, средства реструктурирования и реинжениринга:
    • Adpac CASE Tools (Adpac),
    • Scan/COBOL и SuperStructure (Computer Data Systems),
    • Inspector/Recoder (Language Technology).
    Их целью является корректировка, изменение, анализ, преобразование и реинжениринг существующей системы. Средства позволяют
    • осуществлять поддержку всей системной документации, включая коды, спецификации, наборы тестов;
    • контролировать покрытие тестами для оценки полноты тестируемости;
    • управлять функционированием системы и т.п.
    Особый интерес представляют средства обеспечения мобильности (в CASE они получили название средств миграции) и реинжиниринга. К средствам миграции относятся трансляторы, конверторы, макрогенераторы и др., позволяющие обеспечить перенос существующей системы в новое операционное или аппаратурное окружение. Средства реинжиниринга включают:
    • статические анализаторы для продуцирования схем системы ПО из ее кодов, оценки влияния модификаций (например,”эффекта ряби” — внесение изменений с целью исправления ошибок порождает новые ошибки);
    • динамические анализаторы (обычно, компиляторы и интерпретаторы с встроенными отладочными возможностями);
    • документаторы, позволяющие автоматически получать обновленную документацию при изменении кода;
    • редакторы кодов, автоматически изменяющие при редактировании и все предшествующие коду структуры (например, спецификации);
    • средства доступа к спецификациям, их модификации и генерации нового (модифицированного) кода;
    • средства реверсного инжиниринга, транслирующие коды в спецификации.
  5. ОКРУЖЕНИЕ. Средства поддержки платформ для интеграции, создания и придания товарного вида CASE-средствам:
    • Multi/Cam (AGS Management Systems),
    • Design/OA (Meta Software).
  6. УПРАВЛЕНИЕ ПРОЕКТОМ. Средства, поддерживающие планирование, контроль, руководство, взаимодействие, т.е. функции, необходимые в процессе разработки и сопровождения проектов:
    • Project Workbench (Applied Business Technology).

Классификация по категориям

Классификация по категориям определяет уровень интегрированности по выполняемым функциям и включает:

  • вспомогательные программы (tools) — вспомогательные пакеты, решающие небольшую автономную задачу, принадлежащую проблеме более широкого масштаба.
  • пакеты разработчика (toolkit) — совокупность интегрированных программных средств, обеспечивающих помощь для одного из классов программных задач; использует репозитарий для всей технической и управляющей информации о проекте, концентрируясь при этом на поддержке, как правило, одной фазы или одного этапа разработки ПО.
  • инструментальные средства (workbench) — интеграция программных средств, которые
    • поддерживают системный анализ, проектирование и разработку ПО;
    • используют репозитарий, содержащий всю техническую и управляющую информацию о проекте;
    • обеспечивают автоматическую передачу системной информации между разработчиками и этапами разработки;
    • организуют поддержку практически полного ЖЦ (от анализа требований и проектирования ПО до получения документированной выполняемой программы).
    Workbench, по сравнению с toolkit, обладает более высокой степенью интеграции выполняемых функций, большей самостоятельностью и автономностью использования, а также наличием тесной связи с системными и техническими средствами аппаратно-вычислительной среды, на которой workbench функционирует. По существу, workbench может рассматриваться как автоматизированная рабочая станция, используемая как инструментарий для автоматизации всех или отдельных совокупностей работ по созданию ПО.

Классификация по уровням

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

  • Верхние (Upper) CASE часто называют средствами компьютерного планирования. Они призваны повышать эффективность деятельности руководителей фирмы и проекта путем сокращения затрат на определение политики фирмы и на создание общего плана проекта. Этот план включает цели и стратегии их достижения, основные действия в свете целей и задач фирмы, установление стандартов на различные виды взаимосвязей и т.д. Использование верхних CASE позволяет построить модель предметной области, отражающую всю существующую специфику. Она направлена на понимание общего и частного механизмов функционирования, имеющихся возможностей, ресурсов, целей проекта в соответствии с назначением фирмы. Эти средства позволяют проводить анализ различных сценариев (в том числе наилучших и наихудших), накапливая информацию для принятия оптимальных решений.
  • Средние (Middle) CASE считаются средствами поддержки этапов анализа требований и проектирования спецификаций и структуры ПО. Их использование существенно сокращает цикл разработки проекта; при этом важную роль играет возможность накопления и хранения знаний, обычно имеющихся только в голове разработчика-аналитика, что позволит использовать накопленные решения при создании других проектов. Основная выгода от использования среднего CASE состоит в значительном облегчении проектирования систем, проектирование превращается в итеративный процесс, включающий следующие действия:
    • пользователь обсуждает с аналитиком требования к проектируемой системе;
    • аналитик документирует эти требования, используя диаграммы и словари входных данных;
    • пользователь проверяет эти диаграммы и словари, при необходимости модифицируя их;
    • аналитик отвечает на эти модификации, изменяя соответствующие спецификации.
    Кроме того, средние CASE обеспечивают возможности быстрого документирования требований и быстрого прототипирования.
  • Нижние (Lower) CASE являются средствами разработки ПО (при этом может использоваться до 30% спецификаций, созданных средствами среднего CASE). Они содержат системные словари и графические средства, исключающие необходимость разработки физических спецификаций. Имеются системные спецификации, которые непосредственно переводятся в программные коды разрабатываемой системы (при этом автоматически генерируется до 80-90% кодов). На эти средства возложены также функции тестирования, управления конфигурацией, формирования документации. Главными преимуществами нижних CASE являются: значительное уменьшение времени на разработку, облегчение модификаций, поддержка возможностей прототипирования (совместно со средними CASE).

Достоинства CASE-методологий

  • улучшают качество создаваемого ПО за счет средств автоматического контроля (прежде всего, контроля проекта);
  • позволяют за короткое время создавать прототип будущей системы, что позволяет на ранних этапах оценить ожидаемый результат;
  • ускоряют процесс проектирования и разработки;
  • освобождают разработчика от рутинной работы, позволяя ему целиком сосредоточиться на творческой части разработки;
  • поддерживают развитие и сопровождение разработки;
  • поддерживают технологии повторного использования компонент разработки.

См. также