Classe¶
NomClasse¶
Le nom d’une classe doit correspondre à une forme nominale au singulier.
commentaire: | Une classe représente généralement un concept et les concepts sont généralement identifiés par des noms communs au singulier. Le nom de la classe est au singulier car il fait référence au concept et non pas à l’extension de la classe. Il s’agit là d’une différence importante avec les noms de tables des bases de données car dans ce cas il est fait références à l’extension, c’est à dire à l’ensemble des instances contenues dans la table. |
---|---|
paquetage: | Classe |
NomenclatureClasse¶
Le nom des classes doivent être dans le style MajMin (voir MajMin).
paquetage: | Classe |
---|
NomAttribut¶
Le nom d’un attribut doit normallement correspondre à une forme nominale ou éventuellement à un forme verbale lorsque le type de l’attribut correspond à un booleen.
commentaire: | Lorsque l’attribut est de type booleen, la notion représentée correspond en générale à un prédicat et la forme grammaticale correspond généralement au fait que l’objet vérifie ou pas une propriété. |
---|---|
exemple: | “estEteinte” est un attribut de type booléen sur la classe “Lampe”, “puissance” est de type entier, “interrupteurs”. |
paquetage: | Classe |
NomenclatureAttribut¶
Le nom de ou des attributs doivent être en style minMaj (voir MinMaj).
paquetage: | Classe |
---|
NomObjet¶
Le nom d’un objet doit correspondre à une forme nominale et doit permettre autant que possible de déterminer le nom de la classe auquel il appartient. Il peut prendre par exemple (1) soit la forme d’un nom propre, (2) soit d’un identifiant naturel, (3) soit d’un rôle qu’il joue au sein du système ou dans le cadre d’une interaction donnée, (4) soit d’une forme derivée à partir de la classe à laquelle appartient l’objet.
exemple: | Par exemple (1) “ahmed” ou “paysBas” sont des noms propres faisant des objets de type “Personne” ou “Pays” par exemple. (2) “batimentIMAGC” utilise l’identifiant naturel du batiment C de l’institut IMAG. (3) “pereDeSophie” ou “gardien” ou fait référence à des personnes via leur rôles joué dans le système ou dans le cadre de collaborations particulières (4) Finalement “personne232” fait clairement référence à une personne et l’on peut supposer que le nom “p” fait référence à un objet de même type si dans le contexte direct seule la classe Personne débute par la lettre p. |
---|---|
paquetage: | Classe |
NomenclatureObjet¶
Un nom de ou des objets doivent être en style minMaj (voir MinMaj).
paquetage: | Classe |
---|
NomOperation¶
Le nom d’une opération doit normallement correspondre à une forme verbale dont le “sujet” est l’objet auquel l’opération s’applique.
commentaire: | L’invocation d’une opération sur un objet représente une action que doit réaliser l’objet |
---|---|
paquetage: | Classe |
NomenclatureOperation¶
Le nom de ou des operations doivent être en style minMaj (voir MinMaj).
paquetage: | Classe |
---|
NomenclatureMethode¶
Le nom de ou des methodes doivent être en style minMaj (voir MinMaj).
paquetage: | Classe |
---|
NomParametre¶
Le nom du ou des paramètres formels doivent correspondre à des formes nominales et désigner les rôles que les valeurs des paramètres vont jouer dans le cadre de l’opération ou de la méthode concernée.
commentaire: | les règles sont mêmes que pour nommer les objets (voir NomObjet) si ce n’est que les noms propres et identifiant naturels doivent être proscrits car un paramêtre formel ne correspond pas à un objet concret particulier. |
---|---|
paquetage: | Classe |
NomenclatureParametre¶
Le nom de ou des methodes doivent être en style minMaj (voir MinMaj).
paquetage: | Classe |
---|
NomRole¶
Le nom d’un rôle doit normallement correspondre à une forme nominale et en tout état de cause à un rôle que peuvent jouer le ou les objets destination du rôle.
commentaire: | les règles et commentaires associées au nom d’attribut s’appliquent au nom des rôles (voir NomAttribut) si ce n’est qu’un rôle ne peut pas correspondre à un prédicat, car ne peut pas être de type booléen, et que le nom d’un rôle ne doit donc pas correspondre à une forme verbale. |
---|---|
paquetage: | Classe |
NomenclatureRole¶
Le nom de ou des roles doivent être en style minMaj (voir MinMaj).
paquetage: | Classe |
---|
NomAssociation¶
Le nom de l’association doit a priori correspondre à une forme verbale ; les objets jouant le rôle de sources pour cette association jouant le rôle de “sujets” de cette forme verbale.
paquetage: | Classe |
---|
NomenclatureAssociation¶
Le nom de ou des associations devrait être en style MajMin (voir MajMin).
paquetage: | Classe |
---|
RoleClasse¶
Le nom d’une classe semble correspondre à un rôle ou inversement ; la modélisation pourrait être revue.
paquetage: | Classe |
---|
RoleAssociation¶
Le nom du rôle semble être interverti par rapport à un nom d’association ou vice versa.
paquetage: | Classe |
---|
Cardinalite¶
Une ou plusieurs cardinalites sont manquantes, non justifiées ou erronées.
commentaire: | Toutes les cardinalites devraient être décrites dans un diagramme de classes. Souvent le manque de cardinalité correspond à l’absence de reflexion et ainsi à l’absence de validation du modèle. |
---|---|
paquetage: | Classe |
CardinaliteInversee¶
Une ou plusieurs cardinalites semblent être inversées ou sinon il s’agit peut être d’erreurs de cardinalités.
commentaire: | Cette erreur est rencontrée de manière relativement fréquente lorsque l’auteur du modèle confond les conventions UML avec les conventions utilisées dans d’autres langages de modélisation. Généralement ce défaut est associé également à l’utilisation de constante “n”, ce qui n’est pas non plus correct en UML (cf $CardinaliteNM:). |
---|---|
paquetage: | Classe |
CardinaliteNM¶
En UML les cardinalités minimales ou maximales doivent être formées des constantes entières positives ou * comme cardinalité maximale. Alors que 0..n n’est pas correct en UML par contre 0,4-6,9-* est correct.
paquetage: | Classe |
---|
Composition1¶
Le cardinalité maximale associée à une association de composition est au maximum.
commentaire: | Un composant est au maximum dans un composite et la cardinalité maximale est de 1. Par contre la cardinalité minimale peut être 0 dans le cas ou plusieurs association de composition sont issues de la même classe “de composant”. |
---|---|
paquetage: | Classe |
CompositionUnique¶
Il existe à partir d’une classe “de composants” plusieurs associations de composition avec une cardinalité minimale de 1 alors que cela n’est pas possible car un objet “composant” ne peut être dans plusieurs composites à la fois. Les cardinalités minimales doivent être 0 sur toute les associations de compositions.
paquetage: | Classe |
---|
AggregationNonJustifiee¶
L’utilisation d’une ou plusieurs associations d’aggregation ne semble pas adaptée ou l’intérêt d’utiliser de telles modélisations ne semble pas pertinent sans justification explicite.
commentaire: | La notion d’aggrégation peut être interpretée de multiple manières et dans la pluspart des contextes il est fort probable que differents lecteurs feront des interpretations de la modélisation. Par ailleurs la différence entre une association d’aggrégation et une association normalle est parfois si tenue que cette notion n’est pas forcemment très utile; Il est donc préférable de s’abstenir d’utiliser les symboles d’aggrégation. D’ailleurs sachant qu’aucun consensus n’a jamais pu être obtenu autour de ce concept, il a finalement été éliminé à partir de la version 2.0 d’UML. Seule la notion de composition, plus précise, consensuelle, et moins sujette à interprétation, est restée dans le standard. |
---|---|
paquetage: | Classe |