Explication des flèches UML

244

J'ai récemment étudié UML et dessiné des diagrammes simples avec des flèches simples ordinaires entre les classes, mais je sais que ce n'est pas suffisant. Il existe de nombreuses autres flèches: généralisation, réalisation, etc. qui ont un sens pour le lecteur de diagramme.

Existe-t-il une ressource intéressante qui pourrait expliquer chaque flèche (ordinaire, ordinaire, en pointillé, remplie de diamant, diamant)?

Ce serait le meilleur s'il avait des exemples de code pour eux.

faya
la source
4
Je recommande fortement ce considérant: dzone.com/refcardz/getting-started-uml
trinité

Réponses:

475

Voici quelques explications des documents Visual Studio 2015:

Diagrammes de classes UML: référence : https://msdn.microsoft.com/library/dd409437%28VS.140%29.aspx

Diagramme de classe UML

5 : Association : Une relation entre les membres de deux classificateurs.

5a : Agrégation : association représentant une relation de propriété partagée. La propriété d' agrégation du rôle propriétaire est définie sur Partagé .

5b : Composition : association représentant une relation intégrale. La propriété d' agrégation du rôle propriétaire est définie sur Composite .

9 : Généralisation : Le classificateur spécifique hérite d'une partie de sa définition du classificateur général. Le classificateur général se trouve à l'extrémité de la flèche du connecteur. Les attributs, les associations et les opérations sont hérités par le classificateur spécifique. Utilisez l' outil Héritage pour créer une généralisation entre deux classificateurs.

Diagramme de package

13 : Importation : relation entre les packages, indiquant qu'un package inclut toutes les définitions d'un autre.

14 : Dépendance : la définition ou l'implémentation du classificateur dépendant peut changer si le classificateur à l'extrémité de la flèche est modifié.

Relation de réalisation

15 : Réalisation : La classe implémente les opérations et les attributs définis par l'interface. Utilisez l' outil Héritage pour créer une réalisation entre une classe et une interface.

16 : Réalisation : Une présentation alternative de la même relation. L'étiquette sur le symbole de la sucette identifie l'interface.

Diagrammes de classes UML: directives : http://msdn.microsoft.com/library/dd409416%28VS.140%29.aspx

Propriétés d'une association

Agrégation : elle apparaît sous la forme d'un losange à une extrémité du connecteur. Vous pouvez l'utiliser pour indiquer que les instances du rôle d'agrégation sont propriétaires ou contiennent des instances de l'autre.

Est navigable : si vrai pour un seul rôle, une flèche apparaît dans la direction de navigation. Vous pouvez l'utiliser pour indiquer la navigabilité des liens et des relations de base de données dans le logiciel.


Généralisation : la généralisation signifie que le type spécialisé ou dérivé hérite des attributs, des opérations et des associations du type général ou de base. Le type général apparaît à l'extrémité de la pointe de flèche de la relation.

Réalisation : La réalisation signifie qu'une classe implémente les attributs et les opérations spécifiés par l'interface. L'interface est à l'extrémité de la flèche du connecteur.

Dites moi si vous avez d'autres questions.

Esther Fan - MSFT
la source
1
Belle référence mais pour moi un Menu -> MenuItem a la même relation qu'un Order -> OrderItem donc les deux sont des Compositions.
Ignacio Soler Garcia
4
Cela signifie seulement que l'élément de commande appartient à une commande et ne peut pas être déplacé, tandis que l'élément de menu peut être réglable - l'utilisateur peut changer la position de l'élément de menu. C'est la solution choisie. Pourquoi pas?
Gangnus
@Gangnus, merci. Cette explication a clarifié la différence qui m'échappait depuis longtemps.
JMD
1
@JMD, Les articles de la commande peuvent également être déplacés. L'agrégation composite est définie dans la spécification UML comme suit: L'agrégation composite est une forme forte d'agrégation qui nécessite qu'un objet pièce soit inclus dans au plus un objet composite à la fois. Si un objet composite est supprimé, toutes ses parties qui sont des objets sont supprimées avec lui. Un objet pièce peut (lorsque cela est autrement autorisé) être supprimé d'un objet composite avant que l'objet composite ne soit supprimé, et donc ne pas être supprimé en tant que partie de l'objet composite.
www.admiraalit.nl
2
@aGer Merci, j'ai mis à jour le lien vers le sujet et l'image.
Esther Fan - MSFT
154

entrez la description de l'image ici

entrez la description de l'image ici

Je pense que ces photos sont compréhensibles.

artamonovdev
la source
Certains de ces concepts ne se chevauchent-ils pas? A dépend B. A a accès à B. Une association n'est-elle pas toujours une dépendance et une dépendance toujours une association?
EresDev
1
Dans le diagramme, la réalisation est répétée deux fois mais avec une image différente. Pouvez-vous expliquer la différence?
variable le
13

Ma "feuille de triche" UML préférée est UML Distilled , par Martin Fowler. C'est le seul de ses livres que j'ai lu que je recommande.

nbro
la source
1
Intéressant, j'ai bien aimé Refactoring. Est-ce celui sur lequel vous avez des opinions?
djna
Oui, j'ai trouvé tout cela un peu évident et je n'ai pas aimé la concentration sur Java. Aussi, ne prenez pas ma réponse comme disant que ses autres livres sont des ordures.
Le livre de Fowler a également une feuille de triche à l'intérieur des couvertures du livre. Vraiment bien pour commencer, d'autant plus que votre prochaine question sera dans quelle direction vont les flèches?
Ted Johnson,
12
185 pages semblent un peu excessives pour un "cheat sheet"!
cdyson37
12

Voici un tutoriel simplifié:

UML pratique

Pour plus, je recommande d'obtenir de la littérature.

Siblja
la source
9

Pour une référence rapide ainsi que des exemples clairs et concis, la référence rapide UML d'Allen Holub est excellente:

http://www.holub.com/goodies/uml/

(Il y a pas mal d'exemples spécifiques de flèches et de pointeurs dans la première colonne d'un tableau, avec des descriptions dans la deuxième colonne.)

marque
la source
J'ai aimé son tout premier exemple et j'espérais que hew irait progressivement sur les mêmes lignes avec les bases, mais c'est une bonne lecture
killjoy
6

Une description très facile à comprendre est la documentation de yuml , avec des exemples de diagrammes de classes, de cas d'utilisation et d'activités.

Karsten W.
la source
Probablement le meilleur UML-for-idiots en descendant cette liste; remarque: ce site vous permet également de dessiner vos propres UML gratuitement (5).
killjoy
6

La réponse acceptée étant dite, il manque quelques explications. Par exemple, quelle est la différence entre une association unidirectionnelle et une association bidirectionnelle? Dans l'exemple fourni, les deux font exist. (Les deux 5 dans les flèches)

Si vous cherchez une réponse plus complète et plus de temps, voici une explication approfondie.

Makan Tayebi
la source
0

Les agrégations et les compositions sont un peu déroutantes. Cependant, pensez que les compositions sont une version plus forte de l'agrégation. Qu'est-ce que ça veut dire? Prenons un exemple: (Agrégation) 1. Prenez une classe et des élèves: Dans ce cas, nous essayons d'analyser la relation entre eux. Une salle de classe a un relation avec les élèves. Cela signifie que la classe comprend un ou plusieurs étudiants. Même si nous supprimons la classe Classroom, la classe Students n'a pas besoin d'être détruite, ce qui signifie que nous pouvons utiliser la classe Student indépendamment.

(Composition) 2. Jetez un œil aux pages et au cours de lecture. Dans ce cas, les pages sont un livre, ce qui signifie que des collections de pages constituent le livre. Si nous supprimons la classe livre, la classe Page entière sera détruite. Cela signifie que nous ne pouvons pas utiliser la classe de la page indépendamment.

Si vous n'êtes toujours pas clair sur ce sujet, regardez cette courte vidéo merveilleuse, qui a expliqué plus clairement l'agrégation.

https://www.youtube.com/watch?v=d5ecYmyFZW0

Mr_b194
la source