2010-04-22 8 views
9

Moi et plusieurs autres développeurs nettoient actuellement notre base de code existante, en séparant principalement les couches visuelles et de données. Pour aider les développeurs non impliqués dans ce refactoring à comprendre le modèle, j'aimerais introduire un diagramme de classes (plutôt informel) avec des commentaires sur la portée et l'utilisation souhaitée pour chaque classe. Puisque je suis fainéant, j'aimerais utiliser UMLGraph pour ça.Comment représenter correctement un mixin/rôle/trait avec UML?

Cependant, il y a un petit problème: nous avons une base de code perl et le refactoring utilise intensément les rôles de Moose. Maintenant, je ne connais pas UML assez bon pour trouver une abstention correcte pour les rôles - ma première supposition serait des interfaces, mais ils contiennent également la mise en œuvre; l'héritage multiple ne le coupe pas non plus.

Comment représenter (ou comment) représenter correctement les rôles dans un diagramme de classes?

Répondre

3

Je représente un rôle en tant que classe UML avec le stéréotype «role». La classe composant le rôle aurait alors une association avec le rôle avec le stéréotype «does».

Simple Composition http://img820.imageshack.us/img820/5665/simplecomposition.png

Si je devais adapter davantage le rôle, avec des alias ou des exclusions, je créerais que comme une classe d'association avec les membres et annotées correctement le stéréotype «adaptation». Le nom de la classe d'association n'aurait pas d'importance, car ce ne sera pas un type réel dans la conception; donc je le laisserais sans nom.

Composition with Conflict Resolution http://img828.imageshack.us/img828/244/conflictcomposition.png

(S'il vous plaît noter que je l'ai montré l'adaptation « classe » connecté à la composition et le rôle qu'elle adapte. Ce que je voulais vraiment faire était le connecter à l'association entre MyComposition et MyRole1. Il est juste que l'outil que j'ai utilisé ne supporte pas les classes d'association).

+0

Jordão, j'aime le look de ces diagrammes. Quel outil avez-vous utilisé pour les créer? –

+0

@WayneConrad: J'ai utilisé [yUML] (http://yuml.me/), jetez un coup d'œil! –

+0

C'est comme graphviz pour UML. Très agréable! –

Questions connexes