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

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

PDF-файл Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 87 Объектно-ориентированный анализ и проектирование (53090): Книга - 7 семестрДж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование: Объектно-ориентированный ан2019-09-18СтудИзба

Описание файла

PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 87 страницы из PDF

21.2. Диаграмма состояний электрической лампочки21.5. Состояния477Когда переключатель устанавливается в положение «On» (включен),лампочке посылается событие turnOn (рис. 21.2). В диаграммах состояний события считаются мгновенными, т. е. от переключателя к лампочке событие доходит мгновенно. Мгновенные события существенноупрощают теорию автоматов. Если бы события не были мгновенными,возникали бы условия состязания, когда два события наперегонкиустремляются от источника к одному и тому же реактивному объекту.Это состязание пришлось бы моделировать как некую разновидностьавтомата!События обуславливают переходы состояний.Лампочка получает событие turnOn и в ответ на него меняет свое состояние на On.

В этом суть автоматов – объекты могут менять состояниепри получении события. Лампочка переходит в состояние Off при получении события turnOff. В некоторый момент может произойти событие burnOut (лампочка перегорает). Оно завершает конечный автомат.Все элементы конечного автомата подробно рассматриваются в следующих разделах.21.5. СостоянияВ книге «UML Reference Manual» [Rumbaugh 1] состояние определяется как «условие или ситуация в жизни объекта, при которых он удовлетворяет некоторому условию, осуществляет некоторую деятельность или ожидает некоторого события». Состояние объекта меняетсясо временем, но в любой отдельный момент оно определяется:• значениями атрибутов объекта;• отношениями с другими объектами;• осуществляемыми деятельностями.Состояние – это семантически значимое состояние объекта.С течением времени объекты обмениваются сообщениями.

Эти сообщения и являются событиями, которые могут привести к изменениюсостояния объекта. Важно очень точно осознать, что мы понимаем под«состоянием». В случае электрической лампочки можно было быпредположить (если бы мы были специалистами в квантовой физике),что каждое изменение любого атома или мельчайшей частицы лампочки образует новое состояние. Строго говоря, это верно, но привелобы нас к несметному числу состояний, по большей части, идентичных.Должны быть выявлены значимые состояния системы.478Глава 21. Конечные автоматыColorred : intgreen : intblue : intРис. 21.3. Класс ColorОднако с точки зрения пользователя значимыми состояниями лампочки являются On, Off и конечное состояние, когда она перегорает.

Выявление значимых состояний системы – ключ к успешному моделированию состояний.В качестве другого примера рассмотрим простой класс Color, приведенный на рис. 21.3.Если предположить, что атрибуты red (красный), green (зеленый) и blue(синий) могут принимать значения от 0 до 255, тогда на основании только этих значений у объектов данного класса может быть 256 × 256 × 256 == 16777216 возможных состояний. Вот это была бы диаграмма состояний! Однако мы должны задать себе вопрос: в чем основная семантическая разница между каждым из этих состояний? Ответ: никакой разницы. Каждое из 16777216 возможных состояний представляет цвети только. В сущности, автомат этого класса совсем неинтересен, поскольку все возможные состояния могут быть смоделированы однимединственным состоянием.То есть предпосылкой моделирования в виде автомата должно бытьналичие семантики «отличия, которое различает» состояния.

Конечные автоматы должны повышать ценность модели. Примеры такихавтоматов будут даны в этой и следующей главах.21.5.1. Синтаксис состоянияUMLсинтаксис состояния представлен на рис. 21.4.Каждое состояние поведенческого автомата может содержать нульили более действий и деятельностей.

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

Переходыимя состояниявходное и выходноедействиявнутренниепереходывнутренняядеятельностьEnteringPasswordentry/ показать диалог для ввода пароляexit/ проверить парольkeypress/ отобразить “*”help/ вывести подсказкуdo/ принять парольсинтаксис действия: имяСобытия/некотороеДействиесинтаксис деятельности: do/некотораяДеятельностьРис.

21.4. Синтаксис состояниящее (или не настолько важное, чтобы моделировать это как) переходв новое состояние. Например, на рис. 21.4 нажатие одной из клавишклавиатуры, конечно, является заслуживающим внимания событием,но оно не приводит к переходу из состояния EnteringPassword (ввод пароля). Мы моделируем это как внутреннее событие keypress (нажатие клавиши), которое обусловливает внутренний переход, инициирующийдействие отобразить “*“.Два специальных действия – вход и выход – ассоциированы со специальными событиями entry и exit. У этих двух событий особая семантика.

Событие entry происходит мгновенно и автоматически при входев состояние. Это первое, что происходит, когда осуществляется входв состояние. Это событие обусловливает выполнение ассоциированного с ним действия на входе. Событие exit – самое последнее, что происходит мгновенно и автоматически при выходе из состояния. Обусловливает выполнение ассоциированного действия на выходе.Деятельности длятся конечный промежуток времени и могут быть прерваны.Деятельности, с другой стороны, длятся конечный промежуток времени и могут быть прерваны по получении события. Деятельность обозначается ключевым словом do (делать).

В отличие от действий, которые всегда завершаются, потому что они атомарны, деятельность можно прервать до того, как завершилось ее выполнение.21.6. ПереходыUMLсинтаксис переходов для поведенческих автоматов представленна рис. 21.5.Переходы показывают движение между состояниями.480Глава 21. Конечные автоматыПоведенческий автоматсобытие1, событие2 [сторожевоеУсловие]/ действиеABРис. 21.5. Синтаксис переходов для поведенческих автоматовСинтаксис переходов в поведенческом автомате прост и может использоваться для внешних переходов (изображаются стрелками) или внутренних переходов (изображаются вложенными в состояние). Каждыйпереход имеет три необязательных элемента.1.

Нуль или более событий – определяют внешнее или внутреннеепроисшествие, которое может инициировать переход.2. Нуль или одно сторожевое условие – логическое выражение, которое должно быть выполнено (иметь значение true), прежде чем может произойти переход. Условие указывают после событий.3. Нуль или более действий – часть работы, ассоциированная с переходом и выполняемая при срабатывании перехода.Рисунок 21.5 можно прочитать так: «При возникновении (события1ИЛИ события2), если (сторожевоеУсловие является истинным), выполнитьдействие и немедленно перейти в состояние B».В действиях могут использоваться переменные, область действия которых – конечный автомат. Например:actionPerformed( actionEvent )/ command = actionEvent.getActionCommand()В приведенном примере actionPerformed( actionEvent ) – событие, генерируемое нажатием кнопки в Java GUI.

При получении этого событиявыполняется действие по сохранению имени кнопки в переменнойcommand.Синтаксис переходов протокольных автоматов немного другой, какпоказано на рис. 21.6.Протокольный автомат {protocol}[предусловие] событие1, событие2/ [постусловие]CDРис. 21.6. Синтаксис переходов для протокольных автоматов48121.6. Переходы•Здесь нет действия, поскольку задается протокол, а не реализация.•Сторожевое условие заменено предусловиями и постусловиями. Обратите внимание, что предусловие указывается перед событиями,а постусловие – после слэша.Как в поведенческих, так и в протокольных автоматах переход, осуществляемый без события, называют автоматическим переходом (auto+matic transition).

Автоматический переход не ожидает события и срабатывает при выполнении его сторожевого условия или предусловия.21.6.1. Соединение переходов – переходноепсевдосостояниеПереходные псевдосостояния объединяют или разветвляют переходы.Переходы могут быть соединены переходными псевдосостояниями(junction pseudo+states).

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

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

Такимобразом, события returnBook попрежнему действительны.Loanпростой узел слиянияOnLoanreturnBookpayFine[after maximumDuration]OverdueTerminatedreturnBookFineDueРис. 21.7. Конечный автомат класса Loan имеет простой узел слияния482Глава 21. Конечные автоматыLoan[extend]OnLoanreturnBookTerminated[!extend]узел слиянияи ветвления[after maximumDuration]OverduepayFinereturnBookFineDueРис. 21.8. Конечный автомат класса Loan имеет узел слияния и ветвления21.6.2. Ветвление переходов – псевдосостояние выбораДля представления простого ветвления без слияния необходимо использовать псевдосостояние выбора (choice pseudo+state), как показанона рис.

21.9.Псевдосостояние выбора направляет поток конечного автомата согласно заданным условиям.Псевдосостояние выбора позволяет направлять поток конечного автомата согласно условиям, заданным для исходящих переходов. НаприBankLoanUnpaidacceptPaymentпсевдосостояние выбора[payment > balance][payment < balance][payment = balance]OverPaidmakeRefundFullyPaidPartiallyPaidacceptPaymentРис. 21.9. Реализация ветвления без слияния с помощью псевдосостояниявыбора48321.7.

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