SlideShare ist ein Scribd-Unternehmen logo
1 von 82
Analyse et Conception avec UML

   Les diagrammes
      de classes
          blay@unice.fr
     www.polytech.unice.fr/~blay
     IUT Nice-Sophia Antipolis
            mars 2011

            Site web du module :
     http://anubis.polytech.unice.fr/iut/
                        1
Bibliographie

•Voir sur le site web les autres cours.
•UML Par la pratique (surtout dans sa dernière édition)
(présent à la bibliothèque de l’IUT)
•Méthodologie en Ingénierie du logiciel, Modélisation Orientée
objet, M.Grimaldi – janvier 2010




                                2
Intro par l’exemple     Relations               Application


                        Modélisation structurelle
         Les classes et les objets modélisent les objets matériels ou
         immatériels qui existent dans le système que l’on essaie de décrire
         Les relations entre les classes et les objets établissent les
         connexions entre les divers éléments de modélisation et montrent
         l'agencement architectural
         Le diagramme de classes et le diagramme d’objets sont les pièces
         maîtresses de la vue structurale
         – Dans UML, ils sont répertoriés comme des diagrammes
            montrant la structure "statique"
         – Le diagramme d’objets est un exemple du diagramme de classes
         – Le diagramme d’objets donne une photographie du système
            dans le temps

03/11                                   3
Intro par l’exemple       Relations                Application


                                  Classes
       Une classe est une collection (modèle) d’objets avec une
        structure commune, un comportement commun, des relations
        identiques et une sémantique identique
       On identifie les classes en examinant les objets dans les
        diagrammes
       La représentation graphique d’une classe consiste en un
        rectangle avec 3 compartiments
       Les noms des classes devraient être choisis dans le
        vocabulaire du domaine
          –   il est bon d’établir des standards pour les nom
          –   i.e., toutes les classes sont des noms communs commençant par
              une majuscule




03/11                                     4
Intro par l’exemple   Relations   Application


           Notations UML pour classes et
                      objets




03/11                                 5
Concepts du
 domaine
               m ple
    r l’ exe
  Pa
           6
Intro par l’exemple   Relations   Application

                 Détermination des concepts du
                           domaine




03/11
Intro par l’exemple   Relations      Application

                 Détermination des concepts du
                           domaine
   La détermination des concepts s’effectue sur la base des
   cas d’utilisation par simple analyse grammaticale de la
   description textuelle.

   D'une manière générale,




03/11
Intro par l’exemple   Relations      Application

                 Détermination des concepts du
                           domaine
   La détermination des concepts s’effectue sur la base des
   cas d’utilisation par simple analyse grammaticale de la
   description textuelle.

   D'une manière générale,

   les noms représentent des concepts ou des attributs
   tandis




03/11
Intro par l’exemple   Relations      Application

                 Détermination des concepts du
                           domaine
   La détermination des concepts s’effectue sur la base des
   cas d’utilisation par simple analyse grammaticale de la
   description textuelle.

   D'une manière générale,

   les noms représentent des concepts ou des attributs
   tandis

   que les verbes représentent des comportements
   (opérations, méthodes)


03/11
Intro.                 Intro. UML         De Merise à UML


                        Deux règles utiles

             Règle du cartographe : Le modèle du domaine se
            construit de la même façon qu’un cartographe dessine
                                 une carte :

                 En utilisant le vocabulaire du domaine étudié.
                    En excluant les éléments non pertinents.
                En n’incluant pas d’éléments inexistants dans le
                                     domaine.

        Choix entre concept et attribut : Si un élément du
         domaine étudié est autre chose qu’un nombre ou un
         simple texte, alors il s’agit probablement d’un concept et
         non d’un attribut.
09/1
 0
Intro par l’exemple                     Relations     Application

                                                      Notes
• Un attribut ne peut représenter qu’une valeur primitive (entier,
texte, date, identificateur, matricule, . . . ).
        • Un attribut ne peut représenter que des données relatives au
                         concept auquel il est associé.

                                                 Exemple :




02/11     UML et RUP : un survol   T. Libourel ; M Huchard
Intro par l’exemple                     Relations     Application

                                                      Notes
• Un attribut ne peut représenter qu’une valeur primitive (entier,
texte, date, identificateur, matricule, . . . ).
        • Un attribut ne peut représenter que des données relatives au
                         concept auquel il est associé.

                                                 Exemple :




02/11     UML et RUP : un survol   T. Libourel ; M Huchard
Intro par l’exemple                     Relations     Application

                                                      Notes
• Un attribut ne peut représenter qu’une valeur primitive (entier,
texte, date, identificateur, matricule, . . . ).
        • Un attribut ne peut représenter que des données relatives au
                         concept auquel il est associé.

                                                 Exemple :




02/11     UML et RUP : un survol   T. Libourel ; M Huchard
UML au travail : Une                            ludothèque
(1) Nous voulons informatiser une ludothèque pour favoriser la
consultation des jeux proposés par la ludothèque.
(2) Les adhérents peuvent emprunter des jeux en s’adressant à un
conseiller qui enregistre l’emprunt.
(3)Les jeux empruntés sont rendus à un conseiller....
(4) Un adhérent peut réserver des jeux. Une réservation précise
l’emprunteur, le jeu et la date de la demande de réservation. L’adhérent est averti
quand le jeu revient en rayon.
(5) Pour organiser un événement le conseiller spécialisé doit alors
donner les informations suivantes : les jeux à tester, le nombre maximal et
minimal de participants attendus, la date, et l’heure de début de l’événement.

(6) Un adhérent peut s’inscrire pour participer à un événement à
condition qu’il y ait encore de la place.
(7) Un adhérent peut payer sa cotisation en ligne par un système de
paiement externe
                                              10
Dict.   U.C.   Process.   Compléments.


Ludothèque




                    /82
Diagramme de séquence
     - Représentez le diagramme de séquence Système
            correspondant au cas d'utilisation

   Un conseiller enregistre l’emprunt d’un jeu pour un adhérent

1) Le conseiller s’authentifie;
2) Le conseiller saisit l’identifiant du jeu et de l’adhérent
3) Le système vérifie la disponibilité du jeu
4) Le système vérifie que la cotisation est bien payée
5) Le système vérifie que l’adhérent n’a pas de pénalité
impayée
6) Le système enregistre l’emprunt.
7) Le système signale que l’emprunt est valide.
                               12
Diagramme
     de séquence système
           enrichi




13
Relations entre
            classes
               es
            nd
        atio s
    icit tion
  pl ta              «Relations»,
Ex no                associations,
                      agrégation,
                    généralisation,
                     compléments


                          14
Intro par l’exemple     Relations         Application

                              Relations
        Les relations fournissent un chemin de communication entre
        objets : Les diagrammes de séquence sont parcourus pour
        déterminer quels liens doivent exister pour obtenir le
        comportement souhaité – si deux objets ont besoin de se
        parler, il doit exister un lien entre eux

        Trois types de relations :
            Association
            Agrégation
            Dépendance



03/11                                  15
Intro par l’exemple    Relations   Application


                              Relations




03/11                                 16
Intro par l’exemple         Relations                 Application


                                  Relations
       Une association est une connexion bi-directionnelle entre
        classes
            –   Une association est représentée par une ligne connectant les
                classes
       Une agrégation est une relation plus forte et s’établit
        entre un tout et ses parties
            –   Une agrégation est représentée par une ligne connectant les
                classes avec un losange du côté de la classe représentant le
                tout
       Une dépendance est une relation faible établie entre un
        client et un fournisseur et où le client n’a pas de
        connaissance sémantique sur le fournisseur
            –   Une dépendance est représentée par une flèche en pointillés
                allant du client au fournisseur

03/11                                      17
Intro par l’exemple     Relations Association   Application

                              Associations                       Nommage
                                                                   Rôle
                                                                 Multiplicité
           Les associations peuvent avoir des étiquettes:        Navigation
               Il s'agit du nom de l'association.
           Les associations peuvent avoir des noms de rôle:
               un nom de rôle identifie le rôle ou la responsabilité de
               l'objet dans l'association.

           Les associations peuvent indiquer la navigation avec une
           pointe de flèche ouverte:
               Pas de flèche => bidirectionnelle
               La plupart des associations sont unidirectionnelles en
               fin de conception.
           Les associations peuvent indiquer une multiplicité.
03/11                                 18
Intro par l’exemple              Relations Association           Application


                    Nommage des associations
• Une association peut être nommée afin de faciliter la
  compréhension des modèles. Dans ce cas le nom est indiqué
  au milieu du lien symbolisant l’association
                                                                                       Nommage
                                     A       nom           B                             Rôle
                                                                                       Multiplicité
                                                                                       Navigation
• L’usage recommande de choisir comme nom d’une
  association une forme verbale active (exemple : travaille
  pour) ou passive (exemple : est employé par)

                                          travaille pour
                          Personne                             Société

                                         est employé par
                          Personne                             Société
03/11                                           19
Intro par l’exemple              Relations Association           Application


    Rôles des extrémités d’association
        On peut attribuer à une extrémité d’une association un nom
        appelé rôle qui décrit comment une classe source voit une
        classe destination au travers de l’association
        Le rôle est placé près de la fin de l’association et à côté de la
        classe à laquelle il est appliqué                        Nommage
                                                                   Rôle
        L’utilisation des rôles est optionnelle                 Multiplicité
        Représentation et exemple                                Navigation


                              A                         B
                                            rôle de B


                                        employeur    Emploie>
                              Société                                 Personne
                                                            employé

03/11                                           20
Intro par l’exemple   Relations Association          Application

                Nommage des associations…
        Par défaut le sens de lecture du nom d’une
        association est de gauche à droite
        Dans le cas où la lecture du nom est ambiguë, on
        peut ajouter l’un des signes < ou > pour indiquer
        le sens de lecture
            • Exemples
                                              < travaille pour
                              Société                             Personne


                              Personne 1
                                *


                                     < est père de
03/11                               21
Intro par l’exemple            Relations Association       Application


                              Multiplicité : exemple
                                                                            Nommage
                                     possède                                  Rôle
                              1..*                  0..* Voiture            Multiplicité
              Personne
                                                                            Navigation
                                     gouverne
                              1                       1
              Président                                   Pays


              Nœud      *

               *                        Un réseau informatique est composé de
                                                nœuds inter-connectés
   Association réflexive




03/11                                          22
Intro par l’exemple          Relations Association          Application

                  Cas particuliers de relations
           Relations réflexives

                                                   encadre

                                   chef
                                          1
                                  Personne             sous-fifre
                                               1..*




                              Une relation réflexive lie
                              des objets de même classe

03/11                                         23
Intro par l’exemple                Relations Association     Application

                                        Multiplicité
        La multiplicité est définie par le nombre d’objets qui participent
        à une relation
             La multiplicité est le nombre d’instances d’une classe reliées à
             UNE instance d’une autre classe
             Pour chaque association et agrégation, il y a deux multiplicités :
             une à chaque bout de la relation
                                1
                                        Classe         Exactement une
                                    *
                                        Classe         Plusieurs (0 à n)
                              0,1
                                        Classe         Optionnelle (0 ou 1)
                              1,2,4
                                        Classe         Cardinalité spécifiée
                              1-10
03/11
                                         Classe
                                                  24
                                                       Intervalle
Intro par l’exemple
Diagramme de Classes- Relations       Relations Association         Application


                                  Navigation
   Bien que les associations soit bi-directionnelles
   par défaut, il peut être bon de limiter la
   navigation à un seul sens
          Les objets de Classe2 sont accessibles à partir
          de ceux de Classe1 et vice-versa
                            Classe1                       Classe2

   Si la navigation est restreinte, une flèche indique
   le sens de navigation
          Les objets de la Classe 1 sont accessibles à la
          classe 2                                      Nommage
                                                                                    Rôle
                            Classe1                       Classe2                 Multiplicité
03/11                                       25                                    Navigation
Intro par l’exemple           Relations   Agrégation      Application

                   Composition et Agrégation
       Cas particuliers de relations :
    –   Notion de tout et parties


                                  1          transporte        passager
                       Voiture                                             Personne
                                  moyen_de_transport                  *
                          1      1
  Composition                          roulement >
                                                                 Roue
                                                        4,6

                          structure > 1
 Agrégation                                Chassis



03/11                                        26
Intro par l’exemple    Relations   Agrégation   Application


                              Agrégation
        L’agrégation représente une association de type
        ensemble/élément
        L’agrégation ne concerne qu’un seul rôle d’une
        association
        Représentation




        L’agrégation permet de modéliser une contrainte
        d’intégrité et de désigner l’agrégat comme gérant de cette
        contrainte
03/11                                 27
Intro par l’exemple            Relations    Agrégation      Application


                                 Agrégation…
            Exemple 1
            –   Une personne est dans une foule
            –   Une foule contient plusieurs personnes
                                                          * Personne
                              Foule
                                            Contient >


             Exemple 2 (Agrégation partagée)
        –   Une personne fait partie de plusieurs équipes
        –   Une équipe contient plusieurs personnes
                                        *                  * Personne
                              Équipe
                                                    < membre
03/11                                          28
Aggregation
 Multiplicity of owners > 1 indicates a
  shared part.
 Forms a graph with its parts.




                                           {Shared}




                             29
Intro par l’exemple          Relations   Agrégation       Application




                    Agrégation … Composition
              La composition est un cas particulier de
              l’agrégation avec un couplage plus important
              La classe qui possède le rôle prédominant
              dans une composition est appelée classe
              composite ou classe conteneur
              Représentation

                         Composite                    Composant




03/11                                       30
Intro par l’exemple    Relations   Agrégation   Application


                              Composition
        La composition est une agrégation forte.
        Les cycles de vies des éléments (les "composants") et de
        l'agrégat (composite) sont liés : si l'agrégat est détruit
        (ou copié), ses composants le sont aussi.
        A un même moment, une instance de composant ne peut
        être liée qu'à un seul agrégat.
        Les "objets composites" sont des instances de classes
        composées.




03/11                                 31
Intro par l’exemple    Relations   Agrégation   Application


                              Composition
        Cycle de vie dépendant : la
        destruction du système de
        cours => la destruction des
                   cours
                                             1 seul!
                                   Les composants ne peuvent
                                        pas être partagés



                                                           Attention
                                                        un Point de vue

03/11                                 32
Composition
 Indicated by containment or a filled diamond.
 Whole both creates and destroys part objects.
 Composite is a higher level abstraction than the
  parts:
   Allows the class model to be viewed and
    manipulated at many levels of abstraction
 Stronger form of aggregation:
   Implies a multiplicity of no more than one
    with the whole
 Forms a tree with its parts.




                               33
Intro par l’exemple                Relations   Agrégation            Application


                     Agrégation … Composition
           La composition et l’agrégation sont deux vues
           subjectives qui sont utilisées pour ajouter de la
           sémantique au modèle lorsque c’est pertinent de le
           faire même si cette pertinence ne reflète pas la
           réalité
           Exemple

                              Société                               Echiquier
                               matricule                               ligne
                                                                      colonne
                                    *
                                                                          1
                                    0..1
                                                                         1
                              Employé                                 Case
03/11                                             34
Intro par l’exemple           Relations Généralisation       Application


                                   Généralisation
             C’est une relation de classification entre un élément général et un élément
             plus spécifique
             L’élément le plus spécifique est cohérent avec l’élément le plus général et
             contient plus d’informations
             Exemple



                                         Véhicule




                         Voiture           Bus              Camion




03/11                                       35
Intro par l’exemple      Relations Généralisation   Application


                              Généralisation
             Extension par l’ajout d’attributs et d’opérations




03/11                                  36
Intro par l’exemple
Diagramme de Classes- Relations   Relations Généralisation   Application


                                  Héritage
        L’héritage est une relation entre une super-classe
        (classe de base) et ses sous-classes (classes
        dérivées)
        Deux manières d’identifier une relation
        d’héritage :
             Généralisation
             Spécialisation
        Les éléments communs (attributs,
        comportements, relations) sont reportés au
        niveau le plus haut de la hiérarchie
03/11                                   37
Generalization 4
 Subclasses may be extended by adding:
  New attributes
  New operations




           New attributes



          New operations


                            38
Intro par l’exemple                Relations Généralisation      Application


                          Héritage des relations
       Les relations sont héritées par les sous classes :

                              VEHICULE          motorisation          MOTEUR
                                                            1..2


                    VOITURE             CAMION




                                       lien logique
               REPERTOIRE                              FICHIER
                                1..*              *



                                   DRIVER         FICHIER_TEXTE         FICHIER_BINAIRE
03/11                                             39
Generalization substitutability
 Liskov substitution principle:
  “An instance of a subclass must be freely
  substitutable for an instance of its superclass”.
 An object with a relation to a general object should
  be able to use the general object's derived objects
  without knowing it.


                Print!




                             40
Intro par l’exemple                 Relations Généralisation       Application


                           Diagramme de classes…
               Autre exemple                                                  Réservation
                                                      Rabais : Real
                           Véhicule                                         NumRes : Integer
                                                                             DateRes : Date
                      Matricule : String                                    Montant : Money
                   Kilométrage : Integer       1..*                     *
                        État : String                                          Confirmer()
                                                           <concerne
                                                                                Annuler()
                                                                                       1..*

                                                                                   1

           Camion                          Voiture                             Employé

        Charge : Integer                Classe : String                     Matricule : String
                                      NbrPlaces : Integer                    Nom : String
          Démarrer()                                                           Réserver()
                                         Démarrer()


03/11                                                 41
Intro par l’exemple            Relations Raffinements      Application


                              Association ordonnée
        Contraintes sur les associations pour exprimer que les objets sont
        ordonnés (selon la clé, le nom, la date, etc.)
        Cette contrainte est spécifiée par le stéréotype {Ordonné} du côté
        de la classe dont les instances sont ordonnés

                     Entreprise 0..*                   0..* Produits
                                                  {Ordonné}


        Le modèle ne spécifie pas comment les objets sont ordonnés
        Pour décrire comment les objets sont ordonnés on utilise un
        commentaire en employant la notation graphique suivante :
                                                                 Ordonné
                                                                  par ...

03/11                                        42
Intro par l’exemple            Relations Raffinements      Application




                     Association « ou-exclusif »

                     Contrat   *
                   d’assurance                 Un contrat d’assurance concerne une
                                               entreprise ou une personne mais pas
                         *
                               {XOR}                 les deux en même temps


                     1                 1
                    Personne           Entreprise




03/11                                        43
Intro par l’exemple             Relations Raffinements        Application


              Association « sous-ensemble »
         C’est une contrainte qui indique qu’une collection
         est incluse dans une autre collection
         La contrainte est placée à proximité d’une
         relation de dépendance entre deux associations
         La flèche de la relation de dépendance indique le
         sens de la contrainte
         Exemple
                                1..* Membre de >           1
                   Politicien            {Sous-ensemble}        Partie politique
                                1   Chef de >               1


03/11                                           44
Intro par l’exemple   Relations Raffinements   Application

                       Association Qualifiée
        Utilisée avec une relation de multiplicité *.
        Permet de trier la relation en fonction des valeurs
        d’un attribut.



        Qualifier




03/11                               45
Intro par l’exemple   Relations Raffinements   Application

                       Association Qualifiée




03/11                               46
Intro par l’exemple       Relations Raffinements   Application


                              Classe d’association
        Il est possible de représenter une association par
        une classe pour ajouter par exemple des attributs
        ou des opérations dans l ’association
        La classe attachée à l’association est appelée une
        classe d’association ou classe associative
        La classe d’association possède à la fois les
        caractéristiques d’une association et celle d’une
        classe et peut, à ce titre, participer à d’autres
        relations dans le modèle
        La classe d’association est attachée à l’association
        avec une ligne en pointillée
03/11                                   47
Intro par l’exemple              Relations Raffinements            Application

             Classe d’association : exemple
 Une classe d’association est utilisée quand une
  information semble appartenir aux deux objets ou à
  aucun objet
                                          1..*    Inscrit à >      0..*
                              Étudiant                                       Cours



                                                      Évaluation




03/11                                            48
Intro par l’exemple                 Relations Raffinements       Application

                               Relations n-aires
        Relations entre plus de 2 classes (à éviter si possible)
                                             Enseignement
                          *                                                1..*
        PROFESSEUR                                                                    MATIERE
                              Enseignant                            Enseignée

                                    Destinataire
                                                       1..*

                                               CLASSE




                        0..*         1..*                                   1..*
    PROFESSEUR                              Enseignement                           MATIERE
                                                              1      Enseignée
                      Enseignant               1..*

                                   Destinataire        1..*

                                               CLASSE
03/11                                             49
•UML Par la pratique (surtout dans sa dernière édition)
•Méthodologie en Ingénierie du logiciel, Modélisation Orientée objet,
M.Grimaldi – janvier 2010

                         Application
               Système de réservation de vol




         Approfondissement Par l’exemple
Interview des experts métier
1. Des compagnies aériennes proposent différents vols.
2. Un vol est ouvert à la réservation et refermé sur ordre de la
   compagnie.
3. Un client peut réserver un ou plusieurs vols, pour des
   passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
6. Un vol a un aéroport de départ et un aéroport d'arrivée.
7. Un vol a un jour et une heure de départ, et un jour et une
   heure d'arrivée.
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d'arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes.
Interview des experts métier
1. Des compagnies aériennes proposent différents vols.
2. Un vol est ouvert à la réservation et refermé sur ordre de la
   compagnie.
3. Un client peut réserver un ou plusieurs vols, pour des
   passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
6. Un vol a un aéroport de départ et un aéroport d'arrivée.
7. Un vol a un jour et une heure de départ, et un jour et une
   heure d'arrivée.
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d'arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes.
Étape 1 - Modélisation des phrase 1 et 2

1. Des compagnies aériennes proposent différents vols.
Étape 1 - Modélisation des phrase 1 et 2

1. Des compagnies aériennes proposent différents vols.

      2 concepts importants                            1 association
          du monde réel

                     CompagnieAerienne et Vol
    Ils ont des propriétés et des comportements. Ce sont donc
     des classes candidates pour notre modélisation statique.


                               ?


La phrase ne donne pas d’indication sur la multiplicité coté CompagnieAerienne.
Il faudra poser la question à l’expert métier!
Nous partirons du principe qu'un vol est proposé le plus souvent
par une seule compagnie aérienne, mais qu'il peut également
être partagé entre plusieurs affréteurs.




2. Un vol est ouvert à la réservation et refermé sur ordre de la
compagnie.
Nous partirons du principe qu'un vol est proposé le plus souvent
par une seule compagnie aérienne, mais qu'il peut également
être partagé entre plusieurs affréteurs.




2. Un vol est ouvert à la réservation et refermé sur ordre de la
compagnie.
Étape 2 - Modélisation des phrase 6, 7 et 8
7. Un vol a un jour et une heure de départ, et un jour et une heure
d'arrivée.
Étape 2 - Modélisation des phrase 6, 7 et 8
7. Un vol a un jour et une heure de départ, et un jour et une heure
d'arrivée.




                                                              Java.util.Date




                       Objet ou attribut?
     Un objet est un élément plus « important » qu'un attribut.
 • si l'on ne peut demander à un élément que sa valeur - attribut
 • si plusieurs questions s'y appliquent - objet (qui possède lui-même
 plusieurs attributs, ainsi que des liens avec d'autres objets.)
6. Un vol a un aéroport de départ et un aéroport d'arrivée.
6. Un vol a un aéroport de départ et un aéroport d'arrivée.


Contrairement aux notions d'heure et de date qui sont des types
«simples », la notion d'aéroport est complexe; elle fait partie du
«métier». Un aéroport ne possède pas seulement un nom, il a
aussi une capacité, dessert des villes, …etc... C'est la raison pour
laquelle nous préférons créer une classe Aéroport plutôt que de
simples attributs aeroportDepart et aeroportArrivee dans la
classe Vol.
Modélisation de la phrase 10.
10. Chaque aéroport dessert une ou plusieurs villes.
Modélisation de la phrase 10.
10. Chaque aéroport dessert une ou plusieurs villes.




                             ?
                                    Si « desservir » consiste simplement
                                    à désigner le moyen de transport par
                                    les airs le plus proche, toute ville est
                      1             toujours desservie par un et un seul
                                    aéroport.

                                    Si « desservir » vaut par exemple
                                    pour tout moyen de transport
                                    aérien se trouvant à moins de
                      0..*          trente kilomètres, alors une ville
                                    peut être desservie par 0 ou
                                    plusieurs aéroports.
Étape 3 - Modélisation des phrases 8 et 9
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d'arrivée et une heure de départ.
Étape 3 - Modélisation des phrases 8 et 9
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d'arrivée et une heure de départ.


 • Chaque escale a deux propriétés : heure d'arrivée et heure de départ.
 • Elle est en relation avec des vols et des aéroports, qui sont eux-mêmes
   des objets (phrase 8).

     Il est donc naturel d'en faire une classe à son tour.
?

                                     ?
                                                          ?
                           ?
                                                     ?




La phrase 8 est imprécise : une escale peut-elle appartenir à plusieurs vols,
et quelles sont les multiplicités entre Escale et Aéroport ?
De plus, le schéma n'indique toujours pas les multiplicités du côté Vol avec
Aéroport
Pour finaliser le diagramme des phrases 8 et 9, il nous suffit d'ajouter
    deux précisions :
•   l'association entre Vol et Escale est une agrégation (pas une
    composition, puisqu'elle est partageable) ;
•   les escales sont ordonnées par rapport au vol.
Classe d'association
On peut considérer plutôt cette notion d'escale comme un troisième rôle
joué par un aéroport par rapport à un vol ? Les attributs heureArrivee et
heureDepart deviennent alors des attributs d'association
. La classe Escale disparaît alors en tant que telle, et se trouve remplacée
par une classe d'association InfosEscale.
Étape 4 - Modélisation des phrases 3, 4 et 5
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
Étape 4 - Modélisation des phrases 3, 4 et 5
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
Modélisation alternative des phrases 3, 4 et 5
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
Modélisation alternative des phrases 3, 4 et 5
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
Modélisation statique
Intro par l’exemple        Relations            Application


                              Conseils pratiques
       Réfléchir au problème avant de commencer
                Soigner le nommage, insister sur le nommage
                des relations et des rôles
                    Les noms des attributs débutent par une minuscule
                    Les noms des classes débutent par une majuscule et
                    peuvent contenir plusieurs mots concaténés commençant
                    par une majuscule




03/11                                     65
Intro par l’exemple         Relations               Application


                              Conseils pratiques
       Réfléchir au problème avant de commencer
                Soigner le nommage, insister sur le nommage
                des relations et des rôles
       Faire simple!
           –   «Things must be as simple as possible, but no
               simpler». A. Einstein
           –   éviter toute complication nuisible
                     se dégager de l’implémentation : raisonner objets,
                     classes, messages, relations, attributs, opérations
           –   ne pas s’inquiéter si les possibilités de la notation
               ne sont pas toutes exploitées
03/11                                      66
Intro par l’exemple            Relations          Application


                     Conseils pratiques (suite)
       Approche incrémentale
           –   Itérer
           –   Savoir s'arrêter avant d’atteindre la
               perfection...
                 • prise en compte qualité (niveau de précision), coûts,
                   délais...
                 • asservissement au processus de développement
       Faire simple (encore)
           –   Un bon modèle n’est pas un modèle où
               l’on ne peut plus rien ajouter, mais un
               modèle où on ne peut plus rien enlever.
03/11          (d’après A. de St-Exupéry)     67
Intro par l’exemple     Relations   Application


                          Trouver les erreurs




03/11                                  68
Intro par l’exemple     Relations   Application


                          Trouver les erreurs




03/11                                  69

Weitere ähnliche Inhalte

Was ist angesagt?

TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationLilia Sfaxi
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Yasmine Lachheb
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeMehdi Hamime
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...Madjid Meddah
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Anas Riahi
 
Présentation projet fin d'étude backup Tunisie Telecom
Présentation projet fin d'étude backup Tunisie TelecomPrésentation projet fin d'étude backup Tunisie Telecom
Présentation projet fin d'étude backup Tunisie TelecomDaoues Amine
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartisHeithem Abbes
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesHosni Mansour
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Georges Amichia
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsAmir Souissi
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Ben Abdelwahed Slim
 

Was ist angesagt? (20)

TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'Utilisation
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
Diagrammes de classes
Diagrammes de classesDiagrammes de classes
Diagrammes de classes
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
 
Présentation projet fin d'étude backup Tunisie Telecom
Présentation projet fin d'étude backup Tunisie TelecomPrésentation projet fin d'étude backup Tunisie Telecom
Présentation projet fin d'étude backup Tunisie Telecom
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'Etudes
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
 

Ähnlich wie Uml classes Par les exemples

Le modèle de données - A. Les concepts
Le modèle de données - A. Les conceptsLe modèle de données - A. Les concepts
Le modèle de données - A. Les conceptsADBS
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classeIlhem Daoudi
 
0306-formation-mise-a-niveau-uml.pdf
0306-formation-mise-a-niveau-uml.pdf0306-formation-mise-a-niveau-uml.pdf
0306-formation-mise-a-niveau-uml.pdfBerrySeven
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
Representation_connaissance2 (2).ppt
Representation_connaissance2 (2).pptRepresentation_connaissance2 (2).ppt
Representation_connaissance2 (2).pptNABIHAAZIZI1
 
Ontologie concept applications
Ontologie concept applicationsOntologie concept applications
Ontologie concept applicationsbenouini rachid
 
Adbs 5 à 7 : une nouvelle norme pour le thesaurus
Adbs 5 à 7 : une nouvelle norme pour le thesaurusAdbs 5 à 7 : une nouvelle norme pour le thesaurus
Adbs 5 à 7 : une nouvelle norme pour le thesaurus2helene
 
Modélisation uml avec le diagramme de classe
Modélisation uml avec le diagramme de classeModélisation uml avec le diagramme de classe
Modélisation uml avec le diagramme de classeamat samiâ boualil
 

Ähnlich wie Uml classes Par les exemples (20)

UML.pptx
UML.pptxUML.pptx
UML.pptx
 
Le modèle de données - A. Les concepts
Le modèle de données - A. Les conceptsLe modèle de données - A. Les concepts
Le modèle de données - A. Les concepts
 
diagramme de cas d'utilisation
diagramme de cas d'utilisationdiagramme de cas d'utilisation
diagramme de cas d'utilisation
 
7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation
 
Uml
UmlUml
Uml
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classe
 
0306-formation-mise-a-niveau-uml.pdf
0306-formation-mise-a-niveau-uml.pdf0306-formation-mise-a-niveau-uml.pdf
0306-formation-mise-a-niveau-uml.pdf
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Umbel description
Umbel descriptionUmbel description
Umbel description
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
Tp3 - UML
Tp3 - UMLTp3 - UML
Tp3 - UML
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
merise (1).pdf
merise (1).pdfmerise (1).pdf
merise (1).pdf
 
Cours1 2 gdmm
Cours1 2 gdmmCours1 2 gdmm
Cours1 2 gdmm
 
ORM
ORMORM
ORM
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
 
Representation_connaissance2 (2).ppt
Representation_connaissance2 (2).pptRepresentation_connaissance2 (2).ppt
Representation_connaissance2 (2).ppt
 
Ontologie concept applications
Ontologie concept applicationsOntologie concept applications
Ontologie concept applications
 
Adbs 5 à 7 : une nouvelle norme pour le thesaurus
Adbs 5 à 7 : une nouvelle norme pour le thesaurusAdbs 5 à 7 : une nouvelle norme pour le thesaurus
Adbs 5 à 7 : une nouvelle norme pour le thesaurus
 
Modélisation uml avec le diagramme de classe
Modélisation uml avec le diagramme de classeModélisation uml avec le diagramme de classe
Modélisation uml avec le diagramme de classe
 

Mehr von Mireille Blay-Fornarino

Mehr von Mireille Blay-Fornarino (11)

Analyse et cahier des charges
Analyse et cahier des chargesAnalyse et cahier des charges
Analyse et cahier des charges
 
Diagramme d'activité en UML
Diagramme d'activité en UMLDiagramme d'activité en UML
Diagramme d'activité en UML
 
Introduction rapide à 'objet et à UML
Introduction rapide à 'objet et  à UML Introduction rapide à 'objet et  à UML
Introduction rapide à 'objet et à UML
 
Introduction à Uml
Introduction à UmlIntroduction à Uml
Introduction à Uml
 
Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifié
 
Uml Cas Utilisation introduction
Uml Cas Utilisation introductionUml Cas Utilisation introduction
Uml Cas Utilisation introduction
 
De l'analyse à la conception
De l'analyse à la conceptionDe l'analyse à la conception
De l'analyse à la conception
 
Uml interactions
Uml interactionsUml interactions
Uml interactions
 
Uml & cas d'utilisation
Uml & cas d'utilisationUml & cas d'utilisation
Uml & cas d'utilisation
 
Modélisation par Objets - Introduction - De Merise à UML
Modélisation par Objets - Introduction - De Merise à UMLModélisation par Objets - Introduction - De Merise à UML
Modélisation par Objets - Introduction - De Merise à UML
 
Analyse et conception des systèmes d’information
Analyse et conception des systèmes d’informationAnalyse et conception des systèmes d’information
Analyse et conception des systèmes d’information
 

Kürzlich hochgeladen

L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...Faga1939
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfssuserc72852
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 

Kürzlich hochgeladen (13)

L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 

Uml classes Par les exemples

  • 1. Analyse et Conception avec UML Les diagrammes de classes blay@unice.fr www.polytech.unice.fr/~blay IUT Nice-Sophia Antipolis mars 2011 Site web du module : http://anubis.polytech.unice.fr/iut/ 1
  • 2. Bibliographie •Voir sur le site web les autres cours. •UML Par la pratique (surtout dans sa dernière édition) (présent à la bibliothèque de l’IUT) •Méthodologie en Ingénierie du logiciel, Modélisation Orientée objet, M.Grimaldi – janvier 2010 2
  • 3. Intro par l’exemple Relations Application Modélisation structurelle Les classes et les objets modélisent les objets matériels ou immatériels qui existent dans le système que l’on essaie de décrire Les relations entre les classes et les objets établissent les connexions entre les divers éléments de modélisation et montrent l'agencement architectural Le diagramme de classes et le diagramme d’objets sont les pièces maîtresses de la vue structurale – Dans UML, ils sont répertoriés comme des diagrammes montrant la structure "statique" – Le diagramme d’objets est un exemple du diagramme de classes – Le diagramme d’objets donne une photographie du système dans le temps 03/11 3
  • 4. Intro par l’exemple Relations Application Classes  Une classe est une collection (modèle) d’objets avec une structure commune, un comportement commun, des relations identiques et une sémantique identique  On identifie les classes en examinant les objets dans les diagrammes  La représentation graphique d’une classe consiste en un rectangle avec 3 compartiments  Les noms des classes devraient être choisis dans le vocabulaire du domaine – il est bon d’établir des standards pour les nom – i.e., toutes les classes sont des noms communs commençant par une majuscule 03/11 4
  • 5. Intro par l’exemple Relations Application Notations UML pour classes et objets 03/11 5
  • 6. Concepts du domaine m ple r l’ exe Pa 6
  • 7. Intro par l’exemple Relations Application Détermination des concepts du domaine 03/11
  • 8. Intro par l’exemple Relations Application Détermination des concepts du domaine La détermination des concepts s’effectue sur la base des cas d’utilisation par simple analyse grammaticale de la description textuelle. D'une manière générale, 03/11
  • 9. Intro par l’exemple Relations Application Détermination des concepts du domaine La détermination des concepts s’effectue sur la base des cas d’utilisation par simple analyse grammaticale de la description textuelle. D'une manière générale, les noms représentent des concepts ou des attributs tandis 03/11
  • 10. Intro par l’exemple Relations Application Détermination des concepts du domaine La détermination des concepts s’effectue sur la base des cas d’utilisation par simple analyse grammaticale de la description textuelle. D'une manière générale, les noms représentent des concepts ou des attributs tandis que les verbes représentent des comportements (opérations, méthodes) 03/11
  • 11. Intro. Intro. UML De Merise à UML Deux règles utiles  Règle du cartographe : Le modèle du domaine se construit de la même façon qu’un cartographe dessine une carte :  En utilisant le vocabulaire du domaine étudié.  En excluant les éléments non pertinents.  En n’incluant pas d’éléments inexistants dans le domaine.  Choix entre concept et attribut : Si un élément du domaine étudié est autre chose qu’un nombre ou un simple texte, alors il s’agit probablement d’un concept et non d’un attribut. 09/1 0
  • 12. Intro par l’exemple Relations Application Notes • Un attribut ne peut représenter qu’une valeur primitive (entier, texte, date, identificateur, matricule, . . . ). • Un attribut ne peut représenter que des données relatives au concept auquel il est associé. Exemple : 02/11 UML et RUP : un survol T. Libourel ; M Huchard
  • 13. Intro par l’exemple Relations Application Notes • Un attribut ne peut représenter qu’une valeur primitive (entier, texte, date, identificateur, matricule, . . . ). • Un attribut ne peut représenter que des données relatives au concept auquel il est associé. Exemple : 02/11 UML et RUP : un survol T. Libourel ; M Huchard
  • 14. Intro par l’exemple Relations Application Notes • Un attribut ne peut représenter qu’une valeur primitive (entier, texte, date, identificateur, matricule, . . . ). • Un attribut ne peut représenter que des données relatives au concept auquel il est associé. Exemple : 02/11 UML et RUP : un survol T. Libourel ; M Huchard
  • 15. UML au travail : Une ludothèque (1) Nous voulons informatiser une ludothèque pour favoriser la consultation des jeux proposés par la ludothèque. (2) Les adhérents peuvent emprunter des jeux en s’adressant à un conseiller qui enregistre l’emprunt. (3)Les jeux empruntés sont rendus à un conseiller.... (4) Un adhérent peut réserver des jeux. Une réservation précise l’emprunteur, le jeu et la date de la demande de réservation. L’adhérent est averti quand le jeu revient en rayon. (5) Pour organiser un événement le conseiller spécialisé doit alors donner les informations suivantes : les jeux à tester, le nombre maximal et minimal de participants attendus, la date, et l’heure de début de l’événement. (6) Un adhérent peut s’inscrire pour participer à un événement à condition qu’il y ait encore de la place. (7) Un adhérent peut payer sa cotisation en ligne par un système de paiement externe 10
  • 16. Dict. U.C. Process. Compléments. Ludothèque /82
  • 17. Diagramme de séquence - Représentez le diagramme de séquence Système correspondant au cas d'utilisation Un conseiller enregistre l’emprunt d’un jeu pour un adhérent 1) Le conseiller s’authentifie; 2) Le conseiller saisit l’identifiant du jeu et de l’adhérent 3) Le système vérifie la disponibilité du jeu 4) Le système vérifie que la cotisation est bien payée 5) Le système vérifie que l’adhérent n’a pas de pénalité impayée 6) Le système enregistre l’emprunt. 7) Le système signale que l’emprunt est valide. 12
  • 18. Diagramme de séquence système enrichi 13
  • 19. Relations entre classes es nd atio s icit tion pl ta «Relations», Ex no associations, agrégation, généralisation, compléments 14
  • 20. Intro par l’exemple Relations Application Relations Les relations fournissent un chemin de communication entre objets : Les diagrammes de séquence sont parcourus pour déterminer quels liens doivent exister pour obtenir le comportement souhaité – si deux objets ont besoin de se parler, il doit exister un lien entre eux Trois types de relations : Association Agrégation Dépendance 03/11 15
  • 21. Intro par l’exemple Relations Application Relations 03/11 16
  • 22. Intro par l’exemple Relations Application Relations  Une association est une connexion bi-directionnelle entre classes – Une association est représentée par une ligne connectant les classes  Une agrégation est une relation plus forte et s’établit entre un tout et ses parties – Une agrégation est représentée par une ligne connectant les classes avec un losange du côté de la classe représentant le tout  Une dépendance est une relation faible établie entre un client et un fournisseur et où le client n’a pas de connaissance sémantique sur le fournisseur – Une dépendance est représentée par une flèche en pointillés allant du client au fournisseur 03/11 17
  • 23. Intro par l’exemple Relations Association Application Associations Nommage Rôle Multiplicité Les associations peuvent avoir des étiquettes: Navigation Il s'agit du nom de l'association. Les associations peuvent avoir des noms de rôle: un nom de rôle identifie le rôle ou la responsabilité de l'objet dans l'association. Les associations peuvent indiquer la navigation avec une pointe de flèche ouverte: Pas de flèche => bidirectionnelle La plupart des associations sont unidirectionnelles en fin de conception. Les associations peuvent indiquer une multiplicité. 03/11 18
  • 24. Intro par l’exemple Relations Association Application Nommage des associations • Une association peut être nommée afin de faciliter la compréhension des modèles. Dans ce cas le nom est indiqué au milieu du lien symbolisant l’association Nommage A nom B Rôle Multiplicité Navigation • L’usage recommande de choisir comme nom d’une association une forme verbale active (exemple : travaille pour) ou passive (exemple : est employé par) travaille pour Personne Société est employé par Personne Société 03/11 19
  • 25. Intro par l’exemple Relations Association Application Rôles des extrémités d’association On peut attribuer à une extrémité d’une association un nom appelé rôle qui décrit comment une classe source voit une classe destination au travers de l’association Le rôle est placé près de la fin de l’association et à côté de la classe à laquelle il est appliqué Nommage Rôle L’utilisation des rôles est optionnelle Multiplicité Représentation et exemple Navigation A B rôle de B employeur Emploie> Société Personne employé 03/11 20
  • 26. Intro par l’exemple Relations Association Application Nommage des associations… Par défaut le sens de lecture du nom d’une association est de gauche à droite Dans le cas où la lecture du nom est ambiguë, on peut ajouter l’un des signes < ou > pour indiquer le sens de lecture • Exemples < travaille pour Société Personne Personne 1 * < est père de 03/11 21
  • 27. Intro par l’exemple Relations Association Application Multiplicité : exemple Nommage possède Rôle 1..* 0..* Voiture Multiplicité Personne Navigation gouverne 1 1 Président Pays Nœud * * Un réseau informatique est composé de nœuds inter-connectés Association réflexive 03/11 22
  • 28. Intro par l’exemple Relations Association Application Cas particuliers de relations  Relations réflexives encadre chef 1 Personne sous-fifre 1..* Une relation réflexive lie des objets de même classe 03/11 23
  • 29. Intro par l’exemple Relations Association Application Multiplicité La multiplicité est définie par le nombre d’objets qui participent à une relation La multiplicité est le nombre d’instances d’une classe reliées à UNE instance d’une autre classe Pour chaque association et agrégation, il y a deux multiplicités : une à chaque bout de la relation 1 Classe Exactement une * Classe Plusieurs (0 à n) 0,1 Classe Optionnelle (0 ou 1) 1,2,4 Classe Cardinalité spécifiée 1-10 03/11 Classe 24 Intervalle
  • 30. Intro par l’exemple Diagramme de Classes- Relations Relations Association Application Navigation Bien que les associations soit bi-directionnelles par défaut, il peut être bon de limiter la navigation à un seul sens Les objets de Classe2 sont accessibles à partir de ceux de Classe1 et vice-versa Classe1 Classe2 Si la navigation est restreinte, une flèche indique le sens de navigation Les objets de la Classe 1 sont accessibles à la classe 2 Nommage Rôle Classe1 Classe2 Multiplicité 03/11 25 Navigation
  • 31. Intro par l’exemple Relations Agrégation Application Composition et Agrégation  Cas particuliers de relations : – Notion de tout et parties 1 transporte passager Voiture Personne moyen_de_transport * 1 1 Composition roulement > Roue 4,6 structure > 1 Agrégation Chassis 03/11 26
  • 32. Intro par l’exemple Relations Agrégation Application Agrégation L’agrégation représente une association de type ensemble/élément L’agrégation ne concerne qu’un seul rôle d’une association Représentation L’agrégation permet de modéliser une contrainte d’intégrité et de désigner l’agrégat comme gérant de cette contrainte 03/11 27
  • 33. Intro par l’exemple Relations Agrégation Application Agrégation… Exemple 1 – Une personne est dans une foule – Une foule contient plusieurs personnes * Personne Foule Contient > Exemple 2 (Agrégation partagée) – Une personne fait partie de plusieurs équipes – Une équipe contient plusieurs personnes * * Personne Équipe < membre 03/11 28
  • 34. Aggregation  Multiplicity of owners > 1 indicates a shared part.  Forms a graph with its parts. {Shared} 29
  • 35. Intro par l’exemple Relations Agrégation Application Agrégation … Composition La composition est un cas particulier de l’agrégation avec un couplage plus important La classe qui possède le rôle prédominant dans une composition est appelée classe composite ou classe conteneur Représentation Composite Composant 03/11 30
  • 36. Intro par l’exemple Relations Agrégation Application Composition La composition est une agrégation forte. Les cycles de vies des éléments (les "composants") et de l'agrégat (composite) sont liés : si l'agrégat est détruit (ou copié), ses composants le sont aussi. A un même moment, une instance de composant ne peut être liée qu'à un seul agrégat. Les "objets composites" sont des instances de classes composées. 03/11 31
  • 37. Intro par l’exemple Relations Agrégation Application Composition Cycle de vie dépendant : la destruction du système de cours => la destruction des cours 1 seul! Les composants ne peuvent pas être partagés Attention un Point de vue 03/11 32
  • 38. Composition  Indicated by containment or a filled diamond.  Whole both creates and destroys part objects.  Composite is a higher level abstraction than the parts:  Allows the class model to be viewed and manipulated at many levels of abstraction  Stronger form of aggregation:  Implies a multiplicity of no more than one with the whole  Forms a tree with its parts. 33
  • 39. Intro par l’exemple Relations Agrégation Application Agrégation … Composition La composition et l’agrégation sont deux vues subjectives qui sont utilisées pour ajouter de la sémantique au modèle lorsque c’est pertinent de le faire même si cette pertinence ne reflète pas la réalité Exemple Société Echiquier matricule ligne colonne * 1 0..1 1 Employé Case 03/11 34
  • 40. Intro par l’exemple Relations Généralisation Application Généralisation C’est une relation de classification entre un élément général et un élément plus spécifique L’élément le plus spécifique est cohérent avec l’élément le plus général et contient plus d’informations Exemple Véhicule Voiture Bus Camion 03/11 35
  • 41. Intro par l’exemple Relations Généralisation Application Généralisation Extension par l’ajout d’attributs et d’opérations 03/11 36
  • 42. Intro par l’exemple Diagramme de Classes- Relations Relations Généralisation Application Héritage L’héritage est une relation entre une super-classe (classe de base) et ses sous-classes (classes dérivées) Deux manières d’identifier une relation d’héritage : Généralisation Spécialisation Les éléments communs (attributs, comportements, relations) sont reportés au niveau le plus haut de la hiérarchie 03/11 37
  • 43. Generalization 4  Subclasses may be extended by adding: New attributes New operations New attributes New operations 38
  • 44. Intro par l’exemple Relations Généralisation Application Héritage des relations  Les relations sont héritées par les sous classes : VEHICULE motorisation MOTEUR 1..2 VOITURE CAMION lien logique REPERTOIRE FICHIER 1..* * DRIVER FICHIER_TEXTE FICHIER_BINAIRE 03/11 39
  • 45. Generalization substitutability  Liskov substitution principle: “An instance of a subclass must be freely substitutable for an instance of its superclass”.  An object with a relation to a general object should be able to use the general object's derived objects without knowing it. Print! 40
  • 46. Intro par l’exemple Relations Généralisation Application Diagramme de classes… Autre exemple Réservation Rabais : Real Véhicule NumRes : Integer DateRes : Date Matricule : String Montant : Money Kilométrage : Integer 1..* * État : String Confirmer() <concerne Annuler() 1..* 1 Camion Voiture Employé Charge : Integer Classe : String Matricule : String NbrPlaces : Integer Nom : String Démarrer() Réserver() Démarrer() 03/11 41
  • 47. Intro par l’exemple Relations Raffinements Application Association ordonnée Contraintes sur les associations pour exprimer que les objets sont ordonnés (selon la clé, le nom, la date, etc.) Cette contrainte est spécifiée par le stéréotype {Ordonné} du côté de la classe dont les instances sont ordonnés Entreprise 0..* 0..* Produits {Ordonné} Le modèle ne spécifie pas comment les objets sont ordonnés Pour décrire comment les objets sont ordonnés on utilise un commentaire en employant la notation graphique suivante : Ordonné par ... 03/11 42
  • 48. Intro par l’exemple Relations Raffinements Application Association « ou-exclusif » Contrat * d’assurance Un contrat d’assurance concerne une entreprise ou une personne mais pas * {XOR} les deux en même temps 1 1 Personne Entreprise 03/11 43
  • 49. Intro par l’exemple Relations Raffinements Application Association « sous-ensemble » C’est une contrainte qui indique qu’une collection est incluse dans une autre collection La contrainte est placée à proximité d’une relation de dépendance entre deux associations La flèche de la relation de dépendance indique le sens de la contrainte Exemple 1..* Membre de > 1 Politicien {Sous-ensemble} Partie politique 1 Chef de > 1 03/11 44
  • 50. Intro par l’exemple Relations Raffinements Application Association Qualifiée Utilisée avec une relation de multiplicité *. Permet de trier la relation en fonction des valeurs d’un attribut. Qualifier 03/11 45
  • 51. Intro par l’exemple Relations Raffinements Application Association Qualifiée 03/11 46
  • 52. Intro par l’exemple Relations Raffinements Application Classe d’association Il est possible de représenter une association par une classe pour ajouter par exemple des attributs ou des opérations dans l ’association La classe attachée à l’association est appelée une classe d’association ou classe associative La classe d’association possède à la fois les caractéristiques d’une association et celle d’une classe et peut, à ce titre, participer à d’autres relations dans le modèle La classe d’association est attachée à l’association avec une ligne en pointillée 03/11 47
  • 53. Intro par l’exemple Relations Raffinements Application Classe d’association : exemple  Une classe d’association est utilisée quand une information semble appartenir aux deux objets ou à aucun objet 1..* Inscrit à > 0..* Étudiant Cours Évaluation 03/11 48
  • 54. Intro par l’exemple Relations Raffinements Application Relations n-aires  Relations entre plus de 2 classes (à éviter si possible) Enseignement * 1..* PROFESSEUR MATIERE Enseignant Enseignée Destinataire 1..* CLASSE 0..* 1..* 1..* PROFESSEUR Enseignement MATIERE 1 Enseignée Enseignant 1..* Destinataire 1..* CLASSE 03/11 49
  • 55. •UML Par la pratique (surtout dans sa dernière édition) •Méthodologie en Ingénierie du logiciel, Modélisation Orientée objet, M.Grimaldi – janvier 2010 Application Système de réservation de vol Approfondissement Par l’exemple
  • 56. Interview des experts métier 1. Des compagnies aériennes proposent différents vols. 2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie. 3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. 4. Une réservation concerne un seul vol et un seul passager. 5. Une réservation peut être annulée ou confirmée. 6. Un vol a un aéroport de départ et un aéroport d'arrivée. 7. Un vol a un jour et une heure de départ, et un jour et une heure d'arrivée. 8. Un vol peut comporter des escales dans des aéroports. 9. Une escale a une heure d'arrivée et une heure de départ. 10. Chaque aéroport dessert une ou plusieurs villes.
  • 57. Interview des experts métier 1. Des compagnies aériennes proposent différents vols. 2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie. 3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. 4. Une réservation concerne un seul vol et un seul passager. 5. Une réservation peut être annulée ou confirmée. 6. Un vol a un aéroport de départ et un aéroport d'arrivée. 7. Un vol a un jour et une heure de départ, et un jour et une heure d'arrivée. 8. Un vol peut comporter des escales dans des aéroports. 9. Une escale a une heure d'arrivée et une heure de départ. 10. Chaque aéroport dessert une ou plusieurs villes.
  • 58. Étape 1 - Modélisation des phrase 1 et 2 1. Des compagnies aériennes proposent différents vols.
  • 59. Étape 1 - Modélisation des phrase 1 et 2 1. Des compagnies aériennes proposent différents vols. 2 concepts importants 1 association du monde réel CompagnieAerienne et Vol Ils ont des propriétés et des comportements. Ce sont donc des classes candidates pour notre modélisation statique. ? La phrase ne donne pas d’indication sur la multiplicité coté CompagnieAerienne. Il faudra poser la question à l’expert métier!
  • 60. Nous partirons du principe qu'un vol est proposé le plus souvent par une seule compagnie aérienne, mais qu'il peut également être partagé entre plusieurs affréteurs. 2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.
  • 61. Nous partirons du principe qu'un vol est proposé le plus souvent par une seule compagnie aérienne, mais qu'il peut également être partagé entre plusieurs affréteurs. 2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.
  • 62. Étape 2 - Modélisation des phrase 6, 7 et 8 7. Un vol a un jour et une heure de départ, et un jour et une heure d'arrivée.
  • 63. Étape 2 - Modélisation des phrase 6, 7 et 8 7. Un vol a un jour et une heure de départ, et un jour et une heure d'arrivée. Java.util.Date Objet ou attribut? Un objet est un élément plus « important » qu'un attribut. • si l'on ne peut demander à un élément que sa valeur - attribut • si plusieurs questions s'y appliquent - objet (qui possède lui-même plusieurs attributs, ainsi que des liens avec d'autres objets.)
  • 64. 6. Un vol a un aéroport de départ et un aéroport d'arrivée.
  • 65. 6. Un vol a un aéroport de départ et un aéroport d'arrivée. Contrairement aux notions d'heure et de date qui sont des types «simples », la notion d'aéroport est complexe; elle fait partie du «métier». Un aéroport ne possède pas seulement un nom, il a aussi une capacité, dessert des villes, …etc... C'est la raison pour laquelle nous préférons créer une classe Aéroport plutôt que de simples attributs aeroportDepart et aeroportArrivee dans la classe Vol.
  • 66. Modélisation de la phrase 10. 10. Chaque aéroport dessert une ou plusieurs villes.
  • 67. Modélisation de la phrase 10. 10. Chaque aéroport dessert une ou plusieurs villes. ? Si « desservir » consiste simplement à désigner le moyen de transport par les airs le plus proche, toute ville est 1 toujours desservie par un et un seul aéroport. Si « desservir » vaut par exemple pour tout moyen de transport aérien se trouvant à moins de 0..* trente kilomètres, alors une ville peut être desservie par 0 ou plusieurs aéroports.
  • 68. Étape 3 - Modélisation des phrases 8 et 9 8. Un vol peut comporter des escales dans des aéroports. 9. Une escale a une heure d'arrivée et une heure de départ.
  • 69. Étape 3 - Modélisation des phrases 8 et 9 8. Un vol peut comporter des escales dans des aéroports. 9. Une escale a une heure d'arrivée et une heure de départ. • Chaque escale a deux propriétés : heure d'arrivée et heure de départ. • Elle est en relation avec des vols et des aéroports, qui sont eux-mêmes des objets (phrase 8). Il est donc naturel d'en faire une classe à son tour.
  • 70. ? ? ? ? ? La phrase 8 est imprécise : une escale peut-elle appartenir à plusieurs vols, et quelles sont les multiplicités entre Escale et Aéroport ? De plus, le schéma n'indique toujours pas les multiplicités du côté Vol avec Aéroport
  • 71. Pour finaliser le diagramme des phrases 8 et 9, il nous suffit d'ajouter deux précisions : • l'association entre Vol et Escale est une agrégation (pas une composition, puisqu'elle est partageable) ; • les escales sont ordonnées par rapport au vol.
  • 72. Classe d'association On peut considérer plutôt cette notion d'escale comme un troisième rôle joué par un aéroport par rapport à un vol ? Les attributs heureArrivee et heureDepart deviennent alors des attributs d'association . La classe Escale disparaît alors en tant que telle, et se trouve remplacée par une classe d'association InfosEscale.
  • 73. Étape 4 - Modélisation des phrases 3, 4 et 5 3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. 4. Une réservation concerne un seul vol et un seul passager. 5. Une réservation peut être annulée ou confirmée.
  • 74. Étape 4 - Modélisation des phrases 3, 4 et 5 3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. 4. Une réservation concerne un seul vol et un seul passager. 5. Une réservation peut être annulée ou confirmée.
  • 75. Modélisation alternative des phrases 3, 4 et 5 3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. 4. Une réservation concerne un seul vol et un seul passager. 5. Une réservation peut être annulée ou confirmée.
  • 76. Modélisation alternative des phrases 3, 4 et 5 3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. 4. Une réservation concerne un seul vol et un seul passager. 5. Une réservation peut être annulée ou confirmée.
  • 78. Intro par l’exemple Relations Application Conseils pratiques  Réfléchir au problème avant de commencer Soigner le nommage, insister sur le nommage des relations et des rôles Les noms des attributs débutent par une minuscule Les noms des classes débutent par une majuscule et peuvent contenir plusieurs mots concaténés commençant par une majuscule 03/11 65
  • 79. Intro par l’exemple Relations Application Conseils pratiques  Réfléchir au problème avant de commencer Soigner le nommage, insister sur le nommage des relations et des rôles  Faire simple! – «Things must be as simple as possible, but no simpler». A. Einstein – éviter toute complication nuisible se dégager de l’implémentation : raisonner objets, classes, messages, relations, attributs, opérations – ne pas s’inquiéter si les possibilités de la notation ne sont pas toutes exploitées 03/11 66
  • 80. Intro par l’exemple Relations Application Conseils pratiques (suite)  Approche incrémentale – Itérer – Savoir s'arrêter avant d’atteindre la perfection... • prise en compte qualité (niveau de précision), coûts, délais... • asservissement au processus de développement  Faire simple (encore) – Un bon modèle n’est pas un modèle où l’on ne peut plus rien ajouter, mais un modèle où on ne peut plus rien enlever. 03/11 (d’après A. de St-Exupéry) 67
  • 81. Intro par l’exemple Relations Application Trouver les erreurs 03/11 68
  • 82. Intro par l’exemple Relations Application Trouver les erreurs 03/11 69

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. Les objets sont repr&amp;#xE9;sent&amp;#xE9;s par un rectangle, avec leur nom suivi de : puis le nom de leur classe, le tout soulign&amp;#xE9;. Les objets, instances des classes, sont manipul&amp;#xE9;s dans les &amp;#xAB;collaboration diagramm&amp;#xBB;\nLes classes d&apos;objets, ou plus simplement classes, poss&amp;#xE8;dent des attributs et des op&amp;#xE9;rations. Les attributs peuvent avoir un type et une valeur par d&amp;#xE9;faut. Les op&amp;#xE9;rations peuvent avoir des param&amp;#xE8;tres, typ&amp;#xE9;s ou non, et une valeur de retour.\n\nDans un souci de clart&amp;#xE9; des diagrammes, on peut consid&amp;#xE9;rer que telle ou telle information n&apos;est pas importante &amp;#xE0; ce niveau de l&apos;analyse et donc d&amp;#xE9;cider de ne pas la faire appara&amp;#xEE;tre.\nPour la m&amp;#xEA;me raison, les zones des attributs et des op&amp;#xE9;rations sont optionnelles.\nUne ellipse &amp;#xE0; la fin d&amp;#x2019;une liste d&amp;#x2019;attributs ou d&amp;#x2019;op&amp;#xE9;rations signifie qu&amp;#x2019;il existe d&amp;#x2019;autres &amp;#xE9;l&amp;#xE9;ments dans le mod&amp;#xE8;le, mais qu&amp;#x2019;ils d&amp;#xE9;pendent de crit&amp;#xE8;res de s&amp;#xE9;lection qui ne les font pas appara&amp;#xEE;tre.\n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. Figure 11 shows a sequence diagram that references the sequence diagrams &quot;Balance Lookup&quot; and &quot;Debit Account.&quot;\n The sequence starts at the top left, with the customer sending a message to the teller object. The teller object sends a message to the theirBank object. At that point, the Balance Lookup sequence diagram is called, with the accountNumber passed as a parameter. The Balance Lookup sequence diagram returns the balance variable. Then the option combination fragment&apos;s guard condition is checked to verify the balance is greater then the amount variable. In cases where the balance is greater than the amount, the Debit Account sequence diagram is called, passing it the accountNumber and the amount as parameters. After that sequence is complete, the withdrawCash message returns cash to the customer.\nIt is important to notice in Figure 11 that the lifeline of theirBank is hidden by the interaction occurrence Balance Lookup. Because the interaction occurrence hides the lifeline, that means that the theirBank lifeline is referenced in the &quot;Balance Lookup&quot; sequence diagram. In addition to hiding the lifeline in the interaction occurrence, UML 2 also specifies that the lifeline must have the same theirBank in its own &quot;Balance Lookup&quot; sequence.\nThere will be times when you model sequence diagrams that an interaction occurrence will overlap lifelines that are not referenced in the interaction occurrence. In such cases the lifeline is shown as a normal lifeline and is not hidden by the overlapping interaction occurrence.\nIn Figure 11, the sequence references the &quot;Balance Lookup&quot; sequence diagram. The &quot;Balance Lookup&quot; sequence diagram is shown in Figure 12. Because the example sequence has parameters and a return value, its label &amp;#x2014;located in the diagram&apos;s namebox&amp;#x2014;follows a specific pattern:\n\n
  28. \n
  29. Figure 11 shows a sequence diagram that references the sequence diagrams &quot;Balance Lookup&quot; and &quot;Debit Account.&quot;\n The sequence starts at the top left, with the customer sending a message to the teller object. The teller object sends a message to the theirBank object. At that point, the Balance Lookup sequence diagram is called, with the accountNumber passed as a parameter. The Balance Lookup sequence diagram returns the balance variable. Then the option combination fragment&apos;s guard condition is checked to verify the balance is greater then the amount variable. In cases where the balance is greater than the amount, the Debit Account sequence diagram is called, passing it the accountNumber and the amount as parameters. After that sequence is complete, the withdrawCash message returns cash to the customer.\nIt is important to notice in Figure 11 that the lifeline of theirBank is hidden by the interaction occurrence Balance Lookup. Because the interaction occurrence hides the lifeline, that means that the theirBank lifeline is referenced in the &quot;Balance Lookup&quot; sequence diagram. In addition to hiding the lifeline in the interaction occurrence, UML 2 also specifies that the lifeline must have the same theirBank in its own &quot;Balance Lookup&quot; sequence.\nThere will be times when you model sequence diagrams that an interaction occurrence will overlap lifelines that are not referenced in the interaction occurrence. In such cases the lifeline is shown as a normal lifeline and is not hidden by the overlapping interaction occurrence.\nIn Figure 11, the sequence references the &quot;Balance Lookup&quot; sequence diagram. The &quot;Balance Lookup&quot; sequence diagram is shown in Figure 12. Because the example sequence has parameters and a return value, its label &amp;#x2014;located in the diagram&apos;s namebox&amp;#x2014;follows a specific pattern:\n\n
  30. Les objets sont repr&amp;#xE9;sent&amp;#xE9;s par des barres verticales au dessus desquelles figure l&amp;#x2019;objet et sa classe d&amp;#x2019;appartenance (m&amp;#xEA;me formalisme que dans les diagrammes d&amp;#x2019;objets). Le nom de la classe ou de l&amp;#x2019;objet peut &amp;#xEA;tre omis.\nLes messages entre objets sont repr&amp;#xE9;sent&amp;#xE9;s par des fl&amp;#xEA;ches partant d&amp;#x2019;un objet et arrivant &amp;#xE0; un autre objet.\n
  31. Figure 11 shows a sequence diagram that references the sequence diagrams &quot;Balance Lookup&quot; and &quot;Debit Account.&quot;\n The sequence starts at the top left, with the customer sending a message to the teller object. The teller object sends a message to the theirBank object. At that point, the Balance Lookup sequence diagram is called, with the accountNumber passed as a parameter. The Balance Lookup sequence diagram returns the balance variable. Then the option combination fragment&apos;s guard condition is checked to verify the balance is greater then the amount variable. In cases where the balance is greater than the amount, the Debit Account sequence diagram is called, passing it the accountNumber and the amount as parameters. After that sequence is complete, the withdrawCash message returns cash to the customer.\nIt is important to notice in Figure 11 that the lifeline of theirBank is hidden by the interaction occurrence Balance Lookup. Because the interaction occurrence hides the lifeline, that means that the theirBank lifeline is referenced in the &quot;Balance Lookup&quot; sequence diagram. In addition to hiding the lifeline in the interaction occurrence, UML 2 also specifies that the lifeline must have the same theirBank in its own &quot;Balance Lookup&quot; sequence.\nThere will be times when you model sequence diagrams that an interaction occurrence will overlap lifelines that are not referenced in the interaction occurrence. In such cases the lifeline is shown as a normal lifeline and is not hidden by the overlapping interaction occurrence.\nIn Figure 11, the sequence references the &quot;Balance Lookup&quot; sequence diagram. The &quot;Balance Lookup&quot; sequence diagram is shown in Figure 12. Because the example sequence has parameters and a return value, its label &amp;#x2014;located in the diagram&apos;s namebox&amp;#x2014;follows a specific pattern:\n\n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. La cardinalit&amp;#xE9; joue un r&amp;#xF4;le essentiel dans la s&amp;#xE9;mantique de l&apos;relation.\nLa s&amp;#xE9;mantique de l&apos;relation change totalement si la cardinalit&amp;#xE9; &amp;#xE9;volue.\n
  46. \n
  47. Navigation means that one object contains a pointer or a reference to the other so that it may invoke the services of the latter\n le nombre d&apos;instances de la classe qui participent &amp;#xE0; l&apos;association.\n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. Dans ce cas, les r&amp;#xF4;les sont tr&amp;#xE8;s importants pour pr&amp;#xE9;ciser la signification de l&apos;relation.\nDans l&apos;exemple, un HUMAIN peut &amp;#xEA;tre &amp;#xE0; la fois Parent et Enfant.\nUne relation r&amp;#xE9;flexive n&amp;#x2019;est pas obligatoirement orient&amp;#xE9;e dans les deux sens.\n
  55. Une relation de type agr&amp;#xE9;gation a pour objectif d&amp;#x2019;exprimer qu&amp;#x2019;un ensemble d&amp;#x2019;objets fait partie int&amp;#xE9;grante d&amp;#x2019;un autre objet. Une agr&amp;#xE9;gation renforce ainsi la s&amp;#xE9;mantique de la notion d&amp;#x2019;relation.\nLes agr&amp;#xE9;gations peuvent &amp;#xEA;tres de 2 types : simple ou de composition\nl&amp;#x2019;agr&amp;#xE9;gation exprime une composition faible, alors que la composition exprime une composition forte. \nComposition : la destruction d&amp;#x2019;un dossier entra&amp;#xEE;ne la destruction de tous les documents contenus dans le dossier, de m&amp;#xEA;me la destruction d&amp;#x2019;une ville d&amp;#xE9;clenche la destruction de tous les immeubles de la ville. \nAgr&amp;#xE9;gation : m&amp;#xEA;me si une &amp;#xE9;quipe de basket est dissoute, les joueurs de cette &amp;#xE9;quipe sont toujours licenci&amp;#xE9;s aupr&amp;#xE8;s de la f&amp;#xE9;d&amp;#xE9;ration et existent en tant que tels. Il ne s&amp;#x2019;agit donc pas d&amp;#x2019;une composition.\n
  56. Indicated by a hollow diamond \n Whole-part relationship denotes one object logically or physically contains or has another \n Weaker form of aggregation. Nothing is implied about:\n Navigation\n Ownership\n Lifetimes of participating objects\n
  57. \n
  58. Composition is a strong form of aggregation in which the owner is explicitly responsible for the creation and destruction of the part objects. \nWe prefer the containent notation because it is more visually distinct.\n\n\n\n&amp;#xA0;\nUne agr&amp;#xE9;gation peut notamment (mais pas n&amp;#xE9;cessairement) exprimer :\n qu&apos;une classe (un &quot;&amp;#xE9;l&amp;#xE9;ment&quot;) fait partie d&apos;une autre (&quot;l&apos;agr&amp;#xE9;gat&quot;),\n qu&apos;un changement d&apos;&amp;#xE9;tat d&apos;une classe, entra&amp;#xEE;ne un changement d&apos;&amp;#xE9;tat d&apos;une autre,\n qu&apos;une action sur une classe, entra&amp;#xEE;ne une action sur une autre.&amp;#xA0;\nA un m&amp;#xEA;me moment, une instance d&apos;&amp;#xE9;l&amp;#xE9;ment agr&amp;#xE9;g&amp;#xE9; peut &amp;#xEA;tre li&amp;#xE9;e &amp;#xE0; plusieurs instances d&apos;autres classes (l&apos;&amp;#xE9;l&amp;#xE9;ment agr&amp;#xE9;g&amp;#xE9; peut &amp;#xEA;tre partag&amp;#xE9;).&amp;#xA0;\nUne instance d&apos;&amp;#xE9;l&amp;#xE9;ment agr&amp;#xE9;g&amp;#xE9; peut exister sans agr&amp;#xE9;gat (et inversement) : les cycles de vies de l&apos;agr&amp;#xE9;gat et de ses &amp;#xE9;l&amp;#xE9;ments agr&amp;#xE9;g&amp;#xE9;s peuvent &amp;#xEA;tre ind&amp;#xE9;pendants.\n\n&amp;#xA0;\n&amp;#xA0; q&amp;#xA0; Composition\n\nLa composition est une agr&amp;#xE9;gation forte (agr&amp;#xE9;gation par valeur).&amp;#xA0;\nLes cycles de vies des &amp;#xE9;l&amp;#xE9;ments (les &quot;composants&quot;) et de l&apos;agr&amp;#xE9;gat sont li&amp;#xE9;s : si l&apos;agr&amp;#xE9;gat est d&amp;#xE9;truit (ou copi&amp;#xE9;), ses composants le sont aussi.&amp;#xA0;\nA un m&amp;#xEA;me moment, une instance de composant ne peut &amp;#xEA;tre li&amp;#xE9;e qu&apos;&amp;#xE0; un seul agr&amp;#xE9;gat.&amp;#xA0;\nLes &quot;objets composites&quot; sont des instances de classes compos&amp;#xE9;es.\n\n&amp;#xA0; q&amp;#xA0; Agr&amp;#xE9;gation et composition : rappel\n\nL&apos;agr&amp;#xE9;gation et la composition sont des vues subjectives.&amp;#xA0;\nLorsqu&apos;on repr&amp;#xE9;sente (avec UML) qu&apos;une mol&amp;#xE9;cule est &quot;compos&amp;#xE9;e&quot; d&apos;atomes, on sous-entend que la destruction d&apos;une instance de la classe &quot;Mol&amp;#xE9;cule&quot;, implique la destruction de ses composants, instances de la classe &quot;Atome&quot; (cf. propri&amp;#xE9;t&amp;#xE9;s de la composition).&amp;#xA0;\nBien qu&apos;elle ne refl&amp;#xE8;te pas la r&amp;#xE9;alit&amp;#xE9; (&quot;rien ne se perd, rien ne se cr&amp;#xE9;e, tout se transforme&quot;), cette abstraction de la r&amp;#xE9;alit&amp;#xE9; nous satisfait si l&apos;objet principal de notre mod&amp;#xE9;lisation est la mol&amp;#xE9;cule...&amp;#xA0;\nEn conclusion, servez vous de l&apos;agr&amp;#xE9;gation et de la composition pour ajouter de la s&amp;#xE9;mantique &amp;#xE0; vos mod&amp;#xE8;les lorsque cela est pertinent, m&amp;#xEA;me si dans la &quot;r&amp;#xE9;alit&amp;#xE9;&quot; de tels liens n&apos;existent pas !\n \n
  59. Composition is a strong form of aggregation in which the owner is explicitly responsible for the creation and destruction of the part objects. \nWe prefer the containent notation because it is more visually distinct.\n\n\n\n&amp;#xA0;\nUne agr&amp;#xE9;gation peut notamment (mais pas n&amp;#xE9;cessairement) exprimer :\n qu&apos;une classe (un &quot;&amp;#xE9;l&amp;#xE9;ment&quot;) fait partie d&apos;une autre (&quot;l&apos;agr&amp;#xE9;gat&quot;),\n qu&apos;un changement d&apos;&amp;#xE9;tat d&apos;une classe, entra&amp;#xEE;ne un changement d&apos;&amp;#xE9;tat d&apos;une autre,\n qu&apos;une action sur une classe, entra&amp;#xEE;ne une action sur une autre.&amp;#xA0;\nA un m&amp;#xEA;me moment, une instance d&apos;&amp;#xE9;l&amp;#xE9;ment agr&amp;#xE9;g&amp;#xE9; peut &amp;#xEA;tre li&amp;#xE9;e &amp;#xE0; plusieurs instances d&apos;autres classes (l&apos;&amp;#xE9;l&amp;#xE9;ment agr&amp;#xE9;g&amp;#xE9; peut &amp;#xEA;tre partag&amp;#xE9;).&amp;#xA0;\nUne instance d&apos;&amp;#xE9;l&amp;#xE9;ment agr&amp;#xE9;g&amp;#xE9; peut exister sans agr&amp;#xE9;gat (et inversement) : les cycles de vies de l&apos;agr&amp;#xE9;gat et de ses &amp;#xE9;l&amp;#xE9;ments agr&amp;#xE9;g&amp;#xE9;s peuvent &amp;#xEA;tre ind&amp;#xE9;pendants.\n\n&amp;#xA0;\n&amp;#xA0; q&amp;#xA0; Composition\n\nLa composition est une agr&amp;#xE9;gation forte (agr&amp;#xE9;gation par valeur).&amp;#xA0;\nLes cycles de vies des &amp;#xE9;l&amp;#xE9;ments (les &quot;composants&quot;) et de l&apos;agr&amp;#xE9;gat sont li&amp;#xE9;s : si l&apos;agr&amp;#xE9;gat est d&amp;#xE9;truit (ou copi&amp;#xE9;), ses composants le sont aussi.&amp;#xA0;\nA un m&amp;#xEA;me moment, une instance de composant ne peut &amp;#xEA;tre li&amp;#xE9;e qu&apos;&amp;#xE0; un seul agr&amp;#xE9;gat.&amp;#xA0;\nLes &quot;objets composites&quot; sont des instances de classes compos&amp;#xE9;es.\n\n&amp;#xA0; q&amp;#xA0; Agr&amp;#xE9;gation et composition : rappel\n\nL&apos;agr&amp;#xE9;gation et la composition sont des vues subjectives.&amp;#xA0;\nLorsqu&apos;on repr&amp;#xE9;sente (avec UML) qu&apos;une mol&amp;#xE9;cule est &quot;compos&amp;#xE9;e&quot; d&apos;atomes, on sous-entend que la destruction d&apos;une instance de la classe &quot;Mol&amp;#xE9;cule&quot;, implique la destruction de ses composants, instances de la classe &quot;Atome&quot; (cf. propri&amp;#xE9;t&amp;#xE9;s de la composition).&amp;#xA0;\nBien qu&apos;elle ne refl&amp;#xE8;te pas la r&amp;#xE9;alit&amp;#xE9; (&quot;rien ne se perd, rien ne se cr&amp;#xE9;e, tout se transforme&quot;), cette abstraction de la r&amp;#xE9;alit&amp;#xE9; nous satisfait si l&apos;objet principal de notre mod&amp;#xE9;lisation est la mol&amp;#xE9;cule...&amp;#xA0;\nEn conclusion, servez vous de l&apos;agr&amp;#xE9;gation et de la composition pour ajouter de la s&amp;#xE9;mantique &amp;#xE0; vos mod&amp;#xE8;les lorsque cela est pertinent, m&amp;#xEA;me si dans la &quot;r&amp;#xE9;alit&amp;#xE9;&quot; de tels liens n&apos;existent pas !\n \n
  60. Aggregation is also a kind of association. Aggregation is used when one object logically or physically contains another. \n
  61. shared part is also known as &quot;catalog aggregation&quot;. Example: library card catalog\na book is under author catalog, subject catalog, title catalog\n\nNote that in the figure we are being very explicit about sharing the parts with the {share} constraint. Without that shared parts are not implied because although they aggregate instances of the same classes, this doesn&amp;#x2019;t mean that they are the same instances. \n
  62. A FAIRE EN S3.... L&amp;#x2019; an prochain\n
  63. Une relation de type agr&amp;#xE9;gation a pour objectif d&amp;#x2019;exprimer qu&amp;#x2019;un ensemble d&amp;#x2019;objets fait partie int&amp;#xE9;grante d&amp;#x2019;un autre objet. Une agr&amp;#xE9;gation renforce ainsi la s&amp;#xE9;mantique de la notion d&amp;#x2019;relation.\nLes agr&amp;#xE9;gations peuvent &amp;#xEA;tres de 2 types : simple ou de composition\nl&amp;#x2019;agr&amp;#xE9;gation exprime une composition faible, alors que la composition exprime une composition forte. \nComposition : la destruction d&amp;#x2019;un dossier entra&amp;#xEE;ne la destruction de tous les documents contenus dans le dossier, de m&amp;#xEA;me la destruction d&amp;#x2019;une ville d&amp;#xE9;clenche la destruction de tous les immeubles de la ville. \nAgr&amp;#xE9;gation : m&amp;#xEA;me si une &amp;#xE9;quipe de basket est dissoute, les joueurs de cette &amp;#xE9;quipe sont toujours licenci&amp;#xE9;s aupr&amp;#xE8;s de la f&amp;#xE9;d&amp;#xE9;ration et existent en tant que tels. Il ne s&amp;#x2019;agit donc pas d&amp;#x2019;une composition.\n
  64. Composition is a strong form of aggregation in which the owner is explicitly responsible for the creation and destruction of the part objects. We prefer the containent notation because it is more visually distinct.\n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. Most often, subclasses are extended and specialized at the same time\n
  76. La factorisation apport&amp;#xE9;e sur la g&amp;#xE9;n&amp;#xE9;ralisation appara&amp;#xEE;t graphiquement pour les relations. Imaginons le nombre de relations qui devraient &amp;#xEA;tre repr&amp;#xE9;sent&amp;#xE9;es sans g&amp;#xE9;n&amp;#xE9;ralisation.\nLes Voitures et les Camions ont tous un ou deux moteurs.\nUn r&amp;#xE9;pertoire peut contenir des drivers, des fichiers sources ou des fichiers binaires.\n
  77. Composition is a strong form of aggregation in which the owner is explicitly responsible for the creation and destruction of the part objects. We prefer the containent notation because it is more visually distinct.\n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. La g&amp;#xE9;n&amp;#xE9;ralisation peut-&amp;#xEA;tre simple ou multiple, la g&amp;#xE9;n&amp;#xE9;ralisation simple signifie qu&apos;une classe h&amp;#xE9;rite d&apos;une seule super-classe alors que dans la g&amp;#xE9;n&amp;#xE9;ralisation multiple une classe peut h&amp;#xE9;riter de plusieurs super-classes (au moins deux).\n
  85. \n
  86. \n
  87. Les attributs, op&amp;#xE9;rations, relations et g&amp;#xE9;n&amp;#xE9;ralisations ne suffisent pas &amp;#xE0; d&amp;#xE9;finir avec pr&amp;#xE9;cision l&amp;#x2019;ensemble des instances possibles.\nOn appelle invariant d&amp;#x2019;une classe l&amp;#x2019;ensemble des conditions et des propositions, appel&amp;#xE9;es contraintes en UML, qui doivent &amp;#xEA;tre v&amp;#xE9;rifi&amp;#xE9;es durant la vie d&amp;#x2019;une instance.\nLes cons&amp;#xE9;quences du non respect de ces contraintes sortent du cadre d&amp;#x2019;UML .\n
  88. \n
  89. \n
  90. \n
  91. \n
  92. A Qualified association could be implemented as a balanced tree.\n
  93. A Qualified association could be implemented as a balanced tree.\n
  94. \n
  95. \n
  96. \n
  97. generalization == &quot;is a&quot;\naggregation == &quot;has a&quot;\nassociation == &quot;uses&amp;#x201C;\n\nUML has lots of different kinds of relationships. These are by far the most important.\n
  98. \n
  99. \n
  100. Permet d&apos;incorporer des donn&amp;#xE9;es dans une association\nA n&apos;utiliser qu&apos;en analyse\nPose un probl&amp;#xE8;me de repr&amp;#xE9;sentation pour la conception\n
  101. \n
  102. Il s&apos;agit d&apos;une configuration d&amp;#xE9;conseill&amp;#xE9;e sur le plan de l&apos;implantation. G&amp;#xE9;n&amp;#xE9;ralement, il vient d&apos;un probl&amp;#xE8;me mal analys&amp;#xE9; et con&amp;#xE7;u\n
  103. \nToute relation N-aire peut &amp;#xEA;tre transform&amp;#xE9;e en relation binaire, par application de r&amp;#xE8;gles syst&amp;#xE9;matiques illustr&amp;#xE9;es ici.\n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. \n
  184. \n
  185. \n
  186. \n
  187. \n
  188. \n
  189. \n
  190. \n
  191. \n
  192. \n
  193. \n
  194. \n
  195. \n
  196. \n
  197. \n
  198. \n
  199. p86 de UML 2 par la pratique\n
  200. p86 de UML 2 par la pratique\n
  201. \n