В UML как вы называете объект, для которого вы строите диаграмму состояний? - PullRequest
0 голосов
/ 26 января 2020

Диаграммы состояний в UML всегда создаются для определенного класса c (то есть для описания поведения экземпляров этого класса). Таким образом, каждая диаграмма состояний связана с конкретным c объектом, для которого она определяет свое поведение. Как называется этот объект? в стандарте UML ближе всего можно найти термин «объект контекста», как здесь (раздел 14.2.3.1 в UML v2.5.1):

Пул событий для выполнения StateMachine принадлежит или его объект Классификатор контекста или ...

Но я не смог найти никого, кто использует этот термин.

Ответы [ 2 ]

1 голос
/ 26 января 2020

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

Диаграммы состояний в UML всегда создаются для определенного c класса

Вы должны говорить о конечном автомате , а не о диаграмме , и в вашем случае вы явно говорите о поведении конечного автомата (не о конечном автомате протокола ).

Диаграмма - это просто картинка , показывающая часть модели.

Таким образом, каждая диаграмма состояний связана с определенным c объект, для которого он определяет свое поведение. Как называется объект?

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

, то есть для описания поведения экземпляров этого класса

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

0 голосов
/ 28 января 2020

Возможно, кто-то, кто работал над все еще не принятой спецификацией Precise Semantics for State Machines в OMG, исправит меня, если я ошибаюсь, но я верю, что есть три возможных контекста выполнения.

Первый - это «активный класс», где каждый экземпляр работает в своем собственном потоке, и вы посылаете ему сигналы. Второй - класс обычного класса, где вы вызываете операции или отправляете сигналы обычному экземпляру обычным способом. Третий - класс BehavioredClassifier, где каждый экземпляр запускает специальный classifierBehavior, как только он создается.

§13.2.3.5 UML 2.5 spe c говорит:

Принимающий объект становится объектом контекста для выполнения любых вызванных методов.

ПРИМЕЧАНИЕ. Методы получения всегда вызываются асинхронно, в то время как методы операции могут вызываться синхронно или асинхронно, в зависимости от того, как вызывается операция.

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

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

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