Работая с IBM Rational XDE DeveloperPlus .NET

Источник: CITFORUM
Дмитрий А. Лесин

Оглавление

Вступление

В данной статье представлен краткий обзор основных возможностей IBM Rational XDE Developer.NET, который подготовлен на основе опыта практической работы с продуктом.

Предполагается, что читатель уже имеет некоторый опыт работы в среде IBM Rational Rose, а также немного знаком с Round-Trip подходом, обеспечивающим синхронизацию моделей и кода в ходе разработки информационных систем.

IBM Rational XDE Developer.NET - инструмент, который добавляет мощные возможности визуального моделирования в рамках среды разработки Microsoft Visual Studio.NET. XDE Developer.NET интегрируется в Visual Studio.NET в виде своеобразного Add-In. Подобная интеграция создает ощущение работы с целостным инструментом, что позволяет устранить необходимость переключения между различными средствами, избежать проблем импорта и экспорта данных. Таким образом, XDE Developer является важным компонентом интегрированной рабочей среды проекта, которая может включать также другие продукты IBM Rational и других производителей.

На текущий момент (ноябрь, 2003г.) компанией IBM Rational определены следующие основные редакции XDE Developer:

  • IBM Rational Rose XDE Developer for Java, который включает встроенный Eclipse IDE и функциональность для "бесшовной" интеграции в среду IBM Websphere Studio Application Developer для Round-Trip разработки J2EE информационных систем.
  • IBM Rational Rose XDE Developer for Microsoft Visual Studio.NET, который включает функциональность для "бесшовной" интеграции в среду Microsoft Visual Studio.NET для Round-Trip разработки информационных систем на C++, C#, J#, VB.NET.
  • IBM Rational Rose XDE Developer Plus, который включает предыдущие 2 конфигурации и пакет PurifyPlus (программные продукты Purify, PureCoverage, Quantify и Visual Trace для платформы .NET) для проведения Runtime анализа.
  • IBM Rational Rose XDE Modeler, который базируется на Eclipse IDE и позволяет выполнять визуальное моделирование систем без возможностей Round-Trip.

Round-Trip разработка с XDE DeveloperPlus.NET

В данном разделе речь пойдет о возможностях XDE DeveloperPlus.NET при использовании подхода Round-Trip, основной особенностью которого является итеративное наращивание функционала разрабатываемой системы: доработки модели системы параллельно отражаются в коде, а изменения кода переносятся в модель.

Подход Round-Trip позволяет:

  • Эффективно использовать мощные возможности визуального моделирования. Очевидно, что оперировать визуальными абстракциями для людей гораздо проще, чем работать напрямую с кодом.
  • Значительно облегчить документирование разрабатываемой системы. Нажатием нескольких кнопок за пару минут на основании разработанного заранее шаблона можно подготовить наглядный отчет по разрабатываемой системе для начальника, спонсора и т.д. При этом этот отчет будет реально отражать функционал системы, существующий на текущий момент.
  • Детально изучить код. Благодаря этой возможности можно лучше понять особенности функционирования разрабатываемой системы. В модели находят отражение все библиотечные классы .NET, на которые ссылается код. Это позволяет подробно изучить эти классы, познакомиться с их атрибутами, методами и т.д.
  • Эффективно использовать существующие наработки. Архитектурные решения могут быть реализованы в виде библиотек образцов (patterns) и использованы в других проектах.
  • Интегрированная среда разработчика на основе Microsoft Visual Studio.NET 2003 и Rational XDE DeveloperPlus.NET 2003 выглядит так, как это показано на рис. 1.

Рис. 1. Среда Visual Studio .NET с интегрированным XDE DeveloperPlus.

Рис. 1. Среда Visual Studio .NET с интегрированным XDE DeveloperPlus.

Элементы управления XDE DeveloperPlus органично дополняют стандартный интерфейс среды Visual Studio.NET, в числе этих дополнений:

  • окно "Model Documentation", являющееся аналогом поля "Documentation" из спецификаций объектов классического IBM Rational Rose и позволяющее документировать эти объекты;
  • окно "Model Explorer", которое является аналогом броузера объектов того же Rose и содержит иерархически упорядоченный их список;
  • дополнительные элементы меню "Toolbox", позволяющие моделировать информационную систему в соответствии с нотацией UML 1.4;
  • а также много других добавлений в виде различных пунктов меню и элементов управления, значительно расширяющих стандартную функциональность Visual Studio.NET.

Актуальность модели при изменении кода и, наоборот, актуальность кода при изменении модели поддерживается с помощью процесса синхронизации. Если в настоящий момент происходит синхронизация кода и модели, то в статусной строке Visual Studio.NET легко увидеть процент выполнения операции и характерную иконку (на рис. 2 показана иконка для XDE DeveloperPlus v2003).

Рис. 2. Часть статусной строки Visual Studio .NET при идущем процессе синхронизации.

Рис. 2. Часть статусной строки Visual Studio .NET при идущем процессе синхронизации.

При синхронизации XDE DeveloperPlus самостоятельно определяет, что и где было изменено. Если Вы внесли изменения в модели, то процесс синхронизация отразит их в коде, если изменен код - соответствующие модификации будут выполнены в модели.

Доступны следующие типы синхронизации: ручная и автоматическая. При ручной после внесения изменений в коде или модели следует активизировать соответствующий элемент управления и только тогда запустится процесс синхронизации. Автоматическая синхронизация запускается при конкретных условиях, определенных разработчиком. Эти условия определяются в окне "Options" (см. рис. 3), которое может быть открыто с помощью пункта главного меню "Tools/Options...".

Рис. 3. Окно настройки условий автоматической синхронизации.

Рис. 3. Окно настройки условий автоматической синхронизации.

На дереве слева в этом окне следует активизировать узел "Rational XDE/Round-Trip Engineering" и в левой части будут доступны опции синхронизации. Чтобы включить автоматическую синхронизацию, следует активировать переключатель "Automatic Synchronization". В этом случае процесс синхронизации кода с моделью будет запускаться каждый раз при:

  • Записи файлов модели, если активирован переключатель "When saving Model Files";
  • Переключении в любое из окон с одной из диаграмм модели, если активирован переключатель "When Model gets Focus";
  • Записи любых файлов с кодом, если активирован переключатель "When saving Code Files";
  • Переключении в любое из окна с текстом исходника, если активирован переключатель "When Code gets Focus".

В отличие от Rose в XDE DeveloperPlus уже не существует строгого разделения диаграмм по типам: теперь можно создать единую диаграмму и определить на ней любые элементы из Toolbox (рис. 4). При этом корректность создания элементов на таких диаграммах лежит теперь на совести разработчика.

Рис. 4. Совместное использование нотаций диаграмм классов и развертывания.

Рис. 4. Совместное использование нотаций диаграмм классов и развертывания.

Вообще, если имеется затруднение с определением конкретного типа диаграммы, то применительно к этой ситуации следует создать диаграмму типа "Free Forms" и располагать на ней разнотипные элементы UML.

Добавление и редактирование классов, их методов и атрибутов может выполняться, как стандартными способами Visual Studio.NET (с использованием, например, окна "Solution Explorer"), так и прямо на диаграммах классов (рис. 5).

Рис. 5. Визуальное проектирование архитектуры классов.

Рис. 5. Визуальное проектирование архитектуры классов.

Работая с Microsoft Visual Studio.NET и IBM Rational XDE DeveloperPlus, постепенно забываешь о том, что это продукты разных компаний: настолько гармонично они дополняют друг друга. Визуальное моделирование и кодирование теперь представляют собой единый интегрированный процесс, что является важным преимуществом для разработчика.

Исследование кода

С помощью IBM Rational XDE DeveloperPlus очень легко и удобно исследовать код разрабатываемой информационной системы и структуру используемых библиотек. Обратное проектирование (Reverse Engineering) проекта Visual Studio.NET приводит к тому, что в модели создается, так называемая, ссылочная модель, в которой находят отражение эти библиотеки. Это позволяет исследовать библиотечные классы, их методы, атрибуты и другие элементы, представленные в окне "Model Explorer" в виде иерархической структуры (рис. 6).

Рис. 6. Исследование библиотченых классов.

Рис. 6. Исследование библиотченых классов.

Очень удобной является возможность исследования классов, связанных отношениями с некоторым существующим классом, созданным разработчиком. Вызов контекстного меню любого существующего класса "Add Related Shapes..." (вообще, таким образом можно исследовать любые объекты моделей, связанные отношениями) на диаграмме приводит к появлению одноименного окна (рис. 7), в котором можно настроить фильтр для отбора только необходимых связанных объектов.

Рис. 7. Выбор связанных объектов для отображения на диаграмме.

Рис. 7. Выбор связанных объектов для отображения на диаграмме.

Здесь можно выбрать объекты, которые связаны с текущим только определенными типами отношений, определенными направленностью ("Expand Direction") и уровнем вложенности ("Expand to N Levels"). Например, определение 2 уровней вложенности приведет к отображению группы объектов, связанных с текущим, и объектов связанных с объектами указанной группы. Примерный вид такой диаграммы, полученной для некоторого класса CircForm, можно наблюдать на рис. 8.

Рис. 8. Отображение связанных классов первого уровня вложженности.

Рис. 8. Отображение связанных классов первого уровня вложженности.

Разработка собственной нотации моделирования

UML является специфическим языком, нотация которого может быть при необходимости усовершенствована пользователем. Делается это с помощью определения новых стереотипов для существующих элементов. При этом XDE Developer позволяет определить собственные иконки для элементов с конкретными стереотипами.

По сравнению с Rose в XDE Developer значительно упростилось определение новых и изменение существующих иконок. Теперь это легко делается прямо в среде XDE Developer. Единственное, что надо сделать вне среды - нарисовать необходимую иконку с помощью любимого графического редактора.

Предположим, что мы хотим определить для актера "Система проверки данных кредитной карточки" на рис. 9 стереотип "External System" и отобразить с помощью немного отличающейся иконки. Этот актер характеризует некоторую внешнюю систему, у которой в процессе работы разрабатываемая нами информационная система (например, небольшой виртуальный магазин) будет запрашивать необходимые данные при верификации платежа клиента.

Рис. 9. Диаграмма прецедентов до определения стереотипа "External System"

Рис. 9. Диаграмма прецедентов до определения стереотипа "External System"

Для создания нового стереотипа следует выделить некоторого актера на диаграмме и в окне его свойств для свойства "Stereotype" открыть окно определения стереотипов (рис.10). Здесь я опускаю некоторые мелочи редактирования списка стереотипов, которые легко могут быть изучены в ходе практической работы с продуктом и чтении его документации.

Рис. 10. Создание стереотипа "External System" для актера.

Рис. 10. Создание стереотипа "External System" для актера.

В данном окне можно определить разные иконки для представления элемента с конкретным стереотипом в окне "Model Explorer" (поле "Explorer Icon") и на диаграммах (поле "Shape Image").

Следует отметить, что для стандартных стереотипов, определенных по умолчанию, можно только изменять иконки. Удалять их или изменять название среда не позволит.

Новая диаграмма прецедентов после выполнения описанных действий может выглядеть примерно так, как это отображено на рис.11.

Рис. 11. Диаграмма прецедентов после определения стереотипа "External System".

Рис. 11. Диаграмма прецедентов после определения стереотипа "External System".

Очевидно, что гораздо проще изменять иконки стереотипов UML именно таким образом, нежели править INI файлы, как это до сих пор делается в Rose.

Использование образцов (patterns)

В обзоре по XDE Developer нельзя не отметить возможности продукта по использованию образцов.

В XDE DeveloperPlus v2003 .NET все образцы хранятся в библиотеках, представляющих собой обычный файл модели с расширением WDX. И хотя можно создавать собственные библиотеки, по умолчанию уже доступна GoF библиотека, спроектированная так называемой Группой четырех (Gang of Four), к которой относятся такие известные специалисты в этой области, как Эрик Гамма (Erich Hamma), Ричард Хелм (Richard Helm), Ральф Джонсон (Ralph Johnson) и Джон Влиссидес (John Vlissides). Библиотека создана на основе их публикации "Design Patterns: Elements of Reusable Object-Oriented Software" (Addison-Wesley, 1995).

Рассмотрим работу с образцами на самом, пожалуй, простом примере - применим образец Singleton. Применение данного образца к некоторому классу гарантирует, что в любое время может быть создан только один его экземпляр. Например, если это класс некоторого окна, то не может быть создано более одного его экземпляра. А при попытке создать другое окно такого же класса просто будет возвращаться ссылка на существующее.

Создадим новый проект в Visual Studio .NET типа "Windows Application" на языке C#. В таком проекте изначально определен единственный класс Form1. Это класс главного окна приложения. Выполним Reverse Engineering этого проекта с помощью XDE DeveloperPlus. Все это делается стандартным образом и, думаю, что нет смысла подробно описывать указанные действия. Наша цель-применить образец Singleton к классу Form1.

Переместим класс Form1 из окна "Model Explorer" на любую диаграмму модели (можно создать для этого диаграмму классов). B Toolbox находим группу образцов "GoF Pattern Library for CSharp v2_5" и перетаскиваем мышью образец Singleton прямо на класс Form1 (рис. 12).

Рис. 12. Мышью перетаскиваем образец Singleton на класс Form1.

Рис. 12. Мышью перетаскиваем образец Singleton на класс Form1.

Среда еще задаст несколько вопросов, на которые можно отвечать утвердительно. Конечным результатом применения образца Singleton будет следующая структура классов (рис. 12).

Рис. 13. Структура классов после применения образца Singleton.

Рис. 13. Структура классов после применения образца Singleton.

Теперь класс Form1, как уже было сказано, является классом, для которого не может существовать одновременно более двух экземпляров. Класс Client - класс некоторого абстрактного объекта, который осуществляет создание этого окна. Создание нового экземпляра Form1 возможно только через использование метода GetUniqueInstance(). Этот метод либо создает новое окно класса Form1, если его не существует, либо возвращает ссылку на существующее окно, если оно уже создано. Конструктор Form1 теперь имеет видимость private и использовать его для создания окна нельзя. Здесь следует отметить, что происходит создание не только классов, но и заполнение некоторых методов необходимой функциональностью, определенной для данного образца. В частности, вышеупомянутый метод GetUniqueInstanse() не является пустым.

Очень важно, что XDE DeveloperPlus позволяет разработать собственную библиотеку образцов для использования их в текущих и будущих проектах. Это дает возможность распространять удачные архитектурные решения. На Rational Developer Network - виртуальной сети пользователей продуктов Rational существует целый раздел, посвященный обмену образцами. Здесь можно найти достаточно много готовых решений, которые уже прошли испытание в реальных проектах и являются результатом долгой и напряженной работы по поиску оптимального пути.

Технические данные

Теперь немного об основных технических данных XDE DeveloperPlus для платформы .NET, которые, на мой взгляд, могут быть полезны в качестве дополнительной информации:

Интеграция с инструментами Rational Suite Enterprise
  • ClearCase
  • Rose
  • RequisitePro
  • SODA
  • Project Console
  • PurifyPlus (интеграция с Visual Studio .NET напрямую)
  • Требования к аппаратному обеспечению
  • Pentium III 500MHz (рекомендуется Pentium III 1 GHz или выше)
  • RAM - минимум 512 MB (рекомендуется 1 GB)
  • HDD - минимум 500MB для среды, 100 MB для проектов (рекомендуется 2-5 GB)
  • Видео - минимальное разрешение: 800 x 600, 256 цветов (рекомендуются 1024 x 768, 16-битовые цвета или выше)
  • По-крайней мере, 2-х кнопочная мышь
  • Поддерживаемые СУБД
  • IBM DB2 5.x, 6.x, 7.x, 8.x
  • IBM DB2 MVS 5.x, 6.x, 7.x
  • Microsoft SQL Server 6.x, 7.x, 2000.x
  • Oracle 7.x, 8.x, 9.x
  • Sybase Adaptive Server 12.x
  • Поддерживаемые операционные системы
  • Windows 2000 Professional, SP2 or SP3
  • Windows 2000 Server, SP2 or SP3
  • Windows 2000 Advanced Server, SP2 or SP3
  • Windows XP Professional, SP1
  • Платформы
  • Platforms:
  • Microsoft Visual Studio .NET 2002
  • Microsoft Visual Studio .NET 2003
  • Заключение

    Интеграция Microsoft Visual Studio и Rational XDE DeveloperPlus, вне всяких сомнений, является большим достижением компании IBM Rational - участники проекта по созданию информационной системы на платформе .NET получают мощный инструментарий для более эффективной организации процесса разработки. Кроме того, этот инструментарий может быть тесно интегрирован с другими средствами IBM Rational, которые в совокупности позволяют обеспечить весь комплекс задач по управление проектами по созданию информационных систем.

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


    Страница сайта http://test.interface.ru
    Оригинал находится по адресу http://test.interface.ru/home.asp?artId=782