PCWeek 37’98
Rational Rose 98 - CASE продукт нового поколения
Михаил Кумсков
Структурная или объектная декомпозиция?
Известно два подхода к проведению декомпозиции системы при построении ее
информационной модели:
1. Алгоритмическая декомпозиция (структурный анализ/проектирование),
основанная на упорядочении событий/потоков данных.
2. Объектно-ориентированная декомпозиция (ОО - анализ/проектирование),
базирующаяся на выделении агентов, которые или сами действуют, или на которых
производится действие.
Согласно Grady Booch’у, «Объектно-ориентированное программирование –
это метод реализации, в результате программы организованы как взаимодействующие
коллекции объектов. Каждый объект является экземпляром некоторого класса,
а все классы являются членами иерархии классов, объединенной отношением
наследования.
Объектно-ориентированное проектирование – это метод, включающий процесс
объектно-ориентированной декомпозиции, нотацию для описания как логических,
так и физических, а так же как статических, так и динамических моделей
проектируемой системы.
Объектно-ориентированное проектирование приводит в объектно-ориентированной
декомпозиции системы. Используется различная нотация для выражения разных
моделей системы: логической (структура классов и объектов), физической
(модульная и процессорная архитектура)». |
Развитие объектно-ориентированной технологии программирования, начавшись
с середины 80-х годов, к 90 м годам достигло поры своей зрелости и в настоящее
время ее поклонники говорят о начале «революции в программировании». При
этом имеется в виду уже не объектно-ориентированное программирование, а
набирающая силу тенденция проводить разработку проектов корпоративного
уровня на основе компонент (CBD - Component Based Development). На рынке
инструментальных CASE средств поддержки CBD-моделирования и разработки
в середине 90-х годов доминировало четыре фирмы:
-
Rational Software,
-
Cayenne,
-
Platinum,
-
Select.
Начиная с 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. Поддерживает генерацию кода и обратное проектирование (т.е. построение
модели по программному коду) сразу для нескольких языков, включая:
-
Visual Basic,
-
C++,
-
Java,
-
PowerBuilder,
-
CORBA Interface Definition Language(IDL),
-
Data Definition Language для большинства СУБД,
-
ERwin модели.
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-е годы
являлось структурное программирование. Все были в восторге от него. Каждый
производитель предлагал продукты для его поддержки. Каждый программист
был знаком на практике с ним. И никто не знал, что же это такое... ". (см.
цветную вкладку)
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). Этот тип диаграмм служит для проведения итерационного цикла
общей постановки задачи вместе с заказчиком. Как можно часто услышать,
«заказчик и раньше не знал, и теперь не знает, и в будущем не будет точно
знать, что ему нужно». Диаграммы прецедентов как раз и служат основой для
достижения взаимопонимания между программистами-профессионалами, разрабатывающими
проект, и "бизнесменами" - заказчиками проекта.
Внутри каждого прецедента могут быть определены:
-
Вложенная диаграмма прецедентов(use case diagram )
-
Диаграмма взаимодействия объектов (Collaboration diagram)
-
Диаграмма последовательности взаимодействий (Sequence diagram)
-
Диаграмма классов (Class diagram)
-
Диаграмма перехода состояний(State diagram)
Логическая модель позволяет определять два различных взгляда на системы:
статический и динамический.
Статическая модель выражается Диаграммами классов (Class diagram).
Рисунок 1. Диаграмма классов, представленная в UML нотации.
Класс представляется прямоугольником с тремя секциями: имя, атрибуты,
методы. Пиктограмма указывает модификатор члена класса: private, protected,
public, ... Отношения между классами задаются стрелками, значки, на концах
которых в UML нотации определяют спецификацию отношения: "наследование",
"зависимость", "агрегация", ...
На рисунке 1 приведена такая диаграмма в UML-нотации. Именно диаграммы
классов служат основой для генерации программного кода на целевом языке
программирования. Возможна очень гибкая настройка генерации кода, позволяющая
учитывать конкретные соглашения (например, по префиксам имен идентификаторов),
принятые в команде разработчиков проекта.
Динамически модели задаются двумя типами диаграмм (рисунок 2):
-
Диаграммами взаимодействия объектов (Collaboration diagram)
-
Диаграммами последовательности взаимодействий (Sequence diagram)
Рисунок 2. Диаграммы Rational Rose 98, определяющие динамическую
модель системы
В текущей версии Rational Rose 98 эти диаграммы не влияют на генерируемый
код, однако, существуют приложения фирм-партнеров Rational Software, использующие
эти диаграммы в своих продуктах. Так, например, Sequence diagrams используются
в пакете SQA Suite для автоматизированного проведения тестирования компонент,
разработанных в Rational Rose 98. Классы, введенные на этих диаграммах,
попадают в список классов модели и могут использоваться при конструировании
диаграмм классов. Динамика конкретного класса может быть выражена с помощью
диаграмм перехода состояний (State diagram). Эти диаграммы определяют модель
конечного автомата, описывающего поведение класса. Каждое состояние задается
своей вершиной, и определены входное и выходные состояния, а также условия
перехода из состояния в состояние.
Физическая модель задается компонентной диаграммой (Component diagram),
которая описывает распределение реализации классов по модулям, и "диаграммой
поставки" (Deployment diagram).
После построения "первого/последующего слоя" статической модели с использование
диаграмм классов, можно провести генерацию кода на целевом языке программирования.
На уровне кода можно ввести новые "уточняющие" классы, изменить атрибуты
и методы классов модели и затем синхронизовать код и модель, выполнив "обратное
проектирование", т.е. по модифицированному коду Rational Rose 98 позволяет
построить новую логическую модель взаимосвязи классов между собой! Повторение
такой процедуры несколько раз называется итерационным моделированием (round-trip
modeling), которое составляет основу мягкого и постепенного уточнения постановки
задачи и согласования требований заказчика с имеющимися ресурсами (вычислительными,
временными, финансовыми и т.п.).
Обеспечение групповой разработки
Проектирование в Rational Rose 98 реализуется как дисциплинированный
и упорядоченный подход, который используется для итерационного «изобретения»
решения заданной проблемы. Это обеспечивает «движение модели» от требований
заказчика к программной реализации. Цель проектирования состоит в том,
чтобы полученная система:
1. Удовлетворяла заданным (возможно неформальным) спецификациям.
2. Соответствовала ограничениям целевой вычислительной аппаратуры.
3. Удовлетворяла (явным и/или неявным) требованиям на производительность
и используемые ресурсы.
4. При ее разработке были выполнены ограничения на сам процесс проектирования
по цене, времени, и т.п.
При построении общей модели в Rational Rose 98 используются принципы:
-
декомпозиции и абстрагирования,
-
иерархии на концептуальном, логическом и физическом уровнях,
-
повторного использования элементов моделей/программных компонент,
-
разработки различных типов моделей для различных аспектов системы,
-
согласованности статических и динамических моделей системы,
-
пошаговое и итеративное моделирования/программирования,
-
поддержки коллективной разработки/использования компонент.
|
Такая поддержка является ключевым признаком любого программного инструмента
для разработки больших проектов. Действительно, создание корпоративной
информационной системы может представлять собой такой крупный проект, для
реализации которого при высокой организации труда и использовании современных
CASE инструментов нужны десяткии или даже сотни разработчиков. Обычно задача
состоит в том, чтобы проект сначала сделать целиком в виде визуальной модели,
а затем разбить ее на части и раздать исполнителям для программирования.
Основная проблема в том, как потом собирать вместе представленный программистами
код. Rational Rose 98 поддерживает такую технологию определения и последующей
сборки программных компонент, которая была методологически отработана еще
в предыдущих версиях продукта.
Имеется три варианта продукта Rational Rose 98:
-
Modeler Edition,
-
Professional Edition,
-
Enterprise Edition
Modeler Edition - Инструмент для базового анализа архитектуры разрабатываемой
системы, поддерживает моделирование, полностью совместимое с Unified Modeling
Language (UML). Отсутствует возможность генерации программного кода по
построенной визуальной модели системы.
Professional Edition - добавлена возможность поддержки одного из языков
высокого уровня (например, C++, Java, Visual Basic). Версия продукта предназначена
для компаний, в которых при разработке проекта используется только один
язык программирования.
Enterprise Edition - дополнительно поддерживает многоязычную разработку,
что освобождает от необходимости приобретать инструментальные средства
отдельно для каждого языка программирования.
Rational Software выпустила ряд продуктов, расширяюших возможности системы
Rational Rose 98:
-
SoDA,
-
SQA Suite,
-
Requisite Pro.
SoDA - система, поддерживающая документирование визуальных моделей, созданных
как в Rational Rose 98, так и в других продуктах. Обеспечивает согласованность
визуальной модели и проектной документации на всех этапах разработки проекта
ИС: прямого, обратного (reverse) и циклического проектирования (round-trip).
Автоматически генерирует документы проекта по различным типа диаграмм,
поддерживаемых в Rational Rose 98, согласно стандартам оформления, выбранным
пользователем. К достоинствам продукта относятся:
-
Сокращение времени оформления документации в заданном стандарте за счет
автоматической генерации текста и графики по Rational Rose модели.
-
Автоматическое обновление существующей документции при развитии проекта
в ходе обратного и циклического проектирования.
-
Единообразное оформление документации из отчетов, создаваемых из файлов-отчетов
SQA Suite, RequisitePro и Rational Rose 98.
-
Поддержка документов и шаблонов MS Word.
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, http:\\www.interface.ru
Специалист по объектно-ориентированным технологиям.
e-mail: kumskov@interface.ru
тел. 135-5500, 135-2519, 135-7781.
Interface Ltd.