Главная » Просмотр файлов » Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование

Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (1037782), страница 88

Файл №1037782 Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование) 88 страницаДжим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (1037782) страница 882017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

События вызоваСобытие вызова (call event) – это запрос на вызов конкретной операцииэкземпляра контекстного класса.Событие вызова – это запрос на вызов конкретной операции.Сигнатура события вызова должна быть аналогичной сигнатуре операции контекстного класса автомата. Получение события вызова – это484Глава 21.

Конечные автоматыSimpleBankAccountвнутреннее событие вызовадействиеclose()InCreditвнешнее событие вызоваdeposit(m)/ balance = balance + mусловиеwithdraw(m)[balance < m]withdraw(m)[balance >= m]RejectingWithdrawalAcceptingWithdrawalentry/ logRejectedWithdrawal()entry/ balance = balance ! mвходное действиеРис. 21.11. Внутренние и внешние события вызоватриггер на выполнение операции. Таким образом, событие вызова –вероятно, самый простой тип событий.В примере на рис.

21.11 показан фрагмент конечного автомата классаSimpleBankAccount (простой банковский счет). На данный класс наложены следующие ограничения:•баланс счетов всегда должен оставаться большим или равным нулю;•запрос на снятие денег будет отклонен, если запрашиваемая суммапревышает баланс.На рисунке показаны внутренние и внешние события вызова. Они соответствуют операциям класса SimpleBankAccount.Для события вызова может быть задана последовательность действий,в которой действия перечисляются через точку с запятой.

Они определяют семантику операции и могут использовать атрибуты и операцииконтекстного класса. Если у операции есть возвращаемый тип, событие вызова имеет возвращаемое значение этого типа.21.7.2. СигналыСигнал – это однонаправленная асинхронная связь между объектами.Сигнал – это пакет информации, асинхронно передаваемый междуобъектами. Сигнал моделируется как отмеченный стереотипом класс,содержащий в своих атрибутах информацию, которая должна быть передана (рис. 21.12). У сигнала обычно нет операций, потому что онпредназначен только для передачи информации.48521.7. События«signal»RejectedWithdrawaldate : DateaccountNumber : StringrequestedAmount : doubleavailableBalance : doubleРис. 21.12.

Сигнал – это класс, отмеченный стереотипом «signal»SimpleBankAccountclose()InCreditdeposit(m)/ balance = balance + mwithdraw(m)[balance < m]withdraw(m)[balance >= m]RejectingWithdrawalAcceptingWithdrawalentry/ logRejectedWithdrawal()entry/ balance = balance ! mпосылка сигналаRejectedWithdrawalРис. 21.13. Посылка сигналаНа рис. 21.13 представлен скорректированный конечный автомат дляSimpleBankAccount.

Теперь при отклонении запроса на снятие денег сосчета посылается сигнал. Передача сигнала обозначается выпуклымпятиугольником, внутри которого указывается имя сигнала. Такой жесинтаксис используется на диаграммах деятельностей (см. раздел 15.6,где сигналы обсуждаются более подробно).Прием сигнала обозначается вогнутым пятиугольником, как показаново фрагменте конечного автомата на рис. 21.14.

В нем указана операция контекстного класса, которая принимает сигнал как параметр.прием сигналаprocessRejectedWithdrawal( a : RejectedWithdrawal )контекст: класс BankРис. 21.14. Прием сигналаПозвонить клиенту486Глава 21. Конечные автоматыПрием сигнала также можно показать на внешних или внутренних переходах с помощью стандартной нотации имяСобытия/действие, котораяобсуждалась в разделах 21.5.1 и 21.6.21.7.3.

События измененияСобытия изменения имеют место, когда значение логического выражения меняется с false на true.Событие изменения задается в виде логического выражения, как показано на рис. 21.15. Ассоциированное с событием действие выполняется, когда логическое выражение меняет значение с false на true. Всезначения логического выражения должны быть константами, глобальными переменными или атрибутами и операциями контекстногокласса. С точки зрения реализации событие изменения означает постоянную проверку логического условия при нахождении в определенном состоянии.На рис.

21.15 конечный автомат SimpleBankAccount был изменен такимобразом, что менеджер получает уведомление, если баланс счета становится равным или большим 5000. Это уведомление необходимо длятого, чтобы менеджер мог предупредить клиента о других вариантахвклада.События изменения являются срабатывающими по положительномуфронту (positive edge triggered). Это означает, что они инициируютсяпри каждом изменении значения логического выражения с false на true.SimpleBankAccountclose()InCreditdeposit(m)/ balance = balance + mbalance >= 5000 / notifyManager()логическоевыражениеwithdraw(m)[balance < m]withdraw(m)[balance >= m]RejectingWithdrawalAcceptingWithdrawalentry/ logRejectedWithdrawal()entry/ balance = balance ! mRejectedWithdrawalРис.

21.15. Событие изменения в виде логического выражения21.8. Что мы узнали487Чтобы событие изменения было инициировано, логическое выражениедолжно вернуться к значению false, а затем снова перейти к true.Срабатывание по положительному фронту – это именно то поведение,которое требуется для класса SimpleBankAccount. Действие notifyManager()(уведомить менеджера) будет инициироваться, только когда баланссчета достигнет 5000 или превысит эту сумму. Понятно, что если баланс будет колебаться вокруг 5000, менеджер получит множество уведомлений. Мы предполагаем, что у менеджера есть некоторый бизнеспроцесс для обработки такой ситуации.21.7.4. События времениСобытия времени происходят в ответ на время.События времени обычно обозначаются ключевыми словами when (когда) и after (после).

Ключевое слово when определяет конкретное время,когда событие инициируется; after определяет порог времени, после которого событие инициируется. Например: when(date = 07/10/2005) и after(3 months).На диаграмме для каждого события времени обязательно должныбыть указаны единицы измерения времени (часы, дни, месяцы и т.

д.).Все символы выражения должны быть константами, глобальными переменными или атрибутами и операциями контекстного класса.Пример на рис. 21.16 – это фрагмент автомата класса CreditAccount,имеющего ограниченные (несколько суровые) условия получения кредита. Как видите, если объект CreditAccount находится в состоянии Overdrawn (кредит превышен) в течение трех месяцев, он переходит в состояние Frozen (заморожен).Overdrawnafter( 3 months )Frozenконтекст: класс CreditAccountРис. 21.16. Фрагмент автомата класса CreditAccount с ограничением по времени21.8.

Что мы узналиВ этой главе обсуждалось построение простых конечных автоматов с помощью состояний, действий, деятельностей, событий и переходов. Мыузнали следующее:488Глава 21. Конечные автоматы••••••Конечные автоматы основаны на работе Харела.• Конечные автоматы моделируют динамическое поведение реактивного объекта.• Диаграммы состояний содержат единственный конечный автомат одного реактивного объекта.Реактивный объект обеспечивает контекст конечного автомата.• Реактивные объекты:• отвечают на внешние события;• могут генерировать внутренние события;• имеют четкий жизненный цикл, который может быть смоделирован как последовательность состояний, переходов и событий;• имеют текущее поведение, которое может зависеть от предыдущего.• Примеры реактивных объектов:• классы (самые распространенные);• прецеденты;• подсистемы;• целые системы.Существует два типа конечных автоматов:• поведенческие автоматы:• моделируют поведение контекстного классификатора;• состояния в поведенческих автоматах могут содержать нульили более действий и деятельностей;• протокольные автоматы:• моделируют протокол контекстного классификатора;• состояния в протокольных автоматах не имеют действийи деятельностей.Действия – мгновенные и непрерываемые части работы:• могут иметь место в состоянии и быть ассоциированными с внутренним переходом;• могут иметь место вне состояния и быть ассоциированнымис внешним переходом.Деятельности – части работы, которые занимают конечный промежуток времени и могут быть прерваны:• могут иметь место только в состоянии.Состояние – семантически значимое состояние объекта.• Состояние объекта определяется:• значениями атрибутов объекта;• отношениями с другими объектами;21.8.

Что мы узнали• деятельностями, осуществляемыми объектом.Синтаксис состояния:• входное действие – осуществляется немедленно при входев состояние;• выходное действие – осуществляется немедленно при выходеиз состояния;• внутренние переходы – обусловливаются событиями, недостаточно существенными для инициации перехода в новое состояние:• событие обрабатывается внутренним переходом в рамкахсостояния;• внутренняя деятельность – часть работы, которая занимаетконечный промежуток времени и может быть прервана.Переход – перемещение между двумя состояниями.• Синтаксис перехода:• событие – событие, инициирующее переход;• сторожевое условие – логическое выражение, которое должно выполниться, чтобы переход произошел;• действие – действие, которое происходит вместе с переходом;• переходное псевдосостояние – объединяет или разветвляетпереходы;• псевдосостояние выбора – направляет поток конечного автомата согласно наложенным условиям.Событие – чтото существенное, происходящее с реактивным объектом.

Типы событий:• событие вызова:• вызов необходимого набора действий;• вызов операции объекта;• сигнал:• прием сигнала – сигнал это асинхронная однонаправленнаясвязь между объектами;• событие изменения:• имеет место, когда некоторое логическое условие меняет своезначение с false на true (т. е. ребро инициируется при переходеложьистина);• событие времени:• ключевое слово after – происходит по прошествии некоторогопромежутка времени;• ключевое слово when – происходит, когда выполняется некоторое временное условие.•••48922Дополнительные аспектыконечных автоматов22.1. План главыЭту главу мы начинаем с обсуждения составных состояний.

Это состояния, содержащие вложенный конечный автомат. В разделе 22.222.2. Составные состоянияизучаем типы составных состояний22.2.1. Простые составные состояния22.2.2. Ортогональные составные состоянияизучаем состояния подавтоматов22.3. Состояния подавтоматовизучаем взаимодействие подавтоматов22.4. Взаимодействие подавтоматовизучаем предысторию22.5.

Предыстория22.5.1. Неглубокая предыстория22.5.2. Глубокая предыстория22.6. Что мы узналиРис. 22.1. План главы49122.2. Составные состояниявводится понятие вложенных конечных автоматов, или подавтоматов.Затем обсуждаются два типа составных состояний – простое составноесостояние (22.2.1) и ортогональное составное состояние (22.2.2).

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

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

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