
- •8 Средства автоматизации проектирования
- •8.1. Основные определения
- •Перспективная case-система
- •8.2. Модели жизненного цикла
- •8.3. Модели структурного проектирования
- •Диаграммы потоков данных
- •Методология функционального моделирования
- •8.4. Объектно-ориентированные модели
- •Общая характеристика унифицированного языка моделирования
- •Типы диаграмм унифицированного языка моделирования
- •Примеры диаграмм uml
- •8.5. Классификация case-средств
- •8.6. Системы структурного типа Независимые системы
- •Номер отдела
- •Идентификатор
- •Номер материала Название материала
- •Система Designer/2000
- •8.7 Объектно-ориентированные системы
- •Объектно-ориентированная система Rational Rose
- •8.8. Рекомендации по применению case-систем
- •Библиографический список
8.7 Объектно-ориентированные системы
Появление объектно-ориентированных CASE-систем вызвано рядом преимуществ объектно-ориентированного подхода перед структурным. Основу объектно-ориентированного подхода составляют три важнейших свойства: инкапсуляция, наследование и полиморфизм.
Инкапсуляция заключается в том, что данные и алгоритмы (функции и методы) их обработки объединяются в единое целое. Объект скрывает в себе данные, которые не существенны для использования объекта. «Жесткое» связывание данных и процедур их обработки в одном объекте позволяет избежать ошибок и повысить надежность разрабатываемых систем.
Наследование позволяет определять новые объекты, используя свойства прежних, дополняя или изменяя их. Объект-наследник получает все поля и методы «родителя». К объекту-наследнику можно добавить свои собственные поля и методы или заменить («перекрыть») их своими методами. Наследник не содержит описания полей и методов родителя. Из методов наследника можно вызвать методы родителя. Наследование полезно, если некоторый объект уже определен и отлажен и он может быть использован как родитель в других объектах. При этом в объекте-наследнике возможна модификация как данных, так и методов их обработки. При описании объекта-наследника программист может и не знать деталей реализации объекта-родителя.
Полиморфизм заключается в том, что одно и то же имя может соответствовать различным действиям в зависимости от типа объекта. Полиморфизм напрямую связан с механизмом позднего связывания. Решение о том, какая операция должна быть выполнена в конкретной ситуации, принимается во время выполнения программы.
Свойства наследования и полиморфизма позволяют ускорить процесс разработки программ, а также упростить адаптацию систем на новые условия применения за счет гибкого механизма наращивания возможностей программ в процессе их разработки.
Областью применения объектно-ориентированных инструментальных систем являются сложные проекты, такие как: создание операционных систем, средств разработки приложений и систем реального времени.
В рамках объектно-ориентированного подхода существует множество моделей описания (нотаций) и методов разработки программных систем.
Современные объектно-ориентированные CASE-системы можно разделить на две основные группы: CASE-средства, поддерживающие несколько объектно-ориентированных моделей, и средства, ориентированные только на один вид моделей. В системах первого типа обычно имеется возможность перехода от одной модели к другой. Иногда в этих системах предоставляется возможность создавать собственные модели описаний.
Объектно-ориентированная система Rational Rose
Rational Rose представляет собой семейство объектно-ориентированных CASE-систем фирмы Rational Software Corporation, служащие для автоматизации анализа и проектирования программного обеспечения, генерации кодов на различных языках и подготовки проектной документации. Кроме того, в его составе имеются средства реинжиниринга программ, обеспечивающие повторное использование программных компонентов в новых проектах. В этой системе используется синтез методология объектно-ориентированного анализа и проектирования Г. Буча, Д. Рамбо и И. Джекобсона, их унифицированный язык моделирования UML.
Конкретный вариант системы определяется языком, на котором выполняется генерация кодов программ (С++, Smalltalk, PowerBuilder, Ada, SQLWindows и ObjektPro). Основным вариантом системы является Rational Rose/C++, позволяющий генерировать программные коды на С++, подготавливать проектную документацию в виде диаграмм и спецификаций.
Диаграммы и спецификации определяют логическую и физическую структуру модели, ее статические и динамические свойства. В их состав входят следующие диаграммы: классов, состояний, сценариев, модулей и процессов.
Основными компонентами системы являются следующие:
репозиторий, представляющий объектно-ориентированные базы данных;
графический интерфейс пользователя;
средства просмотра проекта, обеспечивающие перемещение по элементам проекта, в том числе по иерархиям классов и подсистем, переключение между видами диаграмм;
средства контроля проекта, позволяющие находить и устранять ошибки;
средства сбора статистики;
генератор документов, позволяющий формировать тексты выходных документов на основе информации из репозитория.
Кроме того, для каждого языка программирования добавляется свой генератор кода и анализатор для С++, обеспечивающий восстановление модели проекта по исходным текстам программ (реинжиниринг). Средства автоматической генерации кодов программ на С++ на основе логической и физической моделей проекта формируют заголовочные файлы и файлы описаний классов и объектов. Полученный таким образом скелет программ можно дополнить путем непосредственного программирования на С++.
Анализатор кодов С++ позволяет создавать модули проектов по информации, содержащейся в определяемых пользователем исходных текстах программ. Анализатор осуществляет контроль правильности исходных текстов и диагностику ошибок. Полученная в результате модель может использоваться в нескольких проектах.
В результате разработки проекта с помощью Rational Rose формируются диаграммы классов, состояний, сценариев, модулей и процессов. Кроме того, создаются следующие компоненты:
спецификации классов. Объектов, атрибутов и операций;
заготовки текстов программ;
модель программной системы.
Модель программной системы представляет собой текстовый файл, содержащий всю информацию о проекте. Заготовки текстов программ формируются в виде заголовочных файлов и заготовок для методов. Система включает в программные файлы комментарии. В окончательные программы исходные тексты заготовок преобразуются программистами.