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

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

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

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

21.1. Такая нотация позволяет визуализировать объявлениясобытий – например, сигнал OffHook (ТрубкаПовешена) и показать,как наступление события приводит к переходу между состояниями:например, сигнал OffHook вызывает переход телефона из состоянияActive (Активен) в состояние Idle (Ожидание) и выполнение действия dropConnection (разорватьСоединение).Глава 21. События и сигналыВ этой главе:События сигнала, вызова, времени и измененияМоделирование серии сигналовМоделирование исключенийОбработка событий в активных и пассивных объектахРеальный мир ежедневно преподносит нам новые явления. Малотого, события в нашей жизни порой происходят одновременно и неожиданно.

Под событием подразумевается некий значимый факт,локализованный во времени и пространстве.В контексте конечных автоматов события используются для моделирования определенного воздействия, которое может вызватьпереход из одного состояния в другое. К числу событий относятсясигналы, вызовы, истечение определенного промежутка времени илиизменение состояния.События могут быть синхронными и асинхронными; их моделирование – одна из составляющих моделирования процессов и потоков.«сигнал»Рис.

21.1. СобытияБазовые понятияСобытие – это описание существенного факта, локализованного во времени и пространстве. Применительно к автоматам событиеозначает воздействие, которое может вызвать переход из одного состояния в другое.Сигнал – это разновидность события, при использовании которой сообщение передается асинхронно от одного экземпляра к другому.ВведениеСтатичная система не представляет ни малейшего интереса,поскольку в ней ничего не происходит.

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

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

Внешние события передаются между системой и ее действующими лицами (примерами могут служить нажатие кнопки или прерывание от датчикапредотвращения столкновений), а внутренние – между объектами,существующими в самой системе (пример – исключение, генерируемое при переполнении).Диаграммы деятельности304Созданиеи уничтожениеобъектов –это тожеразновидность сигналов (см.главу 16).Классыобсуждаютсяв главах4 и 9,обобщения –в главах 5и 10.В UML можно моделировать четыре вида событий: сигналы,вызовы, истечение промежутка времени и изменение состояния.СигналыСообщение – это именованный объект, который асинхроннопосылается одним объектом и принимается другим. Сигнал (signal)представляет собой классификатор для сообщений и сам являетсятипом сообщения.У сигналов есть много общего с простыми классами.

Например,можно говорить об экземплярах сигналов, хотя обычно не возникает необходимость моделировать их явно. Кроме того, сигналымогут участвовать в связях обобщения, что позволяет моделировать иерархии событий, где одни – например, сигнал NetworkFailure(СбойСети) – являются общими, а другие – например, специализация события NetworkFailure под названием WarehouseServerFailure (ОтказСкладскогоСервера) – частными. Как и классы, сигналы могут иметьатрибуты и операции.На заметку. Атрибуты сигнала выступают в роли его параметров.

Например, при передаче сигнала Столкновение можноуказать значения его атрибутов в виде параметров: Столкновение(3, 5).Конечныеавтоматыобсуждаются в главе 22,взаимодействие –в главе 16,интерфейсы–в главе 11,зависимости – в главе 5,стереотипы – в главе 6.Сигнал может отправляться в результате выполнения некоегодействия в процессе перехода (изменения состояния) в автомате.Его можно смоделировать как сообщение, передаваемое между двумя ролями при некотором их взаимодействии.

При выполнении метода тоже могут передаваться сигналы. Когда моделируется классили интерфейс, важная часть спецификации поведения – указаниесигналов, которые могут посылать его операции.Как показано на рис. 21.2, сигналы в UML моделируются классами со стереотипами. Для указания на то, что некоторая операцияпосылает сигнал, можно воспользоваться зависимостью со стереотипом send.зависимостьпередачи сигнала«сигнал»«send»Рис. 21.2.

СигналыБазовые понятия305События вызоваКонечныеавтоматыобсуждаются в главе 22.Если событие сигнала представляет собой его экземпляр, то подсобытием вызова (call event) понимается получение некоторымобъектом запроса на выполнение операции над ним. Событие вызова может привести к переходу между состояниями в автомате иливызову метода на целевом объекте.

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

21.3 видно, что в модели событие вызова неотличимо отсобытия сигнала. В обоих случаях событие вместе со своими параметрами выглядит как триггер для перехода состояния.Рис. 21.3. События вызоваНа заметку. Хотя визуально событие сигнала и вызова неотличимы, разница совершенно отчетливо проявляется на заднемплане модели. Получатель события, конечно же, знает о различии (путем объявления операций в своем списке операций).Сигнал, как правило, обрабатывается на уровне автомата,а событие вызова – методом. Для перехода от события к сигналу или операции можно воспользоваться инструментальными средствами.События времени и измененияСобытие времени представляет собой истечение некоего промежутка времени. На рис. 21.4 показано, что в UML такое событие моделируется посредством ключевого слова after (после), за которымследует выражение, определяющее этот промежуток.

Выражениеможет быть простым – например, after 2 seconds (через 2 секунды)Диаграммы деятельности306или сложным – например, after 1 ms since exiting Idle (через 1 мс после выхода из состояния Ожидание). Если явно не указано иное,отсчет времени начинается с момента входа в текущее состояние.Для обозначения конца периода используется слово at.

Так, записьat (1 Jan 2007, 1200 UT) указывает на то, что событие времени закончится в первый день нового 2007Fго года.С помощью события изменения описывается изменение состояния или выполнения некоторого условия. На рис. 21.4 показано, что вUML событие изменения моделируется посредством ключевого слова when (когда), за которым следует булево выражение. Такое выражение может использоваться для обозначения абсолютного моментавремени (например, when time=11:59, «когда время=11:59») или проверки условия (например, when altitude<1000, «когда высота<1000»).at (11:49PM) / selfTest()Базовые понятиясигналами, семантика событий перекликается с семантикой активных и пассивных объектов.ЭкземплярыЭкземпляр любого класса может послать сигнал принимающемуобсуждают- объекту или вызвать его операцию.

Отправив сигнал получателю,ся в главе 13. он продолжает свой поток управления, не дожидаясь от него ответа.Например, после того как действующее лицо, взаимодействующеес банкоматом, пошлет сигнал pushButton (нажатьКнопку), оно можетвыполнять другие действия независимо от того, что делает система,которой был послан сигнал. Напротив, если объект вызывает операцию, он должен дождаться ответа от получателя. Допустим, в трейдерской системе экземпляр класса Trader (Трейдер) может вызватьоперацию confirmTransaction (подтвердитьТранзакцию) в некоторомэкземпляре класса Trade (Сделка), тем самым косвенно изменив состояние последнего.

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

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

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