Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторный практикум

.pdf
Скачиваний:
91
Добавлен:
10.03.2016
Размер:
1.1 Mб
Скачать

Л а б о р а т о р н ы й п р а к т и к у м

 

C A S E - с р е д с т в о R a t i o n a l R o s e

 

 

 

 

 

 

 

 

 

Entities

Boundaries

Control

 

Рисунок 7 – Главная диаграмма классов системы обработки заказов.

4.3.3.Создание диаграммы классов для сценария "Ввод нового заказа" со всеми классами

1.Щелкните правой кнопкой мыши на логическом представлении браузера.

2.В открывшемся меню выберите пункт New > Class Diagram.

3.Назовите новую диаграмму классов Add New Order (Введение нового заказа).

4.Двойным щелчком в браузере по этой диаграмме откройте ее.

5.Перетащите из браузера все классы: OrderOptions, OrderDetail, Order, OrderMgr и TransactionMgr.

Диаграмма классов должна выглядеть как на рисунке 8.

Рисунок 8 – Диаграмма классов Add New Order

4.3.4.Добавление стереотипов к классам

1.Щелкните правой кнопкой мыши на классе OrderOptions диаграммы.

2.В открывшемся меню выберите пункт Open Specification.

3.В поле стереотипа введите слово Boundary.

4.Нажмите кнопку ОК.

5.Щелкните правой кнопкой мыши на классе OrderDetail диаграммы.

6.В открывшемся меню выберите пункт Open Specification.

7.В раскрывающемся списке стереотипов теперь выберите стереотип Boundary.

8.Нажмите кнопку ОК.

9.Повторите этапы 1 – 4, связав классы OrderMgr и TransactionMgr со стереотипом Control, а класс Order – со стереотипом Entity.

2 1

В С Г У Т У

К а ф е д р а с и с т е м и н ф о р м а т и к и

 

 

Теперь диаграмма классов должна выглядеть как на рисунке 9.

Рисунок 9 – Стереотипы классов для варианта использования Ввод нового заказа

4.3.5. Объединение классов в пакеты

Перетащите в браузере:

#Класс OrderOptions в пакет Boundaries.

#Класс OrderDetail в пакет Boundaries.

#Классы OrderMgr и TransactionMgr в пакет Control.

#Класс Order в пакет Entities.

4.3.6.Добавление диаграмм классов к каждому пакету

1.Щелкните правой кнопкой по пакету Boundaries браузера.

2.В открывшемся меню выберите пункт New > Class Diagram.

3.Введите имя новой диаграммы – Main.

4.Дважды щелкните мышью по этой диаграмме, чтобы открыть ее.

5.Перетащите на нее из браузера классы OrderOptions и OrderDetail.

6.Закройте диаграмму.

7.Щелкните правой кнопкой по пакету Entities браузера.

8.В открывшемся меню выберите пункт New > Class Diagram.

9.Введите имя новой диаграммы – Main.

10.Дважды щелкните мышью по этой диаграмме, чтобы открыть ее.

11.Перетащите на нее из браузера класс Order.

12.Закройте диаграмму.

13.Щелкните правой кнопкой по пакету Control броузера.

14.В открывшемся меню выберите пункт New > Class Diagram.

15.Введите имя новой диаграммы – Main.

16.Дважды щелкните мышью на этой диаграмме, чтобы открыть ее.

19.Перетащите на нее из браузера классы OrderMgr и TransactionMgr.

19.Закройте диаграмму.

2 2

Л а б о р а т о р н ы й п р а к т и к у м C A S E - с р е д с т в о R a t i o n a l R o s e

ЛАБОРАТОРНАЯ РАБОТА 4

ТЕМА «СОЗДАНИЕ ДИАГРАММ КЛАССОВ (УЧЕТ НОВЫХ ТРЕБОВАНИЙ

1. Цель работы

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

2.Планируемые результаты обучения

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

на уровне знаний:

формулировать основные понятия и элементы диаграммы классов;

на уровне понимания:

объяснять технологию создания и модификации диаграммы классов;

на уровне применения:

уметь добавлять новые классы, атрибуты, операции в существующую диаграмму классов;

на уровне анализа:

выполнять идентификацию объектов предметной области, их атрибуты и операции;

на уровне синтеза:

систематизировать объекты по пакетам;

на уровне оценки:

различать объекты-сущности, объекты управления и граничные объекты.

3.План выполнения лабораторной работы

1.Изучение постановки задачи.

2.Настройка параметров Rational Rose.

3.Создание диаграмм классов:

добавление нового класса;

добавление атрибутов;

добавление операций к классу OrderItem;

подробное описание операций с помощью диаграммы классов;

подробное описание операций с помощью браузера;

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

2 3

В С Г У Т У

К а ф е д р а с и с т е м и н ф о р м а т и к и

 

 

4. Методические указания по выполнению работы

4.1. Постановка задачи

После того, как Карен разработала диаграмму Классов для варианта использования "Ввод нового заказа", она начала заполнять ее подробностями. В качестве языка программирования был выбран С++, что позволило добавить к классам параметры операций, типы данных и типы возвращаемых значений.

Для определения атрибутов Карен вновь обратилась к потоку событий. В результате, к классу Order диаграммы классов были добавлены атрибуты OrderNumber (номер заказа) и CustomerName (имя клиента). Она просмотрела также список заказываемых товаров. Так как в одном заказе можно указать большое количество товаров, и у каждого из них имеются свои собственные данные и поведение, Карен решила моделировать их как самостоятельные классы, а не как атрибуты класса Order.

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

: Продавец

Выбор варианта

 

Форма Детали заказа :

 

Менеджер заказов :

 

Заказ №1234 :

 

Комплект мебели :

 

Менеджер транзакций :

заказа : OrderOptions

 

OrderDetail

 

OrderMgr

 

Order

 

OrderNumber

 

TransactionMgr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1: Create( )

2: Open( )

3: SubmitInfo( )

4: Save( )

5: SaveOrder( )

6: Create( )

7: SetInfo( )

8: Create( )

9: SetInfo( )

10: SaveOrder( )

11: GetInfo( )

12: GetInfo( )

13: Commit( )

Рисунок 10 – Обновленная диаграмма последовательностей

2 4

Л а б о р а т о р н ы й п р а к т и к у м

C A S E - с р е д с т в о R a t i o n a l R o s e

 

 

В этот момент Боб решил изменить требования:

"Нам надо отслеживать дату заказа и дату его выполнения. Кроме того, так как у нас появились новые поставщики, слегка изменилась процедура инвентаризации".

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

Новые требования, связанные с датами, привели к необходимости ввести пару новых атрибутов в класс Order. После этого модель опять стала соответствовать последним предъявленным к системе требованиям.

4.2.Настройка параметров Rational Rose

1.В меню модели выберите пункт Tools > Options.

2.Перейдите на вкладку Diagram.

3.Убедитесь, что переключатель Show Visibility помечен.

4.Убедитесь, что переключатель Show Stereotypes помечен.

5.Убедитесь, что переключатель Show Operation Signatures помечен.

6.Убедитесь, что переключатели Show All Attributes и Show All Operations помечены.

7.Убедитесь, что переключатели Suppress Attributes и Suppress Operations не помечены.

8.Перейдите на вкладку Notation.

9.Убедитесь, что переключатель Visibility as Icons не помечен.

4.3.Добавление атрибутов и операций на диаграмме классов

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

4.3.1.Добавление нового класса

1.Найдите в браузере диаграмму классов варианта использования Ввод нового заказа.

2.Щелкните по ней дважды, чтобы ее открыть.

3.Нажмите кнопку Class в панели инструментов.

4.Щелкните мышью внутри диаграммы, чтобы поместить там новый класс.

5.Назовите его OrderItem (Позиция Заказа).

6.Назначьте этому классу стереотип Entity.

7.В браузере перетащите класс в пакет Entities.

4.3.2.Добавление атрибутов

1.Щелкните правой кнопкой мыши по классу Order).

2.В открывшемся меню выберите пункт New Attribute (Создать атрибут).

2 5

В С Г У Т У

К а ф е д р а с и с т е м и н ф о р м а т и к и

 

 

3.Введите новый атрибут:

#OrderNumber : Integer (Номер Заказа).

4.Нажмите клавишу Enter.

5.Повторите этапы 3 и 4, добавив атрибуты:

#CustomerName : String (Наименование Заказчика).

#OrderDate : Date (Дата Заказа).

#OrderFillDate : Date (Дата Заполнения Заказа).

7.Аналогично, добавьте атрибуты для класса OrderItem:

#ItemID : Integer (Идентификатор предмета).

#ItemDescription : String (Описание Предмета).

4.3.3.Добавление операций к классу OrderItem

1.Щелкните правой кнопкой мыши на классе OrderItem.

2.В открывшемся меню выберите пункт New Operation (Создать операцию).

3.Введите новую операцию Create.

4.Нажмите клавишу Enter.

5.Аналогично, введите операции:

#SetInfo.

#GetInfo.

4.3.4.Подробное описание операций с помощью диаграммы классов

1.Щелкните мышью по классу Order, выделив его таким способом.

2.Щелкните по этому классу еще один раз, чтобы переместить курсор внутрь.

3.Отредактируйте операцию Create(), чтобы она выглядела следующим образом:

#Create() : Boolean.

4.Отредактируйте операцию SetInfo(), чтобы она выглядела следующим образом:

#SetInfo : (OrderNum: Integer, Customer: String, OrderDate: Date, FillDate: Date): Boolean.

5.Отредактируйте операцию GetInfo(), чтобы она выглядела следующим образом:

#GetInfo() : String.

4.3.5.Подробное описание операций с помощью браузера

1.Найдите в браузере класс OrderItem.

2.Чтобы раскрыть этот класс, щелкните на значке "+" рядом с ним. В браузере появятся его атрибуты и операции.

3.Дважды щелкните по операции GetIInfo(), чтобы открыть окно ее спецификации.

4.В раскрывающемся списке Return class (возвращаемый класс) укажите String.

5.Щелкните по кнопке ОК, закрыв окно спецификации операции.

6.Дважды щелкните в браузере по операции SetInfo класса OrderItem, чтобы открыть окно ее спецификации.

7.В раскрывающемся списке Return class укажите Boolean.

8.Перейдите во вкладку Detail (Подробно).

9.Щелкните правой кнопкой мыши на белом поле в области аргументов, чтобы добавить туда новый параметр.

10.В открывшемся меню выберите пункт Insert. Rose добавит туда аргумент под названием argname.

2 6

Л а б о р а т о р н ы й п р а к т и к у м

C A S E - с р е д с т в о R a t i o n a l R o s e

 

 

11.Щелкните на этом слове, чтобы выделить его, и измените имя аргумента на ID.

12.Щелкните по колонке Type, открыв раскрывающийся список типов. В нем выберите тип Integer.

13.Щелкните по колонке Default, чтобы добавить значение аргумента по умолчанию. Введите туда число 0.

14.Нажмите кнопку ОК, закрыв окно спецификации операции.

15.Дважды щелкните по операции Create() класса OrderItem, чтобы открыть окно ее спецификации.

16.В раскрывающемся списке Return class укажите Boolean.

17.Нажмите на кнопку ОК, закрыв окно спецификации операции.

4.3.6.Подробное описание операций с помощью любого из описанных методов

1.Используя браузер или диаграмму классов, введите следующую сигнатуру операций класса OrderDetail:

#Open() : Boolean.

#SubmitInfo() : Boolean.

#Save() : Boolean.

2.Аналогично, введите сигнатуру операций класса OrderOptions:

#Create() : Boolean.

3.Введите сигнатуру операций класса OrderMgr:

#SaveOrder(OrderID : Integer) : Boolean.

4.Введите сигнатуру операций класса TransactionMgr:

#SaveOrder(OrderID : Integer) : Boolean.

#Commit() : Integer.

2 7

В С Г У Т У

К а ф е д р а с и с т е м и н ф о р м а т и к и

 

 

ЛАБОРАТОРНАЯ РАБОТА 5

ТЕМА «СОЗДАНИЕ ДИАГРАММ КЛАССОВ

(ДОБАВЛЕНИЕ СВЯЗЕЙ МЕЖДУ КЛАССАМИ

1. Цель работы

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

2.Планируемые результаты обучения

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

на уровне знаний:

формулировать основные понятия и элементы диаграммы классов;

на уровне понимания:

объяснять технологию создания и модификации диаграммы классов;

на уровне применения:

уметь устанавливать связи между классами;

на уровне анализа:

выполнять идентификацию объектов предметной области, их атрибуты и операции;

на уровне синтеза:

систематизировать объекты по пакетам;

на уровне оценки:

различать объекты-сущности, объекты управления и граничные объекты.

3.План выполнения лабораторной работы

1.Изучение постановки задачи.

2.Настройка параметров Rational Rose.

3.Создание диаграмм классов:

добавление нового класса;

добавление атрибутов;

добавление операций к классу OrderItem;

подробное описание операций с помощью диаграммы классов;

подробное описание операций с помощью браузера;

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

2 8

Л а б о р а т о р н ы й п р а к т и к у м

C A S E - с р е д с т в о R a t i o n a l R o s e

 

 

4. Методические указания по выполнению работы

4.1. Постановка задачи

После добавления к классам атрибутов и операций Карен была уже почти готова к генерации кода.

Сначала, однако, она должна была изучить связи между классами.

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

4.2. Добавление связей

Добавим связи к классам, принимающим участие в варианте использования Ввод нового заказа.

4.2.1.Настройка параметров

1.Найдите в браузере диаграмму классов Add New Order.

2.Дважды щелкните по ней, чтобы открыть ее.

3.Проверьте, имеется ли в панели инструментов диаграммы кнопка Unidirectional Association. Если ее нет, продолжайте настройку, выполнив этапы 4 и 5. Если есть, приступайте к выполнению самого упражнения.

4. Щелкните правой кнопкой мыши на панели инструментов диаграммы и

воткрывшемся меню выберите пункт Customize.

5.Добавьте в панель кнопку, называющуюся Create A Unidirectional Association.

4.2.2. Добавление ассоциаций

1.Нажмите кнопку панели инструментов Unidirectional Association.

2.Нарисуйте ассоциацию от класса OrderOptionsк классу OrderDetail.

3.Повторите этапы 1 и 2, создав ассоциации:

#От класса OrderDetail к классу OrderMgr.

#От класса OrderMgr к классу Order.

#От класса OrderMgr к классу TransactionMgr.

#От класса TransactionMgr к классу Order.

#От класса TransactionMgr к классу OrderItem.

#От класса Order к классу OrderItem.

4.Щелкните правой кнопкой мыши по однонаправленной ассоциации между классами OrderOptions и OrderDetail со стороны класса OrderOptions.

5.В открывшемся меню выберите пункт Multiplicity > Zero or One.

6.Щелкните правой кнопкой мыши на другом конце однонаправленной ассоциации.

7.В открывшемся меню выберите пункт Multiplicity > Zero or One.

8.Повторите этапы 4–7, добавив на диаграмму значения множественности для остальных ассоциаций, как показано на рисунке 11.

2 9

В С Г У Т У

К а ф е д р а с и с т е м и н ф о р м а т и к и

 

 

Рисунок 11 – Ассоциации сценария Ввод нового заказа

4.2.3. Добавление операций к классу OrderItem

1.Щелкните правой кнопкой мыши на классе OrderItem.

2.В открывшемся меню выберите пункт New Operation (Создать операцию).

3.Введите новую операцию Create.

4.Нажмите клавишу Enter.

5.Введите операцию SetInfo.

6.Нажмите клавишу Enter.

7.Введите операцию GetInfo.

3 0