UML
Diagrammes
de classes
et d’objets
Diagrammes d’UML 2
Diagrammes structurels / statiques (UML Structure)
diagramme de classes (Class diagram)
diagramme d’objets (Object diagram)
diagramme de composants (Component diagram)
diagramme de déploiement (Deployment diagram)
diagramme de paquetages (Package diagram)
diagramme de structures composites (Composite structure diagram)
Diagrammes comportementaux / dynamiques (UML Behavior)
diagramme de cas d’utilisation (Use case diagram)
diagramme d’activités (Activity diagram)
diagramme d’états-transitions (State machine diagram)
diagrammes d’interaction (Interaction diagram)
• diagramme de séquence (Sequence diagram)
• diagramme de communication (Communication diagram)
• diagramme global d’interaction (Interaction overview diagram)
• diagramme de temps (Timing diagram)
UML
Processus de développement logiciel
Objets et classes
Conception orientée objet :
Représentation du système comme un ensemble d'objets
interagissant
Diagramme de classes :
● Représentation de la structure interne du logiciel
● Utilisé surtout en conception mais peut être utilisé en analyse
Diagramme d'objets :
Advertisement
● Représentation de l'état du logiciel (objets + relations)
● Diagramme évoluant avec l'exécution du logiciel
- création et suppression d'objets
- modification de l'état des objets (valeurs des atributs)
- modification des relations entre objets
Objets et classes
Objet :
● Entité concrète ou abstraite du domaine d'application
● Décrit par état (attributs) + comportement (opérations)
Objets et classes
Classe : Regroupement d'objets de même nature (mêmes
attributs + mêmes opérations)
Objet = instance d'une classe
Classes
Attributs :
● Propriété partagée par tous les objets de la classe
● Associe à chaque objet une valeur
● Type associé simple (int, bool...), primitif (Date) ou énuméré
Opérations :
● Service qui peut être demandé à tout objet de la classe
Rmq : Ne pas confondre avec une méthode = implantation de l'opération
Relations entre objets
Association entre objets
● relation binaire (en général)
● au plus un lien entre deux objets
Relations entre objets
Relations entre objets
Relations entre classes
Association entre classes : Relation binaire (en général)
Rôle : Nomme l'extrémité d'une association, permet d'accéder
aux objets liés par l'association à un objet donné
Cardinalité : Contraint le nombre d'objets liés par l'association
Attribut et association
Advertisement
Association :
● Deux attributs implicites
● Explicitée comme attributs en phase de conception
détaillée, qui porteront les noms des rôles de
l'association
Exemple de diagramme en conception détaillée
Attribut et association
Par conséquent, pas de référence à un objet dans un
attribut s'il existe une association vers cet objet
Cardinalités
Nombre de B associés à un A
Association réflexive
Association multiple
Navigabilité
Orientation d'une association :
● Restreint l'accessibilité des objets
● Depuis un A, on a accès aux objets de B qui lui sont
associés, mais pas l'inverse
Par défaut, associations navigables dans les deux sens
(pas de flèche)
Classe-association
Permet de paramétrer une association entre deux classes par une classe
Équivalence en termes de classes et d'associations
Classe-association
Exemple de diagramme d'objets :
Association n-aire
Association reliant plus de deux classes
Utiliser de préférence des classes-associations
Agrégation / Composition
Association particulière entre classes
● Dissymétrique : une classe prédominante sur l'autre
Advertisement
● Relation de type composant-composite
Deux types d'agrégation
● Agrégation
● Composition
Agrégation
Agrégation par référence :
● Le composite fait référence à ses composants
● La création ou destruction du composite est indépendante
de la création ou destruction de ses composants
● Un objet peut faire partie de plusieurs composites à la fois
Exemple :
● Une pièce est composée de murs
● Un mur peut être commun à plusieurs pièces
Composition
Agrégation par valeur :
● Le composite contient ses composants
● La création ou destruction du composite entraîne la
création ou destruction de ses composants
● Un objet ne fait partie que d'un composite à la fois
Exemple
● Un mur est composé de briques
● Une brique n'appartient qu'à un mur
Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des
opérations et les organiser en arborescence
Spécialisation : raffinement d'une classe en une sous-classe
Généralisation : abstraction d'un ensemble de classes en super-classe
Classe abstraite
Classe sans instance car certaines opérations non définies :
● Opération non définie en italique
● Nom de la classe en italique (ou stéréotype « abstract »)
Advertisement
Exemple : On ne peut pas calculer la surface d'une forme sans
savoir de quelle forme il s'agit
Polymorphisme
Contexte : Définition d'une opération abstraite dans les
classes héritant d'une classe abstraite
Opération polymorphe : Opération définie dans différentes
sous-classes mais opération spécifique à la sous-classe
Interface
Liste d'opérations constituant un contrat à respecter par
les classes réalisant l'interface
● Pas une classe, ne peut pas servir à créer des objets
● Toutes les opérations sont abstraites
Notations avancées
Attribut dérivé : Peut être calculé à tout moment à partir des
autres attributs
Notations avancées
Attributs et opérations de classes :
● Attribut de classe : valeur commune à toutes les instances
● Opération de classe : opération sur la classe elle-même
(création de nouvelles instances par exemple)
● Soulignés dans la classe
Contraintes
Propriétés :
● Portant sur les éléments du modèle
● Doivent être vérifiées à tout instant
● En général, restriction sur les diagrammes d'objets
possibles à partir du diagramme de classes
Contraintes