Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Введение в ПИ / Lab / ЛК 3.4a UML-Диаграммы состояний.ppt
Скачиваний:
20
Добавлен:
26.02.2016
Размер:
994.3 Кб
Скачать

Курганский государственный университет Кафедра программного обеспечения

автоматизированных систем

К У Р С Л Е К Ц И Й

по дисциплине

ВВЕДЕНИЕ В ПРОГРАММНУЮ ИНЖЕНЕРИЮ

для студентов направления 231000.62

«Программная инженерия»

Лекция 3.?. Разработка логической модели поведения программной системы.

UML-диаграммы состояний

План лекции

1. Заключение Контрольные вопросы и задания

2

Введение

Рассмотренная выше диаграмма классов представляет собой

логическую модель статического представления моделируемой системы и

отображает только взаимосвязи структурного характера, не зависящие от времени или реакции системы на внешние события.

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

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

функциональности моделируемой системы предназначены диаграммы вариантов использования, которые на концептуальном уровне

описывают поведение системы в целом.

Динамические модели логического уровня представляют поведение системы более детально и позволяют ответить на вопрос: «В процессе какого поведения система обеспечивает необходимую функциональность?».

3

UML-диаграммы, используемые для моделирования поведения систем

Динамические модели логического уровня поддерживаются в языке UML несколькими каноническими диаграммами, каждая из которых фиксирует внимание на отдельном аспекте функционирования системы:

Диаграмма состояний (Statechart Diagram)

Диаграмма деятельности (Activity Diagram)

Диаграмма последовательности (Sequence Diagram)

Диаграмма кооперации (Collaboration Diagram).

4

ДИАГРАММА СОСТОЯНИЙ

Объектом рассмотрения данной лекции является ДИАГРАММА СОСТОЯНИЙ, главное предназначение которой – описание возможных

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

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

Системы, которые реагируют на внешние действия от других систем или от пользователей, иногда называют реактивными. Если такие действия инициируются в произвольные случайные моменты времени, то говорят об асинхронном поведении системы.

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

5

Диаграммы состояний – базовые понятия

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

Диаграмма состояний по существу является ориентированным графом специального вида, который представляет некоторый автомат. Понятие автомата в контексте UML обладает довольно специфической семантикой, основанной на теории автоматов.

Вершинами этого графа являются состояния и некоторые другие типы элементов автомата (псевдосостояния), которые изображаются соответствующими графическими символами. Дуги графа служат для обозначения переходов из состояния в состояние.

Диаграммы состояний могут быть вложены друг в друга, образуя вложенные диаграммы более детального представления отдельных элементов модели.

Для понимания семантики конкретной диаграммы состояний необходимо представлять не только особенности поведения моделируемой сущности, но и знать общие сведения по теории автоматов.

6

Автоматы

Автомат (state machine) в языке UML представляет собой некоторый формализм для моделирования поведения элементов модели и системы в целом. Автомат описывает поведение отдельного объекта в форме последовательности состояний, которые охватывают все этапы его жизненного цикла, начиная от создания объекта и заканчивая его уничтожением. Каждая диаграмма состояний представляет некоторый автомат.

Ниже приведен простейший пример визуального представления состояний и переходов на основе формализма автоматов - ситуация с исправностью технического компьютера. Рассматриваются два самых общих состояния: «исправен» и «неисправен» и два перехода: «выход из строя» и «ремонт».

7

Состояния и переходы – базовые свойства

Основными понятиями, входящими в формализм автомата, являются состояние (вершина графа) и переход (дуга ориентированного графа).

Поведение объекта моделируется как последовательное перемещение по графу состояний от вершины к вершине по связывающим их дугам с учетом их

ориентации. По отношению к некоторому переходу одно из состояний является

исходным (или состоянием-источником), а другое – целевым.

Смена состояний происходит в момент срабатывания перехода, при этом, как правило, предполагается, что переход объекта из состояния в состояние происходит мгновенно.

Хотя время нахождения объекта в том или ином состоянии явно не учитывается, предполагается, что последовательность изменения состояний упорядочена во времени - каждое последующее состояние всегда наступает

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

Другим важным свойством графа состояний является достижимость состояний - бинарное отношение на множестве всех состояний системы. Это

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

8

Состояния и переходы – базовые свойства

Допускается вложение одних автоматов в другие для уточнения внутренней структуры отдельных более общих состояний (макросостояний). В этом случае вложенные автоматы получили название подавтоматов.

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

В языке UML понятие автомата дополнено специальной семантикой входящих в соответствующий пакет элементов. Далее будут рассмотрены основные элементы поведения, которые образуют концептуальный базис, необходимый для правильного построения диаграмм состояний.

9

Формализм автоматов

языке UML рассматриваются только конечные автоматы, то есть количество

состояний автомата должно быть конечным, и все они должны быть специфицированы явным образом. При этом отдельные псевдосостояния

могут не иметь спецификаций (начальное и конечное состояния). В этом случае их назначение и семантика полностью определяются из контекста модели и рассматриваемой диаграммы состояний.

каждый момент времени автомат может находиться в одном и только в одном из своих состояний. Это означает, что формализм автомата предназначен для моделирования последовательного поведения, когда объект в течение своего жизненного цикла последовательно проходит через все свои состояния. При этом автомат может находиться в отдельном состоянии как угодно долго, если не происходит никаких событий.

отя процесс изменения состояний автомата происходит во времени, явно концепция времени не входит в формализм автомата - длительность нахождения автомата в том или ином состоянии, а также время достижения того или иного состояния никак не специфицируются. Другими словами, время на диаграмме состояний присутствует в неявном виде, хотя для отдельных10 событий может быть указан интервал времени и в явном виде.

Соседние файлы в папке Lab