CASE-технологии
На данный момент в технологии
разработки программного обеспечения
существуют два основных подхода
к разработке информационных
систем, отличающиеся критериями
декомпозиции: функционально-модульный
(структурный) и объектно-ориентированный.
Функционально-модульный
подход основан на принципе алгоритмической
декомпозиции с выделением функциональных
элементов и установлением строгого
порядка выполняемых действии. Главным
недостатком функционально-модульного
подхода является однонаправленность
информационных потоковой недостаточная
обратная связь. В случае изменения требовании
к системе это приводит к полному перепроектированию,
поэтому ошибки, заложенные на ранних
этапах, сильно сказываются на продолжительности
и стоимости разработки. Другой важной
проблемой является неоднородность информационных
ресурсов, используемых в большинстве
информационных систем. В силу этих причин
в настоящее время наибольшее распространение
получил объектно-ориентированный подход.
Объектно-ориентированный
подход основан на объектной декомпозиции
с описанием поведения системы
в терминах в действия объектов.
Под САSЕ-технологией
понимается комплекс программных средств,
поддерживающих процессы создания и сопровождения
программного обеспечения, включая анализ
и формулировку требований, проектирование,
генерацию кода, тестирование, документирование,
обеспечение качества, конфигурационное
управление и управление проектом (САSЕ-средство
может обеспечивать поддержку только
в заданных функциональных областях или
в широком диапазоне функциональных областей)
[7].
В
связи с наличием двух подходов к
проектированию программного обеспечения
существуют САSE-технологии ориентированные
на структурный подход, объектно-ориентированный
подход, а также комбинированные. Однако
сейчас наблюдается тенденция переориентации
инструментальных средств, созданных
для структурных методов разработки, на
объектно-ориентированные методы, что
объясняется следующими причинами:
- возможностью
сборки программной системы из готовых
компонентов, которые можно использовать
повторно;
- возможностью
накопления проектных решений в виде библиотек
классов на основе механизмов наследования;
- простотой
внесения изменений в проекты за счет
инкапсуляции данных в объектах;
- быстрой адаптацией
приложений к изменяющимся условиям за
счет использования свойств наследования
и полиморфизма;
- возможностью
организации параллельной работы аналитиков,
проектировщиков и программистов.
Идеальное
объектно-ориентированное САSЕ-средство
должно содержать четыре основных блока:
анализ, проектирование, разработка и
инфраструктура [8].
Основные
требования к блоку анализа:
- возможность
выбора выводимой на экран информации
из всей совокупности данных, описывающих
модели;
- согласованность
диаграмм при хранении их в репозитарии;
- внесение
комментариев в диаграммы и соответствующую
документацию для фиксации проектных
решений;
- возможность
динамического моделирования в терминах
событий;
- поддержка
нескольких нотаций (хотя бы три нотации
- Г.Буча, И.Джекобсона и ОМТ).
Основные
требования к блоку проектирования:
- поддержка
всего процесса проектирования приложения;
- возможность
работы с библиотеками, средствами поиска
и выбора;
- возможность
разработки пользовательского интерфейса;
- поддержка
стандартов ОLE, ActiveX и доступ к библиотекам
HTML или Java;
- поддержка
разработки распределенных или двух- и
трехзвенных клиент-серверных систем
(работа с CORBA, DCOM, Internet).
Основные
требования к блоку реализации:
- генерация
кода полностью из диаграмм;
- возможность
доработки приложений в клиент-серверных
САSЕ-средствах типа Power Builder;
- реинжиниринг
кодов и внесение соответствующих изменений
в модель системы;
- наличие средств
контроля, которые позволяют выявлять
не соответствие между диаграммами и генерируемыми
кодами и обнаруживать ошибки как на стадии
проектирования, так и на стадии реализации.
Основные
требования к блоку инфраструктуры:
- наличие репозитория
на основе базы данных, отвечающего за
генерацию кода, реинжиниринг, отображение
кода на диаграммах, а также обеспечивающего
соответствие между моделями и программными
кодами;
- обеспечение
командной работы (многопользовательской
работы и управление версиями) и реинжиниринга.
Сравнительный
анализ САSЕ-систем показывает, что на
сегодняшний день одним из наиболее приближенных
к идеальному варианту САSЕ-средств является
семейство Rational Rose фирмы Ration Software Corporation.
Следует отметить, что именно здесь работают
авторы унифицированного языка моделирования
Г. Буч, Д. Рамбо и И. Джекобсон, под руководством
которых ведется разработка нового САSЕ-средства,
поддерживающегоUML.
Выделим
основные критерии оценки и выбора
САSЕ-средств.
Функциональные
характеристики:
- среда функционирования:
проектная среда, программное обеспечение/технические
средства, технологическая среда;
- функции,
ориентированные на фазы жизненного цикла:
моделирование, реализация, тестирование;
- общие функции:
документирование, управление конфигурацией,
управление проектом;
- Надежность;
- Простота
использования;
- Эффективность;
- Сопровождаемость;
- Переносимость;
Общие
критерии (стоимость, затраты, эффект внедрения,
характеристики поставщика).
Перечисленные
факторы способствовали появлению
программно-технологических средств
специального класса - CASE-средств, реализующих
CASE-технологию создания и сопровождения
ИС. Термин CASE (Computer Aided Software Engineering) используется
в настоящее время в весьма широком смысле.
Первоначальное значение термина CASE, ограниченное
вопросами автоматизации разработки только
лишь программного обеспечения (ПО), в
настоящее время приобрело новый смысл,
охватывающий процесс разработки сложных
ИС в целом. Теперь под термином CASE-средства
понимаются программные средства, поддерживающие
процессы создания и сопровождения ИС,
включая анализ и формулировку требований,
проектирование прикладного ПО (приложений)
и баз данных, генерацию кода, тестирование,
документирование, обеспечение качества,
конфигурационное управление и управление
проектом, а также другие процессы. CASE-средства
вместе с системным ПО и техническими
средствами образуют полную среду разработки
ИС.
Появлению
CASE-технологии и CASE-средств предшествовали
исследования в области методологии программирования.
Программирование обрело черты системного
подхода с разработкой и внедрением языков
высокого уровня, методов структурного
и модульного программирования, языков
проектирования и средств их поддержки,
формальных и неформальных языков описаний
системных требований и спецификаций
и т.д. Кроме того, появлению CASE-технологии
способствовали и такие факторы, как:
- подготовка
аналитиков и программистов, восприимчивых
к концепциям модульного и структурного
программирования;
- широкое внедрение
и постоянный рост производительности
компьютеров, позволившие использовать
эффективные графические средства и автоматизировать
большинство этапов проектирования;
- внедрение
сетевой технологии, предоставившей возможность
объединения усилий отдельных исполнителей
в единый процесс проектирования путем
использования разделяемой базы данных,
содержащей необходимую информацию о
проекте.
CASE-технология представляет собой
методологию проектирования ИС,
а также набор инструментальных
средств, позволяющих в наглядной
форме моделировать предметную
область, анализировать эту модель
на всех этапах разработки
и сопровождения ИС и разрабатывать
приложения в соответствии с
информационными потребностями
пользователей. Большинство существующих
CASE-средств основано на методологиях
структурного (в основном) или объектно-ориентированного
анализа и проектирования, использующих
спецификации в виде диаграмм
или текстов для описания внешних
требований, связей между моделями
системы, динамики поведения системы
и архитектуры программных средств.
Согласно
обзору передовых технологий (Survey of
Advanced Technology), составленному фирмой Systems
Development Inc. в 1996 г. по результатам анкетирования
более 1000 американских фирм, CASE-технология
в настоящее время попала в
разряд наиболее стабильных информационных
технологий (ее использовала половина
всех опрошенных пользователей более
чем в трети своих проектов,
из них 85% завершились успешно). Однако,
несмотря на все потенциальные возможности
CASE-средств, существует множество примеров
их неудачного внедрения, в результате
которых CASE-средства становятся "полочным"
ПО (shelfware). В связи с этим необходимо отметить
следующее:
- CASE-средства
не обязательно дают немедленный эффект;
он может быть получен только спустя какое-то
время;
- реальные
затраты на внедрение CASE-средств обычно
намного превышают затраты на их приобретение;
- CASE-средства
обеспечивают возможности для получения
существенной выгоды только после успешного
завершения процесса их внедрения.
Ввиду
разнообразной природы CASE-средств
было бы ошибочно делать какие-либо безоговорочные
утверждения относительно реального
удовлетворения тех или иных ожиданий
от их внедрения. Можно перечислить
следующие факторы, усложняющие
определение возможного эффекта
от использования CASE-средств:
- широкое разнообразие
качества и возможностей CASE-средств;
- относительно
небольшое время использования CASE-средств
в различных организациях и недостаток
опыта их применения;
- широкое разнообразие
в практике внедрения различных организаций;
- отсутствие
детальных метрик и данных для уже выполненных
и текущих проектов;
- широкий диапазон
предметных областей проектов;
- различная
степень интеграции CASE-средств в различных
проектах.
Вследствие
этих сложностей доступная информация
о реальных внедрениях крайне ограничена
и противоречива. Она зависит
от типа средств, характеристик проектов,
уровня сопровождения и опыта
пользователей. Некоторые аналитики
полагают, что реальная выгода от использования
некоторых типов CASE-средств может
быть получена только после одно- или
двухлетнего опыта. Другие полагают,
что воздействие может реально
проявиться в фазе эксплуатации жизненного
цикла ИС, когда технологические
улучшения могут привести к снижению
эксплуатационных затрат.
Для
успешного внедрения CASE-средств
организация должна обладать следующими
качествами:
Технология.
Понимание ограниченности существующих
возможностей и способность принять новую
технологию;
Культура.
Готовность к внедрению новых процессов
и взаимоотношений между разработчиками
и пользователями;
Управление.
Четкое руководство и организованность
по отношению к наиболее важным этапам
и процессам внедрения.
Если
организация не обладает хотя бы одним
из перечисленных качеств, то внедрение
CASE-средств может закончиться
неудачей независимо от степени тщательности
следования различным рекомендациям
по внедрению.
Для
того чтобы принять взвешенное решение
относительно инвестиций в CASE-технологию,
пользователи вынуждены производить
оценку отдельных CASE-средств, опираясь
на неполные и противоречивые данные.
Эта проблема зачастую усугубляется
недостаточным знанием всех возможных
"подводных камней" использования
CASE-средств. Среди наиболее важных проблем
выделяются следующие:
- достоверная
оценка отдачи от инвестиций в CASE-средства
затруднительна ввиду отсутствия приемлемых
метрик и данных по проектам и процессам
разработки ПО;
- внедрение
CASE-средств может представлять собой достаточно
длительный процесс и может не принести
немедленной отдачи. Возможно даже краткосрочное
снижение продуктивности в результате
усилий, затрачиваемых на внедрение. Вследствие
этого руководство организации-пользователя
может утратить интерес к CASE-средствам
и прекратить поддержку их внедрения;
- отсутствие
полного соответствия между теми процессами
и методами, которые поддерживаются CASE-средствами,
и теми, которые используются в данной
организации, может привести к дополнительным
трудностям;
- CASE-средства
зачастую трудно использовать в комплексе
с другими подобными средствами. Это объясняется
как различными парадигмами, поддерживаемыми
различными средствами, так и проблемами
передачи данных и управления от одного
средства к другому;
- некоторые
CASE-средства требуют слишком много усилий
для того, чтобы оправдать их использование
в небольшом проекте, при этом, тем не менее,
можно извлечь выгоду из той дисциплины,
к которой обязывает их применение;
- негативное
отношение персонала к внедрению новой
CASE-технологии может быть главной причиной
провала проекта.