Концептуальные основы 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% общего числа ошибок;
• ошибки проектирования значительно труднее обнаружить на этапе сопровождения ПО, чем на этапе анализа требований.
Базой для контроля состоятельности проектных спецификаций является репозитарии. Все отчеты и протоколы верификации строятся автоматически по репозитарию, ниже перечислены основные типы контроля:
• контроль синтаксиса диаграмм и типов их элементов;
• контроль полноты и состоятельности диаграмм;
• контроль декомпозиции функций;
• сквозной контроль диаграмм одного или различных типов на предмет их состоятельности по уровням — вертикальное и горизонтальное балансирование диаграмм.