2010-03-17 5 views
1

Je ne sais pas comment modéliser des sous-méthodes dans un diagramme de séquence UML. Quand dans l'exécution d'une méthode une autre méthode est appelée (de la même classe). J'ai essayé de donner un exemple ci-dessous:Comment UML: sous-méthodes/appels/opérations/procédures

Comment les gars modéliseriez-vous cela en UML (dans un diagramme de séquence)?

.. 
car1.drive(); 
.. 

... en classe Voiture:

.. 
drive(){ 
    this.startEngine(); 
} 
startEngine(){ 
    this.getKey(); 
    this.insertKey(); 
} 
.. 

un petit début:

objx  car1 
----  ---- 
|   | 
| drive() | 
|-------->| startEngine() 
|   |------------. 
|   |   | 
|   |<-----------. 
|   | 

Mais où vient la méthode getKey()? Est-ce que cela doit être communiqué via un autre diagramme de séquence? Ou y a-t-il un moyen d'inclure des sous-procédures?

Répondre

3

Vous utilisez un auto-message, comme dans les domaines suivants:

Drive a Car

Notez les Lifelines "empilés"? Ce sont des niveaux d'activation. Il montre que la méthode drive appelle startEngine, qui appelle alors getKey suivi de insertKey. J'ai laissé les retours implicites.

+0

Comment faites-vous getKey et insertKey au même niveau dans EA? – hardywang

0

Vous pouvez avoir plus d'une ligne de vie d'objet de classe sur votre diagramme. Vous pourriez même avoir votre clé get fournie par votre objet acteur. Le diagramme de séquence est là pour vous aider à décider de l'ordre dans lequel les choses se produisent. Si vous essayez de démontrer une situation réelle, alors la clé est fournie par votre acteur. Donc GetKey() serait un processus interne sur le pilote. Le pilote insérera ensuite InsertKey() sur la ligne de vie Car. La voiture vérifie VerifyKey() en tant que processus interne et renvoie si la clé a été vérifiée ou non. Si le pilote est vérifié, TurnKey() sur la voiture. La voiture aurait en interne StartEngine() et retourner un message d'état au conducteur.

+0

Merci pour votre réponse, mais ma question est plus sur la modélisation des sous-méthodes. Comment devrais-je dessiner des sous-méthodes? Je viens de donner un exemple d'arbitrage sur une voiture. – hsmit