Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.

class-in-state (класс в состоянии)

Класс с указанием состояния, в котором могут находиться его экземпляры.
См. activity graph.

Семантика

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

Нотация

Класс в состоянии изображается в виде символа класса, в котором за именем класса следует название состояния в квадратных скобках - Имя класса [название состояния]. В скобках может также находиться разделенный запятыми список имен одновременных состояний. Такой вариант указывает на то, что объект может находиться в нескольких состояниях из списка.

Обсуждение

Класс в состоянии и динамическая классификация - это два способа достижения одной цели: позволить объекту менять свою структуру. Выбирать один из этих способов следует, исходя из особенностей реализации модели.

Алфавитный указатель