UML – UnifiedModelingLanguage2/4 : diagrammes statiques	Yannick PriéDépartement Informatique – Faculté des Sciences et TechnologiesUniversité Claude Bernard Lyon 12011-2012
Objectifs de ce coursApprendre la syntaxe et la sémantique des diagrammes statiques les plus importantsAméliorer au passage la compréhension de différents principes objets2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
PlanDiagrammes de classesDiagrammes d’objetsDiagrammes de paquetagesDiagrammes de composantsDiagrammes de déploiement2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Diagrammes de classes : présentation généraleDiagrammes fondamentaux les plus connus, les plus utilisésPrésentent la vue statique du système représentation de la structure et des déclarations comportementalesclasses, relations, contraintes, commentaires…Permettent de modéliser plusieurs niveauxconceptuel (domaine, analyse)implémentation (code)2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
ClassesDescripteurs de jeuxd’objets
structure / comportement / relations / sémantiquecommuns
Représentation
rectangle à trois compartiments
nom
attributs
opérations
plus ou moins de détails suivant les besoins
Nom : singulier, majuscule (en général)
ex. : Fichier, Client, Compte, ChatNomDeClasseattribut 1attribut 2opération 1opération 2AutreClasse2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Relations entre classes/ liens entre objetsAssociationles instances des classes sont liéespossibilité de communication entre objetsrelation forte : compositionGénéralisation/spécialisationles instances de la sous-classe sont des instances de la super-classe (niveau conceptuel) héritage (niveau implémentation)Dépendancela modification d’une classe peut avoir des conséquences sur une autre Réalisationune classe réalise une interface 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Un exempleElément de réseau2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Utilisation des diagrammes de classesExpression des besoins	modélisation du domaineConceptionspécification : gros grainConstructionimplémentation : précisrétro-ingénierieLes diagrammes de classes permettent de représenter toute modélisation en classes, que ce soit des classes implémentées en machine ou nonOn peut modéliser n’importe quel domaine avec des classes2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Petit exerciceDessiner un diagramme de classe du domaine avec les classes suivantesétudiantenseignantcourssalle de classe2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
AttributsVisibilité nom : type [multiplicité ] = valeur_initiale {propriétés}Facultatif public +privé -protégé #paquetage~Facultatifex. couleurs : Saturation [3]points : Points [2..*]Facultatifmais impératif pourl’implémentationFacultatifex. {frozen} mise à jour interdite{obligatoire} valuation oblig.Remarques
/nom : attribut dérivé (calculé)
souligné : attribut statique (de classe)
{frozen} : disparu de UML2 ; à utiliser quand-même2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Attributs : exempleVecteur- x : réel- y : réel+ /longueur- couleur [3] : réel-créateur = "yp" {frozen}Télévision on/off : Bouton
 couleur : enum {gris, noir}
 marque : chaine
 télétexte : booléen = vrai
 chaines [5…*] : canal {ordered}
 enceintes[2..6] : haut-parleur
 type : typeTV {frozen}
 volume : parallépipède = (600,650,500)valeur_x() : réel  valeur_y() : réellongueur() : réel2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Opérations de classesvisibilité nom (liste de paramètres) : type-retour {propriétés}argument ::= direction nom : type = valeur-défautpublic +privé -protégé #paquetage~asbtractquery…in | out | inoutRemarquesnotation : opération abstraite / opération statiqueopérations = comportement d’une classe, trouvées en examinant les diagrammes d’interactionméthode = implémentation d’une opération dont elle spécifie l’algorithme ou la procédure associée pré et post-conditions, description du contenu : commentaires + OCL2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Opérations : exemple« visuel »Fenêtre« precondition » p1 != p2…« constructor »+Fenêtre(p1:Point, p2:Point)…+surface() : Réel  {query}…« update »#couleur(in newcolor : color = ‘J’)…« method »  public int surface(){ return …}Renvoie| x2 –x1 | * | y2 – y1 | 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
« Visuel »Fenêtre{ abstract,auteur = yp,statut = testé }+forme : zone = [100,100]#visibilité : booléen = faux+forme_défaut : rectangle-xptr : Xwindow« Visuel »  Fenêtre+afficher()+masquer()+créer-attachXWindow(xwin : Xwindow)forme : zonevisibilité : booléenafficher()masquer()Autres exemples de classes « enumeration »CouleurrougeblancbleuContrôleur d’entrée-- gère les événements en entréeResponsabilitéss’afficherse masquer FenêtreResponsabilités de la classe2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Associationsnom association x..yx..yClasse 1Classe 2rôle 1rôle 2Nom : forme verbale, sens de lecture avec flècheRôles : forme nominale, identification extrémité associationMultiplicité : 1, 0..1, 0..*, 1..*, n..mMots-clés : set, ordered set (uniques) ; bag, list (doublons) actionnaire**1..**EntreprisePersonneemployeuremployé travaille pourServicesIndustrielleLes associations ont une durée de vie, sont indépendantes les unes des autres, sont héritées, comme les attributs2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Associations : exempleAssociation réflexive travaille pourSociéténomPersonnenom0..*1..*patron0..1employeuremployé {ordered, set}dirige *emploie employésReprésentation d’une collection2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
Associations : remarquesTout objet doitêtre accessible via un lien
ne peutrecevoir de messages sinon
liens plus oumoins permanents : voir “Visibilités”
Multiplicité
nombred’instancesd’uneclasse en relation avec une instance d’uneautreclasse
pour chaque association
deuxdécisionsàprendre : deuxextrémités
Directionnalité
bidirectionnalité par défaut, evtexplicitée
restriction de la navigation àune direction2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 =
2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 PersonneA pour titulaireCompte{XOR}EntrepriseA pour titulaireAssociations et contraintesvisible sur 1{ordered}FenêtreEcran2..*2..*situé sur association navigablePoint d’intersectionSegment0..*est de type TypeVéhiculeVéhicule{Véhicule.charge < Typevéhicule.chargeMax}chargechargeMax1..*HistoriqueÉvénement{add only, ordered}
Propriétés : caractéristiques structurelles des classes Concept unique regroupant attributs et associations monodirectionnelles : équivalence des représentations
Pour choisir
attribut (texte) pour les types de données
objets dont l’identité n’est pas importante
association pour insister sur les classes2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 Commande+dateDeRéception: Date[0..1]+estPrépayée: Booléen[1]+lignes: LIgneDeCommande[*] {ordered}(Fowler, 2004)0..1*1CommandeBooléenDate+estPrépayée+dateDeRéception1lignes{ordered}*LigneDeCommande
Agrégation et compositionAssociations asymétriques, fortes
Agrégation
non nommée, structure d’arbre sous-jacente (pas de cycle), rôle prépondérant d’une extrémité
Composition
non partage des éléments composants, création et destruction des composants avec le composite 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 ElémentAgrégat1..*0..*ElémentComposite0..*1
Composition, agrégation et associationQuelques questions à se poser
asymétrie et lien de subordination entre instances des deux classes (agrégation/composition) ouindépendance des objets (association) ?
propagation d’opérationsoud’attributs du tout vers les parties ? (agrégation/composition)
création et destruction des parties avec le tout ? (composition)
Remarquesimportantes

CM uml-diag-statiques

  • 1.
    UML – UnifiedModelingLanguage2/4: diagrammes statiques Yannick PriéDépartement Informatique – Faculté des Sciences et TechnologiesUniversité Claude Bernard Lyon 12011-2012
  • 2.
    Objectifs de cecoursApprendre la syntaxe et la sémantique des diagrammes statiques les plus importantsAméliorer au passage la compréhension de différents principes objets2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 3.
    PlanDiagrammes de classesDiagrammesd’objetsDiagrammes de paquetagesDiagrammes de composantsDiagrammes de déploiement2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 4.
    Diagrammes de classes: présentation généraleDiagrammes fondamentaux les plus connus, les plus utilisésPrésentent la vue statique du système représentation de la structure et des déclarations comportementalesclasses, relations, contraintes, commentaires…Permettent de modéliser plusieurs niveauxconceptuel (domaine, analyse)implémentation (code)2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 5.
  • 6.
    structure / comportement/ relations / sémantiquecommuns
  • 7.
  • 8.
    rectangle à troiscompartiments
  • 9.
  • 10.
  • 11.
  • 12.
    plus ou moinsde détails suivant les besoins
  • 13.
    Nom : singulier,majuscule (en général)
  • 14.
    ex. : Fichier,Client, Compte, ChatNomDeClasseattribut 1attribut 2opération 1opération 2AutreClasse2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 15.
    Relations entre classes/liens entre objetsAssociationles instances des classes sont liéespossibilité de communication entre objetsrelation forte : compositionGénéralisation/spécialisationles instances de la sous-classe sont des instances de la super-classe (niveau conceptuel) héritage (niveau implémentation)Dépendancela modification d’une classe peut avoir des conséquences sur une autre Réalisationune classe réalise une interface 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 16.
    Un exempleElément deréseau2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 17.
    Utilisation des diagrammesde classesExpression des besoins modélisation du domaineConceptionspécification : gros grainConstructionimplémentation : précisrétro-ingénierieLes diagrammes de classes permettent de représenter toute modélisation en classes, que ce soit des classes implémentées en machine ou nonOn peut modéliser n’importe quel domaine avec des classes2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 18.
    Petit exerciceDessiner undiagramme de classe du domaine avec les classes suivantesétudiantenseignantcourssalle de classe2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 19.
    AttributsVisibilité nom :type [multiplicité ] = valeur_initiale {propriétés}Facultatif public +privé -protégé #paquetage~Facultatifex. couleurs : Saturation [3]points : Points [2..*]Facultatifmais impératif pourl’implémentationFacultatifex. {frozen} mise à jour interdite{obligatoire} valuation oblig.Remarques
  • 20.
    /nom : attributdérivé (calculé)
  • 21.
    souligné : attributstatique (de classe)
  • 22.
    {frozen} : disparude UML2 ; à utiliser quand-même2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 23.
    Attributs : exempleVecteur-x : réel- y : réel+ /longueur- couleur [3] : réel-créateur = "yp" {frozen}Télévision on/off : Bouton
  • 24.
    couleur :enum {gris, noir}
  • 25.
    marque :chaine
  • 26.
    télétexte :booléen = vrai
  • 27.
    chaines [5…*]: canal {ordered}
  • 28.
    enceintes[2..6] :haut-parleur
  • 29.
    type :typeTV {frozen}
  • 30.
    volume :parallépipède = (600,650,500)valeur_x() : réel valeur_y() : réellongueur() : réel2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 31.
    Opérations de classesvisibiliténom (liste de paramètres) : type-retour {propriétés}argument ::= direction nom : type = valeur-défautpublic +privé -protégé #paquetage~asbtractquery…in | out | inoutRemarquesnotation : opération abstraite / opération statiqueopérations = comportement d’une classe, trouvées en examinant les diagrammes d’interactionméthode = implémentation d’une opération dont elle spécifie l’algorithme ou la procédure associée pré et post-conditions, description du contenu : commentaires + OCL2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 32.
    Opérations : exemple« visuel »Fenêtre« precondition »p1 != p2…« constructor »+Fenêtre(p1:Point, p2:Point)…+surface() : Réel {query}…« update »#couleur(in newcolor : color = ‘J’)…« method »  public int surface(){ return …}Renvoie| x2 –x1 | * | y2 – y1 | 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 33.
    « Visuel »Fenêtre{ abstract,auteur =yp,statut = testé }+forme : zone = [100,100]#visibilité : booléen = faux+forme_défaut : rectangle-xptr : Xwindow« Visuel »  Fenêtre+afficher()+masquer()+créer-attachXWindow(xwin : Xwindow)forme : zonevisibilité : booléenafficher()masquer()Autres exemples de classes « enumeration »CouleurrougeblancbleuContrôleur d’entrée-- gère les événements en entréeResponsabilitéss’afficherse masquer FenêtreResponsabilités de la classe2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 34.
    Associationsnom association x..yx..yClasse1Classe 2rôle 1rôle 2Nom : forme verbale, sens de lecture avec flècheRôles : forme nominale, identification extrémité associationMultiplicité : 1, 0..1, 0..*, 1..*, n..mMots-clés : set, ordered set (uniques) ; bag, list (doublons) actionnaire**1..**EntreprisePersonneemployeuremployé travaille pourServicesIndustrielleLes associations ont une durée de vie, sont indépendantes les unes des autres, sont héritées, comme les attributs2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 35.
    Associations : exempleAssociationréflexive travaille pourSociéténomPersonnenom0..*1..*patron0..1employeuremployé {ordered, set}dirige *emploie employésReprésentation d’une collection2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 36.
    Associations : remarquesToutobjet doitêtre accessible via un lien
  • 37.
    ne peutrecevoir demessages sinon
  • 38.
    liens plus oumoinspermanents : voir “Visibilités”
  • 39.
  • 40.
    nombred’instancesd’uneclasse en relationavec une instance d’uneautreclasse
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
    restriction de lanavigation àune direction2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 =
  • 46.
    2010-2011 / YannickPrié - Université Claude Bernard Lyon 1 PersonneA pour titulaireCompte{XOR}EntrepriseA pour titulaireAssociations et contraintesvisible sur 1{ordered}FenêtreEcran2..*2..*situé sur association navigablePoint d’intersectionSegment0..*est de type TypeVéhiculeVéhicule{Véhicule.charge < Typevéhicule.chargeMax}chargechargeMax1..*HistoriqueÉvénement{add only, ordered}
  • 47.
    Propriétés : caractéristiquesstructurelles des classes Concept unique regroupant attributs et associations monodirectionnelles : équivalence des représentations
  • 48.
  • 49.
    attribut (texte) pourles types de données
  • 50.
    objets dont l’identitén’est pas importante
  • 51.
    association pour insistersur les classes2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 Commande+dateDeRéception: Date[0..1]+estPrépayée: Booléen[1]+lignes: LIgneDeCommande[*] {ordered}(Fowler, 2004)0..1*1CommandeBooléenDate+estPrépayée+dateDeRéception1lignes{ordered}*LigneDeCommande
  • 52.
  • 53.
  • 54.
    non nommée, structured’arbre sous-jacente (pas de cycle), rôle prépondérant d’une extrémité
  • 55.
  • 56.
    non partage deséléments composants, création et destruction des composants avec le composite 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 ElémentAgrégat1..*0..*ElémentComposite0..*1
  • 57.
    Composition, agrégation etassociationQuelques questions à se poser
  • 58.
    asymétrie et liende subordination entre instances des deux classes (agrégation/composition) ouindépendance des objets (association) ?
  • 59.
    propagation d’opérationsoud’attributs dutout vers les parties ? (agrégation/composition)
  • 60.
    création et destructiondes parties avec le tout ? (composition)
  • 61.
  • 62.
    dans le doute,toujoursutiliserune association : c’est la moinscontrainte
  • 63.
    pour certains experts,ilfautoublierl’agrégation
  • 64.
    agrégation = “placebodenué de sens”2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 65.
    Classes d’associationPour ajouterattributset opérationsà des associations
  • 66.
    Quelques indices pourl’utilisation
  • 67.
    un attribut estlié à une association
  • 68.
    la durée devie des instances de la CA dépend de l’association
  • 69.
    association N..N entredeux classes + informations liées à l’association2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 Réalise *Assiste *2..*PersonneRéunionParticipationattentionParticipation11*PersonneRéunionattention2..*
  • 70.
    CommandeLigneDeCommandeproduit1Associations qualifiéesEquivalent UMLdes dictionnairesSélection d’un sous-ensemble des objets qui participent à l’association à l’aide d’une clé. cet attribut est propriété de l’association2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 Contient CommandeLigneDeCommande11..*Contient 1
  • 71.
    Groupe de liensentre au moinstrois instances
  • 72.
    Instance de l’association= n-uplet des attributs des instances impliquéesResponsabilitéExemple SSIIlibellétaux_horaire forfait_prestation(nb_heures)DépartementEmployénombudget *base calculnomheures_travail rattachementsourcedépenser()encaisser()Prestation(nb_heures)**Associations n-aire2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 73.
  • 74.
  • 75.
    organisation : unconcept est plus général qu’un autre
  • 76.
  • 77.
  • 78.
    Pour une bonneclassification conceptuelle
  • 79.
    principe de substitution/ conformité à la définition
  • 80.
    toutes les propriétésde la classe parent doiventêtrevalables pour les classes enfant
  • 81.
    « A est unesorte de B » (mieux que « A est un B »)
  • 82.
    toutes les instancesde la sous-classe sont des instances de la super-classe (définition ensembliste)
  • 83.
  • 84.
    relation inverse dela généralisation2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 AABCBC
  • 85.
    Hiérarchie de classesFacturepourdateadressemontant_frcsLivraison11..nDiscriminantAssociation commune montrée au niveau le plus hautimprimer()expédier(){complete}destinationFacture_exportFacture_Francedevise_paiementmontant_devisetaux_TVAmontant_ttcconvertir(devise)calcul_ttc()2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 Autres contraintes {incomplete}, {disjoint}, {overlapping}
  • 86.
    Conseils pour laclassification conceptuellePartitionner une classe en sous-classes
  • 87.
    la sous-classe ades attributs et/ou des associations supplémentaires pertinents
  • 88.
    par rapport àla superclasse ou à d’autres sous-classes, la sous-classe doit être gérée, manipulée, on doit agir sur elle ou elle doit réagir différemment, et cette distinction est pertinente
  • 89.
    le concept dela sous-classe représente une entité animée (humain, animal, robot) qui a un comportement différent de celui de la superclasse, et cette distinction est pertinente
  • 90.
  • 91.
    les sous-classes sontconformes aux principes de substitution et « sorte-de »
  • 92.
    toutes les sous-classesont au moins un même attribut et/ou une même association qui peut être extrait et factorisé dans la superclasse2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 (Larman, 2005)
  • 93.
  • 94.
    Attention aux conflits: ilfaut les résoudre
  • 95.
  • 96.
    Interfaces et classesabstraites2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 Un diagramme à comprendre !
  • 97.
    Interface et utilisation: notationUML2UML12010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 98.
    Classes paramétrables (templates)T,Nbl:Entier, Nbc:EntierRemarque : les classes paramétrables sont disponibles en C++ depuis longtemps, en JAVA depuis 1.5Tableau-éléments: T[nbc, nbc] +Elément(ligne,col) : T+Elément(e : T; ligne, col : Entier)« bind » <T_Case,Nbl_8,Nbc_8>EchiquierTableau<TRéel, Nbl3, Nbc3>Deux notations de la paramétrisation d'une classe paramétrable2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 99.
    Classes structurées2010-2011 /Yannick Prié - Université Claude Bernard Lyon 1 CommandeDescription de la structure d’implémentation interne d’une classe
  • 100.
  • 101.
    ports : pointsde connexion avec l’environnement(evt. interne)
  • 102.
    parties : fragmentstructuré de la classe
  • 103.
    connecteurs : connexionsde deux parties au sein de la classeclient:personneajoutBilletpriorité0..1priorité:NiveauEtatélément:Billet[1..*]
  • 104.
    Classes actives2010-2011 /Yannick Prié - Université Claude Bernard Lyon 1 Thread 1: Calcul principalThread 2Classedont les instances sont des objetsactifs
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
    utiliser une dépendancepour tout ce qui n’est pas spécifié«refine»Classe AClasse A1passage concept / implémentation«permit»DictionnaireCellulepermission d’utilisation«create»TableauCaseutilisationRelations de dépendance2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 116.
    Liens, visibilité etdépendancesLien => possibilité d’envoyer un message d’un objet à un autreDeux types de liensLien durable : visibilité d’attribut ou globalese matérialise par une association entre classesLien temporaire : visibilité paramètre ou localerésulte d’une utilisation temporaire d’un objet par un autrese matérialise par une dépendance entre classesex. passage de paramètre : « parameter », variable locale à une méthode : « local »attention à ne pas oublier ces dépendances !2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 A«parameter»op1(c:C)1: op2()B:A:BC+op2()
  • 117.
    PlanDiagrammes de classesDiagrammesd’objetsDiagrammes de paquetagesDiagrammes de composantsDiagrammes de déploiement2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 118.
    Diagrammes d’objets2010-2011 /Yannick Prié - Université Claude Bernard Lyon 1 patronDenis:PersonnePour représenter un instantané du système
  • 119.
    les objets etleurs liens
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
    quand une structurecomplexe est trop difficile à comprendre avec un diagramme de classe
  • 125.
    ex. : récursivité,associations multiples, etc.Etienne:PersonnePersonneemployépatronJean-Luc:Personnepatron
  • 126.
    Nom de l’objetsoulignéObjets anonymes ou nonObjets classifiés ou nonNom objetNom objet : classe: classeRexRex : Chien: ChienObjets2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 127.
    Objets dans unecollectionMulti-objet (UML1)
  • 128.
  • 129.
    comme un objetunique avec des opérations sur le jeu
  • 130.
    comme jeu d’objetsindividuels avec leurs opérations
  • 131.
  • 132.
    Utiles pour lesdiagrammes de communication pour s’adresser
  • 133.
    à l’objet quireprésente la collection (Meute)
  • 134.
    aux objets dansla collection (Chien)2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 : Chien: Meute4..*:Meute:Chien[4..*]
  • 135.
    PlanDiagrammes de classesDiagrammesd’objetsDiagrammes de paquetagesDiagrammes de composantsDiagrammes de déploiement2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 136.
    Paquetage2010-2011 / YannickPrié - Université Claude Bernard Lyon 1 utilutilutilDateContenu diagrammeContenu listéMécanisme général pour
  • 137.
    organiser les élémentset les diagrammes du modèle, notamment les classes
  • 138.
  • 139.
  • 140.
  • 141.
    un paquetage définitun espace de nom
  • 142.
    deux éléments nepeuvent avoir le même nom dans un paquetage
  • 143.
  • 144.
  • 145.
    y compris d’autrespaquetages : hiérarchie
  • 146.
  • 147.
    peut posséder desinterfacesDateABCED
  • 148.
    2010-2011 / YannickPrié - Université Claude Bernard Lyon 1 Diagramme de paquetageNotation Rose
  • 149.
    Dépendances entre paquetagesDécoulentdes dépendances entre éléments des paquetages notamment les classesLes dépendances ne sont pas transitives modifier Fournisseur n’oblige pas obligatoirement à modifier Clientèle2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 150.
    Utilisation des diagrammesde paquetagesOrganisation globale du modèle mis en place
  • 151.
    hiérarchies de paquetagescontenant diagrammes et éléments
  • 152.
    Organisation des classesen paquetages pour
  • 153.
  • 154.
  • 155.
    obtenir une applicationplus évolutive et facile à maintenir
  • 156.
    ne pas sefaire déborder par les modifications
  • 157.
    viser la généricitéet la réutilisabilité des paquetages
  • 158.
    avoir une vueclaire des flux de dépendances entre paquetages
  • 159.
    il s’agit deles minimiser 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 160.
    Paquetage et nommageNomspleinement qualifiés
  • 161.
  • 162.
    ex. paquetage java::util,classe java::util::Date
  • 163.
  • 164.
    « import » : leséléments passent dans l’espace de nommage
  • 165.
    ex. classe Datedepuis le paquetage qui importe
  • 166.
  • 167.
    ex. classe java::util::Datedepuis le paquetage qui importe2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 168.
    Principes du découpageen paquetagesCohérence interne du paquetage : relations étroites entre classes
  • 169.
  • 170.
    les classes changentpour des raisons similaires
  • 171.
  • 172.
    les classes doiventêtre réutilisées ensemble
  • 173.
    Indépendance par rapportaux autres paquetages
  • 174.
    Un paquetage d’analysecontient généralement moins de 10 classes2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 175.
    Bien gérer lesdépendancesLes minimiser pour maintenir un couplage faible (voir patterns)dépendances unidirectionnellescf. associations navigablespas de cycles de dépendancesou au moins pas de cycles inter-couchesstabilité des dépendances plus il y a de dépendances entrantes, plus les interfaces de paquetage doivent être stables2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 176.
    Paquetages : remarquesvariéesLes paquetages peuvent être considérés comme
  • 177.
  • 178.
    soit des véritablessous-systèmes opérationnels
  • 179.
  • 180.
    Paquetage vu del’extérieur
  • 181.
    classe publique gérantle comportement externe (cf. pattern Façade)
  • 182.
  • 183.
    Pour un Paquetagesutilisé partout (très stable)
  • 184.
  • 185.
    Utilité pratique d’unpaquetage Commun
  • 186.
    regrouper les conceptslargement partagés, ou épars
  • 187.
    Lien entre paquetageset couches (niveaux)
  • 188.
    une couche estcomposée de paquetages 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 189.
    PlanDiagrammes de classesDiagrammesd’objetsDiagrammes de paquetagesDiagrammes de composantsDiagrammes de déploiement2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 190.
    ComposantsPartie modulaire deconception d’un système qui masque son implémentation derrière un jeu d’interfaces externes
  • 191.
    partie remplaçable d’unsystème qui se conforme à des interfaces et fournit la réalisation de ces interfaces
  • 192.
    doit être compriscomme un élément qu'on peut acheter, associer à d'autres composants (cf. HiFi)
  • 193.
    Division en composants= décision technique et commerciale (Fowler)
  • 194.
    Représentation 2010-2011 / YannickPrié - Université Claude Bernard Lyon 1 <<component>>PlanificateurPlanificateur
  • 195.
  • 196.
    représenter l’organisation etles dépendances entre les composants logiciels
  • 197.
    décrire les composantset de leurs relations dans le système en construction
  • 198.
  • 199.
  • 200.
    relations de fournitureet d’utilisation d’interfaces2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 201.
    Diagramme de composantsCaisseServeurventesDriver comptabilitéProcesseur de transactionsFile de messagesStructure composite, PortSystème de comptabilité(Fowler 04)2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 202.
    RemarqueUML1 : composant= n'importe quel élément, y compris fichiers, bibliothèque, etc.
  • 203.
    UML2 : utiliserles artefacts (voir plus loin) pour représenter des structures physiques (jar, dll…)  attention : vérifier quelle syntaxe est utilisée dans les diagrammes de composants que vous avez sous les yeux2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 204.
    PlanDiagrammes de classesDiagrammesd’objetsDiagrammes de paquetagesDiagrammes de composantsDiagrammes de déploiement2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 205.
    Diagramme de déploiementObjectifexpliquercomment un système décrit statiquement dans un modèle sera concrètement déployé sur une architecture physique distribuéeModéliser l’environnement d’exécution d’un projetPour celarendre compte de la disposition physique des différents éléments matériels qui entrent dans la composition d’un systèmerendre compte de la disposition des programmes exécutables et des composants sur ces matériels2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1
  • 206.
    <<device>>Serveur principal{Memory=8goRaidLevel=5Processor=2Ghz Xeon}Représentationde l’environnement matériel de déploiementNoeuds avec stéréotype « device »description des caractéristiques attenduesprocesseur, mémoire, système d’exploitation, etc.Relationssupports de communication entre nœuds physiques2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 <<device>>PDA{OS=Palm OS 4.0}<<Bluetooth>><<device>>Client{Memory=1goProcessor=1Ghz Intel 915DiskSpace=10 Go}<<TCP-IP>>{sécurisé}
  • 207.
    Représentation du logicieldéployéArtefact = élément d’information impliqué dans le systèmeFichiers, logiciel, modèlee.g. fichier de configuration, bibliothèque, exécutable, script, table de BD, etc.un artefact est la manifestation (manifest) d’un élément du modèle e.g. une classe (élément du modèle) a pour manifestations un fichier source .java, un fichier compilé .class et un fichier .html lié à la javadoc.2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 <<artifact>><<vendor>>Processeurde transactions{VendorName=TotoVersion=2.1}<<artifact>>CommandeAchat.jarCommandeAchat.jar
  • 208.
    Diagramme de déploiementLesartefacts sont déployés sur les nœuds de l’environnement matériel2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 <<device>>MachineEnseignant{JDK=1.6pdfReader=pdf2.0}<<artifact>>tp.jar<<component>>MonTP<<manifest>><<artifact>>rapport.pdf
  • 209.
    Exemple de diagrammede composants2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 « station client »:PCStandard« serveur »:DellPowerEdge 3600{OS=RedHat6}<<device>><<device>><<device>>« station client »:PCStandarditrlitltri{OS=Windows}i« browser »:webBrowserJoveGL.exeherculesClient.exe{vendor=romanSoft}{component=GeneralLedger}.HTTP/LANtt/HTTP/internetContainerEJBtt/itrtherculesBase.ear<<device>>« cluster web server »:Apache2.1{OS=Solaris{nbCluster=3}herculesAR.earrrherculesAP.earJAVA RMI/LANJDBCI/<<artefact>>SGBDOracleherculesWeb.exe
  • 210.
    Déploiement : raffinementsLesnœuds et les artefacts sont instanciablespossibilité de réfléchir à un déploiement abstrait (nœuds, artefacts) et à un déploiement concret (instances de nœuds, instances d’artefacts)exemple tel programme de telle version compiléeà telle date tourne tourne sur telle machine physique réellePossibilité de spécifier des caractéristiques du déploiement d’un artefact2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 <<device>>:ServeurCommandes<<artifact>>CommandeAchat.jar<<deploymentSpec>>poDeploy.xmlexecution=threadtransaction=truepriority=low
  • 211.
    A suivreUML 3/4: diagrammes dynamiques et d’interactionsUML 4/4 : concepts avancés2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1