Работая с 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:
Round-Trip разработка с XDE DeveloperPlus.NETВ данном разделе речь пойдет о возможностях XDE DeveloperPlus.NET при использовании подхода Round-Trip, основной особенностью которого является итеративное наращивание функционала разрабатываемой системы: доработки модели системы параллельно отражаются в коде, а изменения кода переносятся в модель. Подход Round-Trip позволяет:
Рис. 1. Среда Visual Studio .NET с интегрированным XDE DeveloperPlus. Элементы управления XDE DeveloperPlus органично дополняют стандартный интерфейс среды Visual Studio.NET, в числе этих дополнений:
Актуальность модели при изменении кода и, наоборот, актуальность кода при изменении модели поддерживается с помощью процесса синхронизации. Если в настоящий момент происходит синхронизация кода и модели, то в статусной строке Visual Studio.NET легко увидеть процент выполнения операции и характерную иконку (на рис. 2 показана иконка для XDE DeveloperPlus v2003).
Рис. 2. Часть статусной строки Visual Studio .NET при идущем процессе синхронизации. При синхронизации XDE DeveloperPlus самостоятельно определяет, что и где было изменено. Если Вы внесли изменения в модели, то процесс синхронизация отразит их в коде, если изменен код - соответствующие модификации будут выполнены в модели. Доступны следующие типы синхронизации: ручная и автоматическая. При ручной после внесения изменений в коде или модели следует активизировать соответствующий элемент управления и только тогда запустится процесс синхронизации. Автоматическая синхронизация запускается при конкретных условиях, определенных разработчиком. Эти условия определяются в окне "Options" (см. рис. 3), которое может быть открыто с помощью пункта главного меню "Tools/Options...".
Рис. 3. Окно настройки условий автоматической синхронизации. На дереве слева в этом окне следует активизировать узел "Rational XDE/Round-Trip Engineering" и в левой части будут доступны опции синхронизации. Чтобы включить автоматическую синхронизацию, следует активировать переключатель "Automatic Synchronization". В этом случае процесс синхронизации кода с моделью будет запускаться каждый раз при:
В отличие от Rose в XDE DeveloperPlus уже не существует строгого разделения диаграмм по типам: теперь можно создать единую диаграмму и определить на ней любые элементы из Toolbox (рис. 4). При этом корректность создания элементов на таких диаграммах лежит теперь на совести разработчика.
Рис. 4. Совместное использование нотаций диаграмм классов и развертывания. Вообще, если имеется затруднение с определением конкретного типа диаграммы, то применительно к этой ситуации следует создать диаграмму типа "Free Forms" и располагать на ней разнотипные элементы UML. Добавление и редактирование классов, их методов и атрибутов может выполняться, как стандартными способами Visual Studio.NET (с использованием, например, окна "Solution Explorer"), так и прямо на диаграммах классов (рис. 5).
Рис. 5. Визуальное проектирование архитектуры классов. Работая с Microsoft Visual Studio.NET и IBM Rational XDE DeveloperPlus, постепенно забываешь о том, что это продукты разных компаний: настолько гармонично они дополняют друг друга. Визуальное моделирование и кодирование теперь представляют собой единый интегрированный процесс, что является важным преимуществом для разработчика. Исследование кодаС помощью IBM Rational XDE DeveloperPlus очень легко и удобно исследовать код разрабатываемой информационной системы и структуру используемых библиотек. Обратное проектирование (Reverse Engineering) проекта Visual Studio.NET приводит к тому, что в модели создается, так называемая, ссылочная модель, в которой находят отражение эти библиотеки. Это позволяет исследовать библиотечные классы, их методы, атрибуты и другие элементы, представленные в окне "Model Explorer" в виде иерархической структуры (рис. 6).
Рис. 6. Исследование библиотченых классов. Очень удобной является возможность исследования классов, связанных отношениями с некоторым существующим классом, созданным разработчиком. Вызов контекстного меню любого существующего класса "Add Related Shapes..." (вообще, таким образом можно исследовать любые объекты моделей, связанные отношениями) на диаграмме приводит к появлению одноименного окна (рис. 7), в котором можно настроить фильтр для отбора только необходимых связанных объектов.
Рис. 7. Выбор связанных объектов для отображения на диаграмме. Здесь можно выбрать объекты, которые связаны с текущим только определенными типами отношений, определенными направленностью ("Expand Direction") и уровнем вложенности ("Expand to N Levels"). Например, определение 2 уровней вложенности приведет к отображению группы объектов, связанных с текущим, и объектов связанных с объектами указанной группы. Примерный вид такой диаграммы, полученной для некоторого класса CircForm, можно наблюдать на рис. 8.
Рис. 8. Отображение связанных классов первого уровня вложженности. Разработка собственной нотации моделированияUML является специфическим языком, нотация которого может быть при необходимости усовершенствована пользователем. Делается это с помощью определения новых стереотипов для существующих элементов. При этом XDE Developer позволяет определить собственные иконки для элементов с конкретными стереотипами. По сравнению с Rose в XDE Developer значительно упростилось определение новых и изменение существующих иконок. Теперь это легко делается прямо в среде XDE Developer. Единственное, что надо сделать вне среды - нарисовать необходимую иконку с помощью любимого графического редактора. Предположим, что мы хотим определить для актера "Система проверки данных кредитной карточки" на рис. 9 стереотип "External System" и отобразить с помощью немного отличающейся иконки. Этот актер характеризует некоторую внешнюю систему, у которой в процессе работы разрабатываемая нами информационная система (например, небольшой виртуальный магазин) будет запрашивать необходимые данные при верификации платежа клиента.
Рис. 9. Диаграмма прецедентов до определения стереотипа "External System" Для создания нового стереотипа следует выделить некоторого актера на диаграмме и в окне его свойств для свойства "Stereotype" открыть окно определения стереотипов (рис.10). Здесь я опускаю некоторые мелочи редактирования списка стереотипов, которые легко могут быть изучены в ходе практической работы с продуктом и чтении его документации.
Рис. 10. Создание стереотипа "External System" для актера. В данном окне можно определить разные иконки для представления элемента с конкретным стереотипом в окне "Model Explorer" (поле "Explorer Icon") и на диаграммах (поле "Shape Image"). Следует отметить, что для стандартных стереотипов, определенных по умолчанию, можно только изменять иконки. Удалять их или изменять название среда не позволит. Новая диаграмма прецедентов после выполнения описанных действий может выглядеть примерно так, как это отображено на рис.11.
Рис. 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. Среда еще задаст несколько вопросов, на которые можно отвечать утвердительно. Конечным результатом применения образца Singleton будет следующая структура классов (рис. 12).
Рис. 13. Структура классов после применения образца Singleton. Теперь класс Form1, как уже было сказано, является классом, для которого не может существовать одновременно более двух экземпляров. Класс Client - класс некоторого абстрактного объекта, который осуществляет создание этого окна. Создание нового экземпляра Form1 возможно только через использование метода GetUniqueInstance(). Этот метод либо создает новое окно класса Form1, если его не существует, либо возвращает ссылку на существующее окно, если оно уже создано. Конструктор Form1 теперь имеет видимость private и использовать его для создания окна нельзя. Здесь следует отметить, что происходит создание не только классов, но и заполнение некоторых методов необходимой функциональностью, определенной для данного образца. В частности, вышеупомянутый метод GetUniqueInstanse() не является пустым. Очень важно, что XDE DeveloperPlus позволяет разработать собственную библиотеку образцов для использования их в текущих и будущих проектах. Это дает возможность распространять удачные архитектурные решения. На Rational Developer Network - виртуальной сети пользователей продуктов Rational существует целый раздел, посвященный обмену образцами. Здесь можно найти достаточно много готовых решений, которые уже прошли испытание в реальных проектах и являются результатом долгой и напряженной работы по поиску оптимального пути. Технические данныеТеперь немного об основных технических данных XDE DeveloperPlus для платформы .NET, которые, на мой взгляд, могут быть полезны в качестве дополнительной информации:
ЗаключениеИнтеграция Microsoft Visual Studio и Rational XDE DeveloperPlus, вне всяких сомнений, является большим достижением компании IBM Rational - участники проекта по созданию информационной системы на платформе .NET получают мощный инструментарий для более эффективной организации процесса разработки. Кроме того, этот инструментарий может быть тесно интегрирован с другими средствами IBM Rational, которые в совокупности позволяют обеспечить весь комплекс задач по управление проектами по созданию информационных систем. Однако, следует четко понимать, что эффективность процесса разработки повышается не просто благодаря использованию передового инструментария, а в результате правильного его использования. Существует множество примеров, когда внедрение современного инструментария разработки не приводило к повышению эффективности проекта, а иногда даже снижало ее. Поэтому, прежде чем переходить на новые методы работы, мы рекомендуем провести анализ бизнес-перспектив таких изменений. Такой анализ обычно проводится с помощью пилотных проектов. Помимо специалистов организации, заинтересованной во внедрении новых подходов к разработке, в пилотном проекте, как правило, принимают участие технические консультанты компаний, профессионально занимающихся консалтингом в этой области и имеющих огромный опыт в проведении подобных работ. |