Unified Modeling Language (UML) Structure and Behavior

Page 1 sur 32Lecteur de document UniversityLib

Unified Modeling Language (UML) Structure and Behavior

Software Engineering · notes

Browse all génie logiciel documents

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