UML pour les plus petits: diagramme de classes





Ave, codeur! Un diagramme de classes UML illustre la structure d'un système, décrivant les classes, leurs attributs, leurs méthodes et les relations entre les objets.



Même les plus petits enfants savent que UML vient du langage de modélisation unifié, s'il est alors en russe - un langage de modélisation unifié qui, comme le dit la légende, a été développé lorsque des oncles et des tantes sérieux se sont finalement lassés de nager dans une variété de cercles, de tirets et de nuages.



Pour ceux qui sont trop paresseux pour lire:



Le personnage principal







Tout d'abord, rappelons-nous ce qu'est une classe? En un mot, une classe est un modèle de création d'objets qui fournit des valeurs d'état initiales: initialisation de champs variables et implémentation du comportement des champs et des méthodes.



Essentiellement, une classe décrit ce qu'un objet peut être.







Une classe représente un concept qui décrit l'état (attributs) et le comportement (méthodes). Chaque attribut a son propre type, chaque méthode a sa propre signature, mais dans le diagramme de classes, seul le nom de la classe est une information à renseigner, ce qui est logique - même les meilleurs médiums du monde ne seront pas en mesure de comprendre ce qu'est ce carré sans nom et à quoi il se réfère généralement.



Le nom de la classe est écrit dans la division supérieure, suivi des attributs de classe, dont les types sont écrits après les deux points, et enfin, dans la division inférieure, il y a des méthodes.



Le type qu'une méthode peut renvoyer est écrit après les deux points à la toute fin de la signature de la méthode. Les modificateurs de portée sont affichés devant les attributs de classe et les méthodes.







Chaque paramètre d'une méthode peut également avoir une description de la direction de la méthode: in, out, inout.

Dans cette illustration, method1 utilise p1 comme entrée et la valeur de p1 est en quelque sorte utilisée par la méthode, et la méthode ne change pas p1.



La méthode2 prend p2 comme paramètre d'E / S, la valeur de p2 est en quelque sorte utilisée par la méthode et prend la sortie de la méthode, mais la méthode elle-même peut également changer p2.



La méthode3 utilise p3 comme paramètre de sortie, en d'autres termes, le paramètre sert de stockage pour la valeur de sortie de la méthode.



Perspectives sur les diagrammes de classes dans le cycle de vie du développement logiciel



Nous pouvons utiliser des diagrammes de classes à différentes étapes du cycle de vie du développement logiciel et modéliser progressivement des diagrammes de classes à partir de trois perspectives différentes au fur et à mesure que nous progressons dans les niveaux de détail.







La perspective conceptuelle est lorsque les diagrammes sont interprétés comme décrivant des choses dans le monde réel. Ainsi, si nous adoptons une perspective conceptuelle, nous dessinons un diagramme qui représente les concepts dans la zone d'étude. Ces concepts sont liés aux classes qui les implémentent. La perspective conceptuelle est considérée comme indépendante du langage.







Une perspective de spécification est lorsque les diagrammes sont interprétés comme décrivant des abstractions logicielles ou des composants avec des spécifications et des interfaces, mais pas liés à une implémentation spécifique.







Une perspective d'implémentation est lorsque les diagrammes sont interprétés comme décrivant des implémentations logicielles dans une technologie et un langage particuliers.

Ainsi, si vous prenez une perspective d'implémentation, vous regardez l'implémentation logicielle.



Types de relations



Ensuite, je présenterai six types principaux de notation de relation de classe qui sont les plus courants dans les diagrammes UML.



Association.





Comme les liens reliant les objets, les associations lient les classes. Pour que les objets soient connectés, il doit y avoir une association entre eux.



Si nous supposons que nous avons deux classes qui interagissent l'une avec l'autre, une ligne de connexion continue doit être tracée entre elles, indiquant l'association sur le diagramme. Souvent, nous pouvons également voir un verbe qui transmet sa signification.



De plus, nous pouvons également spécifier la multiplicité, c'est-à-dire le nombre d'objets pouvant participer à la relation. La multiplicité est spécifiée sous la forme d'une liste d'intervalles séparés par des virgules, dans laquelle chaque intervalle est représenté comme un minimum-maximum.



Par exemple, un élève peut apprendre de plusieurs enseignants.

Mais un enseignant peut enseigner à de nombreux élèves.



Héritage







Ou parfois on l'appelle aussi - généralisation.



Comme son nom l'indique, il s'agit d'une représentation schématique de la relation entre une classe parente et ses descendants. La flèche creuse pointe toujours vers la classe parent.

Un exemple classique d'héritage: les classes square, rectangle et circle, qui héritent de la classe de figure parent.



Nous avons le droit de représenter l'héritage séparément pour chaque classe et de les combiner.

Si l'héritage provient d'une classe abstraite, le nom d'une telle classe parente est écrit en italique.



la mise en oeuvre







Habituellement, cela fait référence à la relation entre une interface et des objets qui implémentent cette interface.



Par exemple, l'interface Propriétaire a des méthodes pour acheter et vendre une propriété privée, et la relation entre les classes Person et Corporation qui implémentent cette interface sera indiquée dans le diagramme par une ligne en pointillé avec une flèche pointant vers l'interface.



Dépendance Un







objet d'une classe peut utiliser un objet d'une autre classe dans sa méthode.

Si l'objet n'est pas stocké dans le champ de classe, alors ce type de relation interclasse est modélisé comme une dépendance.



La dépendance est, en fait, un cas particulier d'association de deux classes, dans ce cas, les changements dans une classe entraîneront inexorablement des changements dans l'autre.



Par exemple, la classe Person a une méthode hasRead avec le paramètre d'entrée book, qui renvoie true si, par exemple, la personne a lu un livre.



La dépendance est indiquée par une ligne en pointillé avec une flèche tournée vers la classe dont dépendent, par exemple, les méthodes d'une autre classe.



Agrégation







Type spécial de relation entre les classes où une classe fait partie d'une autre.



Par exemple, le lieu de travail d'un programmeur se compose d'une chaise, d'une table, d'un ordinateur et d'un ventilateur, mais si la classe «lieu de travail» est supprimée, nous aurons simplement toutes ces classes, uniquement séparément.



L'agrégation est représentée par une ligne continue avec un diamant creux dirigé des classes faisant partie d'une classe vers une classe d'agrégation.



Composition







En fait, une sorte d'agrégation, seulement dans ce cas, les classes qui font partie d'une autre classe sont détruites lorsque la classe d'agrégateur est détruite.



Par exemple, notre corps est composé d'organes, mais en eux-mêmes, ils ne sont pas viables.



La composition est indiquée d'une manière similaire à l'agrégation, mais cette fois le diamant est complètement rempli.



Finalchka



L'UML peut être très utile pour les débutants qui sont au stade de comprendre «ce qui doit aller où et de ce qui a hérité». Comme le disent nos collègues anglophones: «ça aide à voir à quoi ressemble toute la forêt derrière les troncs d'arbres».



Par conséquent, avant de démarrer votre projet, certes petit mais étonnant, ne saisissez pas le code tout de suite. Tout d'abord, concevez votre architecture d'application en UML.



Ave!



All Articles