Comment afficher la condition «si» sur un diagramme de séquence?


209

Je me demandais, comment peut-on représenter une déclaration " if" sur un diagramme de séquence?

if (somethingShouldBeDone) {
       // Do it
} else {
       // Do something else
}

Peut-il être représenté du tout? Le fait est que ... dans mon code, une bonne quantité de conditions sont vérifiées pour déterminer une variété d'actions. Si je vais montrer les actions, je voudrais déclarer explicitement que les actions sont causées par des événements particuliers.

Si possible, créez une représentation d'image d'une solution.


1
Je sais que cette question est ancienne et que je n'ai pas encore fait de recherche, mais cela m'a amené à me demander si montrer le branchement est même une bonne idée pour les diagrammes de séquence. J'ai toujours pensé que les conditions de la séquence étaient explicitement décrites dans le scénario et donc aucun branchement n'a eu lieu pendant la séquence. Des chemins alternatifs ont été traités en décrivant une variante du scénario qui avait son propre diagramme de séquence. C'est un peu subjectif, alors je devrais peut-être le publier sur Meta ou éventuellement sur le génie logiciel?
Kelly

Réponses:


303

Sinon, la condition, également appelée alternatives en termes UML, peut en effet être représentée dans des diagrammes de séquence. Voici un lien où vous pouvez trouver de belles ressources sur le sujet http://www.ibm.com/developerworks/rational/library/3101.html

ramification avec alt


Dans Visio, Alts'appelle-t-il autre chose? Je n'arrive pas à le trouver
James Raitsev

13
Visio en soi n'est pas un outil de modélisation UML. Si vous souhaitez utiliser UML 2.0, vous devez trouver un bon gabarit Visio qui implémente pleinement les spécifications 2.0. Il existe plusieurs pochoirs gratuits disponibles sur le Web, vous voudrez peut-être en essayer quelques-uns :) En voici un qui a l'air bien (
je

Existe-t-il d'autres outils UML en dehors de Visio. L'architecte d'entreprise est-il assez bon?
Venkat Madhav

1
@VenkatMadhav Je ne peux pas vraiment le dire. Je ne l'ai jamais utilisé à sa pleine puissance, mais d'après la lecture que j'ai trouvée sur Google, cela devrait être plutôt bon
GETah

@Venkat Je suis personnellement fan du paradigme visuel. ( visual-paradigm.com )
Cody Poll

36

Si vous collez

A.do() {
  if (condition1) {
   X.doSomething
  } else if (condition2) {
   Y.doSomethingElse
  } else {
   donotDoAnything
  }
}

sur https://www.zenuml.com . Il générera un diagramme pour vous.Diagramme de séquence If / else


@ Gholamali-Irani avez-vous essayé l'extension Chrome?
Xiao Peng - ZenUML.com

Si c'est le cas A.do(int condition)- Si… autrement… autrement, tout ne peut pas se produire à la suite d'un seul appel. Le flux dépend de l'argument de la condition. Ce serait bien si ZenUML pouvait dessiner ça. Ce serait trois appels ordonnés à temps.
Chef Gladiator

@ChefGladiator Je ne suis pas sûr de comprendre ce que vous voulez dire. Pourriez-vous s'il vous plaît ajouter un pseudo code ici? Ou vous pouvez me pointer sur le site.
Xiao Peng - ZenUML.com

Bien sûr, voici le code: wandbox.org/permlink/PURdGJc8YxJmpUh7 - il y a trois appels requis pour que toutes les conditions soient remplies. La séquence UML doit afficher trois appels, pas un.
Chef Gladiator

Bien sûr, les diagrammes d'activité sont préférables pour afficher les internes de l'algorithme /
Chef Gladiator

3

Très simple, en utilisant le fragment Alt

Prenons un exemple de diagramme de séquence pour un guichet automatique. Disons ici que vous voulez

Si la carte insérée est valide, alors invite "Enter Pin" .... ELSE invite "Invalid Pin"

Alors voici le diagramme de séquence pour le même

Diagramme de séquence de guichet automatique

J'espère que cela t'aides!


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.