Лабораторная работа №5 rrose. Создание диаграмм классов (учет новых требований) Цель и - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Практическая работа №5 rrose. Создание диаграмм классов (учет новых... 1 66.52kb.
Лабораторная работа №4: Наследование в объектно-ориентированном программировании 1 95.82kb.
Отчет о работе Федерального государственного бюджетного 1 408.79kb.
Описание мероприятия. Литературно-музыкальная композиция адресована... 1 139.42kb.
Лабораторная работа №1 Создание текстового документа. Форматирование. 1 60.41kb.
Программа недели начинающих дизайнеров grass design week 2013 1 71.42kb.
Лабораторная работа Лабораторная работа Основы теории множеств 7 1675.01kb.
Лабораторная работа №2 Разработка требований к информационной системе 1 227.52kb.
Лабораторная работа №1 Построение детерминированного синтаксического... 1 279.02kb.
Лабораторная работа №1 Установка и настройка сетевой карты. 1 58.04kb.
Лабораторная работа №2 цикл карно цель работы: изучение работы идеальной... 1 40.65kb.
Лекция № § Логический (Булевый) тип данных. Основные сведения. 1 37.03kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Лабораторная работа №5 rrose. Создание диаграмм классов (учет новых требований) Цель - страница №1/1


Лабораторная работа №5
RROSE. СОЗДАНИЕ ДИАГРАММ КЛАССОВ

(УЧЕТ НОВЫХ ТРЕБОВАНИЙ)



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

Заполним разработанную диаграмму Классов подробностями, т.е. добавим к классам параметры операций, типы данных и типы возвращаемых значений. В частности, к классу Order диаграммы Классов добавим атрибуты Order Number (номер заказа) и Customer Name (Имя клиента), Order Date (дата заказа) и Order Fill Date (дата выполнения заказа).

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

Добавим связи между классами на диаграмму Классов в соответствии с взаимодействием классов диаграммы Последовательности.


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

Ассоциации представляют собой связи между экземплярами классов (личность работает в компании, компания имеет ряд офисов).

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

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

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



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

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

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


Настройка


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

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

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

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

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

Рис.31 - Обновленная диаграмма Последовательностей


  1. Перейдите на вкладку Notation (Примечания).

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

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


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

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

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

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

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

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

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

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


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

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

  3. Введите новый атрибут OrderNumber: Integer (НомерЗаказа)

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

  5. Введите следующий атрибут CustomerName: String (НаименованиеЗаказчика).

  6. Повторите этапы 4 и 5, добавив атрибуты OrderDate: Date (ДатаЗаказа) и OrderFillDate: Date (ДатаЗаполненияЗаказа).

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

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

  9. Введите новый атрибут ItemID: Integer (ИдентификаторПредмета).

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

  11. Введите следующий атрибут ItemDescription: String (ОписаниеПредмета).

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


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

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

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

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

  5. Введите следующую операцию SetInfo

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

  7. Введите следующую операцию GetInfo.

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Open(): Boolean

SubmitInfo(): Boolean

Save(): Boolean


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

Create(): Boolean

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

SaveOrder(OrderID: Integer): Boolean

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

SaveOrder(OrderID: Integer): Boolean

Commit(): Integer


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


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

  2. Нарисуйте ассоциацию от класса ВыборЗаказа (OrderOptions) к классу ДеталиЗаказа (OrderDetail).

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

# От класса OrderDetail к классу МенеджерЗаказов (OrderMgr)

# От класса OrderMgr к классу Заказ (Order)

# От класса OrderMgr к классу МенеджерТранзакций (TransactionMgr)

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

# От класса TransactionMgr к классу ПозицияЗаказа (OrderItem)

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



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

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

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

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

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


Задание

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


Контрольные вопросы

  1. Что представляет собой ассоциация?

  2. В чем смысл множественности ассоциаций?

  3. В чем отличие атрибутов от ассоциаций?

  4. Что представляет собой операция класса?




Рис.32 - Ассоциации сценария "Ввести новый заказ"