CASE- ТЕХНОЛОГИИ
·
CASE-технологии и CASE-средства
·
CASE-средства. Общая характеристика и классификация
Термин CASE (Computer Aided Software Engineering технология
автоматизированной разработки программного обеспечения) используется в
настоящее время в весьма широком смысле. Первоначальное значение термина CASE,
ограниченное вопросами автоматизации разработки только лишь программного
обеспечения (ПО), в настоящее
время приобрело новый смысл, охватывающий процесс разработки сложных ИС в
целом. Теперь под термином CASE-средства понимаются программные средства,
поддерживающие процессы создания и сопровождения ИС, включая анализ и
формулировку требований, проектирование прикладного ПО
(приложений) и баз данных, генерацию кода,
тестирование, документирование, обеспечение качества, конфигурационное
управление и управление проектом, а также другие процессы. CASE-средства
вместе с системным ПО и техническими средствами образуют полную среду
разработки ИС.
CASE-технологии и CASE-средства
Появлению CASE-технологии и
CASE-средств предшествовали исследования в области методологии программирования.
Программирование обрело черты системного подхода с разработкой и внедрением
языков высокого уровня, методов структурного и модульного программирования,
языков проектирования и средств их поддержки, формальных и неформальных языков
описаний системных требований и спецификаций и т.д. Кроме того, появлению
CASE-технологии способствовали и такие факторы, как:
·
подготовка аналитиков и программистов, восприимчивых к концепциям
модульного и структурного программирования;
·
широкое внедрение и постоянный рост производительности
компьютеров, позволившие использовать эффективные графические средства и
автоматизировать большинство этапов проектирования;
·
внедрение сетевой технологии, предоставившей возможность
объединения усилий отдельных исполнителей в единый процесс проектирования путем
использования разделяемой базы данных, содержащей необходимую информацию о
проекте.
CASE-технология представляет собой методологию
проектирования ИС, а также набор инструментальных средств, позволяющих в
наглядной форме моделировать предметную область, анализировать эту модель на
всех этапах разработки и сопровождения ИС и разрабатывать приложения в
соответствии с информационными потребностями пользователей. Большинство
существующих CASE-средств основано на методологиях структурного (в основном)
или объектно-ориентированного анализа и проектирования, использующих
спецификации в виде диаграмм или текстов для описания внешних требований,
связей между моделями системы, динамики поведения системы и архитектуры
программных средств.
Ввиду разнообразной природы CASE-средств было бы ошибочно
делать какие-либо безоговорочные утверждения относительно реального
удовлетворения тех или иных ожиданий от их внедрения. Можно перечислить
следующие факторы, усложняющие определение возможного эффекта от использования
CASE-средств:
·
широкое разнообразие качества и возможностей CASE-средств;
·
относительно небольшое время использования CASE-средств в
различных организациях и недостаток опыта их применения;
·
широкое разнообразие в практике внедрения различных организаций;
·
отсутствие детальных метрик и данных для уже выполненных и текущих
проектов;
·
широкий диапазон предметных областей проектов;
·
различная степень интеграции CASE-средств в различных проектах.
Вследствие этих сложностей доступная информация о реальных
внедрениях крайне ограничена и противоречива. Она зависит от типа средств,
характеристик проектов, уровня сопровождения и опыта пользователей. Некоторые
аналитики полагают, что реальная выгода от использования некоторых типов
CASE-средств может быть получена только после одно- или двухлетнего опыта.
Другие полагают, что воздействие может реально проявиться в фазе эксплуатации
жизненного цикла ИС, когда технологические улучшения могут привести к снижению
эксплуатационных затрат.
Если организация не обладает
хотя бы одним из перечисленных качеств, то внедрение CASE-средств может
закончиться неудачей независимо от степени тщательности следования различным
рекомендациям по внедрению.
Для того, чтобы принять взвешенное
решение относительно инвестиций в CASE-технологию, пользователи вынуждены
производить оценку отдельных CASE-средств, опираясь на неполные и
противоречивые данные. Эта проблема зачастую усугубляется недостаточным знанием
всех возможных "подводных камней" использования CASE-средств. Среди
наиболее важных проблем выделяются следующие:
·
достоверная оценка отдачи от инвестиций в CASE-средства
затруднительна ввиду отсутствия приемлемых метрик и данных по проектам и
процессам разработки ПО;
·
внедрение CASE-средств может представлять собой достаточно
длительный процесс и может не принести немедленной отдачи. Возможно даже
краткосрочное снижение продуктивности в результате усилий, затрачиваемых на
внедрение. Вследствие этого руководство организации-пользователя может утратить
интерес к CASE-средствам и прекратить поддержку их внедрения;
·
отсутствие полного соответствия между теми процессами и методами,
которые поддерживаются CASE-средствами, и теми, которые используются в данной
организации, может привести к дополнительным трудностям;
·
CASE-средства зачастую трудно использовать в комплексе с другими
подобными средствами. Это объясняется как различными парадигмами,
поддерживаемыми различными средствами, так и проблемами передачи данных и
управления от одного средства к другому;
·
некоторые CASE-средства требуют слишком много усилий для того,
чтобы оправдать их использование в небольшом проекте, при этом, тем не менее,
можно извлечь выгоду из той дисциплины, к которой обязывает их применение;
·
негативное отношение персонала к внедрению новой CASE-технологии
может быть главной причиной провала проекта.
Пользователи CASE-средств должны быть готовы к необходимости
долгосрочных затрат на эксплуатацию, частому появлению новых версий и
возможному быстрому моральному старению средств, а также постоянным затратам на
обучение и повышение квалификации персонала.
Несмотря на все высказанные предостережения и некоторый
пессимизм, грамотный и разумный подход к использованию CASE-средств может
преодолеть все перечисленные трудности. Успешное внедрение CASE-средств должно
обеспечить такие выгоды как:
·
высокий уровень технологической поддержки процессов разработки и
сопровождения ПО;
·
положительное воздействие на некоторые или все из перечисленных
факторов: производительность, качество продукции, соблюдение стандартов,
документирование;
·
приемлемый уровень отдачи от инвестиций в CASE-средства
Современные
CASE-средства охватывают обширную область поддержки многочисленных
технологий проектирования ИС: от простых средств анализа и документирования до
полномасштабных средств автоматизации, покрывающих весь жизненный цикл ПО.
Наиболее
трудоемкими этапами разработки ИС являются этапы анализа и проектирования, в процессе
которых CASE-средства обеспечивают качество принимаемых
технических решений и подготовку проектной документации. При этом большую роль
играют методы визуального представления информации. Это предполагает построение
структурных или иных диаграмм в реальном масштабе времени, использование
многообразной цветовой палитры, сквозную проверку синтаксических правил.
В
разряд CASE-средств попадают как относительно дешевые системы
для персональных компьютеров с весьма ограниченными возможностями, так и дорогостоящие
системы для неоднородных вычислительных платформ и операционных сред. Так,
современный рынок программных средств насчитывает около 300 различных CASE-средств, наиболее мощные из которых
так или иначе используются практически всеми ведущими западными фирмами. Интегрированное CASE-средство (или комплекс средств, поддерживающих
полный ЖЦ ПО) содержит следующие компоненты:
·
репозиторий, являющийся
основой CASE-средства. Он должен обеспечивать хранение версий
проекта и его отдельных компонентов, синхронизацию поступления информации от
различных разработчиков при групповой разработке, контроль метаданных на
полноту и непротиворечивость;
·
графические
средства анализа и проектирования, обеспечивающие создание и редактирование
иерархически связанных диаграмм (DFD, ERD и др.), образующих модели ИС;
·
средства
разработки приложений, включа
·
средства
конфигурационного управления;
·
средства
документирования;
·
средства
тестирования;
·
средства
управления проектом;
·
средства
реинжиниринга.
Все
современные CASE-средства могут быть классифицированы в основном по
типам и категориям. Классификация по типам отражает функциональную ориентацию CASE-средств на те или иные
процессы ЖЦ. Классификация по категориям определяет степень интегрированности
по выполняемым функциям и включает отдельные локальные средства, решающие
небольшие автономные задачи (tools), набор
частично интегрированных средств, охватывающих большинство этапов жизненного
цикла ИС (toolkit) и полностью интегрированные средства,
поддерживающие весь ЖЦ ИС и связанные общим репозиторием.
Помимо этого, CASE-средства можно классифицировать по следующим признакам:
·
применяемым
методологиям и моделям систем и БД;
·
степени
интегрированности с СУБД;
·
доступным
платформам.
Классификация
по типам в основном совпадает с компонентным составом CASE-средств
и включает следующие основные типы:
·
средства
анализа (Upper CASE), предназначенные для построения и
анализа моделей предметной области (Design/IDEF (Meta Software), BPwin (Logic Works));
·
средства
анализа и проектирования (Middle CASE),
поддерживающие наиболее распространенные методологии проектирования и
использующиеся для создания проектных спецификаций (Vantage Team Builder (Cayenne), Designer/2000 (ORACLE),
Silverrun (CSA), PRO-IV (McDonnell Douglas), CASE.Аналитик (МакроПроджект)).
Выходом таких средств являются спецификации компонентов и интерфейсов системы,
архитектуры системы, алгоритмов и структур данных;
·
средства
проектирования баз данных, обеспечивающие моделирование данных и генерацию схем
баз данных (как правило, на языке SQL) для наиболее
распространенных СУБД. К ним относятся ERwin (Logic Works), S-Designor (SDP) и DataBase
Designer (ORACLE). Средства
проектирования баз данных имеются также в составе CASE-средств
Vantage Team Builder, Designer/2000,
Silverrun и PRO-IV;
·
средства
разработки приложений. К ним относятся средства 4GL
(Uniface (Compuware), JAM
(JYACC), PowerBuilder (Sybase), New Era (Informix), SQL Windows
(Gupta), Delphi (Borland) и др.) и генераторы кодов, входящие в
состав Vantage Team Builder, PRO-IV и частично - в Silverrun;
·
средства
реинжиниринга, обеспечивающие анализ программных кодов и схем баз данных и
формирование на их основе различных моделей и проектных спецификаций. Средства
анализа схем БД и формирования ERD входят в состав
Vantage Team
Builder, PRO-IV, Silverrun,
Designer/2000, ERwin и S-Designor. В области анализа программных кодов
наибольшее распространение получают объектно-ориентированные CASE-средства, обеспечивающие реинжиниринг программ на
языке С++ (Rational Rose (Rational Software), Object
Team (Cayenne)).
Вспомогательные
типы включают:
·
средства
планирования и управления проектом (SE
Companion,
Microsoft Project и др.);
·
средства
конфигурационного управления (PVCS (Intersolv));
·
средства тестирования (Quality Works (Segue Software));
·
средства
документирования (SoDA (Rational Software)).
На
сегодняшний день Российский рынок программного обеспечения располагает следующими наиболее развитыми CASE-средствами:
а) Vantage Team Builder
(Westmount I-CASE);
б) Designer/2000;
в) Silverrun.
Кроме того, на рынке
постоянно появляются как новые для отечественных пользователей системы
(например, CASE /4/0, PRO-IV, System Architect, Visible Analyst Workbench, EasyCASE), так и новые версии и модификации
перечисленных систем.
Приведенная
в данном разделе технология базируется в основном на стандартах IEEE (IEEE - Institute of
Electrical and Electronics Engineers - Институт инженеров по электротехнике
и электронике). Термин "внедрение" используется в широком смысле и
включает все действия от оценки первоначальных потребностей до полномасштабного
использования CASE-средств в различных подразделениях
организации-пользователя. Процесс внедрения CASE-средств
состоит из следующих этапов:
а) определение
потребностей в CASE-средствах;
б) оценка и
выбор CASE-средств;
в) выполнение
пилотного проекта;
г) практическое
внедрение CASE-средств.
Процесс
успешного внедрения CASE-средств не
ограничивается только их использованием. На самом деле он охватывает
планирование и реализацию множества технических, организационных, структурных
процессов, изменений в общей культуре организации, и основан на четком
понимании возможностей CASE-средств. На
способ внедрения CASE-средств может
повлиять специфика конкретной ситуации. Например, если заказчик предпочитает
конкретное средство, или оно оговаривается требованиями контракта, этапы
внедрения должны соответствовать такому предопределенному выбору. В иных
ситуациях относительная простота или сложность средства, степень
согласованности или конфликтности с существующими в организации процессами,
требуемая степень интеграции с другими средствами, опыт и квалификация
пользователей могут привести к внесению соответствующих корректив в процесс
внедрения.
Данный этап включает достижение
понимания потребностей организации и технологии последующего процесса внедрения
CASE-средств. Он должен привести к выделению тех
областей деятельности организации, в которых применение CASE-средств может принести реальную пользу. Результатом
данного этапа является документ, определяющий стратегию внедрения CASE-средств.
Рисунок 1 Определение потребностей в
CASE-средствах
Модель
процесса оценки и выбора, описывает наиболее общую ситуацию оценки и выбора, а
также показывает зависимость между ними. Как можно видеть, оценка и выбор могут
выполняться независимо друг от друга или вместе, каждый из этих процессов
требует применения определенных критериев. Процесс оценки и выбора может
преследовать несколько целей, включая одну или более из
следующих:
·
оценка
нескольких CASE-средств и выбор одного или более из них;
·
оценка
одного или более CASE-средств и
сохранение результатов для последующего использования;
·
выбор
одного или более CASE-средств с
использованием результатов предыдущих оценок.
Рисунок 2 Модель процесса оценки и выбора
Входной
информацией для процесса оценки является:
·
определение
пользовательских потребностей;
·
цели
и ограничения проекта;
·
данные
о доступных CASE-средствах;
·
список
критериев, используемых в процессе оценки.
Результаты
оценки могут включать результаты предыдущих оценок. При этом не следует
забывать, что набор критериев, использовавшихся при предыдущей оценке, должен
быть совместимым с текущим набором. Конкретный вариант реализации процесса
определяется перечисленными выше
целями.
Элементы
процесса включают:
·
цели,
предположения и ограничения, которые могут уточняться в ходе процесса;
·
потребности
пользователей, отражающие количественные и качественные требования
пользователей к CASE-средствам;
·
критерии,
определяющие набор параметров, в соответствии с которыми производится оценка и
принятие решения о выборе;
·
формализованные
результаты оценок одного или более средств;
·
рекомендуемое
решение (обычно либо решение о выборе, либо дальнейшая оценка).
Процесс
оценки и/или выбора может быть начат только тогда, когда лицо, группа или
организация полностью определила для себя конкретные потребности и
формализовала их в виде количественных и качественных требований в заданной
предметной области. Термин "пользовательские требования" далее
означает именно такие формализованные требования. Пользователь должен определить конкретный порядок действий и
принятия решений с любыми необходимыми итерациями. Например, процесс может быть
представлен в виде дерева решений с его последовательным обходом и выбором
подмножеств кандидатов для более детальной оценки. Описание последовательности
действий должно определять поток данных между ними. Определение списка
критериев основано на пользовательских требованиях и включает:
·
выбор
критериев для использования из приведенного далее перечня;
·
определение
дополнительных критериев;
·
определение
области использования каждого критерия (оценка, выбор или оба процесса);
·
определение
одной или более метрик для каждого критерия оценки;
·
назначение
веса каждому критерию при выборе.
CASE-средство Silverrun американской фирмы Сomputer Systems Advisers, Inc. (CSA) используется
для анализа и проектирования ИС бизнес-класса и ориентировано в большей степени
на спиральную модель ЖЦ. Оно применимо для поддержки любой методологии,
основанной на раздельном построении функциональной и информационной моделей
(диаграмм потоков данных и диаграмм "сущность-связь").
Настройка
на конкретную методологию обеспечивается выбором требуемой графической нотации
моделей и набора правил проверки проектных спецификаций. В системе имеются
готовые настройки для наиболее распространенных методологий: DATARUN (основная методология, поддерживаемая Silverrun), Gane/Sarson, Yourdon/DeMarco, Merise, Ward/Mellor, Information Engineering. Для каждого
понятия, введенного в проекте имеется возможность добавления собственных
описателей. Архитектура Silverrun
позволяет наращивать среду разработки по мере необходимости. Silverrun
имеет модульную структуру и состоит из четырех модулей, каждый из которых
является самостоятельным продуктом и может приобретаться и использоваться без
связи с остальными модулями.
ERwin - средство
концептуального моделирования БД, использующее методологию IDEF1X. ERwin
реализует проектирование схемы БД, генерацию ее описания на языке целевой СУБД
(ORACLE, Informix, Ingres, Sybase, DB/2, Microsoft SQL Server,
Progress и др.) и реинжиниринг существующей БД. ERwin выпускается в нескольких различных
конфигурациях, ориентированных на наиболее распространенные средства разработки
приложений 4GL. Версия ERwin/OPEN полностью совместима со средствами
разработки приложений PowerBuilder и SQLWindows и позволяет экспортировать описание
спроектированной БД непосредственно в репозитории
данных средств.
Для
ряда средств разработки приложений (PowerBuilder, SQLWindows, Delphi,
Visual Basic) выполняется генерация форм и
прототипов приложений.
Сетевая
версия Erwin ModelMart обеспечивает
согласованное проектирование БД и приложений в рамках рабочей группы.
BPwin - средство
функционального моделирования, реализующее методологию IDEF0.
Возможные
конфигурации и ориентировочная стоимость средств (без технической поддержки)
приведены в таблице.
S-Designor 4.2 представляет собой CASE-средство для проектирования реляционных баз данных. По своим
функциональным возможностям и стоимости он близок к CASE-средству
ERwin, отличаясь
внешне используемой на диаграммах нотацией. S-Designor реализует стандартную методологию
моделирования данных и генерирует описание БД для таких СУБД, как ORACLE, Informix, Ingres, Sybase, DB/2, Microsoft SQL
Server
и др. Для существующих систем выполняется реинжиниринг БД.
S-Designor совместим с рядом средств разработки
приложений (PowerBuilder, Uniface, TeamWindows и др.) и позволяет экспортировать
описание БД в репозитории данных средств. Для PowerBuilder выполняется также прямая генерация
шаблонов приложений.
CASE Аналитик
является практически единственным в настоящее время конкурентоспособным
отечественным CASE-средством функционального моделирования и реализует
построение диаграмм потоков данных в соответствии с методологии. Его основные
функции:
·
построение
и редактирование DFD;
·
анализ
диаграмм и проектных спецификаций на полноту и непротиворечивость;
·
получение
разнообразных отчетов по проекту;
·
генерация
макетов документов в соответствии с требованиями ГОСТ 19.ХХХ и 34.ХХХ.
База
данных проекта реализована в формате СУБД Paradox
и является открытой для доступа.
С помощью отдельного программного
продукта (Catherine) выполняется обмен данными с CASE-средством ERwin. При этом из проекта, выполненного в CASE.Аналитике, экспортируется описание структур данных
и накопителей данных, которое по определенным правилам формирует описание
сущностей и их атрибутов.
Rational Rose - CASE-средство фирмы Rational Software Corporation (США) -
предназначено для автоматизации этапов анализа и проектирования ПО, а также для
генерации кодов на различных языках и выпуска проектной документации . Rational Rose
использует
синтез-методологию объектно-ориентированного анализа и проектирования,
основанную на подходах трех ведущих специалистов в данной области: Буча, Рамбо и Джекобсона. Разработанная ими универсальная нотация
для моделирования объектов (UML - Unified Modeling Language) претендует на
роль стандарта в области объектно-ориентированного анализа и проектирования.
Конкретный вариант Rational Rose определяетс
Структура
и функции
В
основе работы Rational Rose лежит построение различного рода
диаграмм и спецификаций, определяющих логическую и физическую структуры модели,
ее статические и динамические аспекты. В их число входят диаграммы классов,
состояний, сценариев, модулей, процессов.
В
составе Rational Rose
можно выделить 6 основных структурных компонент: репозиторий,
графический интерфейс пользователя, средства просмотра проекта (browser), средства контроля проекта, средства
сбора статистики и генератор документов. К ним добавляются генератор кодов
(индивидуальный для каждого языка) и анализатор для С++,
обеспечивающий реинжиниринг - восстановление модели проекта по исходным текстам
программ.
Репозиторий представляет
собой объектно-ориентированную базу данных. Средства просмотра обеспечивают
"навигацию" по проекту, в том числе, перемещение по иерархиям классов
и подсистем, переключение от одного вида диаграмм к другому и т. д. Средства
контроля и сбора статистики дают возможность находить и устранять ошибки по
мере развития проекта, а не после завершения его описания. Генератор отчетов
формирует тексты выходных документов на основе
содержащейся в репозитории информации.
Средства
автоматической генерации кодов программ на языке С++,
используя информацию, содержащуюся в логической и физической моделях проекта,
формируют файлы заголовков и файлы описаний классов и объектов. Создаваемый
таким образом скелет программы может быть уточнен путем прямого программирования
на языке С++. Анализатор кодов С++ реализован в виде
отдельного программного модуля. Его назначение состоит в том, чтобы создавать
модули проектов в форме Rational Rose на основе информации, содержащейся в определяемых
пользователем исходных текстах на С++. В процессе
работы анализатор осуществляет контроль правильности исходных текстов и
диагностику ошибок. Модель, полученная в результате его работы, может целиком
или фрагментарно использоваться в различных проектах. Анализатор обладает широкими
возможностями настройки по входу и выходу. Например, можно определить типы
исходных файлов, базовый компилятор, задать, какая информация должна быть
включена в формируемую модель и какие элементы выходной модели следует выводить
на экран. Таким образом, Rational Rose/С++ обеспечивает
возможность повторного использования программных компонент.
В
результате разработки проекта с помощью CASE-средства
Rational Rose формируются следующие документы:
·
диаграммы
классов;
·
диаграммы
состояний;
·
диаграммы
сценариев;
·
диаграммы
модулей;
·
диаграммы
процессов;
·
спецификации
классов, объектов, атрибутов и операций
·
заготовки
текстов программ;
·
модель
разрабатываемой программной системы.
Последний
из перечисленных документов является текстовым файлом, содержащим всю необходимую
информацию о проекте (в том числе необходимую для получения всех диаграмм и
спецификаций).
Тексты
программ являются заготовками для последующей работы программистов. Они
формируются в рабочем каталоге в виде файлов типов .h (заголовки,
содержащие описания классов) и .cpp
(заготовки программ для методов). Система включает в программные файлы
собственные комментарии, которые начинаются с последовательности символов //##.
Состав информации, включаемой в программные файлы, определяется либо по умолчанию,
либо по усмотрению пользователя. В дальнейшем эти исходные тексты развиваются
программистами в полноценные программы.
Взаимодействие
с другими средствами и организация групповой работы
Rational Rose интегрируется со средством PVCS
для организации групповой работы и управления проектом и со средством SoDA - для документирования проектов. Интеграция Rational Rose и SoDA обеспечивается средствами SoDA.
Для
организации групповой работы в Rational Rose возможно
разбиение модели на управляемые подмодели. Каждая из них независимо сохраняется
на диске или загружается в модель. В качестве подмодели может выступать
категория классов или подсистема.
Для
управляемой подмодели предусмотрены операции:
загрузка
подмодели в память;
выгрузка
подмодели из памяти;
сохранение
подмодели на диске в виде отдельного файла;
установка защиты
от модификации;
замена подмодели
в памяти на новую.
Наиболее
эффективно групповая работа организуется при интеграции Rational Rose
со специальными
средствами управления конфигурацией и контроля версий (PVCS).
В этом случае защита от модификации устанавливается на все управляемые
подмодели, кроме тех, которые выделены конкретному разработчику. В этом случае
признак защиты от записи устанавливается для файлов, которые содержат
подмодели, поэтому при считывании "чужих" подмоделей защита их от
модификации сохраняется и случайные воздействия окажутся
невозможными.
Среда
функционирования
Rational Rose функционирует
на различных платформах: IBM PC (в среде Windows), Sun SPARC stations
(UNIX, Solaris, SunOS), Hewlett-Packard (HP UX),
IBM RS/6000 (AIX).