Rational Rose 98 - CASE продукт нового поколения

Развитие объектно-ориентированной технологии программирования, начавшись с середины 80-х годов, к 90 м годам достигло поры своей зрелости и в настоящее время ее поклонники говорят о начале "революции в программировании". При этом имеется в виду уже не объектно-ориентированное программирование, а набирающая силу тенденция проводить разработку проектов корпоративного уровня на основе компонент (CBD - Component Based Development). На рынке инструментальных CASE средств поддержки CBD-моделирования и разработки в середине 90-х годов доминировало четыре фирмы:

Начиная с 1995 года, по объему продаж Rational Software вырвалась вперед и продолжает лидировать с большим отрывом со своим "широко известным в узких корпоративных кругах" CASE продуктом Rational Rose. Если в 1997 году существовала собственная модификация системы Rational Rose для каждого целевого языка программирования (С++, Visual Basic, Java, PowerBuilder, Ada, Forte, Smalltalk), то теперь существует единая система - Rational Rose 98, с поддержкой нескольких целевых языков программирования.

Rational Rose 98 занимает уникальное место в ряду CASE продуктов визуального моделирования сложных программных систем, имеющихся на рынке, и имеет стратегическое преимущество в плане развития продукта. Такая оценка основана на том, что Rational Rose 98:
1. Поддерживает генерацию кода и обратное проектирование (т.е. построение модели по программному коду) сразу для нескольких языков, включая:

2. Поддерживает визуальное объектно-ориентированное моделирование, полностью совместимое с UML (Unified Modeling Language), который с 1997 года определен как стандарт языка для этой быстро развивающейся области инструментальных средств.

3. Имеет широкие перспективы развития, в том числе за счет появления дополнительных продуктов-"переходников" (Links) тесно интегрированных с Rational Rose и создаваемых многочисленными независимыми разработчиками инструментальных средств в рамках программы Rational Rose Link Partner Program.

4. Ориентирован на разработчиков архитектуры информационных систем (ИС), менеджеров ИС и программистов.
CASE продукты в России
Особенностью Rational Rose 98 является его "концептуальная новизна" в России как CASE - инструментария. Что это значит? В настоящее время в России (и странах СНГ) популярными являются CASE средства, основанные на структурных методах моделирования сложных архитектур информационных систем. К наиболее известным продуктам в этой области относятся ERwin (Logic Works), Designer-2000 (Oracle) и ряд других, рассмотренных в обзоре Георгия Калянова "Российский рынок CASE-средств" (PC WEEK, №23, 16 июня 1998). В отличие от них, Rational Rose 98 - это объектно-ориентированный CASE - инструментарий.

С точки зрения создания корпоративных иинформационных систем (КИС) объектно-ориентированное моделирование, анализ и проектирование заслуживают повышенного внимания и "CASE поддержки" в российских фирмах - разработчиках крупных программных проектов и в фирмах, проводящих системную интеграцию. Действительно, многие руководители информационных и разрабатывающих отделов "подозревают", что программирование "в объектах" - это хорошо, особенно, если речь идет о создании сложных программных систем. Однако, объектно-ориентированное программирование (ООП) по-разному понимается разными людьми, и в свое время Rentch отмечал: "Я полагаю, что ООП в 90-е годы будет тем, чем в 70-е годы являлось структурное программирование. Все были в восторге от него. Каждый производитель предлагал продукты для его поддержки. Каждый программист был знаком на практике с ним. И никто не знал, что же это такое... ".

Структурная или объектная декомпозиция?
Известно два подхода к проведению декомпозиции системы при построении ее информационной модели:
1. Алгоритмическая декомпозиция (структурный анализ/проектирование), основанная на упорядочении событий/потоков данных.
2. Объектно-ориентированная декомпозиция (ОО - анализ/проектирование), базирующаяся на выделении агентов, которые или сами действуют, или на которых производится действие.
Согласно Grady Booch'у, "Объектно-ориентированное программирование - это метод реализации, в результате программы организованы как взаимодействующие коллекции объектов. Каждый объект является экземпляром некоторого класса, а все классы являются членами иерархии классов, объединенной отношением наследования. Объектно-ориентированное проектирование - это метод, включающий процесс объектно-ориентированной декомпозиции, нотацию для описания как логических, так и физических, а так же как статических, так и динамических моделей проектируемой системы. Объектно-ориентированное проектирование приводит в объектно-ориентированной декомпозиции системы. Используется различная нотация для выражения разных моделей системы: логической (структура классов и объектов), физической (модульная и процессорная архитектура)".

Рисунок 1
Диаграммы Rational Rose 98, определяющие динамическую модель системы:

Ross.bmp (308278 bytes)

Ross1.bmp (299382 bytes)


UML - Unified Modeling Language
В Rational Rose 98 поддерживается UML версии 1.0 наряду с ранее широко используемыми нотациями Буча и ОМТ. Это означает, что проектировщики и аналитики могут продолжать пользоваться, например, нотацией Буча, на которой основаны их прежние проекты "в старых" версиях Rational Rose. А затем возможно легко привести полученную модель проекта к UML нотации простым выбором установки нотации UML в Rational Rose 98.
UML был разработан фирмой Rational Software и ее партнерами - крупными фирмами, разрабатывающими КИС: Hewlett-Packard, IBM, i-Logix, ICON Computing, IntelliCorp, MCI Systemhouse, Microsoft, ObjecTeam, Oracle, Platinum Technology, Ptech, Reich Technologies, Softeam, Sterling Software и Unisys.

UML - преемник языков визуального моделирования программных архитектур Booch'a, OOSE/Jacobson и OMT. Ряд крупных компаний уже используют UML как стандарт в процессе разработки крупных программных систем. UML служит для проведения бизнес-моделирования (см. цветную вставку) , для управления требованиями, для анализа и проектирования архитектуры системы, для программирования и тестирования. Описание истории и особенностей UML в контексте объектно-ориентированной CASE технологии заслуживает отдельной работы.

Этапы проведения моделирования в Rational Rose 98
Моделирование проводится как по уровневый спуск от концептуальной модели к логической, а затем к физической модели программной системы.
Концептуальная модель выражается в виде "диаграмм прецедентов" (use case diagram). Этот тип диаграмм служит для проведения итерационного цикла общей постановки задачи вместе с заказчиком. Как можно часто услышать, "заказчик и раньше не знал, и теперь не знает, и в будущем не будет точно знать, что ему нужно". Диаграммы прецедентов как раз и служат основой для достижения взаимопонимания между программистами-профессионалами, разрабатывающими проект, и "бизнесменами" - заказчиками проекта. Внутри каждого прецедента могут быть определены:

Логическая модель позволяет определять два различных взгляда на системы: статический и динамический. Статическая модель выражается Диаграммами классов (Class diagram). На рисунке 1 приведена такая диаграмма в UML-нотации. Именно диаграммы классов служат основой для генерации программного кода на целевом языке программирования. Возможна очень гибкая настройка генерации кода, позволяющая учитывать конкретные соглашения (например, по префиксам имен идентификаторов), принятые в команде разработчиков проекта.
Динамически модели задаются двумя типами диаграмм :

Проектирование в Rational Rose 98 реализуется как дисциплинированный и упорядоченный подход, который используется для итерационного "изобретения" решения заданной проблемы. Это обеспечивает "движение модели" от требований заказчика к программной реализации. Цель проектирования состоит в том, чтобы полученная система:

При построении общей модели в Rational Rose 98 используются принципы: Проектирование в Rational Rose 98 реализуется как дисциплинированный и упорядоченный подход, который используется для итерационного "изобретения" решения заданной проблемы. Это обеспечивает "движение модели" от требований заказчика к программной реализации. Цель проектирования состоит в том, чтобы полученная система:
1. Удовлетворяла заданным (возможно неформальным) спецификациям.
2. Соответствовала ограничениям целевой вычислительной аппаратуры.
3. Удовлетворяла (явным и/или неявным) требованиям на производительность и используемые ресурсы.
4. При ее разработке были выполнены ограничения на сам процесс проектирования по цене, времени, и т.п.
При построении общей модели в Rational Rose 98 используются принципы:
· декомпозиции и абстрагирования,
· иерархии на концептуальном, логическом и физическом уровнях,
· повторного использования элементов моделей/программных компонент,
· разработки различных типов моделей для различных аспектов системы,
· согласованности статических и динамических моделей системы,
· пошаговое и итеративное моделирования/программирования,
· поддержки коллективной разработки/использования компонент.

Диаграмма классов, представленная в UML нотации. Класс представляется прямоугольником с тремя секциями: имя, атрибуты, методы. Пиктограмма указывает модификатор члена класса: private, protected, public, ... Отношения между классами задаются стрелками, значки, на концах которых в UML нотации определяют спецификацию отношения: "наследование", "зависимость", "агрегация", ...

Ross2.bmp (363694 bytes)

В текущей версии Rational Rose 98 эти диаграммы не влияют на генерируемый код, однако, существуют приложения фирм-партнеров Rational Software, использующие эти диаграммы в своих продуктах. Так, например, Sequence diagrams используются в пакете SQA Suite для автоматизированного проведения тестирования компонент, разработанных в Rational Rose 98. Классы, введенные на этих диаграммах, попадают в список классов модели и могут использоваться при конструировании диаграмм классов. Динамика конкретного класса может быть выражена с помощью диаграмм перехода состояний (State diagram). Эти диаграммы определяют модель конечного автомата, описывающего поведение класса. Каждое состояние задается своей вершиной, и определены входное и выходные состояния, а также условия перехода из состояния в состояние.

Физическая модель задается компонентной диаграммой (Component diagram), которая описывает распределение реализации классов по модулям, и "диаграммой поставки" (Deployment diagram).
После построения "первого/последующего слоя" статической модели с использование диаграмм классов, можно провести генерацию кода на целевом языке программирования. На уровне кода можно ввести новые "уточняющие" классы, изменить атрибуты и методы классов модели и затем синхронизовать код и модель, выполнив "обратное проектирование", т.е. по модифицированному коду Rational Rose 98 позволяет построить новую логическую модель взаимосвязи классов между собой! Повторение такой процедуры несколько раз называется итерационным моделированием (round-trip modeling), которое составляет основу мягкого и постепенного уточнения постановки задачи и согласования требований заказчика с имеющимися ресурсами (вычислительными, временными, финансовыми и т.п.).

Обеспечение групповой разработки
Такая поддержка является ключевым признаком любого программного инструмента для разработки больших проектов. Действительно, создание корпоративной информационной системы может представлять собой такой крупный проект, для реализации которого при высокой организации труда и использовании современных CASE инструментов нужны десяткии или даже сотни разработчиков. Обычно задача состоит в том, чтобы проект сначала сделать целиком в виде визуальной модели, а затем разбить ее на части и раздать исполнителям для программиро-вания. Основная проблема в том, как потом собирать вместе представленный программистами код. Rational Rose 98 поддерживает такую технологию определения и последующей сборки программных компонент, которая была методологически отработана еще в предыдущих версиях продукта.

Имеется три варианта продукта Rational Rose 98:

Modeler Edition - Инструмент для базового анализа архитектуры разрабатываемой системы, поддерживает моделирование, полностью совместимое с Unified Modeling Language (UML). Отсутствует возможность генерации программного кода по построенной визуальной модели системы.

Professional Edition - добавлена возможность поддержки одного из языков высокого уровня (например, C++, Java, Visual Basic). Версия продукта предназначена для компаний, в которых при разработке проекта используется только один язык программирования.

Enterprise Edition - дополнительно поддерживает многоязычную разра-ботку, что освобождает от необходимости приобретать инструментальные средства отдельно для каждого языка программирования.

Rational Software выпустила ряд продуктов, расширяюших возможности системы Rational Rose 98:

SoDA - система, поддерживающая документирование визуальных моделей, созданных как в Rational Rose 98, так и в других продуктах. Обеспечивает согласованность визуальной модели и проектной документации на всех этапах разработки проекта ИС: прямого, обратного (reverse) и циклического проектирования (round-trip). Автоматически генерирует документы проекта по различным типа диаграмм, поддер-живаемых в Rational Rose 98, согласно стандартам оформления, выбранным пользователем. К достоинствам продукта относятся:

SQA Suite - Продукт, обеспечивающий полный жизненныйй цикл тестирования приложений клиент-сервер (под Windows) и Internet приложений, начиная от планирования и проектирования и заканчивая разработкой и поставкой созданного продукта. Является единственным продуктом на рынке для проведения автоматизированного тестирования. Обеспечивает высокую степень интеграции с Rational Rose 98 и позволяет автоматически конвертировать диаграммы "прецедентов" (use case) Rational Rose в требования на тестирование. Поддерживает расширяемый репозитарий тестов (БД) на базе технологии клиент-сервер. Реализует формализованную методологию тестирования, включая планирование тестов, записи сценариев тестирования и их выполнения. Поддерживает администрирование процесса исправления ошибок и модификации версий.

Requisite Pro - продукт, расширяющий поддержку групповой разра-ботки проекта. Позволяет команде разработчиков

изменения требований, возникающих на любом этапе разработки компонентов приложения. Поддерживается репозитарий (БД) требований с динамическим связыванием с MS Word, что позволяет управлять требованиями на продукт, спецификациями программных компонент и планированием тестирования. Интеграция с Rational Rose 98 позволяет отслеживать внесение изменений в визуальные модели на каждом этапе проектирования: прямого, обратного (reverse) и циклического (round-trip).

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

В заключении хочется отметить важное обстоятельство. Использование языка UML - нового стандарта разработки визуальных моделей, - делает Rational Rose 98 не только открытой системой, позволяющей обмениваться моделями с другими продуктами, использующими UML. Главное, что вокруг Rational Rose 98 как продукта-лидера в рыночной нише объектно-ориентированного CASE инструментария, сосредота-чивается ряд фирм, разрабатывающих продукты-"переходники" (Links). Существуют такие переходники между Rational Rose 98 и Delphi3 (Borland), JBuilder(Borland), C++ Builder(Borland), JavaCafe(Symantec). Эти "переходники" позволяют проводить итерационное моделирование (round-trip modeling), используя не просто целевой язык программирования (например, такой как JAVA), а основываться при этом уже файлах-проектов в формате соответствующих RAD-инструментариев.

Грамотное использование CASE инструментария предполагает владение основами методологии, реализованной в CASE продукте, которая для Rational Rose 98 называется Rational Objectory Process. Научиться использованию Rational Rose 98 можно в фирме Interface - ведущей российской фирмой, обучающей CASE технологиям. Здесь также можно получить как оценочную копию самого продукта Rational Rose 98, так и соответствующие продукты "переходники" фирм, партнеров Rational Software, и материалы по UML.


Interface Ltd.

Подготовили: Михаил Кумсков E-mail:kumskov@interface.ru
22.07.98.