Введение в IBM Rational Modeling Extension для Microsoft .NET

Источник: IBM

Изучив это руководство, вы получите сведения об успешном переносе существующих моделей IBM Rational XDE for Visual Studio версии 2003 на новое поколение инструментов моделирования от IBM Rational для использования с IBM Rational Modeling Extension for Microsoft. NET, как вы перенесли ваши проекты  .NET из Visual Studio 2003 на Visual Studio 2005.

XDE C# Code Model Importer является утилитой, входящей в продукт IBM Rational Modeling Extension for Microsoft .NET, который предназначен для установки в IBM Rational Software Modeler, но может также и устанавливаться в  IBM® Rational Software Architect или IBM Rational Systems Developer. Далее для удобства мы будем упоминать только Rational Software Modeler вместо указания всех трех продуктов, а IBM Rational Modeling Extension for Microsoft .NET будет упоминаться просто как Rational Modeling Extension. Используя утилиту импорта XDE-кода модели, вы можете переносить ваши модели XDE на Rational Software Modeler, и подготавливать импортированные модели кода и соответствующий исходный код C# для использования с  Rational Modeling Extension. Затем вы можете использовать возможности моделирования и преобразования Rational Software Modeler и Rational Modeling Extension для получения тех же преимуществ, предлагаемых Rational XDE for Visual Studio. Давайте начнем с выполнения следующих пошаговых инструкций.

Предварительные условия для обучения

Вам потребуется наличие и хорошее знание следующего программного обеспечения:

  • Rational Software Modeler (или Rational Software Architect or Rational Systems Developer) версии 7.0.0.1 или выше, с Rational Modeling Extension для .NET
  • Microsoft Visual Studio 2003
  • Visual Studio 2005
  • Rational XDE Developer для Visual Studio version 2003

Посмотрите на  Рис. 1, на котором указан весь путь переноса, прежде чем продолжить чтение подробного описания каждого шага.

Рисунок 1. Путь миграции

 

Необходимые пояснения

Проект на  C# в XDE .NET 2003 содержит два типа артефактов: файлы исходного кода C# и модели XDE. Вы можете импортировать модели  XDE в ваше рабочее пространство Rational Software Modeler/Rational Modeling Extension с использованием имеющегося импортера моделей XDE Base Model Importer. В Rational XDE некоторые модели имеют специальный статус. Это "модели кода", каждая из которых синхронизована с исходным кодом C# одиночного проекта C#, и  "модели компоновки", которые дают представление UML библиотек .NET Framework или других библиотек, упоминаемых в проекте C#. В Rational XDE также могут быть  "дополнительные" модели (также называемые "моделями контента"), которые являются концептуальными моделями на UML, не связанными никаким образом с кодом C#. В Rational XDE также могут существовать кросс-модельные ссылки. Модели кода содержат ссылки на модели компоновки. Элементы в моделях контента могут содержать ссылки на элементы в моделях кода, и наоборот. Для получения наилучших результатов вам следует использовать утилиту XDE Base Model Import  для одновременного импорта всех моделей в Visual Studio Solution в виде "привязки" ("closure"), т.е. такого набора моделей, в рамках которого все  кросс-модельные ссылки могут быть разрешены (нет отсутствующих моделей, значит нет недействительных ссылок).

В следующем разделе подробно описывается процесс переноса. Процесс переноса может быть разделен на три главные фазы:

  • Перенос решения Visual Studio 2003, содержащего модели XDE, в Visual Studio 2005
  • Импорт моделей XDE в Rational Software Modeler с использованием утилиты XDE Model Import
  • Выберите Model Driven Development (MDD - модельно-ориентированную разработку), планируемый к использованию Software Architecture Management Protocol   (Протокол управления программной архитектурой), и затем импорт (визуализацию) решения Visual Studio 2005  в  Rational Software Modeler. Во время этого шага, импортированные модели, имеющие специальный статус Code Models и Assembly Models в  Rational XDE, модифицируются для подготовки к их использованию для моделирования и преобразования в код C# в Rational Software Modeler/Rational Modeling Extension.

Примечание: Вы можете перенести решение Visual Studio 2003 в Visual Studio 2005 с использованием утилиты переноса, предоставляемой с Visual Studio 2005.

Подготовка базовых моделей XDE и кода C#

Выполните следующие шаги для подготовки базовых моделей XDE и кода C# для Code Model Importer:

  1. Сделайте резервную копию решения Visual Studio 2003, включая модели XDE.
  2. Перенесите решение XDE .NET 2003 в Visual Studio 2005 с использованием утилиты переноса Visual Studio 2005. На этом шаге не нужно делать ничего особенного, требуется лишь следовать стандартным инструкциям  Visual Studio. Rational XDE не может устанавливаться в Visual Studio 2005, но это неважно. Модели XDE (файлы с расширением .mdx) просто будут обрабатываться Visual Studio 2005 в качестве  дополнительных файлов или файлов нераспознанного типа,  и они не будут каким-либо образом изменяться.
  3. Создайте проекты UML в вашем рабочем пространстве Rational, это понадобится для размещения импортированных моделей XDE. Поскольку в Rational XDE могут быть множественные модели кода во множественных проектах C#, и каждый проект C# также может содержать свой собственный набор моделей компоновки, а модели контента будут находиться в отдельном, не-C#,  дополнительном   проекте, нет необходимости реплицировать эту структуру в  Rational Software Modeler. Если нужно, все импортированные файлы XDE могут быть помещены в один проект UML. Или вы можете запланировать разместить их в нескольких проектах UML. Все это на ваше усмотрение. Не думайте о том, где будут находиться модели компоновки, просто поместите их в любой проект UML. Они понадобятся во время процесса импорта, но после этого вы их удалите, поэтому не имеет значения, куда вы их поместите.
  4. Используйте базовый XDE Model Importer (XMI) для импорта моделей XDE (файлы с расширением .mdx) из решения Visual Studio 2005. Импортируйте их все как "привязку" ( closure) (если вы не прочитали приведенные выше Необходимые пояснения,  это можно сделать сейчас). Подробные шаги по использованию базового XMI и работе с предоставляемым им мастером, описываются в документации к продукту Rational Software Modeler.
  5. Откройте решение  .NET в среде Visual Studio 2005.

Примечание.
Решение .NET теперь должно оставаться открытым в вашей среде Visual Studio на всем протяжении процесса импорта модели кода, а также всегда, когда вы используете Rational Modeling Extension Visualizer или компоненты преобразования.

Перенос моделей с использованием C# Code Model Importer

Выполните следующие шаги для импорта визуализаций проектов Visual Studio 2005 и завершите процесс подготовки импортированных моделей кода XDE для использования с Rational Software Modeler/Rational Modeling Extension:

  1. Запустите XDE .NET C# Code Model Importer , щелкнув по меню File > Import > Other > XDE .NET Solution. (Осторожно: также имеется путь меню File > Import > Other > .NET Solution, предназначение которого отличается от того, что нужно на данном шаге)
  2. На первой странице мастера нужно ввести или полный путь, или указать местоположение файла решения (.sln), соответствующего решению .NET 2005, которое вы хотите импортировать. (См. разделы справки продукта Rational Modeling Extension по визуализации C# , где приведены подробности по использованию опций, относящихся к сборкам на этой странице. Следует учитывать то, что вы можете импортировать только одно решение .NET в ваше рабочее пространство Rational, используя либо импортер решения .NET, либо импортер решения XDE .NET (модель кода)).
  3. Щелкните Next. На следующей странице мастера будет приведена таблица. В каждой строке таблицы содержится информация о проекте C# в импортируемом решении .NET. В первом и во втором столбце таблицы показаны названия проектов C# в решении Visual Studio 2005 и в рабочем пространстве Rational Software Modeler. В третьем столбце введите полный путь или укажите местоположение модели UML (файл .emx), которая соответствует каждому проекту C# (это должна быть модель, импортированная на описанном выше 4-ом шаге, которая является перенесенной версией того, что было моделью кода   для этого проекта  C# в Rational XDE).

Теперь вы должны принять ключевое решение:

Вам необходимо выполнить следующие шаги для импорта визуализаций проектов Visual Studio 2005 и завершить процесс подготовки импортированных моделей кода XDE для использования с Rational Software Modeler/Rational Modeling Extension. Но Rational Software Modeler/Rational Modeling Extension поддерживает целый ряд различных способов работы с моделями и кодом, но ни один из этих способов не похож на то, каким образом работает Rational XDE. Rational XDE использует персистентную семантическую модель на  UML, которая синхронизована с кодом, для поддержки   визуализации   или  визуального редактирования   кода с использованием модели. Вместо этого, Rational Software Modeler поддерживает следующие возможности:

    1. Прямое визуальное редактирование кода. Модели UML не требуется. Мы назовем это просто  моделированием кода . При этом используется точно такой же принцип, реализованный в функции Class Designer в  Visual Studio 2005.
    2. Смешанное моделирование , которое включает использование как прямого моделирования кода, так и концептуального моделирования на UML, при этом вы можете смешивать в диаграммах описания кода и элементов UML, а также создавать и описывать соотношения между ними. Это также может включать использование специальной опции replace UML elements (заменить элементы UML) при использовании преобразований для генерации кода из концептуального UML.
    3. Согласование архитектуры , что включает использование преобразования из UML в код, обратное преобразование из кода в UML, и использование   ассистента согласования   для обнаружения изменений, которые должны произойти в модели и в коде после выполнения последнего полного проектирования, и разрешения расхождений в пользу модели или кода.
    4. Концептуальная модельно-ориентированная разработка , которая включает использование генерирующих код преобразований, с использованием потока задач, требующего внесения архитектурно значимых изменений прежде всего в модели, с последующим распространением на код.

Если вы планируете использовать прямое визуальное редактирование кода, вы не должны беспокоиться о выполнении шагов по подготовке моделей кода XDE для использования с Rational Software Modeler/Rational Modeling Extension. Фактически, вы можете просто удалить импортированные модели кода и модели компоновки. Но если вы планируете использовать какой-либо другой способ выполнения работы, вам следует принять важное решение относительно выполнения остающихся шагов …

  1. В четвертом столбце, озаглавленном Replace UML Elements (Заменить элементы UML),  вы можете выбрать или опцию Replace (Заменить), или Don't Replace (Не заменять). Если вы намерены использовать Mixed Modeling (Смешанное моделирование), как это было описано выше, используйте Replace. Если вы хотите использовать Architecture Reconciliation (Согласование архитектуры) или Conceptual Models Drive Development (Концептуальную модельно-ориентированную разработку) , используйте Don't Replace.
  2. Щелкните по Finish для запуска процесса переноса.

 

Операции для выполнения во время переноса

Следующие операции выполняются C# Code Model Importer во время процесса переноса для того, чтобы сделать модель кода и код C# совместимым с компонентами моделирования и преобразования Rational. Многие из этих операций могут выполняться или пропускаться, в зависимости от опций, ранее выбранных для Replace UML Elements.

Резервное копирование файла модели UML

(Эта операция выполняется независимо от опции, которую вы выбрали для Replace UML Elements.)

Code Model Importer создает резервную копию указанного файла модели UML  (.emx) для проекта C#. Он сохраняется в том же самом месте, что и указанный файл модели. Имя резервной копии формируется на основе имени указанной модели, с добавлением строки  _backup. Например, если имя указанной модели -  Model.emx, то резервная копия будет названа как Model_backup.emx.

Создание модели отображения

(Модель отображения создается только в том случае, если вы выберите опцию Don't Replace (Не заменять) в меню Replace UML Elements (Заменить элементы UML)).

Этот импортер также создает модель отображения, которая фиксирует существующее отображение элементов модели UML в исходные файлы на C#. Это означает, что модель отображения представляет информацию о том, какой файл исходного кода  C# содержит элемент кода, соответствующий каждому элементу модели в модели кода UML. Эта модель отображения может быть указана в конфигурации преобразования UML-в-C#, так, чтобы это преобразование сохраняло существующую организацию элементов кода в файлах.

Замена ссылок в Visual Studio .NET сборочными типами

(Эта операция выполняется только в том случае, если вы выберите опцию Don't Replace (Не заменять) в меню Replace UML Elements (Заменить элементы UML)).

Элементы модели UML, соответствующие элементам кода C#, могут содержать ссылки на типы из сборок Visual Studio .NET. Например, класс UML может иметь атрибут типа System.String . Когда вы импортируете базовую модель XDE с использованием XDE Base Model Importer, этот тип будет замещен ссылкой на соответствующий элемент в файле модели, system.emx.

Тем не менее, Rational Modeling Extension Visualizer имеет свое собственное представление типов из сборок  .NET, и компоненты преобразования воспринимают ссылки только на это представление. Поэтому ссылки на типы сборок Visual Studio .NET в модели UML замещаются на элементы визуализатора, соответствующие этим типам сборок. Данный шаг необходим для обеспечения совместимости  модели UML с  Rational Modeling Extension Visualizer и компонентами преобразования.

Перенос ваших профилей

(Эта операция выполняется только в том случае, если вы выберите опцию Don't Replace (Не заменять) в меню Replace UML Elements (Заменить элементы UML)).

Компонент Rational Modeling Extension определяет и использует свой собственный профиль C#, который содержит стереотипы, применяемые в элементах UML для представления различных типов и конструкций кода C#. В качестве части процесса переноса модели кода импортер применяет новый профиль C# к указанной модели кода UML. Это обеспечивает совместимость перенесенной модели кода с компонентами преобразования C#, что позволяет модели использоваться в преобразованиях UML-в-C# (прямом) и в  C#-в-UML (обратном).

Перенос ваших пакетов

(Эта операция выполняется только в том случае, если вы выберите опцию Don't Replace (Не заменять) в меню Replace UML Elements (Заменить элементы UML)).

Любой пакет в модели кода UML с именем, содержащим точку или символ полной остановки (.), расширяется в последовательность вложенных пространств имен для устранения этих точек. Эта последовательность пространств имен зависит от числа точек в имени.

Например, если в модели UML имеется пакет с именем xde.importer.examples, он будет заменен последовательностью трех вложенных пространств имен  xde, importer и examples, так что xde содержит importer и importer   содержит  examples . Контейнер исходного пакета, xde.importer.examples, будет содержать самый крайний левый пакет, xde, и содержимое исходного пакета xde.importer.examples станет содержимым крайнего правого пакета, examples. Это происходит из-за того, что компоненты преобразования C# требуют явного представления вложенного пространства имен,  а не использования точек в имени.

Замена ваших элементов UML

(Эта операция выполняется только в том случае, если вы выберите опцию Don't Replace (Не заменять) в меню Replace UML Elements (Заменить элементы UML)).

Все элементы UML в указанном коде UML замещаются ярлыками на соответствующие элементы кода в файлах с исходным кодом на  C#. Выполнив двойной щелчок по этим элементам, можно получить доступ к соответствующим элементам кода в файлах с исходными текстами.

Выберите эту опцию, если вы не хотите использовать возможности моделирования и преобразования C# для манипуляции существующими элементами в перенесенной модели кода. Причиной является то, что элементы визуализатора C#  (или ярлыки) являются доступными только для чтения. Тем не менее, вы можете добавить новые элементы UML в перенесенную модель, модифицировать их, и сгенерировать код с помощью трансформации UML-to-C#.

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

Элементы кода разметки

(Эта операция выполняется только в том случае, если вы выберите опцию Don't Replace (Не заменять) в меню Replace UML Elements (Заменить элементы UML)).

Элементы кода в файлах исходных текстов на C# помечаются как <@generated> если политика "Round-Trip Engineering Synchronization" (Синхронизация разработки по замкнутому циклу) (в исходной модели кода XDE) была включена для элементов модели, соответствующих этим элементам кода.

Элементы кода, которые не были помечены во время этого шага, не удаляются и не перезаписываются при прямом преобразовании UML-в-C#. Таким образом, если вы удалите ил и переименуете элемент модели (класс UML), соответствующий классу C#, не имеющему метки, и затем выполните прямое преобразование, этот класс не модифицируется в исходном файле C#. Для изменения такого поведения, вы можете добавить метку <@generated> в комментарии класса C# в исходном файле. После этого, изменения, внесенные в класс UML в модели, будут применяться к классу C# в исходном коде. Изучите документацию к прямому преобразованию UML-в-C# для получения более подробной информации.


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