Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 36
Текст из файла (страница 36)
Некоторые кнопки являются переключателями. Например, нажатие исг осуществляет переключение между режимами УСА и Ту. Некоторые кнопки, служащие для ручного управления видеомагнитофоном, на рис. У6.2 не показаны: это р1ау, гесогг), /азг/опаагг(, гетипг(, ргшзе, е7есг. Эти кнопки включаются только в состоянии Мапиа1. Выполните следующие действия: 1) (2) Напишите список событий и деятельности с короткими определениями. 2) (7) Напишите руководство пользователя по работе с видеомагнитофоном. 3) (7) Добавьте на диаграмму состояния, описывающие функционирование второго таймера для второго канала. 4) (7) Обсудите, каким образом можно избежать дублирования в этой модели.
Например, установка часа может осуществляться в различных контекстах, но одинаковым образом. Упражнения 159 ЧИеоСаззеиеиесогбег Зе! с/оса бо / б)зр)ау атв Оау зв/вс! Ноиг зв/вс! бо/Яазп бау бо / аазп Пои! зв1 / пех1 бау зв! / Пех! Поит М)пи!за зв/ес! бс / аазп пипи!ее зв! / пах! т!пи!а Зе! ззаг! Итог впау / 1пша11хе з1аг! Ите бо / фзр/ау з!ап ате зв/вс! зз/ес! зв/ес! Ззагт бау бо / Яазп бау зв!/ пехгбау Згаг! т1пигез бо/Лаза !п1пигез зв! / пах! таиге Згаг! Поит бо/Яазп Пои! зе!/ Пех1поиг СПаппе/ бо / аазп спаппе/ зв! / пех1 спаппв1 зе/во! оп/он оп/о// Зе! егор Игпег впау / /пнааае егор ите бо / бир1ау з!ор ате Т1те гесоп! бо / гесогб йпеб/ тоге Зте зе!вс! Згор т/пи!ее бо / Йазп т/пыез зе! / пех! пипи!е виги Поиг бс/аззп Пои! зв!/ Пвхг Псиг атвои! !/твб оп/о// зе/ес! Манив) бо / бнр!ау йпе, за/вс! ирбаге Игпе аи1о Аигогпаис бо / бар!ау 11те, арба!в йпе, б1зр/ау "ашо' ппеп (Эпв=з!вб !зпе) Ам!о гесогб бо / гвсогб чгпеп !Итв=з/ор Зте) аи!о Аиго ои ЧСЙ чсг бо/чл оигры чсг ТЧ бо / !ч оп1риг Рис.
У6.2. Часть диаграммы состояний видеомагнитофона 6.9. (6) Диаграмма У5А обладает одним существенным недостатком. Питание может быть выключено в любой момент, и машина должна осуществить переход в состояние выключено. Мы могли бы добавить к каждому состоянию переход в выключенное состояние, но при этом мы перегрузили бы диаграмму. Исправьте проблему при помощи вложенных состояний. 160 Глава б ° Углубленное моделирование состояний 6.10. (6) На рис. У6.3 изображена диаграмма классов для двух игроков в настольный теннис.
Создайте модель состояний, соответствующую этой модели классов. Правила игры выглядят так. В начале игры два игрока разыгрывают подачу. Для этого они перебрасываются мячиком через сетку несколько раз. Победитель подает первым и делает это пять раз. После этого пять раз подает второй игрок, затем снова первый. Подачи сменяются до тех пор, пока один из игроков не станет победителем игры.
Чтобы выиграть матч, нужно либо достичь счета 11-0, либо набрать 21 очко с преимушеством по крайней мере в 2 очка. Если счет становится 20-20, игроки меняются подачами до тех пор, пока один из них не оторвется на 2 очка. Он и станет победителем. Рис. У6.3. Модель классов для игры в настольный теннис 6.11. (10) Иногда оказывается полезным использовать воплощение, то есть делать объектом нечто, изначально не являвшееся таковым. Воплощение полезно для метаприложений, потому что оно позволяет сдвинуть уровень абстрагирования. В некоторых случаях бывает полезно делать атрибуты, методы, ограничения и управляющую информацию обьектами, чтобы иметь возможность описывать их и манипулировать ими как данными.
Создайте модель классов, воплощающую и поддерживающую следующие концепции моделирования состояний: событие, состояние, переход, условие, деятельность, событие сигнала, событие изменения, атрибут сигнала. 6.12. (7) Удалите вложенность состояний с модели с рис. 6.5. Иными словами, вам следует создать плоскую диаграмму состояний, обладающую той же семантикой. Моделирование взаимодействий Модель взаимодействия — третья составляющая моделирования систем. Модель классов описывает объекты системы и отношения между ними, модель состояний описывает жизненные циклы объектов, а модель взаимодействия описывает взаимодействие объектов между собой для получения нужных результатов.
Модель взаимодействия — это глобальный взгляд на поведение множества объектов, тогда как модель состояний — это редуцированное представление индивидуального поведения объектов. Для полного описания поведения необходимы обе модели. Они дополняют друг друга, позволяя рассматривать поведение с двух разных точек зрения. Взаимодействия можно моделировать на разных уровнях абстрагирования. На самом высоком уровне взаимодействие системы со внешними действующими лицами описывается вариантами использования. Каждый вариант использования описывает элемент функциональности, предоставляемой системой ее пользователям.
Варианты использования полезны для представления в модели неформальных требований. Диаграммы последовательности более детализированы, они показывают сообщения, которыми обмениваются объекты с течением времени. К сообщениям относятся асинхронные сигналы и вызовы процедур. Диаграммы последовательности полезны для демонстрации последовательностей поведения, видимых пользователям системы. Наконец, диаграммы деятельности содержат всю информацию и показывают поток управления между этапами вычислений.
Диаграммы деятельности могут показывать не только потоки управления, но и потоки данных. С их помощью документируются этапы диаграмм последовательности, необходимые для реализации операции или бизнес-процесса. 6 Звк 699 162 Глава у ° моделирование взаимодействий 7.1. Модели вариантов использования 7.1.1. Действующие лица Действующее лицо (асгог) — это непосредственный внешний пользователь системы.
Это объект или множество объектов, непосредственно взаимодействующих с системой, но не являющихся ее частью. Каждое действующее лицо является обобщением группы объектов, ведущих себя определенным образом по отношению к системе. Например, клиент и ремонтник являются разными действующими лицами по отношению к торговому автомату. Действующими лицами по отношению к системе бюро путешествий могут быть путешественники, агенты и авиакомпании. По отношению к компьютерной базе данных ими могут быть пользователи и администраторы. Действующими лицами могут быть люди, устройства и другие системы— все, что взаимодействует с интересуюшей нас системой непосредственно. Объект может быть связан с несколькими действующими лицами, если его поведение обладает разными гранями.
Например, обьекты Мэри, Фрэнк и Пол могут быть клиентами торгового автомата. Пол может одновременно являться и ремонтником, обслуживающим этот автомат. Действующее лицо должно иметь одну четко определенную цель. Объекты и классы обычно сочетают в себе несколько назначений (целей). Действующее же лицо представляет лишь одну грань объекта в его взаимодействии с системой.
Одно и то же лицо может представлять объекты разных классов, ведущие себя одинаково по отношению к системе. Например, люди, так или иначе взаимодействующие с торговым автоматом, могут быть разделены на две основные категории: клиенты и ремонтники. Каждое действующее лицо обладает согласованным набором возможностей тех обьектов, которые оно представляет. Моделирование действующих лиц помогает определить границы системы, то есть идентифицировать объекты, находящиеся внутри системы, и объектьь лежащие на ее границе. Действующее лицо непосредственно взаимодействует с системой.
Объекты, участвующие только в косвенных взаимодействиях с системой, не являются действующими лицами и потому не должны включаться в модель системы. Любое косвенное взаимодействие должно осуществляться посредством действующих лиц. Например, диспетчер мастеров по ремонту торговых автоматов не является действующим лицом по отношению к этим автоматам. Непосредственно с автоматами работают только мастера. Если нужно построить модель косвенного взаимодействия внешних объектов, нужно строить модель среды как большей системы, включающей в себя исходную систему. Например, можно построить модель ремонтной службы, включающую в себя (в качестве действующих лиц) диспетчеров, мастеров и торговые автоматы, но эта модель уже не будет моделью торговых автоматов. 7.1.2.
Варианты использования Различные взаимодействия действующих лиц с системой группируются в варианты использования. Вариант использования (цэе сазе) — это связный элемент функциональности, предоставляемый системой при взаимодействии с действую- 7.1. модели вариантов использования 163 шими лицами. Например, лицо Кпивнт может купить напиток в торговом автомате. Клиент кидает монеты в автомат, выбирает продукт и забирает свой напиток. Ремонтник может провести техническое обслуживание автомата. На рис.
7.1 приведены несколько вариантов использования для торгового автомата. В каждом варианте использования участвуют одно или несколько действующих лиц и система. В варианте использования купить напиток участвует лицо Клиент, а в варианте использования провести плановый ремонт участвует лицо Ремонтник. В телефонной системе вариант использования позвонить включает два действующих лица: Звонящего и Отвечающего. Совсем не обязательно, чтобы асе зти лица были людьми.