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

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

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

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

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

Если цель перехода – вложенное подсостояние, то управление передается ему после выполнения входногоТермины и понятия327действия (если оно есть) составного состояния и (если оно есть)входного действия этого целевого подсостояния.Переход, ведущий из составного состояния, может иметь в качестве исходного либо его само, либо одно из его подсостояний.В любом случае управление сначала покидает вложенное состояние(при этом выполняется его выходное действие, если таковое присутствует), а затем составное состояние (при этом выполняется еговыходное действие, если оно есть).

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

Автомат, по сути, специфицирует допустимый порядок состояний, которые может принимать объект за время своего жизненного цикла.Если не указано иное, то когда переход приводит к составномусостоянию, деятельность вложенного автомата начинается с его начального состояния (если только непосредственной целью перехода не является конкретное подсостояние). Однако иногда возникаетнеобходимость моделировать объект, «помнящий» подсостояние,которое было активным перед тем, как он покинул составное состояние.

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

Таким образом, при выходе из составного состояния можно будет запомнить последнее подсостояние, с тем чтобы при следующем входе в составное состояние сразуосуществить переход в него. Это неудобно, ведь вам придется помнить о том, что нужно «коснуться» всех подсостояний и установитьКонечные автоматы328для каждого соответствующее выходное действие. В результате появится множество переходов из одного и того же начального состояния, ведущих к различным целевым подсостояниям с очень похожими (но всеFтаки разными) защитными условиями.В UML предусмотрен более простой способ моделированияподобных идиом – с помощью исторических состояний. Историческое состояние (history state) позволяет составному состоянию,включающему неортогональные подсостояния, «помнить» подсостояние, которое было активным на момент последнего перехода изсоставного состояния вовне.

Как показано на рис. 22.6, историческое состояние изображается в виде маленького кружочка с буквой«H» (History).начальное состояние первого входаРезервноекопированиеТермины и понятия329На заметку. Буквой «H» обозначается поверхностная память,которая хранит лишь последнее состояние ближайшего вложенного автомата. Можно специфицировать и глубиннуюпамять, изобразив ее в виде маленького кружочка с символами«H*» внутри.

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

22.6. Историческое состояниеЕсли нужно, чтобы переход активировал последнее подсостояние,то он показывается как ведущий из составного состояния вовне, непосредственно к историческому. Когда вы впервые входите в составное состояние, оно еще не имеет истории. Это означает, что в наличииимеется единственный переход от исторического состояния к последовательному подсостоянию, – в данном примере Collecting (Сбор).Цель этого перехода специфицирует начальное состояние вложенного автомата при первом входе.

Предположим, что во время состояния BackingUp (РезервноеКопирование) и Copying (Копирование) посылается событие query (запрос). Управление покидает Copying и BackingUp(вызывая при необходимости их выходные действия) и возвращается к состоянию Command (Команда). Когда завершится деятельностьCommand, завершающий переход вернется к историческому состояниюсоставного состояния BackingUp. На этот раз, поскольку существуетистория вложенного автомата, управление передается состояниюCopying, минуя состояние Collecting, так как именно Copying было последним активным подсостоянием перед последним выходом из BackingUp.Неортогональные подсостояния – это наиболее общий случайиспользования вложенных автоматов, с которым приходится сталкиваться на практике.

Однако в некоторых ситуациях моделирования может понадобиться специфицирование ортогональныхобластей. Они позволяют описать несколько автоматов, работающих параллельно в контексте включающего объекта.В примере на рис. 22.7 показано расширение состояния Maintenance(Обслуживание) из рис. 22.5. Оно декомпозируется на две ортогональные области – Testing (Тестирование) и Commanding (Обработкакоманд), показанные в виде вложений в Maintenance, но разделенные пунктирной линией. Каждая из этих ортогональных областей,в свою очередь, разбита на подсостояния. Когда управление передается из состояния Idle (Простой) в Maintenance, то общий поток разделяется на два параллельных – включающий объект будет одновременно пребывать в областях Testing и Maintenance.

Более того, объект,находящийся в области Commanding, также пребывает и в состоянииWaiting (Ожидание) или Command (Команда).На заметку. Неортогональные подсостояния отличаютсяот ортогональных по следующему признаку. Имея нескольконеортогональных подсостояний на одном и том же уровне,объект может пребывать либо в одном из них, либо в другом.Имея же несколько ортогональных областей на одном и томже уровне, он будет одновременно пребывать в состояниикаждой из них.Конечные автоматы330ПростойсоединениеподдержкаортогональнаяобластьОбработка командвложенное состояниеРис. 22.7.

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

Аналогично, при наличии перехода из составного состояния, разбитогона ортогональные области, параллельные потоки управления сливаются воедино. Это верно во всех случаях. Если все ортогональныеобласти достигают своего конечного состояния или же присутствует явный переход из включающего составного состояния, управление сливается в один поток.На заметку. Каждая ортогональная область может иметьначальное, конечное и историческое состояние.Термины и понятия331непосредственно в одно или несколько ортогональных состояний.Такой процесс называется разделением (fork), поскольку управление передается от одного состояния нескольким ортогональнымсразу.

Графически это выражает толстая черная линия с одной входящей стрелкой и несколькими исходящими, каждая из которыхуказывает на ортогональное состояние. Если одна или несколькоортогональных областей не имеют целевых состояний, то неявновыбираются начальные состояния этих областей.

Переход к единственному ортогональному состоянию внутри составного – такженеявное разделение; начальные состояния всех других ортогональных областей являются неявными участниками разделения.Аналогичным образом переход от любого состояния внутри составного с ортогональными областями инициирует выход из всехортогональных областей. Такой переход часто представляет ошибочное условие, вызывающее прерывание всех параллельных вычислений.Соединение (join) – это переход с несколькими входящими стрелками и одной исходящей. Каждая входящая стрелка должна исходить от состояния в разных ортогональных областях одного и тогоже составного состояния. Соединение может иметь инициирующеесобытие. Переход с соединением эффективен только тогда, когда активны все исходные состояния; статус других ортогональныхобластей составного состояния не важен.

Если событие происходит,то управление покидает все ортогональные области составного состояния, а не только те, откуда ведут стрелки.Рис. 22.8 – вариант предыдущего примера с явными переходамиразделения и соединения. Переход maintain (поддержка) к составномуПростойразделениеВосстановлениедиагностикаподдержкаошибкаТестированиеустройствОбработка командРазделение и соединениеОбычно вход в составное состояние с ортогональными областями ведет к начальному состоянию каждой из этих областей.Но также возможно осуществить переход из внешнего состояниясоединениеРазъединениепотеря связиРис. 22.8. Переходы с разделением и соединениемКонечные автоматы332состоянию Maintenance (Обслуживание) – это поFпрежнему неявноеразделение, ведущее к начальным состояниям по умолчанию двухортогональных областей.

В этом примере, однако, присутствует переход с явным разделением от Idle (Простой) ко вложенным состояниям Self diagnose (Самодиагностика) и конечному состояниюобласти Commanding (Обработка команд). Конечное состояние – этоявное состояние, которое может быть целью перехода. Если возникает событие ошибки во время Self diagnose, то происходит неявное слияние с переходом к Repair (Восстановление). При этоми Self diagnose, и любое активное состояние области Commanding завершается.Есть также явный переход со слиянием к состоянию Offline(Разъединение). Он осуществляется только при возникновении события disconnect (потеря связи), когда активно и состояние Testingdevices (Тестирование устройств), и конечное состояние областиCommanding (Обработка команд).

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

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

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