Построение с помощью программы Rational Rose UML диаграммы, изображающей простой графический редактор.
На данном лабораторном занятии мы познакомимся с заданием параметров операций классов: аргументов, а так же возвращаемых значений.
Используя логическое представление (Logical View) — создадим Диаграмму классов - вспоминаем второе и третье лабораторные занятия.
В простейшем графическом редакторе будем использовать следующие основные классы:
1 Фигура;
2 Елемент фигуры;
3 Точка;
4 Линия.
Создадим все описанные выше классы (Рис.1.1).
Рис. 1.1 Создание класса и Браузер проектов – отображает все зозданные классы
Получим:
Рис. 1.2 Окно диаграммы классов – отображает все созданные классы
Давайте озаглавим нашу диаграмму - “Display”
Для этого воспользуемся инструментом TextBox(Рис.1.2) на специальной панели инструментов. Чтобы изменить стиль форматирования надписи воспользуемся
пунктом всплывающего меню Format...->Font...(Рис.2.1)
Рис.2.1 Всплывающее меню объекта TextBox
Рис.2.2 Сделаем текст жирным, подчеркнутым и 12м шрифтом
Теперь в каждом классе добавим операции, пользуясь навыками, полученными на третьем лабораторном занятии (Рис.3.1).Начнем с класса Figure (Рис.3.2)
Рис.3.1 Добавление операции класса Figure
Рис.3.2 Операции класса Figure
Для класса FirureElement добавим следующие операции:
- moveBy(int, int);
Здесь мы сталкиваемся с аргументами операции – оба целочисленного типа. (Рис.3.3)
Для операций классов можно задать: аргументы и их тип, тип возвращаемого результата, стереотип операции, а также определить протокол и размер, задать исключительные ситуации, специфицировать предусловия и постусловия и целый ряд других свойств. Для отдельной операции эти дополнительные свойства доступны для редактирования на вкладке Detail (Подробно) диалогового окна спецификации свойств выбранной операции (Рис. 3.4).
Рис.3.3 Задание дополнительных свойств (спецификаций) операции moveBy
На вкладке Detail в многостраничном поле Arguments (Аргументы) можно определить аргументы редактируемой операции. Для этого следует выполнить операцию контекстного меню Insert (Вставить – Рис.3.4). После этого в этом поле появится аргумент данной операции с именем по умолчанию argname. Для редактирования свойств аргумента предназначено специальное окно свойств аргумента.
Рис.3.4 Задание аргументов операции moveBy
Операция moveBy – перемещает объект в точку экрана с координатами (X:integer;Y:integer) – так зададим же их параметры – Рис.3.5
Рис.3.5 Задание типа аргумента операции moveBy
Теперь, если мы посмотрим на диаграмму классов – то у операции класса Figure Element не увидим созданных аргументов. Они “покажутся”, если “кликнуть” один раз на самой операции класса (Рис.3.6)
Рис.3.6 Отображение аргументов операции moveBy класса Figure Element
Теперь зададим аргументы для всех операций имеющихся классов.
Для класса 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).
Рис.3.7 Операции классов Point и Line
Получим следующий вид диаграммы классов – Рис.4.1
Рис.4.1 Диалоговое окно диаграммы классов
Осталось только установить взаимосвязи между имеющимися классами.
(Вспоминаем первое и второе лабораторные занятия – Рис.5.1 и 5.2 и 5.3).
В этой лабораторной работе мы будем использовать два типа отношений (взаимосвязей):
- ассоциацию;
- обобщение.
Рис.5.1 Диалоговое окно диаграммы классов – связь “Ассоциация”
Рис.5.2 Диалоговое окно диаграммы классов – связь “ко многим” (“много” или *)
Рис.5.3 Диалоговое окно диаграммы классов – связь “Обобщение”
Рис.5.3 Диалоговое окно диаграммы классов – связь “Обобщение”
Итоговый вид диаграммы классов простейшего графического редактора:
Рис.5.4 Диаграмма классов простейшего графического редактора
ШЕСТОЕ ЛАБОРАТОРНОЕ ЗАНЯТИЕ
Тема:
Простой пример генерации программного кода в среде IBM Rational Rose
Генерировать программный код на данном лабораторном занятии будем на примере задания пятой лабораторной работы — простейшего графического редактора. (Откройте созданный ранее проект (Рис. 1.1).) Рис. 1.1 Диаграмма классов – пример простого графического редактора Общая последовательность действий, которые необходимо выполнить для генерации программного кода в среде IBM Rational Rose, состоит из следующих этапов:
|
Рис. 3.2Окно выбора классов для генерации программного кода
Для просмотра и редактирования созданных файлов с текстом программного кода на языке ANSI C++ предназначен встроенный текстовый редактор, который можно открыть с помощью операции контекстного меню: ANSI C++ Browse Header_ (Язык ANSI C++ Просмотреть заголовочный файл) или ANSI C++ Browse Body_ (Язык ANSI C++ Просмотреть файл реализации) для выбранного класса в браузере проекта.
После генерации программного кода для компонента MainPaint.exe каждому классу, реализованному в данном компоненте, будет соответствовать 2 файла с текстом кода на языке ANSI C++ (Рис.3.3):
· заголовочный файл с расширением «h»;
· файл реализации с расширением «cpp».
Рис. 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 диаграммы в Rational Rose” Сергея Трофимова (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