Главная » Просмотр файлов » 2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006)

2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 62

Файл №1185732 2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006).pdf) 62 страница2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732) страница 622020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 62)

Используя простой автомат, можнодостичь подобного эффекта, помещая эти действия соответственнона каждом входном и выходном переходе. Однако здесь велика вероятность ошибиться: необходимо постоянно помнить, что действия нужно создавать при добавлении каждого нового перехода. Более того, модификация действия означает, что будут затронуты всесоседние переходы.Как показано на рис. 22.4, UML предусматривает сокращениедля этой идиомы. В пиктограмму состояния можно включить входной эффект (помеченный ключевым словом entry) и выходной эффект (помеченный ключевым словом exit), – каждый с указаниемсоответствующего действия.

Всякий раз при входе в состояние вызывается входное действие, а при выходе из него – выходное.Конечные автоматы322Термины и понятияВходной и выходной эффекты могут не иметь аргументов илизащитных условий, но первый из них на верхнем уровне автоматакласса может иметь параметры аргументов, которые автомат принимает при создании объекта.необходимо смоделировать некую деятельность, выполняемуюв этом состоянии (doFactivity).

Иными словами, пребывая в состоянии, объект может чтоFлибо делать до тех пор, пока это не будет прервано событием. Например, пребывая в состоянии преследования –Tracking, объект может следовать за целью (followTarget). Как показанона рис. 22.4, в UML применяется специальный переход do, описывающий работу, которая должна выполняться внутри состояния послетого, как будет выполнено входное действие.

Можно также специфицировать поведение как последовательность действий – например, do/op1(a);op2(b);op3(c). Если появление события вызовет переход, который приведет к выходу из состояния, любая выполняемаяв состоянии деятельность немедленно прекратится.Внутренние переходыВнутри состояния часто возникает необходимость обрабатывать определенные события, не покидая его. В таком случае можноговорить о внутренних переходах, которые имеют тонкое отличиеот переходов в себя. Когда дело касается перехода в себя (см. пример на рис. 22.3) событие инициирует переход, объект покидает состояние, выполняется некоторое действие (если оно есть) и затемобъект вновь входит в то же состояние.

Поскольку данный переходвыходит и входит в состояние, он инициирует действие выхода, затем действие самого перехода и, наконец, действие входа.Однако предположим, что вы хотите обработать событие, не выполняя при этом входные и выходные действия. UML предусматривает сокращение для этой идиомы в виде внутреннего перехода.Внутренний переход (internal transition) – это такой переход, который реагирует на событие соответствующим эффектом, не изменяя состояния. На рис. 22.4 событие newTarget (новаяЦель) помечаетвнутренний переход; если это событие происходит, когда объектнаходится в состоянии Tracking (Преследование), то при этом выполняется действие tracker.Acquire() (преследователь.Получить()),но состояние остается прежним, и никакого входного или выходного эффекта не наблюдается.

Внутренний переход символизируется включением строки перехода (вместе с именем события,необязательным защитным условием и эффектом) в символ состояния вместо стрелки перехода. Отметим, что слова entry (вход), exit(выход) и do (действовать) являются ключевыми и не могут бытьиспользованы в качестве имен событий. Всякий раз, когда объектнаходится в некотором состоянии и происходит событие, которымпомечен внутренний переход, выполняется соответствующий эффект, но объект при этом не покидает состояния и не возвращаетсяв него повторно. Таким образом, событие обрабатывается без вызова действий выхода и входа.На заметку. Внутренние переходы могут включать события спараметрами и защитными условиями.Деятельность внутри состоянияКогда объект находится в некоем состоянии, он обычно простаивает, ожидая наступления события.

Однако иногда становится323На заметку. Деятельность внутри состояния – это эквивалент входного эффекта, который начинает деятельность привходе в состояние, и выходного эффекта, который останавливает ее при выходе из состояния.Отложенные событияСобытияобсуждаютсяв главе 21.Рассмотрим такое состояние, как Tracking (Преследование). Какпоказано на рис.

22.3, предположим, что есть только один переходк этому состоянию, вызванный событием contact (контакт). Покаобъект находится в состоянии Tracking, любые события, отличныеот contact, а также от тех, которые обрабатываются подсостояниями,будут потеряны. Это значит, что событие может произойти, но будет проигнорировано и в результате не вызовет никаких действий.В любой ситуации, связанной с моделированием, важно распознавать одни события и игнорировать другие.

Первые вы включаете в модель как события, инициирующие переходы; вторые простооставляете без внимания. Однако в определенных ситуациях необходимо принимать некоторые события и при этом откладыватьреакцию на них на более позднее время. Например, пока объектнаходится в состоянии Tracking, придется откладывать реакциюна такие сигналы, как selfTest (самопроверка), посылаемый агентами поддержки работы системы.В UML подобное поведение можно специфицировать, используя отложенные события. Отложенное событие (deferred event) –такое, обработка которого откладывается до тех пор, пока объект неперейдет в другое состояние. Если событие в этом новом состоянииуже не является отложенным, оно обрабатывается и может вызватьпереход, как если бы оно произошло только что. Если автомат проходит через ряд состояний, в которых данное событие является отложенным, оно сохраняется до тех пор, пока не наступит состояние,Конечные автоматы324в котором оно перестанет считаться таковым.

За этот период могутвозникать другие события, не являющиеся отложенными. Как видно из рис. 22.4, отложенное событие можно отметить, добавив к егоимени ключевое слово defer. В этом примере события selfTest могутиметь место в состоянии Tracking, но удерживаются до тех пор, покаобъект не придет в состояние Engaging (Включение); тогда они обрабатываются так, будто произошли только что.На заметку. Реализация отложенных событий требует наличия их внутренней очередности.

Если происходит событие,которое помечено как отложенное, оно помещается в очередь. События извлекаются из нее, как только объект переходит в состояние, в котором они перестают считаться отложенными.Вложенные автоматыК автомату можно обратиться из другого автомата. Такие автоматы называются вложенными (submachines). Их удобно использовать,прорабатывая структуру крупных моделей состояний.

Подробности приводятся в книге «UML» (выходные данные см. во введении,раздел «Цели»).ПодсостоянияРассмотренные свойства состояний и переходов решают целыйряд типичных проблем моделирования автоматов. Однако у автоматов, рассматриваемых в UML, есть свойство, которое позволяетеще больше упростить моделирование сложного поведения, – подсостояние (substate), то есть такое состояние, которое входит в состав другого. Например, Heater (Обогреватель) может находитьсяв состоянии Heating (Обогрев) и в то же время – во вложенномСоставныесостоянии Activating (Активация). В этом случае правильно будетсостояниясказать, что объект находится одновременно в состояниях Heatingимеюти Activating.вложеннуюПростое состояние – такое, которое не имеет внутренней струкструктуру,туры.

Состояние, имеющее вложения, то есть подсостояния, наподобнуюзывается составным (композитным). Подсостояния могут бытьтой, чтопараллельными (ортогональными) или последовательными (невстречается ортогональными). В UML составное состояние изображается таку композиций же, как и простое, но с дополнительным разделом, в котором по(см. главы 5 казан вложенный автомат. Глубина вложения состояний не ограи 10).ничена.Термины и понятия325Неортогональные (последовательные) подсостоянияРассмотрим моделирование поведения банкомата. Система обслуживания может находиться в одном из трех основных состояний:Idle (Простой – ожидание взаимодействия с пользователем), Active(Активен – выполняет транзакцию, запрошенную пользователем)либо Maintenance (Обслуживание – возможно, пополняется запас наличности).

В состоянии Active поведение банкомата описываетсяпростой схемой: проверить счет пользователя, выбрать тип транзакции, выполнить транзакцию, напечатать чек. После этого банкоматснова возвращается в состояние Idle. Перечисленные этапы поведения можно представить как состояния Validating (Проверка), Selecting(Выбор), Processing (Обработка), Printing (Печать). Может быть, желательно настроить систему таким образом, чтобы она давала пользователю право выбрать и осуществить несколько транзакций после того,как выполнена проверка счета, но до печати общего чека.Проблема в том, что на любом этапе у пользователя должна бытьвозможность отменить транзакцию и вернуть банкомат в состояниеIdle.

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

22.5. Здесь у состояния Active есть внутренний автомат, в который входят подсостоянияValidating, Selecting, Processing, Printing. Банкомат переходит из состояния Idle в состояние Active, когда пользователь вставляет в картоприемник кредитную карту. При входе в состояние Active выполняется действие readCard (читатьКарту). Начав с исходного состояниявнутреннего автомата, управление переходит к состоянию Validating,затем к Selecting и, наконец, к Processing. После выхода из последнегоуправление может вернуться в состояние Selecting (если пользователь избрал другую транзакцию) или перейти в состояние Printing.Отсюда происходит безусловный завершающий переход в состояниеIdle.

Отметим, что у состояния Active есть действие выхода, котороеобеспечивает автоматическое извлечение кредитной карты.Конечные автоматы326переходиз составного состоянияпереходк составному состояниюcardinsertedнеортогональное состояниеПростой[more]начальноесостояние[finished]ОбслуживаниеРис. 22.5. Последовательные подсостоянияТакже следует обратить внимание на переход из состояния Activeв состояние Idle, инициируемый событием cancel (отмена). В любомподсостоянии состояния Active пользователь может отменить транзакцию и вернуть банкомат в состояние простоя (но только послеизвлечения кредитной карты из картоприемника – это действие, сопровождающее выход из состояния Active, происходит независимоот того, что послужило причиной выхода). Без подсостояний потребовался бы переход, инициируемый событием cancel, для каждогосостояния подструктуры.Такие подсостояния, как Validating и Processing, называются неортогональными (nonorthogonal), или непересекающимися.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее