Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор.

На данном лабораторном занятии мы познакомимся с заданием параметров операций классов: аргументов, а так же возвращаемых значений.

Используя логическое представление (Logical View) — создадим Диаграмму классов - вспоминаем второе и третье лабораторные занятия.

В простейшем графическом редакторе будем использовать следующие основные классы:

1 Фигура;

2 Елемент фигуры;

3 Точка;

4 Линия.

Создадим все описанные выше классы (Рис.1.1).

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис. 1.1 Создание класса и Браузер проектов – отображает все зозданные классы

Получим:

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис. 1.2 Окно диаграммы классов – отображает все созданные классы

Давайте озаглавим нашу диаграмму - “Display”

Для этого воспользуемся инструментом TextBox(Рис.1.2) на специальной панели инструментов. Чтобы изменить стиль форматирования надписи воспользуемся

пунктом всплывающего меню Format...->Font...(Рис.2.1)

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.2.1 Всплывающее меню объекта TextBox

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.2.2 Сделаем текст жирным, подчеркнутым и 12м шрифтом

Теперь в каждом классе добавим операции, пользуясь навыками, полученными на третьем лабораторном занятии (Рис.3.1).Начнем с класса Figure (Рис.3.2)

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.3.1 Добавление операции класса Figure

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.3.2 Операции класса Figure

Для класса FirureElement добавим следующие операции:

  1. moveBy(int, int);

Здесь мы сталкиваемся с аргументами операции – оба целочисленного типа. (Рис.3.3)

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

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.3.3 Задание дополнительных свойств (спецификаций) операции moveBy

На вкладке Detail в многостраничном поле Arguments (Аргументы) можно определить аргументы редактируемой операции. Для этого следует выполнить операцию контекстного меню Insert (Вставить – Рис.3.4). После этого в этом поле появится аргумент данной операции с именем по умолчанию argname. Для редактирования свойств аргумента предназначено специальное окно свойств аргумента.

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.3.4 Задание аргументов операции moveBy

Операция moveBy – перемещает объект в точку экрана с координатами (X:integer;Y:integer) – так зададим же их параметры – Рис.3.5

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.3.5 Задание типа аргумента операции moveBy
Теперь, если мы посмотрим на диаграмму классов – то у операции класса FigureElement не увидим созданных аргументов. Они “покажутся”, если “кликнуть” один раз на самой операции класса (Рис.3.6)

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.3.6 Отображение аргументов операции moveBy класса FigureElement

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

Для класса Point (“Точка”) следующие операции (Рис.3.7):

  • get X();
  • get Y();
  • set X (int);
  • set Y(int);
  • move By(int;int).

Для класса Line (“Линия”) следующие операции (Рис.3.7):

  • get P1();
  • get P2();
  • set P1 (Point);
  • set P2 (Point);
  • move By(int;int).

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.3.7 Операции классов Point и Line

Получим следующий вид диаграммы классов – Рис.4.1

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.4.1 Диалоговое окно диаграммы классов

Осталось только установить взаимосвязи между имеющимися классами.

(Вспоминаем первое и второе лабораторные занятия – Рис.5.1 и 5.2 и 5.3).

В этой лабораторной работе мы будем использовать два типа отношений (взаимосвязей):

  • ассоциацию;
  • обобщение.

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.5.1 Диалоговое окно диаграммы классов – связь “Ассоциация”

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.5.2 Диалоговое окно диаграммы классов – связь “ко многим” (“много” или *)

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.5.3 Диалоговое окно диаграммы классов – связь “Обобщение”

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.5.3 Диалоговое окно диаграммы классов – связь “Обобщение”

Итоговый вид диаграммы классов простейшего графического редактора:

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис.5.4 Диаграмма классов простейшего графического редактора

ШЕСТОЕ ЛАБОРАТОРНОЕ ЗАНЯТИЕ

Тема:

Простой пример генерации программного кода в среде IBM Rational Rose

  Генерировать программный код на данном лабораторном занятии будем на примере задания пятой лабораторной работы — простейшего графического редактора. (Откройте созданный ранее проект (Рис. 1.1).)   Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Рис. 1.1 Диаграмма классов – пример простого графического редактора Общая последовательность действий, которые необходимо выполнить для генерации программного кода в среде IBM Rational Rose, состоит из следующих этапов:
  1. Проверка модели на отсутствие ошибок.
  2. Создание компонентов для реализации классов.
  3. Отображение классов на компоненты.
  4. Выбор языка программирования для генерации текста программного кода.
  5. Установка свойств генерации программного кода.
  6. Выбор класса, компонента или пакета.
  7. Генерация программного кода.
Особенности выполнения каждого из этапов могут изменяться в зависимости от выбора языка программирования или схемы базы данных. Рассмотрим особенности выполнения каждого из указанных выше этапов для языка реализации модели ANSI C++. Язык ANSI С++ не допускает использование символов кириллицы в качестве имен классов, атрибутов и операций. Проверка модели на отсутствие ошибок Для проверки модели следует выполнить операцию главного меню: Tools Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Check Model (Инструменты Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Проверить модель). Результаты проверки разработанной модели на наличие ошибок отображаются в окне журнала. Прежде чем приступить к генерации текста программного кода разработчику следует добиться устранения всех ошибок и предупреждений, о чем должно свидетельствовать чистое окно журнала (Рис. 1.2).   Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Рис. 1.2Проверка модели на отсутствие ошибок Создание компонентов для реализации классов Здесь нужно вкратце рассказать про «Диаграмму компонентов». Диаграмма компонентов служит частью физического представления модели и является необходимой для генерации программного кода. Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление компонентов (Component View), в котором уже содержится диаграмма компонентов с пустым содержанием и именем по умолчаниюMain (Главная). Активизация диаграммы компонентов может быть выполнена одним из следующих способов:
  • Щелкнуть на кнопке с изображением диаграммы компонентов на стандартной панели инструментов.
  • Раскрыть представление компонентов в браузере (Component View) и дважды щелкнуть на пиктограммеMain (Главная).
  • Через пункт меню Browse Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Component Diagram (Браузер Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Диаграмма компонентов).
В результате выполнения этих действий появляется новое окно с чистым рабочим листом диаграммы компонентов и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы компонентов. В качестве «контейнера» и «главного компонента» одновременно, будем использовать элемент «Component» («Компонент») Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru . (Рис.1.3) Добавим его в область «диаграммы компонентов» и зададим имя «MainPaint.exe». «exe» - приписка в названии, как бы говорит о том, что при генерации кода можно получить не просто файлы с кодом программы, но и исполняемый файл. (В данном лабораторном занятии не рассматривается, но подобное допускается, если задать в свойствах компонента стереотип <<EXE>> из предлагаемого вложенного списка.) Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Рис. 1.3 Создали диаграмму компонентов и добавили “Компонент” «MainPaint.exe» Отображение классов на компоненты Для отображения классов на компоненты можно воспользоваться окном спецификации свойств компонента, открытого на вкладке Realizes (Реализует). Для включения реализации класса в данный компонент следует выделить требуемый класс на этой вкладке и выполнить для него операцию контекстного менюAssign (Назначить). В результате перед именем класса на этой вкладке появится специальная отметка (Рис.1.4) Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Рис. 1.4 Связываем “Компонент” и классы Выбор языка программирования для генерации текста программного кода и Установка свойств генерации программного кода Для выбора языка ANSI C++ в качестве языка реализации модели следует выполнить операцию главного меню: Tools Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Options (Инструменты Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Параметры), в результате чего будет вызвано диалоговое окно настройки параметров модели. Далее на вкладке Notation (Нотация) в строке Default Language (Язык по умолчанию) из вложенного списка следует выбрать язык - ANSI C++(Рис.2.1). Если по какой-то причине языка ANSI C++ не оказалось во вложенном списке, то следует убедиться в том, что этот язык программирования установлен в качестве расширения IBM Rational Rose. Для этого следует открыть окно установленных расширений, выполнив операцию главного меню: Add-Ins Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Add-In Manager (Расширения Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Менеджер расширений), и убедиться в том, что выставлена отметка в строке с именем языка ANSI C++. После выбора языка программирования по умолчанию следует изменить язык реализации каждого из компонентов модели. С этой целью следует изменить язык в строке Language (Язык) на вкладке General (Общие) окна спецификации свойств компонента, для чего из вложенного списка следует выбрать язык - ANSI C++ (Рис. 2.1).   Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Рис. 2.1Выбор языка программирования и языка реализации компонентов Выбор класса, компонента или пакета и Генерация программного кода Генерация программного кода в среде IBM Rational Rose возможна для отдельного класса или компонента. Для этого нужный элемент модели предварительно следует выделить в браузере проекта и выполнить операцию контекстного меню: ANSI C++ Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Generate Code_ (Язык ANSI C++ Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Генерировать код). В результате этого будет открыто диалоговое окно с предложением выбора классов для генерации программного кода на выбранном языке программирования (Рис. 3.1). После выбора соответствующих классов и нажатия кнопки OK программа IBM Rational Rose выполняет кодогенерацию   . Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Рис. 3.1Генерация программного кода

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис. 3.2Окно выбора классов для генерации программного кода

Для просмотра и редактирования созданных файлов с текстом программного кода на языке ANSI C++ предназначен встроенный текстовый редактор, который можно открыть с помощью операции контекстного меню: ANSI C++ Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Browse Header_ (Язык ANSI C++ Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Просмотреть заголовочный файл) или ANSI C++ Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Browse Body_ (Язык ANSI C++ Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru Просмотреть файл реализации) для выбранного класса в браузере проекта.

После генерации программного кода для компонентаMainPaint.exe каждому классу, реализованному в данном компоненте, будет соответствовать 2 файла с текстом кода на языке ANSI C++ (Рис.3.3):

· заголовочный файл с расширением «h»;

· файл реализации с расширением «cpp».

Построение с помощью программы RationalRoseUML диаграммы, изображающей простой графический редактор. - student2.ru

Рис. 3.3Сгенерированные файлы

l Пример сгенерированного кода — файл Line.cpp

#include "Line.h"

//##ModelId=48FB039303B9

Line::get P1()

{}

//##ModelId=48FB039C0196

Line::get P2()

{}

//##ModelId=48FB03A3035B

Line::set P1(Point P1)

{}

//##ModelId=48FB03CC0203

Line::set P2(Point P2)

{}

//##ModelId=48FB03D40261

Line::move By(Integer X, Integer Y)

{}

l Пример сгенерированного кода — файл Line.h

#ifndef LINE_H_HEADER_INCLUDED_B6EFE6B3

#define LINE_H_HEADER_INCLUDED_B6EFE6B3

#include "Point.h"

//##ModelId=48FAFE8C0399

class Line : public Figure Element

{

public:

//##ModelId=48FB039303B9

get P1();

//##ModelId=48FB039C0196

get P2();

//##ModelId=48FB03A3035B

set P1(Point P1);

//##ModelId=48FB03CC0203

set P2(Point P2);

//##ModelId=48FB03D40261

move By(Integer X, Integer Y);

};

#endif /* LINE_H_HEADER_INCLUDED_B6EFE6B3 */

Заключение

Система Rational Rose — признанный лидер среди средств визуального моделирования, и, используя ее, вы сможете интерактивно разрабатывать архитектуру создаваемого приложения, генерировать его исходные тексты и параллельно работать над документированием разрабатываемой системы.

Преимущества от применения Rational Rose значительны:

· сокращение цикла разработки приложения;

· увеличение продуктивности работы программистов;

· улучшение потребительских качеств создаваемых программ за счет ориентации на пользователей и бизнес;

· способность вести большие проекты и группы проектов;

· возможность повторного использования уже созданного ПО за счет упора на разбор их архитектуры и компонентов;

· язык UML служит универсальным «мостиком» между разработчиками из разных отделов.

В данных методических указаниях рассмотрены примеры использования данной среды — лабораторные занятия, а также краткий теоретический материал. С их помощью студенты получат начальные знания и навыки в работе с Rational Rose и UML.

Используемая литература

1. Курс лекций Л.В.Шуткина "Технологии разработки программного обеспечения компьютерных информационных систем"

2. Описание лабораторных работ Л.В.Шуткина;

3. Статья “UML диаграммы в RationalRose” Сергея Трофимова (08.09.2002)

4. Статья «Купи себе немножечко CASE» Журнал "Мир ПК", #04, 1999 год автор Дмитрий Рамодин

5. Учебный курс Интернет-Университета Информационных Технологий (INTUIT.RU) Леоненкова Александра Васильевича «Визуальное моделирование в среде IBM Rational Rose»

Дополнительная литература

1. Практикум для ВУЗов «CASE-технологии» Д.Э.Федотова, Ю.Д.Семенов, К.Н.Чижик;

2. «Rational Rose 2000 и UML визуальное программирование» Терри Кватрани, предисловие грейди Буча ДМК, Москва 2001;

Алфавитный указатель

АИС..................................................................................................................................................... 4

Актер ................................................................................................................................................ 19

аргументы редактируемой операции............................................................................................. 59

Ассоциация................................................................................................................................. 22, 31

атрибуты........................................................................................................................................... 27

Генерация программного кода........................................................................................... 67, 70, 71

Главное меню и стандартная панель инструментов.................................................................... 12

действующие лица (Actors)............................................................................................................. 18

деятельности................................................................................................. 47, 49, 50, 51, 52, 53, 54

Диаграмма деятельности (действий)................................................................................. 47, 53, 54

Диаграмма классов.......................................................................................................................... 24

диаграмма компонентов.................................................................................................................. 68

Диаграмма компонентов........................................................................................................... 67, 68

Диаграмма прецедентов.................................................................................................................. 18

заголовочный файл.......................................................................................................................... 72

изображение деятельности.............................................................................................................. 50

изображение перехода..................................................................................................................... 53

квантор видимости.................................................................................................................... 29, 39

логическое представление (Logical View) ........................................................................ 24, 47, 55

обобщение............................................................................................................................. 30, 36, 62

Обобщение.................................................................................................................................. 36, 64

однонаправленная ассоциация....................................................................................................... 22

операции........................................................................................................................................... 27

Операции.......................................................................................................................................... 40

Отображение классов на компоненты..................................................................................... 66, 68

Прецедент......................................................................................................................................... 19

Проверка модели на отсутствие ошибок................................................................................. 66, 67

программный код............................................................................................................................. 66

рабочий интерфейс программы...................................................................................................... 12

символ синхронизации............................................................................................................. 48, 53

Специальная панель инструментов............................................................................................... 16

спецификации атрибута.................................................................................................................. 39

спецификации свойств ассоциации.............................................................................................. 32

Стандартная панель инструментов................................................................................................ 12

стереотип.......................................................................................................................................... 39

тип данных атрибута....................................................................................................................... 39

файл реализации ............................................................................................................................. 72

элемент принятия решения (ветвления)........................................................................................ 52

Элемент принятия решения (ветвления)....................................................................................... 52

язык реализации............................................................................................................................... 69

Assign................................................................................................................................................ 68

Main (Главная)........................................................................................................................... 24, 68

Activity diagram (диаграммы активности)....................................................................................... 9

Class Attribute Specification............................................................................................................. 39

Class diagram (диаграммы классов)................................................................................................ 10

Collaboration diagram (диаграммы сотрудничества)..................................................................... 10

Component..................................................................................................................................... 7, 68

Component diagram (диаграммы компонентов)............................................................................ 11

Component View......................................................................................................................... 67, 68

Deployment diagram (диаграммы топологии).................................................................................. 8

General (Общие)................................................................................................................................ 69

Generalization.................................................................................................................................... 36

Horizontal Synchronization................................................................................................................ 53

Interaction diagram (диаграммы взаимодействия)........................................................................... 9

Language........................................................................................................................................ 4, 69

Rational Rose....................................................................................................................................... 4

Sequence diagram (диаграммы последовательностей действий)................................................... 9

State Maсhine diagram (диаграммы состояний)............................................................................... 8

TextBox ............................................................................................................................................. 56

Unidirectional Association................................................................................................................. 22

Unified Modeling Language, UML..................................................................................................... 4

Use case................................................................................................................................................ 5

Use case diagram (диаграммы прецедентов).................................................................................... 7

Use Case View .................................................................................................................................. 19


Наши рекомендации