(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Преобразование UML в CORBA в программе Rational Software Architect

Ананд Рамдео (Anand Ramdeo), инженер по программному обеспечению, IBM Субраманьян Нилакантан (Subramanian Neelakantan), инженер по программному обеспечению, IBM

Введение

IBM Rational Software Architect (RSA) - это инструмент моделирования, совместимый с языком UML (Unified Modeling Language, унифицированный язык моделирования) версии 2.0. Этот инструмент можно использовать для проектирования, разработки и тестирования программного обеспечения. С его помощью можно также трансформировать модели с одного уровня абстракции до другого. Трансформирование элементов модели с одного уровня абстракции на другой в терминологии MDA (Model Driven Architecture, архитектура на основе моделей) называется преобразованием; оно поддерживается RSA. Хорошим примером преобразования может быть преобразование элементов модели в исходный код. Такие преобразования предлагаются для Java™, C++, Common Object Request Broker Architecture (CORBA) и т. д. В этой статье приводится краткое описание преобразования UML в CORBA.

Преобразование UML в CORBA трансформирует элементы модели на UML 2.0 в код на языке моделирования IDL (CORBA Interface Definition Language, язык описания интерфейса CORBA). Это преобразование предлагает опциональный, небольшой по размеру профиль, который вы можете использовать для моделирования и генерации большинства элементов CORBA. Инструмент преобразования CORBA Transformation также поставляется с исходной моделью CORBA. Исходная модель CORBA предоставляет способ быстро приступить к моделированию систем CORBA при помощи RSA или IBM Rational Software Modeler (RSM). Исходная модель содержит правильно форматированную модель CORBA, в том числе элементы компонентов и интерфейса и ярлыки для типов CORBA, созданных при помощи примитивных типов UML 2.0.

В этой статье описывается, как создать и использовать исходную модель CORBA, а также расширить ее для создания собственной модели CORBA. Мы также рассмотрим, как проверить корректность модели, как выполнить преобразование модели, чтобы сгенерировать IDL-файлы CORBA, а также как инструмент преобразований СОRBA Transformation интегрируется с IBM Rational ClearCase.

Рабочий процесс преобразования

Создание UML-проекта

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

  1. Для этого запустите RSA, и в меню File -> New -> Project выберите из списка UML Project;
  2. Нажмите кнопку Next и задайте имя проекта UMLtoCORBA;
  3. Нажмите Next;

В открывшемся диалоговом окне вы увидите список шаблонов для создания моделей UML, как показано на рисунке 1.

Рисунок 1. Список шаблонов, доступных для проекта
Список шаблонов, доступных для проекта

  1. Выберите из списка Corba Template Model, в поле File name задайте имя файла UMLtoCORBA и нажмите кнопку Finish.

Этим действием вы создаете в проекте UMLtoCORBA исходную модель CORBA со структурой, аналогичной показанной на рисунке 2.

Рисунок 2. Структура модели проекта
Структура модели проекта

Организация модели

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

  1. Преобразование CORBA отображает компоненты в IDL-файл, поэтому переименуйте этот компонент в NamingAuthority и перетащите в корень модели (UMLtoCORBA). Преобразование сгенерирует файл IDL для этого компонента;
  2. Переименуйте имеющийся в данном компоненте интерфейс в translation_library. Этот интерфейс предоставляет интерфейс для компонента NamingAuthority. Преобразование сгенерирует соответствующее описание интерфейса в файле NamingAuthority.idl;
  3. В компоненте NamingAuthority создайте один архив с именем NamingAuthority. Этот архив содержит классы и интерфейсы, которые включают именованный компонент authority Преобразование сгенерирует описание модуля, соответствующего этому архиву, в файле NamingAuthority.idl;
  4. Перетащите мышью интерфейс translation_library из компонента в архив NamingAuthority;
  5. Создайте перечисляемый тип RegistrationAuthority в архиве NamingAuthority. Этот тип содержит перечисляемые константы, которые определяют тип языка описания для именованного компонента authority. Создайте в этом перечислении такие перечисляемые константы: DNS, IDL, ISO, DCE и OTHER.

К этому моменту ваша модель должна быть аналогична показанной на рисунке 3.

Рисунок 3. Отражение изменений на генерируемой модели
Отражение изменений на генерируемой модели

Проектирование типов CORBA

Чтобы продолжить моделирование, вам нужны способы проектирования типов CORBА. Эти типы могут быть спроектированы при помощи стереотипов. Стереотипы будут доступны после того, как вы примените профиль CORBA Transformation к модели. При помощи этого профиля вы можете моделировать типы CORBA: struct, valuetype, typedef и т. п. Профиль также содержит информацию об ограничениях, применяемых к стереотипам.

  1. Чтобы добавить в модель профиль трансформации CORBA, выделите корень модели (другими словами, UMLToCORBA в UMLToCORBA.emx) и обратите внимание на представление Properties. Слева имеется одна вкладка Profiles;
  2. Если вы перейдете на эту вкладку, то увидите список профилей, которые уже применены к модели, а также кнопку Add Profile, как показано на рисунке 4;

Рисунок 4. Профили модели
Профили модели

  1. Нажмите кнопку Add Profile. После создания профиля CORBA Transformation вы можете моделировать типы CORBA;
  2. Создайте один класс AuthorityID в архиве NamingAuthority;
  3. Теперь выделите этот класс и перейдите на вкладку Stereotypes в представлении Properties;
  4. Нажмите кнопку Add Stereotypes;
  5. Выделите элемент CORBAStruct и нажмите OK, как показано на рисунке 5. Теперь преобразование сгенерирует описание CORBAStruct для класса AuthorityID в уже сгенерированном файле IDL;

Рисунок 5. Применение стереотипа к классу
Применение стереотипа к классу

  1. Чтобы добавить к CORBAStruct свойства, добавьте атрибут naming_entry в класс AuthorityID и измените его тип на CORBAPrimitive type String;
    1. Теперь создайте еще один атрибут, authority, и задайте его тип как перечисляемый тип RegistrationAuthority. Тип атрибута может быть задан в представлении Properties;
    2. Создайте еще один класс QualifiedName в архиве NamingAuthority и примените к нему стереотип CORBAStruct;
    3. Создайте атрибут authority_id и задайте для него тип AuthorityID CORBAStruct;
    4. Создайте еще один атрибут local_name и задайте для него тип String.
  2. Последняя часть модели - это реализация интерфейса translation_library;
    1. Создайте в этом интерфейсе одну операцию authority_to_str(). Задайте для этой операции возвратный тип String и параметр AuthorityID;
    2. Добавьте в этот интерфейс еще одну операцию - str_to_authority() с возвратным типом AuthorityID и параметром String;
    3. Аналогичным образом создайте метод для qualified_name_to_str() с возвратным типом String и параметром QualifiedName;
    4. Для последнего метода создайте str_to_qualified_name() с возвратным типом String и параметром QualifiedName.

Теперь ваша модель CORBA готова, и к ней применены все необходимые стереотипы. Если вы перетащите все элементы в область диафрагмы, то окончательная модель будет выглядеть аналогично показанной на рисунке 6.

Рисунок 6. Готовая модель
Готовая модель

Теперь вы можете запустить инструмент преобразования CORBA Transformation на вашей модели или проверить эту модель на любое ограничение для применяемых стереотипов. Чтобы проверить модель, необходимо выделить ее, нажать на ней правой кнопкой мыши и выбрать Run Validation, как показано на рисунке 7. В качестве альтернативы можно также выбрать из меню Modeling -> Run Validation, предварительно выделив модель.

Рисунок 7. Проверка модели
Проверка модели

Если в процессе проверки будут отображаться какие-либо предупреждения или ошибки, то рекомендуется исправить модель перед тем, как продолжить преобразование. Если не исправить модель, то трансформация может не завершиться или сгенерированные IDL-файлы могут оказаться незавершенными.

Преобразование.

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

  1. Чтобы запустить преобразование, нажмите правой кнопкой мыши на корне модели и выберите Transform -> Run Transformation -> UML to CORBA, как показано на рисунке 8. Вы можете сделать это иначе, выбрав из меню Modeling -> Transform -> Run Transformation -> UML to CORBA;

Рисунок 8. Запуск преобразования
Запуск преобразования

  1. В результате этого действия откроется диалоговое окно Run Transformation, показанное на рисунке 9. В этом диалоговом окне можно задать имя, исходную модель, контейнер для генерируемой модели, модель отображения и общие действия, вроде ведения журнала и т. п. Все эти параметры подробно рассматриваются в следующих разделах;

Рисунок 9. Мастер запуска преобразования
Мастер запуска преобразования

  1. Имя (Name) преобразования должно быть уникальным. Различные конфигурации преобразования должны сохраняться под различными именами преобразований. Эти имена преобразований можно вывести в меню Run Transformation (для этого необходимо установить флажок Show in transformation menu на Common Page) и запускать из этого меню напрямую;
  2. Source: вы можете задать модель, компонент, архив UML или комбинацию всех этих элементов в качестве исходного элемента для преобразования. Преобразование генерирует отдельный IDL-файл для каждого компонента UML. Каждый IDL-файл содержит код только для элемента, который принадлежит соответствующему компоненту UML. Преобразование игнорирует элементы, которые не принадлежат компоненту UML. Если в качестве источника для преобразования вы задали любой другой элемент, то преобразование выдаст ошибку в процессе проверки;
  3. Target сохранит IDL-файл, сгенерированный из преобразования CORBA. Любой проект Eclipse можно рассматривать как подходящее место назначения для преобразования CORBA. Можно также создать новый проект Eclipse для хранения файлов IDL, выбрав Create new target container;
  4. После того, как вы задали имя, источник и место назначения для преобразования, вы можете задать отображение. Задавать mapping (отображение) не обязательно. По умолчанию генерируемый IDL будет использовать в качестве имен элементов CORBA имена элементов UML. При помощи модели отображения вы сможете переименовать моделируемые элементы в сгенерированный код. Элементы UML (кроме компонентов) вы можете переименовывать только при помощи простых идентификаторов.

    По умолчанию отображение отключено; для включения вам нужно будет установить флажок Enable Mapping. Как показано на рисунке 10, для отображения можно использовать уже существующую модель или создать новую, нажав кнопку New;

Рисунок 10. Применение отображения в преобразовании
Применение отображения в преобразовании

  1. Если нажать кнопку Edit Mapping, то откроется диалоговое окно (Рисунок 11) с приглашением выполнить отображение элементов UML 2.0 в элементы генерируемого файла IDL;

Рисунок 11. Отображение элементов UML в новые имена
Отображение элементов UML в новые имена

  1. Вы можете выделить элемент UML и задать для него имя-отображение Mapped Name. Можно переименовать компоненты UML, выбрав в качестве имени либо простой идентификатор, либо корректную часть пути, определяющего контейнер назначения, в котором сгенерирован IDL-файл. Путь должен заканчиваться именем IDL-файла. Например, если вы переименовываете ComponentA в dirA\A, преобразование генерирует файл A.idl в каталоге с именем dirA, а не на верхнем уровне контейнера назначения;
  2. На вкладке common мастера запуска преобразования (Рисунок 12), вы можете определить, хотите ли вы вести протокол выполнения преобразования или нет, а также следует ли данную конфигурацию отображать в меню Transform или не следует. Если установить флажок Log transformation execution, то будет выведен протокол всех правил, которые были выполнены в процессе преобразования. Он будет выведен в окне Console. Это может помочь при отладке преобразования и составлении отчета об ошибке (если таковая будет иметь место) для технической поддержки IBM.

    Если установить флажок Show in Transform menu, то данная конфигурация будет отображаться в меню Run Transformation как вложенное меню. Благодаря этому можно будет запустить конфигурацию непосредственно, не вызывая диалоговое окно для каждого применения преобразования;

Рисунок 12. Вкладка Common мастера запуска преобразования
Вкладка Common мастера запуска преобразования

  1. Теперь, если вы нажмете кнопку Apply, а затем Run, то запустится преобразование, и по схеме отображения, заданной в модели отображения, будет сгенерирован IDL-файл, соответствующий модели CORBA. После выполнения преобразования вы сможете просмотреть сгенерированные IDL-файлы в представлении Package Explorer;
  2. Чтобы открыть представление Package Explorer, необходимо включить средства разработчика Java. Это можно сделать через меню Window -> Preferences, выбрав Java Developer в Workbench -> Capabilities. После включения средств разработчика Java выберите из меню Window -> Show View -> Package Explorer, чтобы отобразить представление Package Explorer;
  3. Выполните двойной щелчок на сгенерированном IDL-файле. Файл откроется в текстовом редакторе. Если преобразование было выполнено успешно, то файл IDL должен выглядеть так, как показано на рисунке 13.

Рисунок 13. Сгенерированный IDL-файл
Сгенерированный IDL-файл

Обратите внимание на то, что NamingAuthority.IDL содержит описание перечисляемого типа RegistraionAuthority и описание двух классов CORBAStruct и интерфейса translation_library. При помощи инструмента преобразования CORBA Transformation из модели CORBA был создан законченный и корректный IDL-file.

В следующем разделе приводится информация о том, как преобразование CORBA интегрируется c ClearCase.

Интеграция ClearCase

Преобразование CORBA интегрируется с ClearCase для управления исходными элементами генерируемого файла IDL. Преобразование CORBA поддерживает также параллельную разработку файлов CORBA IDL. Преобразование CORBA генерирует IDL в простом проекте Eclipse. Чтобы передать IDL-файлы под управление ClearCase, вам следует добавить вывод проекта Eclipse под управление ClearCase. Для решения этой задачи можно выполнить следующие шаги.

  1. Создайте проект Eclipse, скажем, CCIntegrated;
  2. Запустите инструмент преобразований CORBA Transformation с контейнером назначения, заданным как CCIntegrated;
  3. Скопируйте эту папку и вставьте ее в папку VOB ClearCase VOB через Windows Explorer;
  4. Теперь удалите этот проект из текущего рабочего пространства, а его содержание - из файловой системы;
  5. Выберите File > Import Existing Project into Workspace;
  6. Найдите и выделите проект, который вы скопировали, в папке VOB ClearCase и нажмите кнопку Finish, чтобы импортировать проект в рабочую область. При этом исходные модели остаются в папке VOB и на них создаются ссылки из рабочей области;
  7. Установите соединение с ClearCase (если это еще не было сделано) из активного рабочего места, как показано на рисунке 14;

Рисунок 14. Соединение с ClearCase
Соединение с ClearCase

  1. Откроется диалоговое окно, подтверждающее передачу файлов под управление ClearCase. Нажмите кнопку OK (Рисунок 15) - проект перешел под управление ClearCase;

Рисунок 15. Передача проекта под управление ClearCase
Передача проекта под управление ClearCase

  1. Если это диалоговое окно не появляется на восьмом шаге, то вы еще можете нажать правой кнопкой мыши на значке проекта в режиме отображения Navigator и выбрать пункт Team > Add to Source Control;
  2. Теперь, при следующем запуске преобразования CORBA программа предложит вам отметить IDL-файлы(ы), чтобы регенерировать их, как показано на рисунке 16;

Рисунок 16. Приглашение отметить нужные файл(ы)
Приглашение отметить нужные файл(ы)

  1. Нажмите кнопку OK и обратите внимание на то, что IDL-файл был отмечен и регенерирован, как показано на рисунке 17.

Рисунок 17. Регенерированный IDL-файл
Регенерированный IDL-файл 

Отображение UML в CORBA

На рисунке 18 показано, как преобразование отображает элементы модели UML 2.0 в IDL-файл CORBA.

Рисунок 18. Отображение UML в CORBA
Отображение UML в CORBA

Целью данной статьи было обзорное описание инструмента CORBA Transformation, поэтому созданная модель была очень простой. Вы можете проектировать очень сложные модели CORBA, если будете использовать все функции CORBA Transformation.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 14.11.2006 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
IBM RATIONAL Clearcase Floating User License + Sw Subscription & Support 12 Months
IBM RATIONAL Quality Manager Quality Professional Authorized User Single Install License + Sw Subscription & Support 12 Months
Rational ClearQuest Floating User License
Rational ClearCase Multisite Floating User License
IBM Rational Functional Tester Floating User License
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Программирование на Visual С++
Компьютерная библиотека: книги, статьи, полезные ссылки
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100