La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Plan du chapitre Diagramme de classes Les extensions syntaxiques

Présentations similaires


Présentation au sujet: "Plan du chapitre Diagramme de classes Les extensions syntaxiques"— Transcription de la présentation:

1 Méthodologies de conception des systèmes (Chapitre4: Modélisation statique)

2 Plan du chapitre Diagramme de classes Les extensions syntaxiques
Diagramme objet Diagramme de package

3 Diagrammes de classes Un diagramme de classe présente un ensemble de classes et d'interfaces avec leurs relations Il peut être utilisé en phase d’analyse et de conception Analyse: offrir une description préliminaire du structure des entités Le nom de quelques attributs et méthodes quand ceux-ci découlent naturellement du domaine modélisé Conception: offrir une description détaillée L’ensemble des classes utilitaires destinées à assurer le fonctionnement du logiciel Tous les attributs et méthodes doivent apparaître de façon détaillée, avec tous les types de paramètres et les types de retour

4 Classe Une classe est la description d'une collection d'objets qui partagent les mêmes attributs, les mêmes opérations, les mêmes relations et la même sémantique

5 Représentation graphique d'une classe
Compartiment Classe Nom Stéréotype Compartiment Attribut Compartiment Opération Compartiment extra

6 Nommer une classe Chaque classe doit avoir un nom qui la distingue des autres classes (unicité du nom complet) Nom du package englobant + le nom de la classe En pratique les noms de classes sont des noms pris dans le vocabulaire du domaine Il est d'usage de capitaliser la première lettre de chaque mot Type ClientBanque java::awt::Rectangle

7 Packages Un package (paquetage) est un regroupement d'éléments (classes) Le regroupement peut être pour des raisons sémantiques, d'usage, de lieux, etc.

8 Visibilité d'une classe
Classe publique (+) La classe est visible pour tous les éléments qui importent le package englobant la classe Classe privée (-) La classe n'est visible que pour les classes qui appartiennent au même package Classe protégée (#) La classe est visible pour les classes qui appartiennent au même package ET pour les classes contenues dans les packages enfant du package englobant

9 Multiplicité UML permet de préciser le nombre d'instances d'une classe
Zéro instance : classe utilitaire (attribut et opération de classe) Une seule instance : classe singleton (ex: classe PDG) Un nombre spécifique Un nombre quelconque (défaut) Connexion internet 0..100 Base de données 1 Outils

10 Attribut Les attributs forment la description de la partie structurelle ou statique UML permet de représenter les attributs multivalués en précisant le nombre possible de valeurs pour un attribut

11 Visibilité d'un attribut
Attribut public (+) L'attribut est visible pour toutes les classes du package englobant Attribut privé (-) L'attribut n'est visible que pour la classe elle-même Attribut protégé (#) L'attribut est visible pour toutes les sous-classes

12 Propriétés d'un attribut
UML définit trois propriétés qui peuvent être utilisées avec les attributs Changeable Aucune restriction sur les modifications de la valeur de l'attribut Ajout Pour les attributs dont la multiplicité est supérieur à 1, des valeurs additionnels peuvent être ajoutées,mais ne peuvent ensuite être supprimées ou modifiées Gelé La valeur de l'attribut ne peut pas être changée après l'initialisation de l'objet

13 Syntaxe d'un attribut [visibilité] nom [multiplicité] [: type] [=valeur-défaut] [{propriété}] Exemples - origine + origine origine : Point prénom [1..3] : String origine : Point = {0,0} id : Entier {gelé}

14 Portée d'un attribut Attribut d'instance Attribut de classe
Attribut dont la valeur peut varier pour chaque instance de la classe Attribut de classe Attribut propre à la classe dont la valeur est fixe pour toutes les instances de la classe

15 Associations (1/2) Par défaut une association est bidirectionnelle
Navigation dans les deux sens UML permet de spécifier une limitation de la navigation La flèche indique que les instances d'une classe ne "connaissent" pas les instances d'une autre 0..n GroupeUsager Usager 0..n Usager MotDePasse propriétaire 1..1 0..n clé

16 Association (2/2) Association peut être aussi réflexive Personne
Superviseur 1..1 1..n Supervise

17 Qualification UML permet de spécifier comment limiter le nombre d'objets en cas de navigation d'associations La connaissance de l'objet source et du qualificateur permet de limiter le nombre d'objets liés Compagnie Personne employeur 1..1 0..n employé 0..1 noEmployé

18 Agrégation vs. Composition

19 Classe d'association UML permet de modéliser les propriétés d'une association entre deux classes par une classe d'association 1..n employé Compagnie Personne employeur 0..n Emploi descriptif dateEmbauche salaire

20 Héritage L'héritage est le mécanisme qui basé sur la généralisation permet aux sous-classes d'hériter, c'est à dire d'avoir les mêmes attributs, opérations et associations que la superclasse

21 Classes particulières
Une classe concrète est une classe qui peut avoir des instances Une classe abstraite est une classe qui n'a pas d'instances Une classe racine est une classe qui ne peut avoir de superclasse Une classe feuille est une classe qui ne peut avoir de sous-classes

22 Héritage multiple L’héritage multiple permet à une classe d'hériter de plusieurs classes

23 Opération Les opérations décrivent la partie comportementale ou dynamique

24 Visibilité d'une opération
Opération publique (+) L'opération est visible pour toutes les classes du package englobant Opération privée (-) L'opération n'est visible que pour la classe elle-même Opération protégée (#) L'opération est visible pour toutes les sous-classes

25 Exemple de visibilité d’opérations
Package ClasseA +créer #modifier -détruire -créer +lire -détruire ClasseB Package1 Package2 ClasseC -créer -détruire -créer +écrire -détruire ClasseD

26 Valeur de retour & paramètres
Une opération peut retourner une valeur simple spécifiée par son type Une opération peut avoir des paramètres d'entrée et de sortie Tâche +lireDateDébut() : Date +lireNbHeures() : Entier Tâche +écrireDateDébut(dateDébut : Date) +écrireNbHeures(nbHeures : Entier)

27 Déclaration d'une opération
[visibilité] nom [(liste-paramètres)][: type-retour] Liste-paramètres [direction] nom : type [=valeur-défaut],... Direction Entrée (paramètre d'entrée qui ne peut pas être modifié) Sortie (paramètre de sortie qui peut être modifié) Entrée-Sortie (paramètre d'entrée et de sortie qui peut être modifié)

28 Contraintes sur les associations (1/2)
Une contrainte est une règle de gestion exprimée entre { } ou avec OCL Contrainte sur un attribut qui doit être positif Contrainte {frozen} précise que le nombre de roues d’un véhicule ne peut pas varier

29 Contraintes sur les associations (2/2)
Contrainte {subset} précise que le président est également un membre du comité Contrainte {xor} (ou exclusif) précise que les employés de l’hôtel n’ont pas le droit de prendre une chambre dans ce même hôtel

30 Contraintes de spécialisation
Quatre types de contraintes de spécialisation : disjointe ,non disjointe, complète ou non complète {Disjointe} : un objet ne peut appartenir qu’à une seule classe spécialisée Exemple : un salarié ne peut être que stagiaire ou titulaire et non pas les deux ensemble {Complète} : une contrainte complète précise qu’on ne peut pas rajouter une classe spécialisée à une classe générique ayant déjà une ou plusieurs classes spécialisée Salarié {Disjointe, non complète} Titulaire Stagiaire

31 Diagramme de classe

32 Construire un diagramme de classes
Pour identifier les classes on peut s'appuyer sur les mots du domaine applicatif Réduire l'ensemble en fonction des critères suivants : Supprimer des synonymes Supprimer des classes non pertinentes Découvrir les associations exprimant l'interdépendance des classes Trouver les attributs des classes Trouver les opérations sur les classes, association ou attribut

33 Exemple (1/18) Cette étude de cas concerne un système simplifié de réservation de vols pour une agence de voyage Des compagnies aériennes proposent différents vols Un vol est ouvert à la réservation et refermé sur ordre de la compagnie Un client peut réserver un ou plusieurs vols, pour des passages différents Une réservation concerne un seul vol et un seul passager Une réservation peut être annulée ou confirmée Un vol a un aéroport de départ et un aéroport d’arrivée Un vol a un jour et une heure de départ et un jour et une heure d’arrivée Un vol peut comporter des escales dans des aéroports Une escale a une heure d’arrivée et une heure de départ Chaque aéroport dessert une ou plusieurs villes


Télécharger ppt "Plan du chapitre Diagramme de classes Les extensions syntaxiques"

Présentations similaires


Annonces Google