SlideShare a Scribd company logo
1 of 31
Download to read offline
Диаграммы состояний
Цель данного вида диаграмм
Диаграммы состояний используются с целью показать
поведение одного объекта в течение его жизни, начиная от
создания объекта и заканчивая его уничтожением.
В объектно-ориентированных подходят изображают состояния
единственого класса, чтобы показать поведение объекта в
реальной жизни.
Основные понятия
Автомат
Автомат - пакет, в котором определено множество понятий, необходимых
для представления поведения моделируемой сущности в виде дискретного
пространства с конечным числом состояний и переходов.
Длительность нахождения системы в любом из возможных состояний
существенно превышает время, которое затрачивается на переход из
одного состояния в другое. Предполагается, что в пределе время перехода
может быть равно нулю (если дополнительно не оговорено другое), то есть
смена состояний объекта может происходить мгновенно.
Обязательные условия автомата
1. Состояние, в которое может перейти объект, определяется только его текущим
состоянием и не зависит от предыстории;
2. В каждый момент времени автомат может находиться только в одном из своих
состояний. При этом, автомат может находиться в отдельном состоянии как угодно
долго, если не происходит никаких событий;
3. Граф автомата не должен содержать изолированных состояний и переходов. Для
каждого состояния, кроме начального, должно быть определено предшествующее
состояние, а каждый переход должен соединять два состояния автомата;
4. Автомат не должен содержать конфликтующих переходов, когда объект одновременно
может перейти в два и более последующих состояния.
Состояние
В языке UML под состоянием понимается абстракция,
используемая для моделирования отдельной ситуации, в
течение которой выполняются некоторые условия.
• Состояние может быть задано в виде конкретных значений
атрибутов класса или объекта.
• Изменение отдельных значений атрибутов будет отражать
изменение состояния моделируемого класса.
Имя состояния
Имя состояния представляет собой строку текста.
• Имя всегда записывается с заглавной буквы.
• Рекомендуется в качестве имени использовать глаголы в настоящем
времени (звенит, печатает, ожидает), причастия (занят, свободен, передано,
получено) или существительное, обозначающее некий процесс.
• Имя у состояния может отсутствовать и этом случае состояние является
анонимным. Если на диаграмме анонимных состояний несколько, то они
должны различаться между собой.
Список внутренних действий
Cодержит перечень действий или деятельностей, которые
выполняются во время нахождения моделируемого элемента в
данном состоянии. Каждое из действий записывается в виде
отдельной строки и имеет следующий формат:
<метка-действия '/' выражение-действия>
Метка действия указывает на обстоятельства или
условия, при которых будет выполняться
деятельность, определенная выражением
действия.
Выражение действия может использовать любые
атрибуты и связи, которые принадлежат контексту
моделируемого объекта.
Перечень меток
• entry - эта метка указывает на действие, которое выполняется в момент входа в данное
состояние (входное действие);
• exit - эта метка указывает на действие, которое выполняется в момент выхода из данного
состояния (выходное действие);
• do - эта метка специфицирует выполняющуюся деятельность («do activity»), которая
выполняется в течение всего времени, пока объект находится в данном состоянии, или до
тех пор, пока не закончится вычисление, специфицированное следующим за ней
выражением действия;
• include - эта метка используется для обращения к подавтомату, при этом следующее за
ней выражение действия содержит имя этого подавтомата.
Начальное состояние
Представляет собой частный случай состояния, которое
не содержит никаких внутренних действий. В этом
состоянии находится объект по умолчанию в начальный
момент времени.
Графически начальное состояние в языке UML
обозначается в виде закрашенного кружка, из которого
может только выходить стрелка, соответствующая
переходу.
Конечное состояние
Представляет собой частный случай состояния, которое также не
содержит никаких внутренних действий.
В этом состоянии будет находиться объект по умолчанию после
завершения работы автомата в конечный момент времени.
Графически конечное состояние в языке UML обозначается в
виде закрашенного кружка, помещенного в окружность, которую
может только входить стрелка, соответствующая переходу.
Переходы
• Представляет собой отношение между двумя последовательными
состояниями, которое указывает на факт смены одного состояния объекта
другим.
• Если пребывание моделируемого объекта в первом состоянии
сопровождается выполнением некоторых действий, то переход во второе
состояние будет возможен только после завершения этих действий и,
возможно, после выполнения некоторых дополнительных условий,
называемых сторожевыми условиями.
На диаграмме состояний переход изображается сплошной линией со
стрелкой, которая направлена в целевое состояние. Каждый переход может
быть помечен строкой текста, которая имеет следующий общий формат:
<сигнатура события>'['<сторожевое условие>']' <выражение действия>.
При этом сигнатура события описывает некоторое событие с
необходимыми аргументами:
<имя события>'('<список параметров, разделенных запятыми>')'.
Составные части описания перехода могут разделяться слешем - /.
Сторожевское условие
Сторожевое условие (guard condition), если оно есть, всегда записывается в
прямых скобках после события-триггера и представляет собой некоторое
булевское выражение.
Из контекста диаграммы состояний должна явно следовать семантика этого
выражения.
Пример события и Сторожевского
условия
Разрыв телефонного соединения с провайдером (событие) интернет-услуг
после окончания загрузки электронной почты клиентской почтовой
программой.
В этом случае сторожевое условие - ответ на вопрос: «Пуст ли почтовый
ящик клиента на сервере провайдера?».
В случае положительного ответа - «Да», отключаем соединение с
провайдером, что и делает автоматически почтовая программа-клиент. В
случае отрицательного ответа - «Нет», оставаемся в состоянии загрузки
почты и не разрывать телефонное соединение.
Выражение действия
Выражение действия (action expression) выполняется
только при срабатывании перехода. Оно представляет
собой атомарную операцию, выполняемую сразу после
срабатывания соответствующего перехода до начала
каких бы то ни было действий в целевом состоянии.
Составное состояние
Составное состояние (composite state) это сложное состояние, состоящее из других
вложенных в него состояний. Вложенные состояния выступают по отношению к сложному
состоянию как подсостояия (substate). Хотя между ними имеет место отношение
композиции, графически все вершины диаграммы, которые соответствуют вложенным
состояниям, изображаются внутри символа составного состояния.
Без суперсостояния пришлось бы рисовать переход cancel (отмена)
для всех трех состояний внутри состояния Enter Connection Details
Параллельные состояния
Параллельные подсостояния (concurrent substates) позволяют
специфицировать два и более подавтомата, которые могут выполняться
параллельно внутри составного события. Каждый из подавтоматов
занимает некоторую область или регион внутри составного состояния,
которая отделяется от остальных горизонтальной пунктирной линией.
Историческое состояние
Используется для запоминания того из последовательных
подсостояний, которое было текущим в момент выхода из
составного состояния.
Тогда включены часы, опция радио/CD переходит в состояние,
в котором находились часы, когда они были выключены.
Сложные переходы*
1. Переходы между составными состояниями
2. Переходы между параллельными состояниями
3. Синхронизирующие состояния
Переход между составными
состояниями
Переходы между параллельными
состояниями
• Таковыми называются переходы с несколькими исходными или конечными состояниями
объектов
• Обозначаются жирной вертикальной или горизонтальной чертой
Синхронизирующие состояния
Как правило переходы на диаграммах принимаются асинхронными, т.е. независящими от
других переходов.
При проектировании может возникнуть необходимость показать синхронность переходов
между состояниями объекта. Это достигается при помощи синхронизирующих состояний.
В данном случае переход из C в D синхронизирует переход A в B

More Related Content

What's hot

Диаграмма последовательности
Диаграмма последовательностиДиаграмма последовательности
Диаграмма последовательностиDEVTYPE
 
Collaboration diagram
Collaboration diagramCollaboration diagram
Collaboration diagramaepetelin
 
Нормальные формы для формул алгебры высказываний. Совершенные нормальные формы
Нормальные формы для формул алгебры высказываний. Совершенные нормальные формыНормальные формы для формул алгебры высказываний. Совершенные нормальные формы
Нормальные формы для формул алгебры высказываний. Совершенные нормальные формыИльдус Ситдиков
 
Факторный анализ
Факторный анализФакторный анализ
Факторный анализIvan Ignatyev
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Javametaform
 
TMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityTMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityIosif Itkin
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Javametaform
 

What's hot (10)

5 sl sign
5 sl sign5 sl sign
5 sl sign
 
Диаграмма последовательности
Диаграмма последовательностиДиаграмма последовательности
Диаграмма последовательности
 
Collaboration diagram
Collaboration diagramCollaboration diagram
Collaboration diagram
 
Lektsia%2b6
Lektsia%2b6Lektsia%2b6
Lektsia%2b6
 
Нормальные формы для формул алгебры высказываний. Совершенные нормальные формы
Нормальные формы для формул алгебры высказываний. Совершенные нормальные формыНормальные формы для формул алгебры высказываний. Совершенные нормальные формы
Нормальные формы для формул алгебры высказываний. Совершенные нормальные формы
 
днф, кнф, сднф, скнф
днф, кнф, сднф, скнфднф, кнф, сднф, скнф
днф, кнф, сднф, скнф
 
Факторный анализ
Факторный анализФакторный анализ
Факторный анализ
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Java
 
TMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityTMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional Reliability
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
 

Viewers also liked

введение в объектно ориентированный анализ
введение в объектно ориентированный анализвведение в объектно ориентированный анализ
введение в объектно ориентированный анализMaksim Nikitin
 
Kataloghappyco 161230042032-161230065311
Kataloghappyco 161230042032-161230065311Kataloghappyco 161230042032-161230065311
Kataloghappyco 161230042032-161230065311Lider705
 
Chris Bull's Bi Portfolio
Chris Bull's Bi PortfolioChris Bull's Bi Portfolio
Chris Bull's Bi Portfolioz3bull
 
Graduate School pays off for University- bussiness story ready to edit
Graduate School pays off for University- bussiness story ready to editGraduate School pays off for University- bussiness story ready to edit
Graduate School pays off for University- bussiness story ready to editFalicya Crace
 
森林デザインプロジェクト プレゼン Final
森林デザインプロジェクト プレゼン Final森林デザインプロジェクト プレゼン Final
森林デザインプロジェクト プレゼン FinalReina Tsukimura
 
Divine chairs
Divine chairsDivine chairs
Divine chairsKunal Das
 
Design: From Engineer to Designer Perspective
Design: From Engineer to Designer PerspectiveDesign: From Engineer to Designer Perspective
Design: From Engineer to Designer PerspectiveAlan Ho
 
Online Customer Order Booking Portal (eCommerce Solution)
Online Customer Order Booking Portal (eCommerce Solution)Online Customer Order Booking Portal (eCommerce Solution)
Online Customer Order Booking Portal (eCommerce Solution)Mayank Chanlawala
 
Xlabs - Bemutatkozik a user experience
Xlabs - Bemutatkozik a user experienceXlabs - Bemutatkozik a user experience
Xlabs - Bemutatkozik a user experienceZoltan Kollin
 
2002 Raymond James Conference
	 2002 Raymond James Conference	 2002 Raymond James Conference
2002 Raymond James Conferencefinance2
 
morgan stanley Earnings 1999 2nd
morgan stanley Earnings 1999 2ndmorgan stanley Earnings 1999 2nd
morgan stanley Earnings 1999 2ndfinance2
 
mckesson Letter to Stockholders 2001
mckesson Letter to Stockholders 2001mckesson Letter to Stockholders 2001
mckesson Letter to Stockholders 2001finance2
 
valero energy Quarterly and Other SEC Reports 2004 3rd
valero energy  Quarterly and Other SEC Reports 2004 3rd valero energy  Quarterly and Other SEC Reports 2004 3rd
valero energy Quarterly and Other SEC Reports 2004 3rd finance2
 
500’s Demo Day Batch 15 >> Kanler
500’s Demo Day Batch 15 >> Kanler500’s Demo Day Batch 15 >> Kanler
500’s Demo Day Batch 15 >> Kanler500 Startups
 
500 Demo Day Batch 18: Vision X
500 Demo Day Batch 18: Vision X500 Demo Day Batch 18: Vision X
500 Demo Day Batch 18: Vision X500 Startups
 

Viewers also liked (16)

введение в объектно ориентированный анализ
введение в объектно ориентированный анализвведение в объектно ориентированный анализ
введение в объектно ориентированный анализ
 
Kataloghappyco 161230042032-161230065311
Kataloghappyco 161230042032-161230065311Kataloghappyco 161230042032-161230065311
Kataloghappyco 161230042032-161230065311
 
Chris Bull's Bi Portfolio
Chris Bull's Bi PortfolioChris Bull's Bi Portfolio
Chris Bull's Bi Portfolio
 
Office dasar word
Office dasar wordOffice dasar word
Office dasar word
 
Graduate School pays off for University- bussiness story ready to edit
Graduate School pays off for University- bussiness story ready to editGraduate School pays off for University- bussiness story ready to edit
Graduate School pays off for University- bussiness story ready to edit
 
森林デザインプロジェクト プレゼン Final
森林デザインプロジェクト プレゼン Final森林デザインプロジェクト プレゼン Final
森林デザインプロジェクト プレゼン Final
 
Divine chairs
Divine chairsDivine chairs
Divine chairs
 
Design: From Engineer to Designer Perspective
Design: From Engineer to Designer PerspectiveDesign: From Engineer to Designer Perspective
Design: From Engineer to Designer Perspective
 
Online Customer Order Booking Portal (eCommerce Solution)
Online Customer Order Booking Portal (eCommerce Solution)Online Customer Order Booking Portal (eCommerce Solution)
Online Customer Order Booking Portal (eCommerce Solution)
 
Xlabs - Bemutatkozik a user experience
Xlabs - Bemutatkozik a user experienceXlabs - Bemutatkozik a user experience
Xlabs - Bemutatkozik a user experience
 
2002 Raymond James Conference
	 2002 Raymond James Conference	 2002 Raymond James Conference
2002 Raymond James Conference
 
morgan stanley Earnings 1999 2nd
morgan stanley Earnings 1999 2ndmorgan stanley Earnings 1999 2nd
morgan stanley Earnings 1999 2nd
 
mckesson Letter to Stockholders 2001
mckesson Letter to Stockholders 2001mckesson Letter to Stockholders 2001
mckesson Letter to Stockholders 2001
 
valero energy Quarterly and Other SEC Reports 2004 3rd
valero energy  Quarterly and Other SEC Reports 2004 3rd valero energy  Quarterly and Other SEC Reports 2004 3rd
valero energy Quarterly and Other SEC Reports 2004 3rd
 
500’s Demo Day Batch 15 >> Kanler
500’s Demo Day Batch 15 >> Kanler500’s Demo Day Batch 15 >> Kanler
500’s Demo Day Batch 15 >> Kanler
 
500 Demo Day Batch 18: Vision X
500 Demo Day Batch 18: Vision X500 Demo Day Batch 18: Vision X
500 Demo Day Batch 18: Vision X
 

5 1 диаграммы состояний

  • 2. Цель данного вида диаграмм Диаграммы состояний используются с целью показать поведение одного объекта в течение его жизни, начиная от создания объекта и заканчивая его уничтожением. В объектно-ориентированных подходят изображают состояния единственого класса, чтобы показать поведение объекта в реальной жизни.
  • 3.
  • 5. Автомат Автомат - пакет, в котором определено множество понятий, необходимых для представления поведения моделируемой сущности в виде дискретного пространства с конечным числом состояний и переходов. Длительность нахождения системы в любом из возможных состояний существенно превышает время, которое затрачивается на переход из одного состояния в другое. Предполагается, что в пределе время перехода может быть равно нулю (если дополнительно не оговорено другое), то есть смена состояний объекта может происходить мгновенно.
  • 6. Обязательные условия автомата 1. Состояние, в которое может перейти объект, определяется только его текущим состоянием и не зависит от предыстории; 2. В каждый момент времени автомат может находиться только в одном из своих состояний. При этом, автомат может находиться в отдельном состоянии как угодно долго, если не происходит никаких событий; 3. Граф автомата не должен содержать изолированных состояний и переходов. Для каждого состояния, кроме начального, должно быть определено предшествующее состояние, а каждый переход должен соединять два состояния автомата; 4. Автомат не должен содержать конфликтующих переходов, когда объект одновременно может перейти в два и более последующих состояния.
  • 7.
  • 8. Состояние В языке UML под состоянием понимается абстракция, используемая для моделирования отдельной ситуации, в течение которой выполняются некоторые условия. • Состояние может быть задано в виде конкретных значений атрибутов класса или объекта. • Изменение отдельных значений атрибутов будет отражать изменение состояния моделируемого класса.
  • 9. Имя состояния Имя состояния представляет собой строку текста. • Имя всегда записывается с заглавной буквы. • Рекомендуется в качестве имени использовать глаголы в настоящем времени (звенит, печатает, ожидает), причастия (занят, свободен, передано, получено) или существительное, обозначающее некий процесс. • Имя у состояния может отсутствовать и этом случае состояние является анонимным. Если на диаграмме анонимных состояний несколько, то они должны различаться между собой.
  • 10. Список внутренних действий Cодержит перечень действий или деятельностей, которые выполняются во время нахождения моделируемого элемента в данном состоянии. Каждое из действий записывается в виде отдельной строки и имеет следующий формат: <метка-действия '/' выражение-действия>
  • 11. Метка действия указывает на обстоятельства или условия, при которых будет выполняться деятельность, определенная выражением действия. Выражение действия может использовать любые атрибуты и связи, которые принадлежат контексту моделируемого объекта.
  • 12. Перечень меток • entry - эта метка указывает на действие, которое выполняется в момент входа в данное состояние (входное действие); • exit - эта метка указывает на действие, которое выполняется в момент выхода из данного состояния (выходное действие); • do - эта метка специфицирует выполняющуюся деятельность («do activity»), которая выполняется в течение всего времени, пока объект находится в данном состоянии, или до тех пор, пока не закончится вычисление, специфицированное следующим за ней выражением действия; • include - эта метка используется для обращения к подавтомату, при этом следующее за ней выражение действия содержит имя этого подавтомата.
  • 13. Начальное состояние Представляет собой частный случай состояния, которое не содержит никаких внутренних действий. В этом состоянии находится объект по умолчанию в начальный момент времени. Графически начальное состояние в языке UML обозначается в виде закрашенного кружка, из которого может только выходить стрелка, соответствующая переходу.
  • 14. Конечное состояние Представляет собой частный случай состояния, которое также не содержит никаких внутренних действий. В этом состоянии будет находиться объект по умолчанию после завершения работы автомата в конечный момент времени. Графически конечное состояние в языке UML обозначается в виде закрашенного кружка, помещенного в окружность, которую может только входить стрелка, соответствующая переходу.
  • 15.
  • 16. Переходы • Представляет собой отношение между двумя последовательными состояниями, которое указывает на факт смены одного состояния объекта другим. • Если пребывание моделируемого объекта в первом состоянии сопровождается выполнением некоторых действий, то переход во второе состояние будет возможен только после завершения этих действий и, возможно, после выполнения некоторых дополнительных условий, называемых сторожевыми условиями.
  • 17. На диаграмме состояний переход изображается сплошной линией со стрелкой, которая направлена в целевое состояние. Каждый переход может быть помечен строкой текста, которая имеет следующий общий формат: <сигнатура события>'['<сторожевое условие>']' <выражение действия>. При этом сигнатура события описывает некоторое событие с необходимыми аргументами: <имя события>'('<список параметров, разделенных запятыми>')'. Составные части описания перехода могут разделяться слешем - /.
  • 18. Сторожевское условие Сторожевое условие (guard condition), если оно есть, всегда записывается в прямых скобках после события-триггера и представляет собой некоторое булевское выражение. Из контекста диаграммы состояний должна явно следовать семантика этого выражения.
  • 19. Пример события и Сторожевского условия Разрыв телефонного соединения с провайдером (событие) интернет-услуг после окончания загрузки электронной почты клиентской почтовой программой. В этом случае сторожевое условие - ответ на вопрос: «Пуст ли почтовый ящик клиента на сервере провайдера?». В случае положительного ответа - «Да», отключаем соединение с провайдером, что и делает автоматически почтовая программа-клиент. В случае отрицательного ответа - «Нет», оставаемся в состоянии загрузки почты и не разрывать телефонное соединение.
  • 20. Выражение действия Выражение действия (action expression) выполняется только при срабатывании перехода. Оно представляет собой атомарную операцию, выполняемую сразу после срабатывания соответствующего перехода до начала каких бы то ни было действий в целевом состоянии.
  • 21.
  • 22. Составное состояние Составное состояние (composite state) это сложное состояние, состоящее из других вложенных в него состояний. Вложенные состояния выступают по отношению к сложному состоянию как подсостояия (substate). Хотя между ними имеет место отношение композиции, графически все вершины диаграммы, которые соответствуют вложенным состояниям, изображаются внутри символа составного состояния.
  • 23. Без суперсостояния пришлось бы рисовать переход cancel (отмена) для всех трех состояний внутри состояния Enter Connection Details
  • 24. Параллельные состояния Параллельные подсостояния (concurrent substates) позволяют специфицировать два и более подавтомата, которые могут выполняться параллельно внутри составного события. Каждый из подавтоматов занимает некоторую область или регион внутри составного состояния, которая отделяется от остальных горизонтальной пунктирной линией.
  • 25.
  • 26. Историческое состояние Используется для запоминания того из последовательных подсостояний, которое было текущим в момент выхода из составного состояния.
  • 27. Тогда включены часы, опция радио/CD переходит в состояние, в котором находились часы, когда они были выключены.
  • 28. Сложные переходы* 1. Переходы между составными состояниями 2. Переходы между параллельными состояниями 3. Синхронизирующие состояния
  • 30. Переходы между параллельными состояниями • Таковыми называются переходы с несколькими исходными или конечными состояниями объектов • Обозначаются жирной вертикальной или горизонтальной чертой
  • 31. Синхронизирующие состояния Как правило переходы на диаграммах принимаются асинхронными, т.е. независящими от других переходов. При проектировании может возникнуть необходимость показать синхронность переходов между состояниями объекта. Это достигается при помощи синхронизирующих состояний. В данном случае переход из C в D синхронизирует переход A в B