CASE-технологии — инструментарий поддержки ЖЦ




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

Основная цель CASE состоит в том, чтобы отделить начальные этапы (анализ и проектирование) от после­дующих этапов разра­ботки, а также не обременять разработчиков всеми деталями сре­ды разработки и функ­ционирования системы. Чем больший объем работ будет вынесен на этапы анализа и проектирования, тем луч­ше. При использовании CASE транформируются все этапы жиз­ненного цикла АСУП, при этом наибольшие изменения касаются этапов анализа и проектирования. В большинстве современных CASE-систем применя­ются методологии структурного и/или объектно-ориентированного анализа и проектирования, основанные на наглядных диаграммных техниках, при этом для описания модели проектируемой системы используются графы, диаграммы, табли­цы и схемы.

Следует отметить, что CASE — не революция в программотехни­ке, а результат естественного эволюционного развития всей отрас­ли средств, называемых ранее инструментальными или технологи­ческими. Однако это и не Confuse Array of Software that does Everything, существует ряд признаков и свойств, наличие которых позволяет классифицировать некоторый продукт как CASE-средство. Одним из ключевых признаков является поддержка структурных и/или объек­тно-ориентированных методологий. С самого начала CASE-средства развивались с целью преодоления ограничений при использовании структурных (а в настоящее время и объектно-ориентированных) методологий (сложности понимания, большой трудоемкости и сто­имости использования, трудности внесения изменений в проект­ные спецификации и т. д.) за счет их автоматизации и интеграции поддерживающих средств.

Помимо автоматизации методологий и, как следствие, возмож­ности применения современных методов сис­темной и програм­мной инженерии, CASE обладают следующими основными досто­инствами:

• улучшают качество создаваемой системы за счет средств авто­матического контроля (прежде всего контроля проекта);

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

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

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

• поддерживают развитие и сопровождение разработки;

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

В настоящее время имеется два поколения CASE. Средства перво­го поколения предназначены для анализа тре­бований, проектиро­вания спецификаций и структуры системы и являются первой тех­нологией, адресованной не­посредственно системным аналитикам и проектировщикам. Они включают средства для поддержки графи­ческих моделей, проектирования спецификаций, редактирования словарей данных и концентрируют внимание на на­чальных шагах проекта — системном анализе, определении требований, систем­ном проектировании, логическом проектировании БД. Средства вто­рого поколения предназначены для поддержки полного жизненно­го цикла разра­ботки. В них в первую очередь используются средства поддержки автоматической кодогенерации, а также обес­печивается полная функциональная поддержка для создания графических сис­темных требований и специфика­ций проектирования; контроля, анализа и увязывания системной информации, а также информа­ции по управ­лению проектированием; построения прототипов и моделей системы; тестирования, верификации и анализа сгенери­рованных программ; генерации документов по проекту; контроля на соответствие стандартам по всем этапам ЖЦ.

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

В табл. 8 приведены оценки трудозатрат по фазам ЖЦ. В табл. 9 сведены основные изменения в ЖЦ при использовании CASE по сравнению с традиционной разработкой.

Таблица 8

Способ разра­ботки Анализ, % Проектирова­ние, % Кодирование, % Тестирование, %
Традиционная разработка        
Использование структурных методологий        
Использование CASE-техноло­гий              

 

Таблица 9

 

Традиционная разработка CASE
Основные усилия — на кодирова­ние и тестирование   Основные усилия — на анализ и проектирование
«Бумажные» спецификации   Быстрое итеративное прототипиро­вание
Ручное кодирование Автоматическая кодогенерация
Ручное документирование   Автоматическая генерация доку­ментации
Тестирование кодов Автоматический контроль проекта
Сопровождение кодов   Сопровождение спецификаций про­ектирования

 

На рис. 24 представлены преимущества разработки с применени­ем CASE-технологий.

Ниже кратко характеризуются основные функциональные воз­можности CASE-средств.

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

 

Рис. 24

2) Общая БД проекта. Основа CASE— использование БД проекта (репозитария) для хранения всей информации о проекте, которая мо­жет разделяться между разработчиками в соответствии с их права­ми доступа. Содержимое репозитария включает не только объекты различных типов, но и отношения между их компонентами, а также правила использования или обработки этих компонент. Репозитарий может хранить свыше 100 типов объектов, при­мерами которых явля­ются диаграммы, определения экранов и меню, проекты отчетов, описа­ния данных, логика обработки, модели данных, модели предприятия, мо­дели обработки, исходные коды, элементы данных и т. п. Каждый ин­формацион­ный объект в репозитарии описывается перечислением его свойств: идентификатор, имена-синонимы, тип, тексто­вое описание, компоненты, файл-хранилище, область значений. Кроме этого, хранят­ся все отношения с другими объектами (например, все объекты, в кото­рых данный объект используется; все перекрестные ссылки), правила формирования и редактирования объекта, а также контрольная ин­формация о времени порождения объекта, времени его последнего об­новления, кем и в каком проекте он был порожден, номере версии, воз­можности обновления и т. п.

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

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

5) Прототипирование. Важную роль при автоматизации ранних этапов ЖЦ играют возможности поддержки прототипирования. CASE позволяет строить быстрые прототипы системы, что позволяет на ранних этапах разра­ботки оценить, насколько будущая система уст­раивает заказчика и насколько дружественна она будущему пользова­телю. Соответствующие средства используются для определения сис­темных требований и ответа на вопросы об ожидаемом поведении системы. Такие средства, как генераторы меню, экранов и отчетов, позволяют быстро по­строить прототипы пользовательских интерфейсов и снабдить моделью функционирования системы с позиций конечно­го пользователя. Использование языков четвертого поколения позволя­ет строить более сложные модели, при этом прото­тип позволяет про­моделировать основные функции системы, но не способен контролиро­вать ее ожидаемое поведение. Исполняемые языки спецификаций пре­образуют процесс разработки в следующий итеративный процесс: спе­цификации определяются и выполняются, затем производится переоп­ределение или корректировка. Созданные таким образом прототипы позволяют определять, является ли проектируемая система полной и корректной.

6) Генерация документации. Вся документация по проекту гене­рируется автоматически на базе репозитария (как правило, на базе требований соответствующих стандартов). Несомненное достоинство CASE заключается в том, что документация всегда соответствует текущему состоянию дел, поскольку любые изменения в проекте авто­мати­чески отражаются в репозитарии. Известно, что при традици­онных подходах к разработке АСУП документация в лучшем случае запаздывает, а ряд модификаций вообще не находит в ней отражения.

7) Верификация проекта. CASE обеспечивает автоматическую верификацию и контроль проекта на полноту и состоятельность на ранних этапах разработки, что влияет на успех разработки в целом. В подтверждение этого достаточно привести следующие статисти­ческие данные, основанные на отчетах фирмы TRW по анализу пяти крупных проектов:

ошибки проектирования и ошибки кодирования составляют соответственно 64 и 32% общего числа оши­бок;

• ошибки проектирования значительно труднее обнаружить на этапе сопровождения ПО, чем на этапе анализа требований. Базой для контроля состоятельности проектных спецификаций является репозитарии. Все отчеты и протоколы верификации стро­ятся автоматически по репозитарию, ниже перечислены основные типы контроля:

• контроль синтаксиса диаграмм и типов их элементов;

• контроль полноты и состоятельности диаграмм;

• контроль декомпозиции функций;

•сквозной контроль диаграмм одного или различных типов на предмет их состоятельности по уровням — вертикальное и горизонтальное балансирование диаграмм.

8) Автоматическая кодогенерация. Кодогенерация осуществляет­ся на основе репозитария и позволяет автома­тически построить до 80—90% объектных кодов или текстов программ на языках высокого уровня. При этом раз­личными CASE-пакетами поддерживаются прак­тически все известные языки программирования, однако наиболее час­то в качестве целевых языков выступают COBOL, С и ADA. Средства кодогенерации по отношению к полноте целевого продукта разделяют­ся на средства генерации каркаса и средства генерации полного продукта. В первом случае автоматически строится откомментиро-ванная логика (потоки управления) программной системы, а также коды для баз данных, файлов, экранов, отчетов и т. п., остальные фраг­менты кодируются вручную. Во втором случае из про­ектных специфи­каций генерируется полная документированная программа, включая вы­полняемый код, пользовательскую и программную документацию, набо­ры тестов и т. д. Все эти компоненты полной программы связывают­ся в единый объ­ект, хранящийся в репозитарии для облегчения доступа и сопровождения.

Идея автоматической кодогенерации на основе модели заключает­ся в следующем. Любая программа схематически может быть пред­ставлена в виде тройки: обрабатываемые данные, логический каркас обработки, линейные участки обработки. Схема базы данных может быть легко сгенерирована на основании модели «сущность—связь», и совре­менные средства информационного моделирования (например, ERWin, Designer/2000 и др.) обеспечивают такую ге­нерацию. Логика обработки генерируется на основе диаграмм потоков данных: извест­ны алгоритмы автоматического преобразования иерархии DFD в струк­турные карты, а с задачей получения из структурных карт соответ­ствующих ко­дов легко справляется теория компиляции. Наконец, ли­нейным участкам соответствуют мини-спецификации модели. И имен­но здесь лежит ключ к высокому проценту автоматически сгенериро­ванного кода, существенно зависящего от ме­тода задания мини-специ­фикаций.

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

ЛЕКЦИЯ 13



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-09-06 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: