Описать переход класса в диаграмме состояний UML.

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

Не могли бы вы дать мне пример того, как создать диаграмму состояний, показывающую переход класса в программировании ООП?

Я гуглил это раньше, но ничего не нашел. Часть, где я немного запутался, это то, где разместить функции и атрибуты класса на диаграмме состояний.

Заранее спасибо!


person januaryananda    schedule 17.02.2015    source источник


Ответы (1)


Атрибуты/операции являются частью переходов. Вы можете проверять атрибуты как часть Guard, который ограничивает переход между состояниями. При входе/выходе (и внутри) состояния вы можете выполнять операции класса.

Изменить на основе вашего комментария:

Предположим, у меня есть класс с именем Teacher с двумя функциями с именами getteachername() и setteachername() с одним атрибутом с именем name.

Вы бы использовали диаграмму состояний (в следующем очень тривиальном и глупом случае), если вам нужно реализовать ограничения. Скажите, что имя может быть установлено только в правиле, позволяющем добавлять к нему строку, если оно начинается с «Пол». Затем вы начинаете с состояния isEmpty. У него есть исходящий переход modify, где он переходит к statePaul, если установлено имя "Пол". Из этого состояния вы можете перейти в то же состояние при добавлении чего-либо к name. Из stateOther можно перейти только в isEmpty.

Обратите внимание, что это построено, глупо и нереалистично. Но он показывает, как конечный автомат управляет изменениями атрибутов на основе использования методов класса.

person qwerty_so    schedule 17.02.2015
comment
Да, как в примере схемы конечного автомата UML uml-diagrams.org: жизненный цикл размещенного приложения DICOM и его пример окружения - person xmojmr; 17.02.2015
comment
Я все еще запутался в определении того, что должно быть на диаграмме состояний. Предположим, у меня есть класс по имени учитель с двумя функциями с именами getteachername() и setteachername() с одним атрибутом с именем name. Итак, как я могу создать диаграмму состояний на основе этого класса? - person januaryananda; 18.02.2015