Введение в 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. Давайте начнем с выполнения следующих пошаговых инструкций. Предварительные условия для обучения Вам потребуется наличие и хорошее знание следующего программного обеспечения:
Посмотрите на Рис. 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 в Visual Studio 2005 с использованием утилиты переноса, предоставляемой с Visual Studio 2005. Подготовка базовых моделей XDE и кода C# Выполните следующие шаги для подготовки базовых моделей XDE и кода C# для Code Model Importer:
Примечание. Перенос моделей с использованием C# Code Model Importer Выполните следующие шаги для импорта визуализаций проектов Visual Studio 2005 и завершите процесс подготовки импортированных моделей кода XDE для использования с Rational Software Modeler/Rational Modeling Extension:
Теперь вы должны принять ключевое решение: Вам необходимо выполнить следующие шаги для импорта визуализаций проектов Visual Studio 2005 и завершить процесс подготовки импортированных моделей кода XDE для использования с Rational Software Modeler/Rational Modeling Extension. Но Rational Software Modeler/Rational Modeling Extension поддерживает целый ряд различных способов работы с моделями и кодом, но ни один из этих способов не похож на то, каким образом работает Rational XDE. Rational XDE использует персистентную семантическую модель на UML, которая синхронизована с кодом, для поддержки визуализации или визуального редактирования кода с использованием модели. Вместо этого, Rational Software Modeler поддерживает следующие возможности:
Если вы планируете использовать прямое визуальное редактирование кода, вы не должны беспокоиться о выполнении шагов по подготовке моделей кода XDE для использования с Rational Software Modeler/Rational Modeling Extension. Фактически, вы можете просто удалить импортированные модели кода и модели компоновки. Но если вы планируете использовать какой-либо другой способ выполнения работы, вам следует принять важное решение относительно выполнения остающихся шагов …
Операции для выполнения во время переноса Следующие операции выполняются 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# требуют явного представления вложенного пространства имен, а не использования точек в имени. (Эта операция выполняется только в том случае, если вы выберите опцию 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# для получения более подробной информации. |