double arrow

Концептуальные основы CASE-технологии

Лекция 9

Практически ни один серьезный проект по созданию ИС не осуществляется без использования 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 приведены оценки трудозатрат по фазам ЖЦ при использовании CASE по сравнению с традиционной разработкой.

Таблица 8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: