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

Hello World, Часть 1: Rational Software Architect. Проектирование простого приложения телефонной книги

Источник: IBM
Тинни Нг (Tinny Ng), инженер-разработчик, IBM Toronto

Оглавление

Введение

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

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

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

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

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

Таблица 1. Некоторые основные функции Rational Software Architect

Функция

Преимущество

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

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

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

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

Жизненный цикл SOA

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

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

SOA Reference Architecture

Рис. 2. SOA Reference Architecture

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

Что такое UML?

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

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

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

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

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

Приложение телефонной книги

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

Прежде всего:

  1. Запустите Rational Software Architect, если он еще не запущен: В меню Windows выберите Пуск > Программы > IBM Rational > IBM Rational Software Architect v6.0 > Rational Software Architect;
  2. Открывается диалоговое окно с запросом на папку рабочего пространства. Нажмите OK для выбора настроек по умолчанию.

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

Создайте UML-проект с именем MyPhoneBookUMLProject:

  1. В меню модуля выберите File > New > Project > Other;
  2. Выберите UML Project и нажмите Next;
  3. Введите MyPhoneBookUMLProject в качестве имени проекта и нажмите Next;
  4. Задайте имя файла Phone Book UML Model UML-модели, снимите флажок Create a default diagram in the new model и нажмите Finish.

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

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

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

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

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

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

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

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

Создание диаграммы прецедентов со списком двух прецедентов:

  1. В панели Model Explorer нажмите правой кнопкой мыши Phone Book UML Model и выберите Add Diagram > Use Case Diagram;

    Добавление диаграммы прецедентов

     

    Рис. 4. Добавление диаграммы прецедентов

  2. Введите User Case Diagram в качестве имени сгенерированной диаграммы, заменив имя по умолчанию Diagram1. Теперь можно построить диаграмму прецедентов с помощью добавления с панели Palette на диаграмму различных элементов моделей;

  3. Добавление элементов модели

    Рис. 5. Добавление элементов модели

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

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

Рис. 6. Созданная диаграмма прецедентов

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

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

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

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

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

Проектирование MVC

Рис. 7. Проектирование MVC

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

  1. В панели Model Explorer нажмите правой кнопкой мыши Phone Book UML Model и выберите Add Diagram > Class Diagram;
  2. Введите Class Diagram в качестве имени сгенерированной диаграммы, заменив имя по умолчанию Diagram1;
  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. Направленное отношение сопоставления

  7. Нарисуйте линию направленного отношения сопоставления от класса PhoneBookController к PhoneBookModel (порядок имеет значение) для создания отношения Directed Association между этими двумя классами. Отношение направленного сопоставления означает, что первый элемент знает о втором элементе, но не наоборот;
  8. Таким же образом создайте следующие отношения:

    • Создание отношение сопоставления между классами PhoneBookModel и PhoneBookView;
    • Создание отношение сопоставления между классами PhoneBookView и PhoneBookController.
  9. Отношение сопоставления без направления означает, что два соединяемых класса знают друг о друге;

  10. Полностью диаграмма классов должна выглядеть так, как показано на рисунке 9. Нажмите Ctrl-S для сохранения диаграммы.

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

Рис. 9. Созданная диаграмма классов

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

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

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

  1. В панели Model Explorer нажмите правой кнопкой мыши Phone Book UML Model и выберите Add Diagram > Sequence Diagram;
  2. Введите Sequence Diagram в качестве имени сгенерированной диаграммы, заменив имя по умолчанию Diagram1;
  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. Созданная циклограмма

 

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

Публикуя информацию о модели, ее можно совместно использовать с другими пользователями, не имеющими средства моделирования. Rational Software Architect поддерживает две функции публикации:

  • Публикация моделей на Web-странице
  • Публикация отчета информации о модели

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

  1. Выберите Phone Book UML Model в панели Model Explorer. Выберите Modeling > Publish > Web;

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

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

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

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

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

  4. Нажмите ссылку Phone Book UML Model;
  5. Просмотрите опубликованную модель, нажимая ссылки элементов и диаграммы.

    Опубликованная UML-модель телефонной книги

    Рис. 16. Опубликованная UML-модель телефонной книги

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

Функция преобразования является ключевой в Rational Software Architect. Можно преобразовать проект из UML в код C++, CORBA, EJB, JACL, Java и т.д., и переходить к этапу реализации со значительной экономией времени. В данном разделе будет выполнено преобразование проекта UML в код Java, затем будут заданы подробности программы, и приложение будет запущено.

  1. В панели Model Explorer нажмите правой кнопкой мыши Phone Book UML Model и выберите Transforms > UML to Java;
  2. Выберите Create new Target Container...;
  3. В панели New Java Project введите PhoneBookJavaProject в качестве имени Java-проекта и установите флажок Create separate source and output folder. Нажмите Finish;
  4. Нажмите Run для начала преобразования.
  5. В панели Model Explorer автоматически создается Java-проект PhoneBookJavaProject, включающий три Java-файла.

    Приложение телефонной книги

    Рис. 17. Созданный Java-проект

Рассмотрим показанный ниже файл PhoneBookController.java. Созданный класс имеет два атрибута phonebookmodel и phonebookview, которые созданы в результате отношения направленного сопоставления и отношения сопоставления соответственно. Также создаются две операции (userHasInput and start), добавленные ранее при создании диаграммы классов.

PhoneBookController.java

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

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

Скопируйте и вставьте реализацию примера.

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

    Выполнение примера-приложения телефонной книги

    Рис. 18. Выполнение примера-приложения телефонной книги

Заключение

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

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

    Файлы для загрузки


     Распечатать »
     Правила публикации »
      Обсудить материал в конференции IBM Rational/Telelogic - системный инжиниринг, управление требованиями, изменениями, жизненным циклом ИС, умное управление проектами »
    Написать редактору 
     Рекомендовать » Дата публикации: 25.10.2006 
     

    Магазин программного обеспечения   WWW.ITSHOP.RU
    Rational ClearQuest Floating User License
    Rational ClearCase Multisite Floating User License
    IBM RATIONAL Clearcase Floating User From Rational Clearcase Lt Floating User Trade Up License + Sw Subscription & Support 12 Months
    IBM RATIONAL Rose Enterprise Floating User License + Sw Subscription & Support 12 Months
    IBM RATIONAL Quality Manager Quality Professional Authorized User Single Install License + Sw Subscription & Support 12 Months
     
    Другие предложения...
     
    Курсы обучения   WWW.ITSHOP.RU
     
    Другие предложения...
     
    Магазин сертификационных экзаменов   WWW.ITSHOP.RU
     
    Другие предложения...
     
    3D Принтеры | 3D Печать   WWW.ITSHOP.RU
     
    Другие предложения...
     
    Новости по теме
     
    Рассылки Subscribe.ru
    Информационные технологии: CASE, RAD, ERP, OLAP
    Новости ITShop.ru - ПО, книги, документация, курсы обучения
    Программирование на Microsoft Access
    CASE-технологии
    СУБД Oracle "с нуля"
    Проект mic-hard - все об XP - новости, статьи, советы
    ЕRP-Форум. Творческие дискуссии о системах автоматизации
     
    Статьи по теме
     
    Новинки каталога Download
     
    Исходники
     
    Документация
     
    Обсуждения в форумах
    Пишу программы на заказ профессионально (2310)
    Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
     
    Надстройка "Поиск решения" MS Excel (6)
    Помогите решить задачу с помощью " поиск решения" мука яйца ...
     
    Ищу программиста для написания программы (22)
    Ищу программиста ,владеющего Вижуал Бэйсик и программированием в Экселе, для написания...
     
    Модульный метод создания сайтов (4)
    Модульный метод создания (компоновки) сайтов на основе наборов типовых отлаженных функциональных...
     
    Пишу программы на заказ для студентов (187)
    Пишу для студентов на с, с++, паскаль в средах ms visual studio, qt, builder, borland c, delphi....
     
     
     



        
    rambler's top100 Rambler's Top100