Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
56
Добавлен:
02.05.2014
Размер:
60.42 Кб
Скачать

6

CASE- технологии

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

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

В качестве инструментальных средств в эти периоды использовались:

  • ассемблеры, дампы памяти, анализаторы;

  • компиляторы, интерпретаторы, трассировщики;

  • символические отладчики, пакеты программ;

  • системы анализа и управления исходными текстами;

  • CASE-средства анализа требований, проектирования спецификаций и структуры, редактирования интерфейсов (1-ая генерация CASE-1);

  • CASE-средства генерации исходных текстов и реализации интегрированного окружения поддержки полного ЖЦ разработки ПО (2-ая генерация CASE-II).

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

CASE обладают следующими основными достоинствами:

  • улучшают качество создаваемого ПО за счет средств автоматического контроля, прежде всего, контроля проекта;

  • позволяют за короткое время создавать прототип будущей системы, давая возможность на ранних этапах оценить ожидаемый результат;

  • ускоряют процесс проектирования и разработки;

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

  • поддерживают развитие и сопровождение разработки (заметим, что этот аспект не затрагивался ни одной из рассмотренных нами технологий программирования);

  • поддерживают технологии повторного использования компонент разработки).

При использовании CASE-технологий изменяются фазы жизненного цикла ПП как показано ниже:

При традиционной технологии: При CASE-технологии:

Анализ Прототипирование

Проектирование Проектирование спецификаций

Контроль проекта

Кодирование Кодогенерация

Тестирование Системное тестирование

Сопровождение Сопровождение

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

Технология

Этапы разработки

Анализ

Проектирование

Кодирование

Тестирование

традиционная

20%

15%

20%

45%

CASE-1

30%

30%

15%

25%

CASE-11

40%

40%

5%

15%

В следующей таблице сравниваются цели и содержание этапов при традиционной разработке и с применением CASE-средств.

№ п/п

Традиционная разработка

CASE-технология

1

Основные усилия - на

кодирование и тестирование

Основные усилия - на анализ

и проектирование

2

‘Бумажные’ спецификации

Быстрое итеративное

прототипирование

3

Ручное кодирование

Автоматическая кодогенерация

4

Ручное документирование

Автоматическая генерация

документации

5

Тестирование кодов

Автоматический

Контроль проекта

6

Сопровождение кодов

Сопровождение специфи-

каций проектирования

Как Вы помните, модель ЖЦ ПО определяет порядок выполнения этапов, а также критерии перехода от этапа к этапу.

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

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

Специалистами отмечаются следующие преимущества спиральной модели:

  • накопление и повторное использование программных средств, моделей и прототипов;

  • ориентация на развитие и модификацию ПО в процессе проектирования;

  • анализ риска и издержек в процессе проектирования.

Чем же принципиально CASE-технология отличается от традиционной?

Для ответа на этот вопрос несколько отвлечемся и вспомним, что нас интересует прежде всего, если мы встречаем предмет, который раньше никогда не видели? Смею утверждать, что это будут вопросы ‘Что оно делает?’ и ‘ Из чего оно состоит?’. Ответы на эти вопросы представляют собой функциональный и структурный аспект описания объекта. Исторически так сложилось, что при проектировании новых объектов структурный аспект отражается в виде схем (принципиальные электрические схемы, механические схемы, комбинированные схемы и т.п.). Так вот CASE-технологии иначе еще называют структурным системным анализом, что отражает тот факт, что и функционирование объекта (в рассматриваемом случае разрабатываемого ПО) отражается в различных схемах, таблицах, диаграммах, матрицах, картах и т.п. Можно смело утверждать, что девизом разработчиков CASE-технологий является фраза ‘одна картинка стоит тысячи слов’.

Некоторые из элементов CASE-технологий Вы будете изучать в последующих курсах.

Большинство CASE-технологий основано на парадигме методология/метод/нотация/ средство. Понятия методологии и метода мы с Вами уже давали.

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

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

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

  • DFD ( Data Flow Diagrams) - диаграммы потоков данных, совместно со словарями данных и спецификациями процессов или миниспецификациями;

  • ERD ( Entity-Relationship Diagrams) - диаграммы ‘сущность -связь’;

  • STD (State Transition Diagrams) - диаграммы переходов состояний.

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

  • по отношению к школам - Software Engineering (SE) и Information Engineering (IE);

  • по порядку построения моделей - процедурно-ориентированные, ориентированные на данные и информационно-ориентированные;

  • по типу целевых систем - для систем реального времени и для информационных систем.

Основная особенность систем реального времени заключается в том, что они контролируют и контролируются внешними событиями: своевременное реагирование на эти события (отклик должен следовать не позднее регламентированного временного интервала) - основная и первоочередная функция таких систем. Другие отличия информационных систем от систем реального времени сведены в таблицу.

Информационные системы

Системы реального времени

Управляются данными

Управляются событиями

Сложные структуры данных

Простые структуры данных

Большой объем

входных данных

Малое количество

входных данных

Интенсивный ввод-вывод

Интенсивные вычисления

Машинная независимость

Машинная зависимость

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

SE является нисходящим подходом к проектированию функций разрабатываемого ПО. Применяется при разработке как информационных систем, так и систем реального времени. По сравнению с IE появилась раньше и более апробирована.

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

Во всех структурных методологиях используется одна и та же концепция: данные входят в систему, обрабатываются и выходят из системы (вход-обработка-выход). Отличаются технологии порядком построения модели ПО (как бы по-разному решается вопрос: что раньше яйцо или курица?). Традиционный процедурно-ориентированный подход регламентирует первичность проектирования функциональных компонентов по отношению к проектированию структур данных: требования к данным раскрываются через функциональные требования. При подходе, ориентированном на данные, вход и выход являются наиболее важными - структуры данных определяются первыми, а процедурные компоненты являются производными от данных. Информационно-ориентированный подход, как часть IE-дисциплины, отличается от предыдущего подхода тем, что позволяет работать с неиерархическими структурами данных.

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

Анализ и проектирование. Средства данной группы применяют для создания спецификаций системы и ее проектирования, они поддерживают методологии SE и IE:

  • CASE- аналитик (Эйтекс);

  • POSE (Computer Systems Advisers);

  • Design/IDEF (Meta Software);

  • BPWin (Logic Works);

  • SELECT (Select Software Tools);

  • CASE/4.0 (micro TOOl GmbH)

и ряд других средств.

Проектирование баз данных и файлов. Средства данной группы обеспечивают логическое моделирование данных, автоматическое преобразование моделей данных в третью нормальную форму, автоматическую генерацию схем БД и описаний форматов файлов на уровне программного кода. К таким средствам относятся:

  • ERWin (Logic Works);

  • S-Designor (SPD);

  • Designеr/2000 (Oracle);

  • Sillverrun (Computer Systems Advisers).

Программирование. Средства поддерживают этапы программирования и тестирования, а также автоматическую кодогенерацию из спецификаций, получая полностью документированную выполняемую программу:

  • COBOL 2/Workbench (Miсro Focus);

  • DECASE (DEC);

  • NETRON/CAP (Netron);

  • APS (Sage Softwаre).

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

Сопровождение и реинжениринг. Сюда относят документаторы, анализаторы программ, средства реструктурирования:

  • Adpac CASE Tools (Adpac);

  • Scan/COBOL и SuperStructure (Computer Data Systems):

  • Insреctor/Recoder (language Tecnologe).

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

Соседние файлы в папке Лекции по ТП