Развитие объектно-ориентированной технологии программирования, начавшись с середины 80-х годов, к 90 м годам достигло поры своей зрелости и в настоящее время ее поклонники говорят о начале "революции в программировании". При этом имеется в виду уже не объектно-ориентированное программирование, а набирающая силу тенденция проводить разработку проектов корпоративного уровня на основе компонент (CBD - Component Based Development). На рынке инструментальных CASE средств поддержки CBD-моделирования и разработки в середине 90-х годов доминировало четыре фирмы:
Cayenne
Platinum
Select
Rational Rose 98 занимает уникальное место в ряду CASE продуктов визуального
моделирования сложных программных систем, имеющихся на рынке, и имеет стратегическое
преимущество в плане развития продукта. Такая оценка основана на том, что
Rational Rose 98:
1. Поддерживает генерацию кода и обратное проектирование (т.е. построение
модели по программному коду) сразу для нескольких языков, включая:
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-е годы являлось структурное программирование. Все были в восторге от него. Каждый производитель предлагал продукты для его поддержки. Каждый программист был знаком на практике с ним. И никто не знал, что же это такое... ".
Структурная или объектная декомпозиция?
Известно два подхода к проведению декомпозиции системы при построении
ее информационной модели:
1. Алгоритмическая декомпозиция (структурный анализ/проектирование),
основанная на упорядочении событий/потоков данных.
2. Объектно-ориентированная декомпозиция (ОО - анализ/проектирование),
базирующаяся на выделении агентов, которые или сами действуют, или на которых
производится действие.
Согласно Grady Booch'у, "Объектно-ориентированное программирование
- это метод реализации, в результате программы организованы как взаимодействующие
коллекции объектов. Каждый объект является экземпляром некоторого класса,
а все классы являются членами иерархии классов, объединенной отношением
наследования. Объектно-ориентированное проектирование - это метод, включающий
процесс объектно-ориентированной декомпозиции, нотацию для описания как
логических, так и физических, а так же как статических, так и динамических
моделей проектируемой системы. Объектно-ориентированное проектирование
приводит в объектно-ориентированной декомпозиции системы. Используется
различная нотация для выражения разных моделей системы: логической (структура
классов и объектов), физической (модульная и процессорная архитектура)".
Рисунок 1
Диаграммы Rational Rose 98, определяющие динамическую
модель системы:
Диаграмма последовательности взаимодействий (Sequence diagram)
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). Этот тип диаграмм служит для проведения итерационного цикла
общей постановки задачи вместе с заказчиком. Как можно часто услышать,
"заказчик и раньше не знал, и теперь не знает, и в будущем не будет точно
знать, что ему нужно". Диаграммы прецедентов как раз и служат основой для
достижения взаимопонимания между программистами-профессионалами, разрабатывающими
проект, и "бизнесменами" - заказчиками проекта. Внутри каждого прецедента
могут быть определены:
Даграмма взаимодействия объектов (Collaboration diagram)
Диаграмма последовательности взаимодействий (Sequence diagram)
Диаграмма классов (Class diagram)
Диаграмма перехода состояний(State diagram)
Проектирование в Rational Rose 98 реализуется как дисциплинированный и упорядоченный подход, который используется для итерационного "изобретения" решения заданной проблемы. Это обеспечивает "движение модели" от требований заказчика к программной реализации. Цель проектирования состоит в том, чтобы полученная система:
Соответствовала ограничениям целевой вычислительной аппаратуры
Удовлетворяла (явным и/или неявным) требованиям на производительность и используемые ресурсы
При ее разработке были выполнены ограничения на сам процесс проектирования по цене, времени, и т.п.
иерархии на концептуальном, логическом и физическом уровнях
повторного использования элементов моделей/программных компонент
разработки различных типов моделей для различных аспектов системы
согласованности статических и динамических моделей системы
пошаговое и итеративное моделирования/программирования
поддержки коллективной разработки/использования компонент
Диаграммами последовательности взаимодействий (Sequence diagram)
Диаграмма классов, представленная в UML нотации. Класс представляется прямоугольником с тремя секциями: имя, атрибуты, методы. Пиктограмма указывает модификатор члена класса: private, protected, public, ... Отношения между классами задаются стрелками, значки, на концах которых в UML нотации определяют спецификацию отношения: "наследование", "зависимость", "агрегация", ...
В текущей версии 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:
Professional Edition
Enterprise Edition
Modeler Edition - Инструмент для базового анализа архитектуры разрабатываемой
системы, поддерживает моделирование, полностью совместимое с Unified Modeling
Language (UML). Отсутствует возможность генерации программного кода по
построенной визуальной модели системы.
Professional Edition - добавлена возможность поддержки одного из языков
высокого уровня (например, C++, Java, Visual Basic). Версия продукта предназначена
для компаний, в которых при разработке проекта используется только один
язык программирования.
Enterprise Edition - дополнительно поддерживает многоязычную разра-ботку, что освобождает от необходимости приобретать инструментальные средства отдельно для каждого языка программирования.
Rational Software выпустила ряд продуктов, расширяюших возможности системы Rational Rose 98:
SQA Suite
Requisite Pro
SoDA - система, поддерживающая документирование визуальных моделей, созданных как в Rational Rose 98, так и в других продуктах. Обеспечивает согласованность визуальной модели и проектной документации на всех этапах разработки проекта ИС: прямого, обратного (reverse) и циклического проектирования (round-trip). Автоматически генерирует документы проекта по различным типа диаграмм, поддер-живаемых в Rational Rose 98, согласно стандартам оформления, выбранным пользователем. К достоинствам продукта относятся:
Автоматическое обновление существующей документции при развитии проекта в ходе обратного и циклического проектирования
Единообразное оформление документации из отчетов, создаваемых из файлов-отчетов SQA Suite
RequisitePro и Rational Rose 98
Поддержка документов и шаблонов MS Word
SQA Suite - Продукт, обеспечивающий полный жизненныйй цикл тестирования приложений клиент-сервер (под Windows) и Internet приложений, начиная от планирования и проектирования и заканчивая разработкой и поставкой созданного продукта. Является единственным продуктом на рынке для проведения автоматизированного тестирования. Обеспечивает высокую степень интеграции с Rational Rose 98 и позволяет автоматически конвертировать диаграммы "прецедентов" (use case) Rational Rose в требования на тестирование. Поддерживает расширяемый репозитарий тестов (БД) на базе технологии клиент-сервер. Реализует формализованную методологию тестирования, включая планирование тестов, записи сценариев тестирования и их выполнения. Поддерживает администрирование процесса исправления ошибок и модификации версий.
Requisite Pro - продукт, расширяющий поддержку групповой разра-ботки проекта. Позволяет команде разработчиков
структурировать
устанавливать приоритеты
отслеживать
контролировать
Продукт предназначен для преодоления типичных системных проблем, возникающих перед командами разработчиков, перед группами поддержки качества и менеджерами разработки, вовлеченными в создание сложных приложений корпоративного уровня:
несоблюдение этапных сроков
проблемы качества продукта.
Грамотное использование CASE инструментария предполагает владение основами
методологии, реализованной в CASE продукте, которая для Rational Rose 98
называется Rational Objectory Process. Научиться использованию Rational
Rose 98 можно в фирме Interface - ведущей российской фирмой, обучающей
CASE технологиям. Здесь также можно получить как оценочную копию самого
продукта Rational Rose 98, так и соответствующие продукты "переходники"
фирм, партнеров Rational Software, и материалы по UML.