OpenU.Ru
Класс с указанием состояния, в котором могут находиться
его экземпляры.
См. activity graph.
Семантика
У класса, имеющего конечный автомат, есть много
состояний, каждое из которых характеризует поведение,
значения и ограничения,
существующие у экземпляров этого класса в данном состоянии. Бывают случаи, когда
определенные атрибуты, ассоциации
и операции действительны, только если объект находится
в определенном состоянии или множестве состояний. Бывает также, что аргументом
операции является объект, находящийся в некоем состоянии. Как правило, все эти
различия актуальны для моделей, описывающих поведение. Однако иногда бывает
удобно вносить их непосредственно в статическую модель или модель взаимодействия.
Класс в состоянии - это класс, взятый в совокупности с тем состоянием, в котором
могут находиться его объекты. Если у этого класса есть параллельные подсостояния,
то определением состояния может быть то множество подсостояний,
в котором объекты этого класса могут находиться одновременно.
Класс в состоянии можно использовать как классификатор - он ведет себя как подкласс
этого самого класса. Его можно также использовать как класс для переменной или
параметра. Он может участвовать в ассоциациях, которые действительны только
для объектов в определенном состоянии.
Рис. 46. Класс в состоянии
На рис. 46 изображена ассоциация Assignment (Назначение) между SubmittedPaper
(ПредставленныйДокумент) и ConferenceSession (ЗаседаниеКонференции). Такая ассоциация
будет действительна только для объекта класса SubmittedPaper в состоянии accepted
(принято) (целевая множественность равна единице), но не в состоянии rejected
(отклонено). Для любого объекта класса SubmittedPaper целевой множественностью
будет нуль или единица, так как и принятые и отклоненные документы принадлежат
к одному классу. Однако в ассоциации между SubmittedPaper в состоянии accepted
и ConferenceSession целевая множественность равна только единице.
С помощью элементов класса в определенном состоянии на графах деятельности можно
показывать входные и выходные значения операций.
Нотация
Класс в состоянии изображается в виде символа класса, в котором за именем класса следует название состояния в квадратных скобках - Имя класса [название состояния]. В скобках может также находиться разделенный запятыми список имен одновременных состояний. Такой вариант указывает на то, что объект может находиться в нескольких состояниях из списка.
Обсуждение
Класс в состоянии и динамическая классификация
- это два способа достижения одной цели: позволить объекту менять свою структуру.
Выбирать один из этих способов следует, исходя из особенностей реализации модели.