11626

Добавление отношений на диаграмму классов и редактирование их свойств

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа №2 часть3 Добавление отношений на диаграмму классов и редактирование их свойств Диаграмма классов является логическим представлением структуры модели поэтому она должна содержать столько классов сколько необходимо для реализации всего проек

Русский

2013-04-10

183 KB

2 чел.

Лабораторная работа №2, часть3

Добавление отношений на диаграмму классов и редактирование их свойств 

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

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

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

Продолжая разработку диаграммы классов модели банкомата, добавим на нее описанным способом направленную ассоциацию между классом Контроллер Банкомата и классом Транзакция Банкомата (рис. 5.1).


Рис. 5.1.  Фрагмент диаграммы классов модели банкомата после добавления на неё направленной ассоциации

Изменим имя для данной ассоциации, предложенное средой по умолчанию. Это можно выполнить с помощью окна спецификации свойств ассоциации. Доступ к диалоговому окну спецификации свойств ассоциации Association Specification можно получить после выделения линии ассоциации на диаграмме классов или в браузере проекта и двойного щелчка на ней левой кнопки мыши (рис. 5.2).


Рис. 5.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(рис. 5.3).


Рис. 5.3.  Диалоговое окно спецификации свойств ассоциации

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


Рис. 5.4.  Фрагмент диаграммы классов модели банкомата после добавления на нее отношения агрегации

Для изображения отношения композиции можно также вначале изобразить обычную ассоциацию, после чего, открыв окно ее свойств на вкладке деталей соответствующего конца ассоциации, (рис. 5.3) выставить отметку в строке выбора Aggregate (Агрегация) и в секции Containment (Локализация) выбрать опцию By Value (По значению). По умолчанию эта опция не специфицирована, т.е. выставлена отметка опции Unspecified.

Добавление отношения обобщения на диаграмму классов и редактирование ее свойств

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

Продолжая разработку диаграммы классов модели банкомата, добавим на нее описанным способом направленную ассоциацию между классом Контроллер Банкомата и дополнительно созданным абстрактным классом Контроллер (рис. 5.5). Последний класс может быть предназначен для спецификации системных атрибутов и операций, необходимых при исполнении соответствующей программы. Напомним, что на абстрактный характер класса указывает написание курсивом его имени, а для спецификации данного свойства класса необходимо на вкладке Detail (Подробно) окна спецификации свойств класса Контроллер выставить отметку в строке выбора Abstract.


Рис. 5.5.  Диаграмма классов модели банкомата после добавления на неё отношения обобщения

Изменим имя отношения обобщения, предложенное средой по умолчанию. Это можно выполнить с помощью окна спецификации свойств обобщения. Доступ к диалоговому окну спецификации свойств отношения обобщения Generalize Specification можно получить после выделения линии обобщения на диаграмме классов или в браузере проекта и двойного щелчка на ней левой кнопки мыши (рис. 5.6).


Рис. 5.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>>. Применение данного стереотипа означает, что между этими классами должна существовать физическая взаимосвязь.

Построенная в результате указанных действий диаграмма классов будет иметь следующий вид (рис. 5.7).


Рис. 5.7.  Окончательный вид диаграммы классов для разрабатываемой модели банкомата

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


 

А также другие работы, которые могут Вас заинтересовать

33163. Зимняя смена, о/л «Энергия» 54 KB
  Так как север это очень красивое но в то же время и очень опасное место вы все должны уметь четко и быстро выполнять наши команды что бы не погибнуть Кольцовка что нужно взять в экспедицию на Северный полюс А теперь проверим все ли вы взяли ничего не забыли а может положили чтото лишнее Список экспедиции Проверим все ли в сборе и составим список экспедиции вот вам листы нужно написать свое имя и передать дальше Кольцовка виды передвижения по снегу Как вы думаете на чем нам придется добираться до...
33164. Авторские программы ПРОГРАММА «Тайна трех времен» 126 KB
  В деятельности мы определяем три основных компонента Времени прошлое настоящее и будущее. Главной содержательной целью может быть признано создание пространства организованного для включения детей в самостоятельную жизнь удовлетворение каждым из них своих интересов привитие навыков организации своей деятельности и времени постижение самоценности собственной личности осознание своей роли в жизни. Цель: Создание условий для обогащения опыта самоорганизации жизнедеятельности подростка. Задачи: Выявление интересов и способностей...
33165. Вечер знакомств 79 KB
  Набор команды: Садко набирает дружину Царь с царицей подданных в свое царство Капитан Врунгель команду. Творческая ромашка: детей делят на две или три команды Желтые лепестки цирк клоуны гимнасты дрессировщики жонглеры Красные лепесткитеатр инсценировать сказки ситуации . Далее все делятся на две команды. Способы деления на команды: 1 Первому игроку на ухо говорится цвет например красный.
33166. ВОЖАТОМУ НА ЗАМЕТКУ 71.5 KB
  ЛЕНИВЫЙ ВОЖАТЫЙ Ведя детей то в одно место то в другое исходя из запланированного в дне по дороге указывает рукой в разные направления и говорит: А это дети вон чо. Ведь надо отвечать на вопросы НОРМАЛЬНЫЙ ВОЖАТЫЙ В первые дни устроит игру по станциям в рамках Хозяйственного или Организационного сборов. ВОЖАТЫЙ С ФАНТАЗИЕЙ Заранее до начала смены выстроит экскурсионную программу по лагерю на всю смену продумав что показывать в первую очередь что в середине смены о чем говорить в конце. Договорится с вожатыми соседних отрядов...
33167. Возрастные особенности детей 32.5 KB
  Дети 79летнего возраста имеют следующие возрастные характеристики : высокий уровень активности; процессы возбуждения преобладают над процессами торможения; эмоциональная непосредственность; повышенная работоспособность но в то же время высокая утомляемость в следствии чего необходим отдых в течении дня ; Высокая потребность в игре движении во внешних впечатлениях; Предпочтение к шумным коллективным играм; Высокая чувствительность к критике со стороны взрослых; Сознание различий пола; Становление независимости; Развитие...
33168. Как не скучно ехать в автобусе 34.5 KB
  И если всё это время просто так сидеть и наблюдать в окно весёлой она точно не покажется. Чем же можно занять это время Вопервых уже по дороге в лагерь вожатый должен начинать формировать отряд. А самое главное на время дороги нужно придумать какоенибудь развлечение.Так как север это очень красивое но в то же время и очень опасное место вы все должны уметь четко и быстро выполнять наши команды что бы не погибнуть Кольцовка что нужно взять в экспедицию на Северный полюс А теперь проверим все ли вы взяли ничего не забыли а...
33169. КОНЦЕРТ ВОЖАТЫХ 28.5 KB
  если их нет изначально то скорее всего и не будет Основной этап: когда всю смену все говорят что нужен вожатник но кто его будет делать не понятно все кто действительно его будут делать об этом попрежнему не знают Внимание Время когда надо думать как быть с вожатником приходит нежданнонегадано как полный абзац Группа добровольцев сбивается в каком нибудь лагерном помещении и начинает судорожно перебирать все мыслимые и немыслимые варианты подготовки проведения и темы вожатника Внимание Водка и все заранее подготовленные...
33170. Чем развлекать детей 23 KB
  Например такие: Эстафеты разнообразные состязания в ловкости быстроте и силе Викторины интеллектуальные конкурсы КТД коллективное творческое дело постановки спектаклей концертов и представлений конкурсы красоты талантов разное рукоделие изготовление поделок и т. Тема: Море тогда или конкурсы могут быть связаны с морскими предметами или они могут быть объединены единой сюжетной линией морское путешествие. Тут все конкурсы так или иначе привязаны к этому предмету. Сами конкурсы 1.
33171. Центральный банк, основы его деятельности. Функции центральных банков. Активные и пассивные операции центральных банков 55.5 KB
  Функции центральных банков. Активные и пассивные операции центральных банков. Деятельность любых центральных банков как следует из анализа их исторического развития и современного положения в рыночной системе подчинена следующим основным целям: обеспечению стабильности покупательной способности и валютного курса национальной денежной единицы ликвидности банковской системы созданию эффективного и бесперебойного ведения расчетов включая расчеты наличными деньгами. Центральный банк хранит кассовые резервы коммерческих банков...