Схематично
применение структурного подхода изображено
на рис.2
Вначале разрабатывается
функциональная модель, с помощью
которой определяются, анализируются
и фиксируются требования к составу
и структуре функций системы,
т. е. определяется, для каких целей
разрабатывается система, какие
функции она будет выполнять.
На этой же модели указываются исходная
информация, промежуточные и итоговые
результаты работы системы. На основе
информационных потоков определяется
состав и структура необходимых
данных, хранимых в системе (строится
информационная модель). Далее, с учетом
разработанных моделей, создаются
процедуры реализации функции, т. е.
алгоритмы обработки данных и
поведения элементов системы. На
заключительной стадии устанавливается
распределение функций по подсистемам
(компонентам), необходимое техническое
обеспечение и строится модель их распределения
по узлам системы.
Показанная
на рис.2 схема не означает, что построение
моделей должно строго соответствовать
указанному порядку – одна за другой.
Как правило, разработка каждой последующей
модели начинается еще до полного завершения
разработки предыдущей, а иногда – параллельно.
На стадии
проектирования модели расширяются, уточняются
и дополняются диаграммами, отражающими
технологию использования системы,
ее архитектуру, экранные формы и
т. п.
Рисунок 2. Схема
применения структурного подхода
Традиционно
выделяют шесть периодов, качественно
отличающихся применяемой техникой и
методами разработки программного обеспечения,
которые характеризуются использованием
в качестве инструментальных средств:
- ассемблеров,
дампов памяти, анализаторов;
- компиляторов,
интерпретаторов, трассировщиков;
- символьных
отладчиков, пакетов программ;
- систем
анализа и управления исходными текстами;
- CASE-средств
анализа требований, проектирования спецификаций
и структуры, редактирования интерфейсов
(первая генерация CASE-I);
- CASE-средств
генерации исходных текстов и реализации
интегрированного окружения поддержки
полного жизненного цикла разработки
программного обеспечения (вторая генерация
CASE-II).
CASE-I является
первой технологией, адресованной
непосредственно системным аналитикам
и проектировщикам, и включающей
средства для поддержки графических
моделей, проектирования спецификаций,
экранных редакторов и словарей
данных. Она не предназначена
для поддержки полного жизненного
цикла и концентрирует внимание
на функциональных спецификациях
и начальных шагах проекта
– системном анализе, определении
требований, системном проектировании,
логическом проектировании баз данных.
CASE-II отличается
значительно более развитыми
возможностями, улучшенными характеристиками
и исчерпывающим подходом к
полному жизненному циклу. В
ней, в первую очередь, используются
средства поддержки автоматической
кодогенерации, а также, обеспечивается
полная функциональная поддержка
для выполнения графических системных
требований и спецификаций проектирования;
контроля, анализа и связывания
системной информации и информации
по управлению проектированием;
построение прототипов и моделей
системы; тестирования, верификации
и анализа сгенерированных программ;
генерации документов по проекту;
контроля на соответствие стандартам
по всем этапам жизненного
цикла. CASE-II может включать свыше
100 функциональных компонент, поддерживающих
все этапы жизненного цикла,
при этом пользователям предоставляется
возможность выбора необходимых
средств и их интеграции в нужном
составе.
Таким образом,
CASE-средства являются результатом естественного
эволюционного развития отрасли
инструментальных (или технологических)
средств.
CASE-технологии
начали развиваться с целью преодоления
ограничений методологии структурного
программирования. Эта методология, несмотря
на формализацию в составлении программ,
характеризуется все же сложностью понимания,
большой трудоемкостью и стоимостью использования,
трудностью внесения изменений в проектные
спецификации. Однако заложенные в ней
принципы позволили развивать эту методологию
и повысить ее эффективность за счет автоматизации
наиболее рутинных этапов (табл. 2.).
Таблица
2. Сравнение традиционной разработки
программного обеспечения и разработки
с использованием CASE-технологий
№ п/п |
Традиционная разработка |
CASE - технология |
1 |
Основные усилия - нак одирование
и тестирование |
Основные усилия - на анализ и проектирование |
2 |
"Бумажные" спецификации |
Быстрое интерактивное протопирование |
3 |
Ручное кодирование |
Автоматическая кодогенерация |
4 |
Ручное документирование |
Автоматическая генерация документации |
5 |
Тестирвание кодов |
Автоматический контроль проекта |
6 |
Сопровождение кодов |
Сопровождение спецификаций проектирования |
CASE-технология
базируется на методологии системного
анализа. Под системным анализом
понимают научную дисциплину, разрабатывающую
общие принципы исследования
сложных объектов и процессов
с учетом их системного характера.
Его основная цель – сосредоточить
внимание на начальных этапах
разработки. В рамках CASE-технологии
системный анализ предназначен
для отделения проектирования
от программирования. В разработке
в соответствии с CASE-технологией
выделяются построение архитектуры
и ее последующая реализация,
поэтому системный анализ называют
структурным системным анализом
или просто структурным анализом.
Важнейшими (базовыми)
принципами являются деление (декомпозиция)
и последующее иерархическое упорядочение.
Они дополняются следующими принципами:
- принцип
абстрагирования от несущественных деталей
(с их «упрятыванием») с контролем на присутствие
лишних элементов;
- принцип
формализации;
- принцип
концептуальной общности (структурный
анализ – структурное программирование
– структурное тестирование).
- принцип
непротиворечивости – обоснование и согласованность
элементов.
- принцип
логической и физической независимости
данных.
- принцип
непосредственного доступа (без программирования)
конечного пользователя.
CASE-технологии
предлагают новый, основанный
на автоматизации подход к
концепции жизненного цикла программного
обеспечения. При использовании CASE изменяются
все фазы жизненного цикла, при этом наибольшие
изменения касаются фаз анализа и проектирования.
На рис.3. приводится простейшая модель
жизненного цикла (рис. 3.а.) и соответствующая
ей CASE-модель (рис.3.б.), в которой фаза прототипирования
заменяет традиционную фазу системного
анализа. Необходимо отметить, что наиболее
автоматизируемыми фазами являются фазы
контроля проекта и кодогенерации (хотя
все остальные фазы также поддерживаются
CASE-средствами).
Рисунок 3. Модель
жизненного цикла программного обеспечения
и соответствующая ей CASE-модель
Структура
CASE-средств
Обычно к CASE-средствам
относят любое программное средство,
автоматизирующее ту или иную совокупность
процессов жизненного цикла программного
обеспечения и обладающее следующими
основными характерными особенностями:
- мощные
графические средства для описания и документирования
информационной системы, обеспечивающие
удобный интерфейс с разработчиком и развивающие
его творческие возможности;
- интеграция
отдельных компонент CASE-средств, обеспечивающая
управляемость процессом разработки информационной
системы;
- использование
специальным образом организованного
хранилища проектных метаданных (репозитория).
В связи с
наличием двух подходов к проектированию
программного обеспечения существуют
CASE-технологии ориентированные на структурный
подход, объектно-ориентированный подход,
а также комбинированные. Однако
сейчас наблюдается тенденция переориентации
инструментальных средств, созданных
для структурных методов разработки,
на объектно-ориентированные методы,
что объясняется следующими причинами:
- возможностью
сборки программной системы из готовых
компонентов, которые можно использовать
повторно;
- возможностью
накопления проектных решений в виде библиотек
классов на основе механизмов наследования;
- простотой
внесения изменений в проекты за счет
инкапсуляции данных в объектах;
- быстрой
адаптацией приложений к изменяющимся
условиям за счет использования свойств
наследования и полиморфизма;
- возможностью
организации параллельной работы аналитиков,
проектировщиков и программистов.
Объектно-ориентированное
CASE-средство в идеале должно содержать
четыре основных блока: анализ, проектирование,
разработка и инфраструктура.
Основные
требования к блоку анализа:
- возможность
выбора выводимой на экран информации
из всей совокупности данных, описывающих
модели;
- согласованность
диаграмм при хранении их в репозитарии;
- внесение
комментариев в диаграммы и соответствующую
документацию для фиксации проектных
решений;
- возможность
динамического моделирования в терминах
событий;
Основные
требования к блоку проектирования:
- поддержка
всего процесса проектирования приложения;
- возможность
работы с библиотеками, средствами поиска
и выбора;
- возможность
разработки пользовательского интерфейса;
- поддержка
стандартов OLE, ActiveX и доступ к библиотекам
HTML или Java;
- поддержка
разработки распределенных или двух- и
трехзвенных клиентсерверных систем (работа
с CORBA, DCOM, Internet).
Основные
требования к блоку реализации:
- генерация
кода полностью из диаграмм;
- возможность
доработки приложений в клиент-серверных
CASEсредствах типа Power Builder;
- реинжиниринг
кодов и внесение соответствующих изменений
в модель
- системы;
- наличие
средств контроля, которые позволяют выявлять
несоответствие между диаграммами и генерируемыми
кодами и обнаруживать ошибки как на стадии
проектирования, так и на стадии реализации.
Основные
требования к блоку инфраструктуры:
- наличие
репозитория на основе базы данных, отвечающего
за генерацию кода, реинжиниринг, отображение
кода на диаграммах, а также обеспечивающего
соответствие между моделями и программными
кодами;
- обеспечение
командной работы (многопользовательской
работы и управление версиями) и реинжиниринга.
В составе
интегрированного CASE-средства (или
комплекса средств, поддерживающих
полный жизненный цикл программного
обеспечения) содержатся следующие компоненты:
- репозиторий,
являющийся основой CASE-средства. Он должен
обеспечивать хранение версий проекта
и его отдельных компонентов, синхронизацию
поступления информации от различных
разработчиков при групповой разработке,
контроль метаданных на полноту и непротиворечивость;
- графические
средства анализа и проектирования, обеспечивающие
создание и редактирование иерархически
связанных диаграмм (DFD, ERD и др.), образующих
модели информационной системы;
- средства
разработки приложений, включая языки
4GL и генераторы кодов;
- средства
конфигурационного управления;
- средства
документирования;
- средства
тестирования;
- средства
управления проектом;
- средства
реинжиниринга.
Результаты
использования CASE-средств
Ввиду разнообразной
природы CASE-средств было бы ошибочно
делать какие-либо утверждения относительно
реального удовлетворения тех или
иных ожиданий от их внедрения. Можно
перечислить следующие факторы,
усложняющие определение возможного
эффекта от использования CASE-средств:
- широкое
разнообразие качества и возможностей
CASE-средств;
- относительно
небольшое время использования CASE-средств
в различных организациях и недостаток
опыта их применения;
- широкое
разнообразие в практике внедрения различных
организаций;
- отсутствие
детальных метрик и данных для уже выполненных
и текущих проектов;
- широкий
диапазон предметных областей проектов;
- различная
степень интеграции CASE-средств в различных
проектах.
К достоинствам
CASE-технологий можно отнести:
- единый
графический язык;
- единую
базу данных проекта;
- интеграцию
средств;
- поддержку
коллективной разработки и управления
проектом;
- макетирование;
- генерацию
документации;
- верификацию
проекта;
- автоматическую
генерацию объектного кода;
- сопровождение
и реинжиниринг.