2010-10-25 4 views
2

J'utilise Visual Paradigm for UML pour modéliser notre hiérarchie de classe. J'ai souvent le cas où l'une de nos interfaces a une méthode nécessite une implémentation d'une autre de nos interfaces en tant que paramètre d'une méthode. Exemple (C++, interface = classe abstraite):Comment modéliser l'utilisation d'une interface en tant que paramètre pour une méthode d'une autre interface en UML?

class IFoo { 
public: 
    virtual void bla() = 0; 
}; 

class IBar { 
public: 
    virtual void meep(IFoo &) = 0; 
}; 

I possède pas de problème modéliser les deux interfaces, mais je me demande quel type d'association à utiliser pour représenter visuellement la relation de ces deux interfaces. Actuellement j'utilise le Usage -relation fourni par Visual Paradigm, mais je ne suis pas sûr si cela est en effet destiné à ce scénario. Est-ce la relation correcte à utiliser? Si non, comment puis-je modéliser cette relation?

Répondre

0

Au moins dans un diagramme de classes, il n'y a pas de représentation visuelle de ce qui se passe.

Le Usage que vous avez suggéré ferait une sorte de "méta" information, je suppose. Une alternative serait de le spécifier dans un diagramme Usecase. Mais ce serait aussi ce que j'appellerais «out-of-band» ou méta-niveau, car les Usecases ne sont généralement utilisées que pour communiquer un sentiment chaud et moelleux d'avoir documenté quelque chose ...

+0

La représentation visuelle est juste un supplément. Cela nous aide à voir immédiatement les dépendances parmi les interfaces externes. –

0

You peut utiliser une flèche de dépendance pointant de l'interface avec l'opération dépendante à l'interface utilisée en tant que paramètre dans l'opération. Vous pouvez ensuite modéliser les spécificités de la dépendance en fournissant la signature complète des opérations dépendantes dans votre élément de modèle d'interface.

Si vous souhaitez fournir encore plus de détails décrivant la nature de la dépendance, vous pouvez joindre une note à la flèche de dépendance.

En utilisant votre exemple:

alt text

Questions connexes