2008-12-01 7 views
6

Je tente de créer un diagramme UML représentatif d'un code Java.Représentation de méthodes surchargées dans UML

Dans une classe, j'ai une méthode qui est surchargée. Pour autant que je sache, les paramètres des méthodes ne sont pas représentés dans les diagrammes UML. Comment est-ce que je représente la surcharge de méthode dans UML?

Merci.

+0

Quel outil utilisez-vous? –

Répondre

2

Vérifiez les options d'affichage pour l'ensemble du diagramme ou la classe/interface individuelle. La plupart des outils UML ont des options à afficher pour afficher la liste des paramètres des méthodes.

3

Dans la sous-classe, vous spécifiez la méthode avec la même signature que la méthode que vous souhaitez remplacer et ajoutez une note {redéfinit} à la méthode. Par exemple:

+doSomething(p:AThing):int{redefines} 

Cela implique que la méthode doSomething() remplace la méthode dans une super classe. Et oui, les paramètres pour les méthodes sont affichés sur les diagrammes. Comme dans l'exemple, p est un paremètre de type AThing.

+1

+1, mais vous aimeriez peut-être corriger l'orthographe de {redifines} -> {redéfinir} – chimp

+2

La surcharge n'est pas la même chose que la redéfinition. Il peut n'y avoir aucune classe de base du tout (autre que Object), mais la classe pourrait avoir foo (int): int et foo (double): double. –

2

Vous ne dites pas votre outil et diagramme UML (je pense que la classe diagramme), mais vous avez 2 façons:

  1. vous pouvez écrire une note sur cette méthode;
  2. vous pouvez utiliser le mot-clé stéréotype écriture < < surchargé >> dans cette méthode;
0

La plupart des réponses ci-dessus sont correctes compte tenu d'une certaine question. Alepuzio, Vincent et bmatthews68 ont tous des réponses qui ont du sens dans leur contexte.

** Si la question est autour Le remplacement d'une méthode de super classes avec la même signature que la redéfinition est la définition correcte. S'il est surchargé en créant la même méthode qui prend des arguments différents alors je ne crois pas qu'il soit possible de modéliser structurellement, vous pouvez le montrer avec un diagramme de séquence par exemple qui est comportemental, mais pas vraiment.

Donc + faireQuelque chose (p: AThing): int {redéfinit} est correct ce que Vincent a mis.

** Si votre problème/question concerne uniquement les paramètres n'apparaissant pas visuellement dans un diagramme qui est généralement un paramètre dans la plupart des outils UML.

** Si vous voulez rendre encore plus clair ce que vous faites, utilisez un mot-clé <>, notez également qu'un mot-clé n'est pas un stéréotype car il ne fait pas partie du méta-modèle.

3

Lorsque vous parlez de surcharge - par ex. dans votre classe vous avez plus de méthodes avec le même nom mais une signature différente (paramètres, peut-être retourner la valeur en fonction de la langue cible ...), vous devez fournir la signature. UML ne spécifie pas que vous ne pouvez pas avoir de paramètres de méthode.

Questions connexes