Спецификация атрибутов и операций для класса Транзакция Банкомата 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Спецификация атрибутов и операций для класса Транзакция Банкомата



Чтобы закончить спецификацию класса Транзакция Банкомата аналогичным способом следует добавить еще 3 атрибута и 2 операции со следующими свойствами:

  • значение ПИН-кода карточки с квантором видимости public. В качестве типа этого атрибута следует выбрать тип Integer (целочисленный), а в секцию документации атрибута ввести поясняющий текст: "Устройство чтения карточки считывает значение этого атрибута с кредитной карточки клиента".
  • введенный ПИН-код с квантором видимости public. В качестве типа этого атрибута следует выбрать тип Integer (целочисленный), а в секцию документации атрибута ввести поясняющий текст: "Значение этого атрибута вводится клиентом с клавиатуры банкомата".
  • введенная сумма наличных с квантором видимости public. В качестве типа этого атрибута следует выбрать тип Currency (Денежный), а в секцию документации атрибута ввести поясняющий текст: "Значение этого атрибута вводится клиентом с клавиатуры банкомата".
  • проверить правильность ПИН-кода() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический), а в секцию ее документации ввести поясняющий текст: "Вызывается после того, как клиент ввел значение ПИН-кода с клавиатуры банкомата".
  • завершить транзакцию() с квантором видимости public. В секцию ее документации ввести поясняющий текст: "Вызывается после завершения всех действий банкомата по обслуживанию клиента".

Выполнить эти действия предлагается читателям самостоятельно. Соответствующий фрагмент диаграммы классов после добавления и спецификации атрибутов и операций для класса Транзакция Банкомата будет иметь следующий вид (рис. 5.6).


Рис. 5.6. Фрагмент диаграммы классов модели банкомата после добавления атрибутов и операций для класса Транзакция банкомата

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

 


 

3. Добавление отношений на диаграмму классов и редактирование их свойств. 1. Добавление ассоциации на диаграмму классов и редактирование ее свойств. 2. Добавление отношений агрегации и композиции и редактирование их свойств. 3. Добавление отношения обобщения и редактирование его свойств. 4. Окончательное построение диаграммы классов модели банкомата.
Диаграмма классов является логическим представлением структуры модели, поэтому она должна содержать столько классов, сколько необходимо для реализации всего проекта. При этом для полного представления структуры модели необходимо установить и специфицировать отношения между классами. Этой теме и посвящена настоящая лекция. Добавление ассоциации на диаграмму классов и редактирование ее свойств Добавление на диаграмму ассоциации между двумя классами выполняется следующим образом. На специальной панели инструментов необходимо нажать кнопку с изображением пиктограммы направленной ассоциации и отпустить левую кнопку мыши. Если ассоциация - направленная, то на диаграмме классов надо выделить первый элемент ассоциации или источник, от которого исходит стрелка, и, не отпуская нажатую левую кнопку мыши, переместить ее указатель ко второму элементу отношения или приемнику, к которому направлена стрелка. После перемещения ко второму элементу кнопку мыши следует отпустить, в результате чего на диаграмму классов будет добавлена направленная ассоциация с именем Untitled между двумя выбранными классами. Продолжая разработку диаграммы классов модели банкомата, добавим на нее описанным способом направленную ассоциацию между классом Контроллер Банкомата и классом Транзакция Банкомата (рис. 6.1). Рис. 6.1. Фрагмент диаграммы классов модели банкомата после добавления на неё направленной ассоциации Изменим имя для данной ассоциации, предложенное средой по умолчанию. Это можно выполнить с помощью окна спецификации свойств ассоциации. Доступ к диалоговому окну спецификации свойств ассоциации Association Specification можно получить после выделения линии ассоциации на диаграмме классов или в браузере проекта и двойного щелчка на ней левой кнопки мыши (рис. 6.2). Рис. 6.2. Диалоговое окно спецификации свойств ассоциации Для задания имени ассоциации следует на вкладке General (Общие) в поле ввода Name (Имя) ввести текст ее имени: Создает и нажать кнопку Apply или OK, чтобы сохранить результаты редактирования имени ассоциации. Для ассоциации можно задать также кратность каждого из концов ассоциации, стереотип, использовать ограничения и роли, а также некоторые другие свойства. Для добавленной на диаграмму классов ассоциации зададим кратность конца ассоциации у класса Контроллер Банкомата, равную 1. Для этого следует в окне спецификации свойств ассоциации перейти на вкладку Role B Detail и выбрать значение 1 из вложенного списка Multiplicity. Аналогичным образом следует задать кратность конца ассоциации у класса Транзакция Банкомата равную 1..n, для чего на вкладке Role A Detail и следует выбрать значение 1..n из вложенного списка Multiplicity. Содержательно это будет означать, что каждый объект класса Контроллер Банкомата может быть связан с одним или несколькими объектами класса Транзакция Банкомата. Если ассоциация является ненаправленной, то порядок выбора классов может быть произвольный, а после добавления ассоциации на диаграмму классов следует изменить значение соответствующего свойства данной ассоциации. С этой целью необходимо перейти на вкладку Role A Detail в окне спецификации свойств ассоциации и убрать отметку у свойства Navigable (Навигация). Добавление отношений агрегации и композиции на диаграмму классов и редактирование их свойств Добавить на диаграмму отношение агрегации между двумя классами можно следующими способами:
  • Щелкнуть на кнопке с изображением отношение агрегации на специальной панели инструментов и провести линию агрегации от одного класса к другому.
  • Провести линию ассоциации между выбранными классами и изменить ее свойства таким образом, чтобы превратить данную ассоциацию в агрегацию.
В первом случае может оказаться, что по умолчанию на специальной панели инструментов диаграммы классов отсутствует кнопка с пиктограммой агрегации. В этом случае необходимо предварительно добавить ее на панель инструментов одним из описанных ранее способов. Во втором случае следует открыть окно спецификации свойств ассоциации Association Specification и на вкладке деталей соответствующего конца ассоциации выставить отметку в строке выбора Aggregate (Агрегация). В качестве примера изменим тип созданной ранее ассоциации и сделаем ее агрегацией. Содержательно это будет означать, что класс Контроллер Банкомата будет включать в себя в качестве составной части класс Транзакция Банкомата; при этом уничтожение любого объекта класса Контроллер Банкомата не должно привести к уничтожению ассоциированных с ним объектов класса Транзакция Банкомата. С этой целью на вкладке Role B Detail деталей конца ассоциации класса Контроллер Банкомата следует выставить отметку в строке выбора Aggregate(рис. 6.3). Рис. 6.3. Диалоговое окно спецификации свойств ассоциации Соответствующий фрагмент диаграммы классов после изменения ассоциации между классами Контроллер Банкомата и Транзакция Банкомата на отношение агрегации будет иметь следующий вид (рис. 6.4). Рис. 6.4. Фрагмент диаграммы классов модели банкомата после добавления на нее отношения агрегации Для изображения отношения композиции можно также вначале изобразить обычную ассоциацию, после чего, открыв окно ее свойств на вкладке деталей соответствующего конца ассоциации, (рис. 6.3) выставить отметку в строке выбора Aggregate (Агрегация) и в секции Containment (Локализация) выбрать опцию By Value (По значению). По умолчанию эта опция не специфицирована, т.е. выставлена отметка опции Unspecified. Добавление отношения обобщения на диаграмму классов и редактирование ее свойств Добавление на диаграмму отношения обобщения между двумя классами выполняется следующим образом. На специальной панели инструментов необходимо нажать кнопку с изображением пиктограммы обобщения и отпустить левую кнопку мыши. Далее на диаграмме классов надо выделить первый элемент обобщения или потомок, от которого исходит стрелка, и, не отпуская нажатую левую кнопку мыши, переместить ее указатель ко второму элементу отношения или предку, к которому направлена стрелка. После перемещения ко второму элементу кнопку мыши следует отпустить, в результате чего на диаграмму классов будет добавлена линия обобщения с именем Untitled между двумя выбранными классами. Продолжая разработку диаграммы классов модели банкомата, добавим на нее описанным способом направленную ассоциацию между классом Контроллер Банкомата и дополнительно созданным абстрактным классом Контроллер (рис. 6.5). Последний класс может быть предназначен для спецификации системных атрибутов и операций, необходимых при исполнении соответствующей программы. Напомним, что на абстрактный характер класса указывает написание курсивом его имени, а для спецификации данного свойства класса необходимо на вкладке Detail (Подробно) окна спецификации свойств класса Контроллер выставить отметку в строке выбора Abstract. Рис. 6.5. Диаграмма классов модели банкомата после добавления на неё отношения обобщения Изменим имя отношения обобщения, предложенное средой по умолчанию. Это можно выполнить с помощью окна спецификации свойств обобщения. Доступ к диалоговому окну спецификации свойств отношения обобщения Generalize Specification можно получить после выделения линии обобщения на диаграмме классов или в браузере проекта и двойного щелчка на ней левой кнопки мыши (рис. 6.6). Рис. 6.6. Диалоговое окно спецификации свойств отношения обобщения Для задания имени обобщения следует на единственной вкладке General (Общие) в поле ввода Name (Имя) ввести текст ее имени: Наследует и нажать кнопку Apply или OK, чтобы сохранить результаты редактирования имени ассоциации. Окончательное построение диаграммы классов модели банкомата Для окончательного построения диаграммы классов рассматриваемой модели банкомата следует описанным выше способом добавить оставшиеся классы и ассоциации, а также специфицировать стереотипы, атрибуты и операции этих классов. С этой целью следует выполнить следующие действия:
  1. Для класса IИнтерфейс Банка добавить операцию: проверить идентификатор карточки (идентификатор карточки: Integer) с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический), а в качестве целочисленного аргумента задать идентификатор карточки. Для задания аргумента необходимо перейти на вкладку Detail (Подробно) окна спецификации свойств даной операции и после добавления аргумента с помощью операции контекстного меню Insert ввести имя аргумента и его тип Integer в соответствующие поля ввода.
  2. Для класса IИнтерфейс Банка добавить операцию: открыть счет клиента (идентификатор карточки: Integer) с квантором видимости public. В качестве целочисленного аргумента этой операции следует задать идентификатор карточки.
  3. Для класса IИнтерфейс Банка добавить операцию: проверить баланс клиента (идентификатор карточки: Integer, введенная сумма наличных: Currency) с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический). В качестве первого целочисленного аргумента этой операции следует задать идентификатор карточки, а в качестве второго аргумента - введенная сумма наличных с типом Currency (Денежный).
  4. Для класса IИнтерфейс Банка добавить операцию: уменьшить счет клиента (идентификатор карточки: Integer, введенная сумма наличных: Currency) с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический). В качестве первого целочисленного аргумента этой операции следует задать идентификатор карточки, а в качестве второго аргумента - введенная сумма наличных с типом Currency (Денежный).
  5. Для класса Устройство чтения карточки добавить операцию: прочитать идентификатор карточки() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Integer (целочисленный), а в секцию документации данной операции следует ввести поясняющий текст: "Вызывается после того, как кредитная карточка вставлена в Устройство чтения карточки".
  6. Для класса Устройство чтения карточки добавить операцию: прочитать ПИН-код() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Integer (целочисленный), а в секцию документации данной операции следует ввести поясняющий текст: "Вызывается после того, как кредитная карточка вставлена в Устройство чтения карточки".
  7. Для класса Устройство чтения карточки добавить операцию: вернуть кредитную карточку() с квантором видимости public. В секцию документации данной операции следует ввести поясняющий текст: "Вызывается после завершения транзакции".
  8. Для класса Устройство чтения карточки добавить операцию: блокировать кредитную карточку() с квантором видимости public. В секцию документации данной операции следует ввести поясняющий текст: "Вызывается после того, как установлен факт утраты кредитной карточки владельцем".
  9. Добавить класс с именем Экран Банкомата, для которого выбрать стереотип boundary. Данный класс также находится на границе моделируемой системы, на что и указывает этот стереотип. В секцию документации данного класса следует ввести поясняющий текст: "Устанавливается на банкомате".
  10. Для класса Экран Банкомата добавить операцию: показать меню опций() с квантором видимости public.
  11. Для класса Экран Банкомата добавить операцию: показать меню снятия суммы() с квантором видимости public.
  12. Добавить класс с именем Клавиатура Банкомата, для которого выбрать стереотип boundary. В секцию документации данного класса следует ввести поясняющий текст: "Устанавливается на банкомате".
  13. Для класса Клавиатура Банкомата добавить операцию: ввести ПИН-код() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Integer, а в секцию документации данной операции следует ввести поясняющий текст: "Вызывается после того, как клиент ввел значение ПИН-кода с клавиатуры".
  14. Для класса Клавиатура Банкомата добавить операцию: ввести тип транзакции() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический), а в секцию документации данной операции следует ввести поясняющий текст: "Возвращает значение Истина, если клиент выбирает снятие наличных, и значение Ложь, если клиент выбирает получение справки о состоянии счета".
  15. Для класса Клавиатура Банкомата добавить операцию: ввести сумму снятия наличных() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Currency (Денежный), а в секцию документации данной операции следует ввести поясняющий текст: "Вызывается после того, как клиент ввел значение снимаемой суммы с клавиатуры".
  16. Добавить класс с именем Устройство выдачи наличных, для которого выбрать стереотип boundary. В секцию документации данного класса следует ввести поясняющий текст: "Устанавливается на банкомате".
  17. Для класса Устройство выдачи наличных добавить операцию: выдать наличные() с квантором видимости public. В секцию документации данной операции следует ввести поясняющий текст: "Вызывается после того, как выполнено снятие запрошенной клиентом суммы со счета".
  18. Добавить класс с именем Принтер Банкомата, для которого выбрать стереотип boundary. В секцию документации данного класса следует ввести поясняющий текст: "Устанавливается на банкомате".
  19. Для класса Принтер Банкомата добавить операцию: распечатать чек() с квантором видимости public. В секцию документации данной операции следует ввести поясняющий текст: "Вызывается по дополнительному запросу клиента".
  20. Добавить направленную ассоциацию от класса Контроллер Банкомата к классу Устройство чтения карточки. В качестве кратности концов этой ассоциации установить значение 1.
  21. Добавить направленную ассоциацию от класса Контроллер Банкомата к классу Принтер Банкомата. В качестве кратности концов этой ассоциации установить значение 1.
  22. Добавить направленную ассоциацию от класса Контроллер Банкомата к классу Клавиатура Банкомата. В качестве кратности концов этой ассоциации установить значение 1.
  23. Добавить направленную ассоциацию от класса Контроллер Банкомата к классу Устройство выдачи наличных. В качестве кратности концов этой ассоциации установить значение 1.
  24. Добавить направленную ассоциацию от класса Контроллер Банкомата к классу Экран Банкомата. В качестве кратности концов этой ассоциации установить значение 1.
  25. Добавить направленную ассоциацию от класса Контроллер Банкомата к классу IКонтроллер Банка. В качестве кратности конца этой ассоциации для первого класса установить значение 0..n, а кратности конца ассоциации для второго класса установить значение 1. В качестве стереотипа данной ассоциации выбрать из вложенного списка значение <<communicate>>. Применение данного стереотипа означает, что между этими классами должна существовать физическая взаимосвязь.
Выполнить эти действия предлагается читателям самостоятельно. Построенная в результате указанных действий диаграмма классов будет иметь следующий вид (рис. 6.7). Рис. 6.7. Окончательный вид диаграммы классов для разрабатываемой модели банкомата Следует заметить, что при изображении диаграммы классов все классы представлены в форме графических стереотипов, при этом выбран способ отображения сигнатуры операций классов. Для более компактного представления диаграммы можно убрать отображение атрибутов, операций или сигнатуры операций отдельных классов с помощью соответствующих операций контекстного меню Options (Настройка).

 


 

4. Лабораторная работа №4 Диаграммы кооперации и последовательности   1. Диаграмма кооперации 1. Особенности разработки диаграмм кооперации в среде IBM Rational Rose 2003. 2. Добавление объекта на диаграмму кооперации и редактирование его свойств. 3. Добавление сообщения и редактирование его свойств. 4. Виды сообщений между объектами и их графические стереотипы. 5. Реализация вариантов использования в форме диаграммы кооперации. 6. Пример построения диаграммы кооперации для модели банкомата.
Особенности разработки диаграмм кооперации в среде IBM Rational Rose 2003 Диаграмма кооперации является разновидностью диаграммы взаимодействия, и в контексте языка UML описывает динамический аспект взаимодействия объектов при реализации отдельных вариантов использования. Общие рекомендации по построению диаграммы кооперации были рассмотрены в лекции 7 курса «Основы объектно-ориентированного моделирования в нотации UML». Активизировать рабочее окно диаграммы кооперации в программе IBM Rational Rose 2003 можно несколькими способами:
  • Щелкнуть на кнопке с изображением диаграммы взаимодействия на стандартной панели инструментов и выбрать для построения новую диаграмму кооперации.
  • Выполнить операцию главного меню: Browse Interaction Diagram (Браузер Диаграмма взаимодействия) и выбрать для построения новую диаграмму кооперации.
  • Выполнить операцию контекстного меню: New Collaboration Diagram (Новая Диаграмма кооперации) для логического представления или представления вариантов использования в браузере проекта.
При этом появляется новое окно с чистым рабочим листом диаграммы кооперации и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы кооперации (табл. 7.1). Назначение отдельных кнопок панели можно узнать из всплывающих подсказок.
Таблица 7.1. Назначение кнопок специальной панели инструментов диаграммы кооперации
Графическое изображение Всп ывающая подсказка Назначение кнопки
Selection Tool Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме
Text Box Добав яет на диаграмму текстовую область
Not Добавля т на диаграмму примечание
  nchor Note to Item Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы
Object Добавляет на диаграмму объект
Class Instance Д бавляет на диаграмму экземпляр класса
Ob ect ink Добавляет на диаграмму связь
Link To Self Добавляет на диаграмму рефлексивную связь
Link Message Добавляет на связь диаграммы прямое сообщение
Reverse Link Message Добавляет на связь диаграммы обратное сообщение
Data Token Добавляет на связь диаграммы элемент прямого потока данных
Reverse Data Token Добавляет на связь диаграммы элемент обратного потока данных

На специальной панели инструментов по умолчанию присутствуют практически все кнопки с пиктограммами элементов, которые могут быть использованы для построения диаграммы. В данной лекции в качестве примера рассматривается процесс построения диаграммы кооперации, которая представляет собой реализацию варианта использования Снятие наличных по кредитной карточке применительно к разрабатываемому проекту системы управления банкоматом. В модели данная диаграмма кооперации соответствует этому варианту использования и может быть размещена в представлении вариантов использования (Use Case View). После активизации новой диаграммы кооперации одним из описанных выше способов следует в качестве имени данной диаграммы задать: Снятие наличных по кредитной карточке.

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



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 374; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.86.138 (0.009 с.)