Приложение телефонной книги при помощи Rational Software Architect V7

Тинни Нг

О данном учебном руководстве

Это первое учебное руководство в серии Hello World обновлено для версии Rational Software Architect V7. Здесь подробно показан процесс проектирования и разработки простого сервис-ориентированного приложения при помощи Rational Software Architect V7. Руководство включает практические упражнения с примерами применения UML-диаграмм для проектирования приложения, публикации информации о модели на Web-странице и преобразовании проекта в код Java. Данное учебное руководство завершается введением в подлинное «полное» проектирование (round-trip engineering, RTE) Rational Software Architect с поддержкой процесса прямого и обратного проектирования Java-кода. По-прежнему доступна исходная версия данного руководства для Rational Software Architect V6.

Необходимые условия

Данное учебное руководство предназначено для начинающих разработчиков приложений, опыт работы с Rational Software Architect не требуется. Rational Software Architect V7 основан на Eclipse 3.2 и поддерживает JDK 5. Для максимального эффекта необходимо иметь опыт работы со средой разработки Eclipse.

Требования к системе

Для запуска примеров учебного руководства необходимо установить Rational Software Architect V7. Для просмотра демонстрационных файлов необходимо в браузере включить JavaScript и установить Macromedia Flash Player 6 или выше.

Введение

IBM Rational Software Architect V7 представляет собой интегрированное средство проектирования и разработки, созданное на открытой и расширяемой платформе Eclipse, использующей промышленные стандарты. Rational Software Architect объединяет три инструментальных средства для реализация архитектуры, проектирования и разработки приложений:

  • Rational Software Modeler V7: Средство моделирования, позволяющее визуально моделировать системы и приложения с помощью нотации Unified Modeling Language (UML);
  • Rational Systems Developer V7: Средство моделирования с поддержкой разработки на основе моделей программных продуктов и систем;
  • Rational Application Developer V7: Средство разработки, упрощающее разработку J2EE, XML, Web-сервисов и др.

Разработчики ПО в группах разработки могут использовать Rational Software Architect для определения и сохранения всех аспектов архитектуры программного обеспечения приложений. Поддержка UML 2 позволяет регистрировать и обмениваться данными о всех аспектах архитектуры приложения при помощи стандартной нотации. Процесс определения и реализации приложений облегчает возможность применения шаблонов и преобразований.

В таблице 1 представлены некоторые ключевые функции и преимущества Rational Software Architect V7; далее в учебном руководстве первые три функции будут проиллюстрированы в упражнениях.

Таблица 1. Ключевые функции Rational Software Architect V7

Функции Преимущества
Поддержка моделирования UML 2 для анализа и проектирования с использованием диаграмм прецедентов, классов, циклограмм, диаграмм активности, составных структур, машин состояния, диаграмм связей, компонентов и развертывания. UML 2.0 позволяет регистрировать и обмениваться всеми аспектами архитектуры приложения с помощью стандартной нотации, принятой многими различными заинтересованными лицами.
Формирование из UML-проектов отчетов в форматах HTML, PDF и XML. Создание отчетов и документации, которую могут просматривать члены команды или другие заинтересованные лица.
Использование преобразований для формирования кода Java, C++, Enterprise Java Bean, WSDL, XSD и CORBA IDL. Автоматизация повторяющихся задач по генерации кода из моделей проекта. Преобразования можно настраивать в соответствии с шаблонами генерации кода, принятыми в организации.
Редактирование UML-диаграмм классов для кода Java, компонентов EJB и объектов базы данных. Стилизованная UML-нотация предоставляет абстрактные представления Java-кода, EJB-компонентов, объектов баз данных и C++ для упрощения разработки и осмысления новых и существующих приложений.
Визуализация тел Java-методов с использованием циклограмм UML 2. Конструкции циклограмм UML 2 облегчают представление потока Java-метода.
Web-сервисы, совместимые с WS-I, и сервис-ориентированные архитектуры. Интеграция бизнес-приложений.
Применение пользовательских шаблонов и преобразований. Предоставление организациям возможности регистрировать и продвигать "рецепты", которые можно использовать для увеличения предсказуемости и повторяемости разработки программного обеспечения. Функции по созданию и применению позволяют группам выполнять "разработку для повторного использования" и "разрабатывать с повторным использованием".
Asset Browser для доступа к повторно используемым ресурсам. Поддержка OMG Reusable Asset Specification и поддержка пользователей при обзоре хранилищ с повторно используемыми ресурсами. Хранилища можно структурировать для упрощения поиска ресурсов.
Открытый API для поддержки настройки и расширения среды моделирования. Создание и редактирование UML-профилей для настройки свойств, хранимых в UML-моделях. Организации могут разрабатывать модули настройки средств анализа и проектирования в соответствии с собственной средой и технологическими процессами. То есть используется экосистема, позволяющая сторонним компаниям разрабатывать расширения и средства интеграции.
Конфигурация RUP для Software Architect с контекстно-зависимыми и динамическими инструкциями по процессу. Инструкции по процессу и помощь пользователям предоставляются динамически в процессе работы с инструментом.

Как Rational Software Architect совместим с SOA?

В любой отрасли промышленности компании ищут способы более быстрого и эффективного реагирования на изменения рыночных условий. Для достижения такого уровня гибкости бизнеса во многих компаниях применяют сервис-ориентированную архитектуру (Service Oriented Architecture, SOA). SOA представляет собой архитектурный стиль для создания распределенных систем, поставляющих в виде сервисов функции приложений для конечных приложений или для создания других сервисов. В среде SOA можно реализовать в виде сервиса любую бизнес-функцию компании. Затем эти сервисы можно интегрировать с другими сервисами в соответствии с бизнес-требованиями компании. SOA позволяет быстро и легко создавать сложные приложения и решения с помощью сборки новых и существующих сервисов.

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

Рисунок 1. Жизненный цикл SOA
Жизненный цикл SOA

Rational Software Architect входит в состав IBM SOA Foundation и поддерживает этап моделирования жизненного цикла SOA. Пакет считается одним из сервисов разработки SOA Reference Architecture, как это показано на рисунке 2, поскольку предоставляет компаниям инструментальные средства, необходимые для моделирования сервис-ориентированных приложений.

Рисунок 2. SOA Reference Architecture
SOA Reference Architecture

Rational Software Architect позволяет разработчикам структуры ПО визуально моделировать и проектировать гибкую архитектуру сервисов с помощью открытого стандартного универсального языка моделирования (Unified Modeling Language, UML) и автоматически применять шаблоны проектирования для SOA от анализа и разработки до внедрения. Для упрощения проектирования решений в сервис-ориентированном мире различные новые SOA-ресурсы проектирования доступны в виде модулей Rational Software Architect.

Что такое UML?

Унифицированный язык моделирования, или UML, впервые был представлен Object Management Group (OMG) в 1997 году. Текущая официальная версия UML 2.0. UML разработана для предоставления сообществу разработчиков стабильного общего языка проектирования, который можно использовать для разработки и построения приложений. Этот язык моделирования является программно-независимым.

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

  • Диаграмма активности;
  • Диаграмма классов;
  • Диаграмма связей;
  • Диаграмма компонентов;
  • Диаграмма составных структур;
  • Диаграмма развертывания;
  • Диаграмма обзора взаимодействий;
  • Диаграмма объектов;
  • Диаграмма пакетов;
  • Циклограмма;
  • Диаграмма машин состояния;
  • Диаграмма синхронизации;
  • Диаграмма прецедентов.

В следующих упражнениях будет показано, как создавать диаграмму прецедентов, диаграмму классов и циклограмму, как публиковать и преобразовывать проект при помощи Rational Software Architect. Также будет описана новая функция Rational Software Architect подлинного «полного» проектирования (RTE) для прямого и обратного проектирования Java-кода созданного приложения.

Проектирование приложения телефонной книги

В довольно простом приложении телефонной книги, показанном на рисунке 3, хранятся введенные пользователями телефонные номера, которые можно просматривать.

Рисунок 3. Приложение телефонной книги
Простое приложение телефонной книги

Прежде всего запустите на компьютере Rational Software Architect. В Windows выберите "Пуск" > "Программы" > IBM Software Development Platform > IBM Rational Software Architect > IBM Rational Software Architect.

Открывается диалоговое окно с запросом на папку рабочего пространства. Для выбора настроек по умолчанию нажмите кнопку OK .

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

После запуска Rational Software Architect создайте UML-проект с именем MyPhoneBookUMLProject. Для этого выполните следующие действия:

  1. В меню приложения выберите File > New > Project;
  2. Выберите UML Project и нажмите кнопку Next;

Создание диаграммы прецедентов

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

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

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

Для простого приложения телефонной книги имеется только одно действующее лицо, Any User, которое может выполнять следующие два прецедента относительно системы:

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

Для создания диаграммы двух прецедентов для простого приложения телефонной книги выполните следующие действия.

  1. В Rational Software Architect панели Model Explorer нажмите правой кнопкой мыши Phone Book UML Model и выберите Add Diagram > Use case diagram, как это показано на рисунке:

    Рисунок 4. Добавление диаграммы прецедентов
    Приложение телефонной книги

  2. Введите use case diagram в качестве имени сгенерированной диаграммы, заменив имя по умолчанию UsecaseDiagram1. Теперь можно построить диаграмму прецедентов с помощью добавления с панели Palette на диаграмму различных элементов моделей:

    Рисунок 5. Добавление элементов моделей
    Приложение телефонной книги

  3. Выберите Actor в панели Palette, затем нажмите кнопку мыши в области диаграммы для создания действующего лица. Назовите его Any User;
  4. Выберите Use Case в панели Palette, затем нажмите кнопку мыши в области диаграммы для создания прецедента. Назовите его Add an entry;
  5. Таким же образом создайте другой прецедент и назовите его Search for a phone number;
  6. Выберите Association в панели Palette. Нарисуйте линию отношения сопоставления от действующего лица Any User к прецеденту Add an entry для инициирования отношения между двумя элементами модели;
  7. Назовите отношение use case 1;
  8. Таким же образом создайте другое отношение сопоставления между действующим лицом Any User и прецедентом Search for a phone number и назовите его use case 2;
  9. Полностью диаграмма прецедентов должна выглядеть так, как показано на рисунке 6. Нажмите Ctrl-S для сохранения диаграммы.

    Рисунок 6. Завершенная диаграмма прецедентов
    Приложение телефонной книги

  1. Введите MyPhoneBookUMLProject в качестве имени проекта и нажмите кнопку Next;
  2. Введите Phone Book UML Model в качестве имени UML-модели и снимите флажок Create a default diagram in the new model, затем нажмите кнопку Finish;.
  3. Нажмите Yes в ответ на запрос открытия перспективы Modeling.

Создание диаграммы классов

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

Разработаем приложение простой телефонной книги при помощи шаблона архитектуры Model-View-Controller (MVC), как это показано на рисунке 7. (Подробнее об MVC см. в разделе "Ресурсы"). Для приложения телефонной книги необходимо создать следующие три класса:

  • Класс PhoneBookModel управляет записями телефонной книги и регистрирует состояние приложения. При изменении состояния уведомляется класс PhoneBookView, который затем на основании состояния приложения обновляет пользовательский интерфейс;
  • Класс PhoneBookView управляет графическим или текстовым интерфейсом пользователя на основании состояния приложения, и уведомляет класс PhoneBookController при приеме входных данных;
  • Класс PhoneBookController управляет работой всего приложения. Он изменяет состояние модели приложения и обновляет модель данных на основе ввода пользователей.

Цель данного упражнения - показать использование Rational Software Architect при проектировании приложения. На самом проектировании внимание на заостряется. Можно работать с любым другим проектом.

Рисунок 7. Проект MVC для приложения телефонной книги
Проект MVC для приложения телефонной книги

 

Показать эти шаги?

ПоказатьПоказать

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

  1. В Rational Software Architect панели Model Explorer нажмите правой кнопкой мыши Phone Book UML Model и выберите Add Diagram > Class Diagram;
  2. Введите Class Diagram в качестве имени сгенерированной диаграммы, заменив имя по умолчанию ClassDiagram1;
  3. Выберите Class в панели Palette, затем нажмите кнопку мыши в области диаграммы для создания класса. Назовите его PhoneBookModel;
  4. Нажмите правой кнопкой мыши созданный класс PhoneBookModel и выберите Add UML > Operation для создания операции для этого класса. Назовите ее setState;
  5. Таким же образом создайте остальные элементы, показанные в таблице 2. Имена операций выбираются без привязки к какому-либо языку программирования;

    Таблица 2. Информация о классах

    Класс Операции
    PhoneBookModel addAnEntry
    searchPhoneNumber
    getSearchResult
    getState
     
    PhoneBookView stateHasChanged
    changeView
    getUserInput
     
    PhoneBookController userHasInput
    start
     

  6. Теперь создайте некоторые сопоставления для связи этих трех классов. Как показано на рисунке 8, нажмите стрелку рядом с командой Association в панели Palette и выберите Directed Association;

    Рисунок 8. Выбор команды Directed Association в панели Palette
    Выбор команды Directed Association в панели Palette

  7. Нарисуйте линию отношения сопоставления от класса PhoneBookController к PhoneBookModel (порядок имеет значение) для создания отношения направленного сопоставления между этими двумя классами. Отношение направленного сопоставления означает, что первый класс знает о втором, но не наоборот;
  8. Назовите отношение направленного сопоставления controllerHasModel;
  9. Теперь создайте еще несколько отношений. На этот раз создайте отношения сопоставления без направления , то есть два соединенных класса взаимно осведомлены друг о друге:
    • Создайте отношение сопоставления между классом PhoneBookModel и PhoneBookView и назовите его modelView;
    • Создайте отношение сопоставления между классом PhoneBookView и PhoneBookController и назовите его viewController.
  10. Полностью диаграмма классов должна выглядеть так, как показано на рисунке 9. Для сохранения диаграммы нажмите Ctrl-S .

    Рисунок 9. Созданная диаграмма классов для приложения телефонной книги
    Созданная диаграмма классов для приложения телефонной книги

Создание циклограммы

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

В этом разделе будет реализован прецедент "Search for a phone number" и показано связанное взаимодействие с использованием циклограммы. Прецедент запускается действующим лицом Any User, использующим интерфейс, предоставленный классом PhoneBookView, для запроса на поиск. Класс PhoneBookView уведомляет класс PhoneBookController о запросе пользователя. PhoneBookController затем обновляет модель данных, хранимую в классе PhoneBookModel. Так как модель изменена, класс PhoneBookModel уведомляет PhoneBookView, который затем обновляет пользовательский интерфейс в соответствии с последним состоянием приложения.

 

Показать эти шаги?

ПоказатьПоказать

  1. В Rational Software Architect в панели Model Explorer нажмите правой кнопкой мыши Phone Book UML Model и выберите Add Diagram > Sequence Diagram;
  2. Введите Sequence Diagram в качестве имени сгенерированной диаграммы, заменив имя по умолчанию SequenceDiagram1;
  3. Перетащите действующее лицо Any User из панели Model Explorer на диаграмму для создания экземпляра действующего лица, как это показано на рисунке 10. Таким же образом создайте экземпляры PhoneBookView, PhoneBookController и PhoneBookModel, перетащив их на диаграмму:

    Рисунок 10. Перетаскивание элементов модели на циклограмму
    Перетаскивание элементов модели на циклограмму

  4. Выберите Asynchronous Message в панели Palette.Как показано на рисунке 11, нажмите кнопку мыши на линии под элементом any User: Any User. Удерживая кнопку мыши нажатой, перетащите линию под элемент phoneBookView:PhoneBookView:

    Рисунок 11. Создание линии сообщений
    Создание линии сообщений

  5. Выберите операцию PhoneBookView::getUserInput() в раскрывающемся списке, как это показано на рисунке:

    Рисунок 12. Выбор операции для линии сообщений
    Выбор операции для линии сообщений

  6. Таким же образом создайте линии асинхронных сообщений, показанные в таблице 3. Для создания асинхронного сообщения для собственного вызова, просто нажмите кнопку мыши в строке экземпляра без всякого перетаскивания.

    Таблица 3. Линии асинхронных сообщений для циклограммы

    Из экземпляра К экземпляру Операция
    phoneBookView phoneBookController PhoneBookController::userHasInput()
    phoneBookController phoneBookModel PhoneBookModel::searchPhoneNumber()
    phoneBookController phoneBookModel PhoneBookModel::setState()
    phoneBookModel phoneBookView PhoneBookView::stateHasChanged()
    phoneBookView phoneBookModel PhoneBookModel::getSearchResult()
    phoneBookView phoneBookView PhoneBookView::changeView()

  7. Созданная циклограмма представлена на рисунке 13. Выберите File > Save All для сохранения всех изменений.

    Рисунок 13. Созданная циклограмма
    Созданная циклограмма

Публикация проекта

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

 

Показать эти шаги?

ПоказатьПоказать

  1. Выберите Phone Book UML Model в панели Model Explorer в Rational Software Architect;
  2. Выберите Modeling > Publish > Web, как это показано на рисукне 14:

    Рисунок 14. Публикация проекта на Web-странице
    Публикация проекта на Web-странице

  3. Укажите папку для создаваемых HTML-файлов, например, C:\HelloWorldSeries\RSA_Web, и нажмите кнопку OK. Модель публикуется в виде HTML-файлов, записываемых в указанную папку;
  4. Откройте в любом Web-браузере файл C:\HelloWorldSeries\RSA_Web\index.html, как это показано на рисунке 15:

    Рисунок 15. Опубликованная Web-страница
    Опубликованная Web-страница

  5. Выберите ссылку Phone Book UML Model;
  6. Просмотрите опубликованную модель, переходя по ссылкам Elements и Diagrams, как это показано на рисунке 16.

    Рисунок 16. Просмотр опубликованной модели Phone Book UML Model
    Просмотр опубликованной модели Phone Book UML Model

Преобразование и подлинное «полное» проектирование

Преобразование представляет собой основную функцию Rational Software Architect, позволяющую преобразовывать проекты из UML в EJB-компоненты, WSDL, Java-код и т.д. В Rational Software Architect V7 функция преобразования расширена и включает поддержку полного проектирования (RTE), предоставляя еще большее преимущество при реализации проектов.

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

Галерея учебных руководств Rational Software Architect V7 содержит учебное руководство Concurrently develop UML models and Java code using transformations (Одновременная разработка UML-моделей и Java-кода при помощи преобразований), в котором показано, как создать конфигурацию преобразования UML в Java, в которой применяется параметр Replace UML elements . При выполнении преобразования UML в Java элементы в UML-модели заменяются визуальными представлениями соответствующих сгенерированных Java-классов. Такая замена позволяет изменять исходный код из модели и наоборот. Изменения в модели автоматически отображаются в соответствующем Java-файле, изменения в Java-классах автоматически отражаются в соответствующих элементах модели.

Рисунок 17. Снимок экрана упражнения учебного пособия с преобразованием UML в Java
Снимок экрана упражнения учебного пособия с преобразованием UML в Java

В этом учебном руководстве будет показано, как преобразовать UML-проект в Java без использования команды Replace UML elements .Вместо этого сначала преобразуйте модель в Java-код, выполните незначительные изменения в созданном Java-файле и преобразуйте Java-класс в другую UML-модель.Затем сравните исходную UML-модель и модель, полученную путем обратного проектирования.

Преобразование UML в Java

Прежде всего, создайте конфигурацию преобразования для преобразования UML в Java.

 

Показать эти шаги?

ПоказатьПоказать

  1. Выберите Phone Book UML Model в панели Model Explorer в Rational Software Architect;
  2. Выберите Modeling > Transform > New Configuration;
  3. Задайте имя PhoneBookUML2Java и выберите IBM Rational > UML to Java V5.0, как это показано на рисунке 18. Нажмите кнопку Next:

    Рисунок 18. Создание конфигурации преобразования
    Создание конфигурации преобразования

  4. Выберите MyPhoneBookUML > Models > Phone Book UML Model в качестве источника;
  5. Нажмите Create new Target Container... для создания Java-проекта, в котором будут храниться генерируемые файлы;
  6. В панели New Java Project введите в качестве имени Java-проекта PhoneBookJavaProject. Нажмите Finish;
  7. В панели Source and Target выберите новый созданный Java-проект PhoneBookJavaProject в качестве назначения, как это показано на рисунке 19:

    Рисунок 19. Выбор исходного и целевого элемента для преобразования
    Выбор исходного и целевого элемента для преобразования

  8. Нажмите кнопку Next;
  9. Снимите флажок Generate getter and setter , чтобы отключить создание методов getter и setter, как это показано на рисунке 20:

    Рисунок 20. Отключение создания методов getter и setter
    Отключение создания методов getter и setter

  10. Нажимайте кнопку Next для просмотра других доступных параметров. Примите значения параметров по умолчанию, а затем нажмите Finish.

Создана конфигурация преобразования с именем PhoneBookUML2Java.tc. Также создан PhoneBookJavaProject, но Java-файлы еще не созданы. Далее необходимо преобразовать UML-модель в Java-код.

  1. Нажмите правой кнопкой мыши файл конфигурации преобразования PhoneBookUML2Java.tc;
  2. Выберите Transform > UML to Java V5.0 для преобразования UML-модели в Java-код, как это показано на рисунке 21:

    Рисунок 21. Преобразование UML Java-код
    Преобразование UML в Java-код

  3. Перейдите к созданным Java-файлам и просмотрите, как были преобразованы элементы UML-модели. Например, обратите внимание на файл PhoneBookController.java, показанный на рисунке 22. У созданного класса имеется два атрибута: phonebookmodel и phonebookview, созданные, соответственно, в результате отношения направленного сопоставления и отношения сопоставления, созданных ранее. Также создаются две операции (userHasInput и start), добавленные ранее при создании диаграммы классов;

    Рисунок 22. PhoneBookController.java
    PhoneBookController.java

  4. Измените файл PhoneBookController.java, как это показано на рисунке 23. Позднее будет показано, как это изменение будет отражено при обратном проектировании UML-модели;

    Рисунок 23. Добавление параметра к userHasInput()
    Добавление параметра к userHasInput()

  5. Нажмите Ctrl S для сохранения всех изменений.

Преобразование Java в UML

Теперь создайте другую конфигурацию преобразования для обратного преобразования Java-файлов в UML-модель.

  1. Выберите PhoneBookJavaProject в панели Model Explorer в Rational Software Architect;
  2. Выберите Modeling > Transform > New Configuration;
  3. Задайте имя PhoneBookJava2UML и выберите IBM Rational > Java to UML, как это показано на рисунке 24. Нажмите кнопку Next;

    Рисунок 24. Создание конфигурации преобразования для преобразования Java в UML
    Создание конфигурации преобразования для преобразования Java в UML

  4. Выберите PhoneBookJavaProject в качестве источника;
  5. Нажмите Create new Target Container... для создания новой UML-модели, в которой будут храниться созданные файлы;
  6. В панели Create UML Model нажмите кнопку Next для создания новой UML-модели на основе стандартного шаблона;
  7. Задайте в качестве имени Phone Book UML Reverse Model;
  8. Нажмите кнопку Browse и выберите существующий проект MyPhoneBookUMLProject в качестве местположения для файла новой модели. Панель Create UML Model должна выглядеть так, как это показано на рисунке 25:

    Рисунок 25. Панель Create UML Model
    Create new UML model

  9. Нажмите Finish;
  10. В панели Source and Target выберите новый созданный файл модели Phone Book UML Reverse Model в качестве целевого, как это показано на рисунке 26:

    Рисунок 26. Выбор исходного и целевого элемента для преобразования
    Выбор исходного и целевого элемента для преобразования

  11. Нажмите кнопку Next;
  12. Снимите флажок Generate getter and setter для отключения создания методов getters и setters;
  13. Для просмотра других доступных параметров используйте кнопку Next. Примите значения параметров по умолчанию, а затем нажмите Finish.

Создана конфигурация преобразования с именем PhoneBookJava2UML.tc. Последним этапом данного упражнения является преобразование Java-файлов в UML-модель.

  1. Нажмите правой кнопкой мыши файл PhoneBookJava2UML.tc;
  2. Выберите Transform > Java to UML для преобразования Java-кода в UML-модель, как это показано на рисунке 27:

    Рисунок 27. Преобразование Java-кода в UML
    Преобразование Java-кода в UML-модель

  3. Нажмите OK для принятия всех изменений;
  4. Три Java-класса преобразованы в три элемента модели Phone Book UML Reverse Model, как это показано на рисунке 28:

    Рисунок 28. Созданная UML-модель
    Созданная UML-модель

  5. Создайте в модели Phone Book UML Reverse Model диаграмму классов для визуализации созданных элементов модели. Перетащите три класса модели на диаграмму, как это показано на рисунке 29:

    Рисунок 29. Три класса модели на диаграмме классов
    Три класса модели на диаграмме классов

  6. На этой диаграмме отношения сопоставления представлены в виде атрибутов.Выберите эти атрибуты, нажмите правую кнопку мыши и выберите Filters > Show As Association для включения этих атрибутов в отношения сопоставления;
  7. Новый параметр, добавленный в userHasInput, на диаграмме не очевиден.Нажмите правой кнопкой мыши класс PhoneBookController и выберите Filters > Show Signature для отображения полной сигнатуры операций;
  8. Диаграмма классов для преобразованной UML-модели должна выглядеть так, как это показано на рисунке 30. Сравните эту диаграмму с ранее созданной диаграммой (см. рисунок 9). Диаграммы одинаковы. Обратите внимание, что отношение сопоставления на этой диаграмме для отображения двунаправленного поведения показано двумя линиями:

    Рисунок 30. Созданная UML-модель
    Созданная UML-модель

  9. Нажмите Ctrl S для сохранения всех изменений.

Полная реализация

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

В заключительном разделе измените файлы, созданные из UML-диаграммы, для реализации примера приложения телефонной книги.

 

Показать эти шаги?

ПоказатьПоказать

  1. Скопируйте и вставьте пример реализации соответствующим образом в три Java-файла;
  2. Выберите File > Save All для сохранения всех изменений;
  3. Выберите PhoneBookController, затем нажмите кнопку Run > Run As ... > Java Application для запуска реализации телефонной книги в виде Java-приложения;
  4. Перейдите в панель Console, как показано на рисунке 31, и поработайте с приложением. Убедитесь в возможности выполнения двух прецедентов приложения Add an entry и Search for a phone number. Запомните: цель прецедентов заключается в определении поведения системы и регистрации требований. Важно, чтобы реализация соответствовала требованиям и работала ожидаемым образом.

    Рисунок 31. Запуск примера приложения телефонной книги
    Приложение телефонной книги в консоли

  5. Чтобы понять, как работает UML-модель готового приложения телефонной книги, также можно еще раз запустить преобразование Java в UML при помощи конфигурации преобразования PhoneBookJava2UML.tc.

    Рисунок 32. UML-модель примера приложения телефонной книги
    UML-модель примера приложения телефонной книги

Заключение

В данном учебном руководстве содержится общее практическое введение в Rational Software Architect V7. В пошаговых упражнениях и демонстрационных файлах показано, как проектировать приложения при помощи UML-диаграмм, публиковать информацию о модели на Web-странице, преобразовывать проект в Java-код и выполнять обратное проектирование из Java-кода в UML-диаграмму при помощи Rational Software Architect V7. В заключение было реализовано простое приложение телефонной книги с возможностью просмотра в консоли Rational Software Architect.


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