2017-05-09 5 views
1

Est-il possible d'afficher une instruction return comme description d'une transition dans un diagramme UML?Comment représenter une déclaration de retour dans une machine d'état UML?

Existe-t-il une syntaxe ou une convention définie?

Exemple: int doSomething()

état 1 --- retour doSomething() ---> état 2

Je ne trouve rien approprié à ce sujet et je ne suis pas coupé out pour lire les spécifications OMG UML si elle devait être écrite là. La seule chose que j'ai trouvé est ce

Paper on Modelling Recursive Calls with UML State Diagrams.

Les auteurs utilisent Methode State Machines pour suivre l'état d'une méthode. Mais j'aimerais savoir comment l'écrire en tant qu'action , par ex. utiliser des fonctions avec des valeurs de retour plutôt que suivre l'état spécifique dans lequel se trouve une méthode.

+0

Le papier lui-même semble être daté 2003. Il se réfère à UML 1.4 de 2001. La spécification UML actuelle est très améliorée par rapport à ces versions anciennes. –

Répondre

1

Un état "normal" n'a pas de retour. Un état ne se souvient pas d'où il vient. Cependant, il y a un concept de l'histoire Etat (p 307, UML 2.5 actuelles spécifications.):

Le concept de l'histoire Etat a été introduit par David Harel dans le formalisme de statechart d'origine. C'est un concept de commodité associé aux Régions d'États composites, par lequel une Région conserve une trace de la configuration d'état dans laquelle elle se trouvait au moment de sa dernière sortie. Cela permet un retour facile à la même configuration d'état, si cela est souhaité, la prochaine fois que la région devient active (par exemple, après avoir renvoyé une interruption), ou s'il y a une transition locale qui retourne à son historique. Ceci est réalisé simplement en terminant une Transition sur le type désiré d'histoire Pseudostate à l'intérieur de la Région. L'avantage de cette fonctionnalité est qu'elle élimine le besoin pour les utilisateurs de garder une trace de l'historique dans les cas où ce type de comportement est souhaité, ce qui peut aboutir à des modèles de machine d'état beaucoup plus simples.

Prenez ceci par exemple:

enter image description here

Quand jamais une transition vers State1 est fait, le sous-état actuel de State2 est sauvé. Une transition vers le petit cercle marqué H restaurera le sous-état précédent (State3 ou 4).