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

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

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

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

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

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

Типы событий:• событие вызова:• вызов необходимого набора действий;• вызов операции объекта;• сигнал:• прием сигнала – сигнал это асинхронная однонаправленнаясвязь между объектами;• событие изменения:• имеет место, когда некоторое логическое условие меняет своезначение с 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).

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

В разделах 22.5.1 и 22.5.2 обсуждаются два видапредыстории – неглубокая и глубокая.22.2. Составные состоянияСоставные состояния содержат один или более вложенных подавтоматов.Составное состояние – это состояние, содержащее вложенные состояния.Эти вложенные состояния объединяются в один или более конечных автоматов, которые называют подавтоматами (submachines). Для каждого подавтомата в пиктограмме композиции отведена собственная об+ласть. Области – это просто участки пиктограммы состояния, разделенные пунктирными линиями. Простой пример областей представлен на рис. 22.2.Вложенные подсостояния наследуют все переходы содержащих их суперсостояний.Вложенные состояния наследуют все переходы состояний, в которыеони входят.

Это очень важный момент. Если, например, у самого составного состояния есть определенный переход, каждое из вложенныхв него состояний тоже имеет этот переход.Составное состояниеобласть 1Aобласть 2CBподавтомат 1подавтомат 2Рис. 22.2. Каждому подавтомату отведена своя область492Глава 22. Дополнительные аспекты конечных автоматовСоставное состояниеDEтерминальное псевдосостояниеFРис. 22.3.

Терминальное псевдосостояниеКонечное псевдосостояние подавтомата относится только к его облас+ти. Таким образом, если подавтомат области 1 в примере на рис. 22.2достигает своего конечного состояния первым, эта область завершается, а область 2 продолжает выполнение. Если необходимо завершитьвыполнение всего составного состояния, можно использовать терминальное (terminate, завершающее) псевдосостояние, как показано нарис.

22.3. В этом примере все составное состояние завершается придостижении терминального псевдосостояния.Вложенные состояния также могут быть составными состояниями.Однако, как правило, необходимо по возможности стремиться к тому,чтобы вложенность составных состояний не превышала двух или трехуровней. При большей глубине вложенности автомат сложно воспринимать на диаграмме и понимать.Для сохранения ясности и простоты диаграммы состояний иногда необходимо скрывать детали составного состояния. Показать, что состояние является составным, можно без явного отображения его структуры, добавив пиктограмму композиции (composition icon).

Это необязательное дополнение, но очень полезное для обозначения того, что у состояния есть составные части, поэтому мы рекомендуем постоянно импользоваться. Пиктограмма композиции приведена на рис. 22.4.В зависимости от количества областей выделяют два типа составныхсостояний.1. Простое составное состояние – только одна область.2. Ортогональное составное состояние – две или более областей.Эти типы составных состояний рассматриваются в двух следующихподразделах.Составное состояниепиктограмма композицииРис. 22.4.

Пиктограмма композиции указывает, что состояние составное49322.2. Составные состояния22.2.1. Простые составные состоянияПростые составные состояния содержат всего один вложенный конечный автомат.Простое составное состояние – это составное состояние, содержащеевсего одну область. Например, на рис. 22.5 показан автомат для классаISPDialer (модем). Этот класс отвечает за подключение к провайдеру Интернета. Состояние DialingISP – простое составное состояние, потомучто оно имеет всего одну область. В этом конечном автомате есть несколько интересных моментов.•Переход из DialingISP инициируется событием cancel, наследуемымвсеми подсостояниями подавтомата DialingISP. Это очень удобно, поскольку означает, что всегда при получении события cancel будетосуществляться переход из любого подсостояния в состояние NotConnected (не соединен).

Такое использование суперсостояний и подсостояний может существенно упростить автомат.•У подавтомата DialingISP одно входное псевдосостояние dial (наборномера) и два выходных псевдосостояния, notConnected и connected.Входное псевдосостояние изображается в виде кружка, которыйобычно размещается на рамке составного состояния (хотя такжеможет находиться внутри нее), и обозначает точку входа в подавтомат. Аналогично выходное псевдосостояние, которое изображаетсяв виде кружка с перекрестьем, обозначает выход из подавтомата.ISPDialerDialingISPentry/ offHookdialWaitingForDialtoneDialing[dialtone]WaitingForCarrierdo/ dialISPвходноепсевдосостояниеafter(20 seconds)/ noDialtonenotConnectedafter(20 seconds)/ noCarriercancel[carrier]connectedвыходное псевдосостояниеNotConnectedConnectedentry/ onHookexit/ onHookdo/ useConnectionРис.

22.5. Конечный автомат класса ISPDialer494Глава 22. Дополнительные аспекты конечных автоматовВходные и выходные псевдосостояния очень полезны, поскольку позволяют определять разные пути входа и выхода из составных состояний. Они обеспечивают точки подключения, к которым подключаются переходы в/из других состояний.Вот полный пошаговый анализ автомата класса ISPDialer.1. Вход в суперсостояние DialingISP осуществляется через входное псевдосостояние dial, и сразу же выполняется входное действие offHook(поднятие трубки) – модем «поднимает трубку».2. Осуществляется вход в единственную область и состояние WaitingForDialtone (ожидание тонального сигнала готовности).3. Ожидание в состоянии WaitingForDialtone длится максимум 20 секунд.4.

Если тональный сигнал готовности не поступает в течение 20 секунд:4.1. осуществляется действие noDialtone (нет тонального сигнала готовности) и переход через выходное псевдосостояние notConnected в состояние NotConnected;4.2. при входе в NotConnected телефон возвращается на рычаг (действие onHook);4.3. осуществляется переход в состояние stop (остановка).5. Если тональный сигнал готовности получен (т. е. сторожевое условие [dialtone] принимает значение true) в течение 20 секунд:5.1. переходим в состояние Dialing (набор), в котором осуществляется деятельность dialISP;5.2.

по завершении деятельности dialISP происходит автоматический переход в состояние WaitingForCarrier (ожидание несущей);5.3. ожидание в состоянии WaitingForCarrier длится максимум 20 секунд.5.4. Если в течение 20 секунд несущая не получена:5.4.1. осуществляется действие noCarrier (нет несущей) и переход через выходное псевдосостояние notConnected в состояние NotConnected;5.4.2. при входе в состояние NotConnected телефон возвращается на рычаг;5.4.3. осуществляется переход в состояние stop.5.5. Если в течение 20 секунд несущая получена:5.5.1. происходит автоматический переход из суперсостоянияDialingISP через выходное псевдосостояние connected в состояние Connected;5.5.2.

осуществляется действие useConnection (использованиесоединения) до его завершения;5.5.3. при выходе из Connected телефон возвращается на рычаг;22.2. Составные состояния4955.5.4. осуществляется переход в состояние stop.6. Если в любой момент нахождения в суперсостоянии DialingISP поступает событие cancel:6.1. немедленно осуществляется переход в состояние NotConnected;6.2.

при входе в состояние NotConnected телефон возвращается на рычаг;6.3. осуществляется переход в состояние stop.22.2.2. Ортогональные составные состоянияОртогональные составные состояния содержат два или более вложенных подавтоматов, выполняющихся параллельно.Ортогональные составные состояния содержат два или более выполняющихся параллельно подавтоматов.При входе в составное состояние начинается одновременное выполнение всех его подавтоматов – это неявное ветвление.Существует два способа выхода из составного состояния.1. Оба подавтомата завершаются – неявное объединение.2. Один из подавтоматов переходит в состояние, находящееся вне суперсостояния, обычно через выходное псевдосостояние.

Свежие статьи
Популярно сейчас