II. Diagrammes de classes et Diagrammes d`objets
Transcription
II. Diagrammes de classes et Diagrammes d`objets
08/10/2010 Introduction Conception Orientée Objet Diagramme de classes II. Diagrammes de classes et Diagrammes d’objets Diagramme ………………….. du modèle du SI. Montre les classes et leurs relations statiques. Le plus ……………. en notations. Rafik BOUAZIZ -- Faïez GARGOURI FSEG – Sfax L’équivalent du modèle Les erreurs dans ce diagramme ont souvent un impact sur les autres diagrammes. ISIM – Sfax 35 R. BOUAZIZ -- F. GARGOURI Concept de classe R. BOUAZIZ -- F. GARGOURI est représentée par un rectangle avec : ………………….. …………………………. Pour une classe : On peut : et ne pas représenter ses attributs et/ou ses opérations sur un diagramme, NOM DE CLASSE Attributs opérations Exceptions pas spécifier les niveaux de protection des membres d'une classe, 37 R. BOUAZIZ -- F. GARGOURI un filtre visuel pour donner un certain niveau d'……………………… à son modèle ; on peut se limiter aux noms des classes ; ne Classe = Attributs + Opérations + Mécanisme d’instanciation (Constructeur) Concept de classe ne veut pas dire que l'on ne représente que les membres publics. R. BOUAZIZ -- F. GARGOURI 38 Concept de classe Remarque : Par abus de langage Pour une classe : Le ……….. de la classe, selon la norme UML est en = propriété = donnée-membre, … Opération 36 Concept de classe Avec UML, une classe : Attribut ……………. gras, mais on peut se limiter à l’écrire en majuscule. = méthode = fonction-membre, … Un attribut d’une classe constitue un élément de l'………… de ses objets, participe à la caractérisation des objets. Une opération représente un …………….. spécifique offert par les objets de la classe. R. BOUAZIZ -- F. GARGOURI 39 R. BOUAZIZ -- F. GARGOURI 40 1 08/10/2010 Concept de classe Concept de classe Les attributs et les opérations : Exemple : Nom sont décrits dans le deuxième et troisième compartiments. Attributs NOM DE CLASSE NomAttribut [: type [= valeur initiale] ] Opérations Opération () 41 R. BOUAZIZ -- F. GARGOURI Concept de classe ……………………… COMMANDE DateDeRéception EstPrépayée Lignes Prix Expédier () Fermer() 42 R. BOUAZIZ -- F. GARGOURI Diagramme d’objets ou note : Commentaire Les diagrammes d’objets ou d’instances : présentent l’état d’un système à un instant donné, montrent : des …………….…. (instances de classes) dans un état particulier et COMMANDE DateDeRéception EstPrépayée Lignes Prix Commentaire ---- commentaire Expédier() Fermer() des ……………. (relations sémantiques : instances d’associations) entre ces objets, facilitent la compréhension des structures de données complexes, servent durant la phase exploratoire de l’analyse. 43 R. BOUAZIZ -- F. GARGOURI Diagramme d’objets Diagramme d’objets Représentation des objets : Mohamed Nom Objet : CLASSE Mohamed : PERSONNE Valeurs des attributs des objets : Le rectangle représentant un objet peut comporter Objet ……….…. Nom Objet une partie contenant les ……………. de ses attributs : :CLASSE Ahmed : ADHERENT Nom = Mohamed Prénom = Ahmed Adresse = Sfax :PERSONNE L’ …………… d’un objet : Un ……………. d’objets : : VOITURE Couleur = rouge Puissance = 4 Marque = Peugeot :CHAMBRE [Occupée] est déterminé par les valeurs prises par ses attributs, un instant donné, un objet est dans un état particulier, conséquence des opérations de modifications appliquées. :PERSONNE R. BOUAZIZ -- F. GARGOURI 44 R. BOUAZIZ -- F. GARGOURI à 45 R. BOUAZIZ -- F. GARGOURI 46 2 08/10/2010 Syntaxe de classe Syntaxe de classe Multiplicité : intervalle ou nombre La …………… de description des ……………… est : Multiplicité := (Intervalle|nombre) [Visibilité] NomAttribut [Multiplicité] [ : Type [=Valeur Initiale] [{Propriété}]*] Le type des attributs peut être : Visibilité = type d'accessibilité : Un type …………… (supporté par les LP) : Entier, chaîne, … + : ……………, visible et modifiable par tout objet du même paquetage. - : ………………., seulement visible et modifiable par les opérations de l'objet auquel il appartient. # : …………………, seulement accessible et modifiable par les opérations des classes descendantes. Une …………… (type utilisateur) : BOUTON, RECTANGLE, … Expression : chaîne de caractères dont la syntaxe est en dehors de la portée d’UML. 47 R. BOUAZIZ -- F. GARGOURI Syntaxe de classe 48 R. BOUAZIZ -- F. GARGOURI Syntaxe de classe Propriété : Un attribut peut être …………….. (/Attribut) : Il peut être déduit par application d’une formule …………………….. (gelé, variable, ajout Uniquement, …) sur d’autres attributs. Il peut conduire en implémentation à une Gelé : attribut non modifiable (const de C++). opération. Variable : attribut modifiable (propriété par défaut). RECTANGLE RECTANGLE Ajout Uniquement : seul l’ajout est possible Note Longueur Largeur /Surface (multiplicité > 1). Contrainte : Surface = longueur * largeur Opérations Exemple : - num_sec_soc : string[10] = " " {unique} Niveau Analyse 49 R. BOUAZIZ -- F. GARGOURI Syntaxe de classe Longueur Largeur Surface () Niveau Conception 50 R. BOUAZIZ -- F. GARGOURI Syntaxe de classe Exemple : TELEVISION PRODUIT OnOff : BOUTON Couleur : énum {gris,noir} Marque : Chaîne Télétexte : Booléen = Vrai Chaînes [2..*] : CANAL Prix : Réel HautParleurs [2..6] : HAUT-PARLEUR Type : TypeTV {gelé} … - PrixHT - TVA -/PrixTTC {PrixTTC =PrixHT * (1+TVA) } CANAL HAUTPARLEUR BOUTON <<énumération>> TypeTV } 16/9 3/4 Classes R. BOUAZIZ -- F. GARGOURI 51 R. BOUAZIZ -- F. GARGOURI 52 3 08/10/2010 Syntaxe de classe Syntaxe de classe Classes utilitaires Structuration des variables (et des constantes) globales. Représentées par des classes stéréotypées. Les données membres sont statiques. Les stéréotypes : mécanismes d’ ……………………. des constructions UML. Appliqués aux classes, ils permettent d’avoir des classes particulières répondant à un besoin donné. Exemples : énumération, interface, utilitaire, … R. BOUAZIZ -- F. GARGOURI 53 Syntaxe de classe «utility» VariablesGlobales - var1 - var2 R. BOUAZIZ -- F. GARGOURI Syntaxe de classe Visibilité : +, -, # de description des ……………………… : [Visibilité] NomOpération [[Arguments] : TypeRetourné [{Propriété}*]] ……………… Arguments : [Direction] NomArgument [: TypeArgument] [= ValeurDefaut] Exemple : + fact(n:int) : int {récursive} Direction (idem PL/SQL) : in, out, inout Remarque : Une opération : un service qu’une instance de la classe peut réaliser. Une méthode est l’implémentation d’une opération. Abus de langage : opération = méthode R. BOUAZIZ -- F. GARGOURI 54 55 Syntaxe de classe in est la valeur par défaut : argument est un paramètre en entrée seule ; non modifié par l’exécution de cette opération. ………. : argument est un paramètre en sortie seule ; l’appelant peut récupérer sa valeur. ………… : argument est un paramètre en entrée-sortie ; passé à l’opération, modifiable et récupérable. …… R. BOUAZIZ -- F. GARGOURI 56 Syntaxe de classe Propriété : Représentation détaillée (conception) requête : l’opération ne modifie pas les attributs ; abstrait : l’opération n’est pas implémentée dans la classe ; estFeuille : l’opération ne peut pas être redéfinie ; estRacine : l’opération est définie pour la première fois dans la hiérarchie ; récursive : l’opération est récursive ; … R. BOUAZIZ -- F. GARGOURI COMMANDE - DateDeRéception [0..1 ] : Date # EstPrépayée [1 ] : Boolean = False - Lignes [1 ..*] : LigneCommande - Prix : Real + Expédier () : Boolean + Fermer() 57 R. BOUAZIZ -- F. GARGOURI 58 4 08/10/2010 Syntaxe de classe Syntaxe de classe Visibilité et portée des attributs et des opérations ………………… : RESERVATION PRODUIT CLASSE + AttributPublic # AttributProtégé - AttributPrivé AttributDeClasse NumProduit IntituléProduit PrixProduit NbreDeProduits Attribut de classe Souligné Visibilité globale : l’attribut est considéré comme un objet partagé par les instances d’une classe Idem pour les opérations - Identifiant : Integer - Date : Date -Compteur : Integer + getProchainIdentifiant() : Integer Créer() Supprimer() 59 R. BOUAZIZ -- F. GARGOURI Concept de relation Correspondent aux membres static en C++ ou Java 60 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations Les …………………… entre classes : Les associations : Une association exprime une …………………… Association. sémantique bidirectionnelle entre n classes (n>=1). Agrégation. Composition. ADHERENT Héritage. Nom Prénom Adresse Remarque : par rapport au modèle E/A de base, les Représentations Conceptuelles UML sont : EXEMPLAIRE Créer() Une association est …………………………. dans un + riches sémantiquement et diagramme d'objets sous forme de liens, ou dans un diagramme de collaboration sous forme de messages, entre objets issus des classes associées. + proches de la réalité. 61 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations Diagramme de classes Emprunter 62 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations Une association représente donc une relation Association C1 C2 conceptuelle durable entre n classes (n>=1). Classes Les instances d’une association sont des tuples des instances des classes reliées par cette association. ADHERENT :C1 :C2 Lien Diagramme d’objets R. BOUAZIZ -- F. GARGOURI Objets Nom Prénom Adresse :C1 Message :C2 Emprunter EXEMPLAIRE Créer() Diagramme de collaboration 63 Des instances de l’association Emprunter : { (A1, E1), (A1, E2), …. (A2, E4), (A2, E7), ….} R. BOUAZIZ -- F. GARGOURI 64 5 08/10/2010 Concept de relation --- Les associations Concept de relation --- Les associations Les multiplicités ou cardinalités : Par rapport au modèle Entité/Association : P11 P12 … Card1 A1 Card2 [ Nom Association ] Classe1 Entité 2 Entité 1 Diagramme Entité / Association Nommage des associations Une association peut être nommée : c’est optionnel. P21 P22 … Classe2 Les noms peuvent être en forme ……………… active ou passive Le …………. de lecture d’une association peut être précisé lorsqu’il est ambigu : Diagramme de classes Classe 1 Card2 P11 P12 … Card1 A1 Classe 2 P21 P22 … HÔTEL 65 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations est employée par> héberge> PERSONNE 66 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations Arités des associations : Une association peut être binaire ou n-aire (à éviter). Association à navigabilité restreinte : Par défaut, une association est navigable dans les ……… sens. Exemple : on désire représenter le fait suivant : Un On peut la limiter à un ………. sens dans un modèle professeur enseigne dans une salle des étudiants d’une classe. indique que les instances d'une classe « ne voient pas » les instances de l’autre. PROFESSEUR ELECTEUR SALLE SOCIÉTÉ Voter CANDIDAT CLASSE Enseigner ETUDIANT Connaître ENSEIGNANT Comment interpréter les multiplicités ? R. BOUAZIZ -- F. GARGOURI 67 Concept de relation --- Les associations 68 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations La notion de ………… : L’extrémité d’une association peut avoir un nom, appelé rôle, qui décrit comment une classe source voit une classe destination au travers de l’association. CLASSE1 [ Nom Association ] [Rôle1] CLASSE2 [Rôle2] Rôle 1 : le rôle joué par Classe 1 dans l’association Rôle 2 : le rôle joué par Classe 2 dans l’association SOCIÉTÉ Employeur R. BOUAZIZ -- F. GARGOURI 69 R. BOUAZIZ -- F. GARGOURI Emploi PERSONNE Employées 70 6 08/10/2010 Concept de relation --- Les associations Concept de relation --- Les associations L’indication des rôles est nécessaire pour les Attention : La présence d’un grand nombre d’associations entre deux classes peut être le signe d’une mauvaise modélisation. associations ambiguës. Clients HÔTEL PERSONNE Conduire Directeur PERSONNE Laver VOITURE Arrêter Parents PERSONNE Conduire Parenté Enfants PERSONNE 71 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations R. BOUAZIZ -- F. GARGOURI : Il s’agit de règles sémantiques définies sur des associations. Elles permettent : classe qui peuvent être liés à un objet de l’autre. 1 Valeurs de 0 .. 1 cardinalité conventionnelles N M .. N (3..7) 1..* PERSONNE Employées De 0 à plusieurs 0 .. * De 0 à plusieurs 1 .. * De 1 à plusieurs 73 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations 1..* Langage Naturel (L’âge d’un étudiant est supérieur à 16) ou graphiquement avec un {texte} ({longueur > largeur}) ou En ………… (Object Constraint Language) R. BOUAZIZ -- F. GARGOURI 74 context Chambre inv: self.étage <= 12 // Pas plus de résidents que de lits sauf s’il y a un enfant de moins de 4 ans context Chambre inv: lesRésidents->size <= nbLits or (lesRésidents->size = nbLits + 1 and lesRésidents->exists(p : Personne | p.âge < 4)) * - lesClients PERSONNE - Nom : String - Prénom : String - Age : Integer - Numéro : Integer - NbLits : Integer - laChambre 0..1 1 - Directeur de restreindre le nombre d'instances visées. // Etage maximum : 12 CHAMBRE -lesChambres - Étage : Integer : String d’étendre ou de préciser la sémantique, Concept de relation --- Les associations Exemples : soit le diagramme de classes suivant : 0..1 - Adresse Elles peuvent s'exprimer en : Un et un seul Zéro ou un N (entier naturel) De M à N (entiers naturels) * HÔTEL 72 …………………….. précisent les nombres min et max d’objets d’une SOCIÉTÉ VOITURE Concept de relation --- Les associations Les …………………………… (cardinalités) Employeur 1 Laver - lesRésidents * R. BOUAZIZ -- F. GARGOURI 75 R. BOUAZIZ -- F. GARGOURI 76 7 08/10/2010 Concept de relation --- Les associations Concept de relation --- Les associations ………………….. : Les …………… de contraintes exprimables sur les associations : PERSONNE 1 0..* Ordonné ; COMPTE {ordonné} Sous-ensemble ; Ou ; La collection des comptes d’une personne est triée Partition (Ou-exclusif) ; … Elles sont placées entre accolades. 77 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations 78 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations Application des opérateurs de couverture et de disjonction : On désire représenter les règles de gestion suivantes : 1. Un employé est affecté à un seul service. 1 0..* PERSONNE COMPTE 2. Plusieurs employés sont affectés à un service. Non Disjonction Disjonction {ordonné} 3. Un service est dirigé par un seul employé. 4. Le directeur d’un service est obligatoirement l’un des employés affectés à ce service. SERVICE Numéro_S Nom_S ... 1 Affecter 1..* {sous-ensemble} 0..1 Diriger 1 Couverture x x xx xx x xx x xx x xx xx EMPLOYE Numéro Nom .... Non Couverture xx x x x x x x x xx x xx x xx x xx x X x Toute instance de Diriger est aussi instance de Affecter 79 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations Concept de relation --- Les associations Exemples : …………………………………..……… - Affectation UNIVERSITÉ 0..1 ENSEIGNANT E tudie PERSONNE Enseign-Univ 0..1 ETAB-UNIVER {Partition} 0..1 Technologue {ou } * - lesEnseignants : Indique que pour un objet donné, un seul lien est valide. Enseigne 0..1 R. BOUAZIZ -- F. GARGOURI 80 R. BOUAZIZ -- F. GARGOURI ISET * - lesEtudiants 81 R. BOUAZIZ -- F. GARGOURI 82 8 08/10/2010 Concept de relation --- Les associations Concept de relation --- Les associations Une …………………………………………………………...….. : Et si CONTRAT devient une classe tout court ? Permet de représenter une association par une Que devient la solution ? classe pour définir des attributs et/ou des opérations dans l’association. Est-elle équivalente à la précédente ? Possède les caractéristiques d’une classe et d’une association. ENTREPRISE 0..* Embauche 1..* Un ……………………………….. : EXPERT Passe > * ETUDIANT CONTRAT Salaire, Emploi Concept de relation --- Les associations 84 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations Considérons les règles de gestion suivantes : Un client passe une ou plusieurs commandes. Une commande est passée par un seul client et CLIENT 1 * COMMANDE * 1 concerne un ou plusieurs produits. * Chaque commande est envoyée à un ou plusieurs QteCdée est un simple attribut d’une commande génère une facture correspondant à cette partie. Facture est une classe à part entière : elle a ses propres attributs, opérations et liens Toute facture générée sera envoyée au client correspondant. 85 Concept de relation --- Les associations D’un point de vue implantation : Classe Commande PROPRIETES NumCde, DateCde, Prods : SET(PRODUIT, QteCdée), Depots : SET(DEPOT), METHODES … METHODES CréerFac(), SolderFac(), … R. BOUAZIZ -- F. GARGOURI 86 R. BOUAZIZ -- F. GARGOURI Concept de relation --- Les associations Une classe d'association : NumFac, DateFac, NumClient, NumCde, NumDep, …, Attribut de lien : (Cde, produit, QteCdée) Classe d’association : (Cde, Dépôt, Facture) dépôts pour être satisfaite. Chaque dépôt ayant satisfait la partie qui le concerne Classe Facture PROPRIETES PRODUIT QtéCdée * DEPOT commandes. 1..n * FACTURE Un produit peut être commandé par plusieurs R. BOUAZIZ -- F. GARGOURI EXAMEN note 83 R. BOUAZIZ -- F. GARGOURI * La ………………………. permet de sélectionner un sous-ensemble d'objets, parmi ceux participant à une association. Elle est définie par un …………………... ou une clé (au sens relationnel du terme), qui est utilisé avec un objet de la classe source et permet de sélectionner les objets de la classe cible. PERSONNE 0..1 * Num_compte BANQUE Titulaire 87 R. BOUAZIZ -- F. GARGOURI 88 9 08/10/2010 Concept de relation --- Les associations Diagramme d’objets et associations Représentation des liens entre objets : N Les liens entre objets : Assimilable à une table associative. Le qualificateur (Nproduit) permet d’identifier 0 ou une ligne de la commande. manipuler (ajouter, consulter, etc.) une ligne d’une commande, il faut obligatoirement un produit. 89 Diagramme d’objets et associations 1 1 permettent une représentation plus concrète que celle produite par les diagrammes de classes. 90 R. BOUAZIZ -- F. GARGOURI Diagramme d’objets et associations Exemple : Exemple : VOITURE sont des instances d’………….……………. entre les classes des objets participants ; Voyons des exemples ! Pour R. BOUAZIZ -- F. GARGOURI MOTEUR V1:VOITURE :MOTEUR 1 4 - enfants * - père Personne - mère 0..1 0..1 - nom * - prénom 0..1 - épouse - enfants Olfa : Personne nom = KALLEL épouse prénom = Olfa mère 0..1 ROUE R1:ROUE R2:ROUE Diagramme de Classes R3:ROUE R4:ROUE - époux Diagramme d’objets Sana : Personne Moncef : Personne Nom = MALLEK Prénom = Sana Nom = MALLEK Prénom = Moncef père Maher : Personne nom = MALLEK prénom = Maher 91 R. BOUAZIZ -- F. GARGOURI Diagramme d’objets et associations époux R. BOUAZIZ -- F. GARGOURI 92 Diagramme d’objets et associations Représentation des liens entre objets : Remarque : Les liens entre objets peuvent être n-aires. Exemple : Ces diagrammes ne sont utiles que durant la phase exploratoire d’un domaine. RB: PROFESSEUR A1: SALLE Le nombre d’instances doit être …………….…. I3: CLASSE Autrement, ils deviennent vite compliqués et illisibles. On peut indiquer les noms des objets et des liens : Ahmed : ADHERENT Nom = Mohamed Prénom = Ahmed Adresse = Sfax R. BOUAZIZ -- F. GARGOURI Emprunter Soukaria : EXEMPLAIRE 93 R. BOUAZIZ -- F. GARGOURI 94 10 08/10/2010 Concept de relation --- L’agrégation Concept de relation --- L’agrégation L’ ………………. est une relation non symétrique, elle : Une instance d'élément agrégé peut : exprime un couplage ………… et une relation de être liée à ……………… instances d'autres classes : subordination. l'élément représente une relation de type "ensemble/élément". peut notamment (mais pas nécessairement) les cycles de vie de l'agrégat et de ses éléments agrégés peuvent être …………………………… : La création (ou la suppression) de l’un n’implique pas celle de l’autre. exprimer : qu'une classe (un "………………") fait partie d'une autre ("l'……………………."), qu'un changement d'état d'une classe entraîne un changement d'état d'une autre, qu'une action sur une classe, entraîne une action sur une autre. Exemple : ADRESSE Elément agrégé Concept de relation --- La composition agrégat 96 R. BOUAZIZ -- F. GARGOURI Concept de relation --- La composition Une classe composant peut faire l’objet de plusieurs La ……………………………. est une agrégation ………… qui exprime « une partie de ». compositions. Un objet de la classe composant ne peut appartenir Les cycles de vies (CV) des composants et du composé ne sont ………………………………… : Si le composé est détruit (ou copié), ses composants le sont aussi. Une instance de composant ne peut être créée qu’avec ou après la création du composé. Elle ne peut être liée qu'à un seul composé. Les "objets composites" sont des instances de classes composées. qu’à un ………… objet d’un composé. Cycles interdits ! Durée de vie du composant incluse dans celle du composé. La « navigabilité » peut être bidirectionnelle ou non. 1..* Chapitre Livre 3..10 CHAPITRE LIVRE PERSONNE Agrégation 95 R. BOUAZIZ -- F. GARGOURI agrégé peut être partagé ; exister ………… agrégat (et inversement) : Thème-Principal Thème Composition 97 R. BOUAZIZ -- F. GARGOURI Concept de relation --- La composition 98 R. BOUAZIZ -- F. GARGOURI Diagramme d’objets et compositions Relations entre les CV des objets : CV du composé Exemple de représentation des objets composites : Un objet composite est composé d’autres objets CV composant 1 (sous-objets). CV composant 2 Le nombre d’instances du composant peut être CV composant 3 spécifié. Exemple : CV composant 4 Un Composite Temps Créer() Supprimer() :Partie1 N1 Remarque : toutes les conventions relatives aux cardinalités :Partie2 N2 Eau : MOLÉCULE Hydrogène : ATOME 2 Oxygène : ATOME 1 restent valables pour les agrégations et les compositions. R. BOUAZIZ -- F. GARGOURI 99 R. BOUAZIZ -- F. GARGOURI 100 11 08/10/2010 Concept de relation --Association, agrégation et composition Concept de relation --Association, agrégation et composition Exemple récapitulatif : Une personne peut posséder des immeubles. Dans un immeuble, on peut trouver des ascenseurs. Un immeuble est composé d’étages. Une personne peut posséder des comptes et une adresse. Explications : Une personne peut posséder des immeubles : Dans un immeuble, on peut trouver des ascenseurs : Un lien : ensemble/élément, les CV des objets ne sont pas forcément dépendants. la suppression d’un immeuble n’entraîne pas obligatoirement celle d’un ascenseur. Un ascenseur ne peut être utilisé (au même temps) par plus qu’un immeuble. Mais, dans le temps, le même ascenseur peut être utilisé par différents immeubles. Un lien conceptuel : les objets ont des CV indépendants. Ce lien exprime une relation temporaire. Agrégation Association 101 R. BOUAZIZ -- F. GARGOURI Concept de relation --Association, agrégation et composition 102 R. BOUAZIZ -- F. GARGOURI Concept de relation --Association, agrégation et composition Un immeuble est composé d’étages : Diagramme de Classes : Un lien : composé/composants : les CV des objets coïncident. La création de l’immeuble la création de ses étages. La suppression de l’immeuble la suppression de ses étages. Un étage ne peut pas être partagé par différents immeubles. IMMEUBLE 1..* * Posséder * ASCENSEUR ADRESSE PERSONNE COMPTE * ETAGE Composition R. BOUAZIZ -- F. GARGOURI 103 La généralisation / spécialisation La généralisation / spécialisation L’ ……………, avec UML, est désigné par Généralisation Attention : à ne pas confondre héritage et instanciation La ……………………………… peut être : 104 R. BOUAZIZ -- F. GARGOURI Voiture Simple - modèle - cylindrée - couleur C_GÉNÉRALISEE Est Une NON ! Vx C_SPÉCIALISEE Ferrari ; 6 C Jaune Multiple : La spécialisation a plus d’une généralisation R. BOUAZIZ -- F. GARGOURI 105 R. BOUAZIZ -- F. GARGOURI 106 12 08/10/2010 La généralisation La généralisation Contraintes et propriétés de la généralisation : La contrainte exprimée par le mot-clé {…………………} objet est au plus instance d’une seule sousclasse. C’est une décomposition exclusive : {Exclusif} La contrainte exprimée par le mot-clé {………………..} Indique Tout La contrainte exprimée par le mot-clé {…………………} Indique que la spécialisation est extensible : elle peut avoir d’autres sous classes. C’est l’option par défaut. ETUDIANT {Disjoint} ETUDIANT-1C que la spécialisation est terminée (couverture) : Il n’est pas possible d’ajouter d’autres sous-classes. ENSEIGNANT ETUDIANT {Incomplet} {Complet} ETUDIANT-3C E_PERMANENT Inter (ETUDIANT-1C, ETUDIANT-3C) = Vide 107 R. BOUAZIZ -- F. GARGOURI La généralisation E_VACTAIRE ET1-C ET-2C ET-3C R. BOUAZIZ -- F. GARGOURI 108 Divers Une classe générique peut être spécialisée selon …………………….. critères. Quelques représentations triviales Classes sans relations. Classes sans attributs. Classes sans opérations. Relation 1-1. La contrainte exprimée par le mot-clé {inclusif} ou {chevauchement} ou {overlapping} Une instance de l’une des spécialisations peut être simultanément une instance d’une autre. VEHICULE Premier critère : Deuxième critère : Motorisation Milieu Pas forcément une erreur, mais toujours se poser la question. {Chevauchement} V_A_VOILE V_A_MOTEUR V_TERRSETRE V_MARIN CAMION R. BOUAZIZ -- F. GARGOURI 109 Divers 110 Divers La pratique Ne pas utiliser systématiquement toutes les Exemple : Un contrat d’édition est un accord entre un auteur notations : En phase d’analyse : concepts fondamentaux. En phase de conception/implémentation : concepts avancés. Bien utiliser UML ne veut pas dire bien modéliser ! La théorie ne remplace pas l’expérience. Les patrons de modélisation (design patterns) peuvent améliorer le modèle de conception. R. BOUAZIZ -- F. GARGOURI R. BOUAZIZ -- F. GARGOURI (éventuellement collectif) et un éditeur. Les conditions générales d’un contrat sont stipulées dans un contrat type. Les clauses particulières sont ajoutées au contrat. Le contrat ne concerne qu’un ouvrage, qui ne peut être édité chez un autre éditeur. 111 R. BOUAZIZ -- F. GARGOURI 112 13 08/10/2010 Divers Auteur Editeur 1 0..* regroupe 0..* AuteurCollectif {ordered} 0..* ContratEdition porte sur 1 * 1 * Ouvrage est rég i par AuteurIndividuel 2..* 1 {disjoint, complète} /édite 1 ContratType R. BOUAZIZ -- F. GARGOURI 113 14