SlideShare une entreprise Scribd logo
1  sur  112
Télécharger pour lire hors ligne
Modélisation objet
      avec UML
              Pierre-Alain Muller
              pa.muller@essaim.univ-mulhouse.fr
              ESSAIM, 12 rue des Frères Lumière
                   68093 Mulhouse Cedex

Version 2.0                  1                    Pierre-Alain Muller
Au menu
•   La genèse d’UML
•   Un survol d’UML
•   La notation UML
•   Vers un processus unifié
•   La suite de l’histoire



Version 2.0               2    Pierre-Alain Muller
La genèse d’UML



Version 2.0          3          Pierre-Alain Muller
Complexité des logiciels
• Les tendances
     –   Programmation sans programmer
     –   Micro-architectures (patterns)
     –   Importance de l’architecture
     –   Informatique distribuée
     –   Multimédia



Version 2.0                  4            Pierre-Alain Muller
De quoi a-t-on besoin ?
• Un langage de modélisation
     – Notation claire
     – Sémantique précise
• Un processus de génie logiciel

                            Système


                  Langage           Processus


Version 2.0                     5               Pierre-Alain Muller
Langage de modélisation
•   Générique
•   Expressif
•   Flexible (configurable, extensible)
•   Syntaxe et sémantique
•   Unification par convergence aujourd’hui



Version 2.0              6                Pierre-Alain Muller
Processus
• Générique
• Impossible à standardiser
     – Personnes, applications, cultures...
• Cadre configurable
• Unification par convergence dans le futur



Version 2.0                    7              Pierre-Alain Muller
Comment modéliser ?
• La manière de modéliser influence fortement
    – La compréhension du problème
    – La solution
• Il n’existe pas de modèle universel
    – Jeux de modèles faiblement couplés
    – Multiplicité des niveaux d’abstraction
• Les meilleurs modèles sont en prise sur le monde
  réel
Version 2.0                  8                 Pierre-Alain Muller
Evolution des méthodes
• D’abord des méthodes structurées
• A partir des années 80 émergence des méthodes
  orientées-objets
• Les principales méthodes objets convergent
     – Différences superficielles
     – Notation, terminologie
• L’expérience permet de séparer le bon grain de
  l’ivraie
Version 2.0                   9         Pierre-Alain Muller
La prolifération des méthodes objet
• Une cinquantaine de méthodes objet dans les
  cinq dernières années
     – Confusion, attentisme
• Consensus autour d’idées communes
     – Objets, classes, associations, sous-systèmes, cas
       d’utilisation



Version 2.0                    10                 Pierre-Alain Muller
Rapprochement de Booch et OMT
• Booch’93 et OMT-2 sont plus ressemblantes que
  différentes
   – Booch’93 adopte les associations, les diagrammes
     d'Harel, les traces d’événements
   – OMT-2 introduit les flots de messages et retire les
     diagrammes de flot de données
• Booch-93 construction
• OMT-2 analyse et abstraction

 Version 2.0                  11                  Pierre-Alain Muller
L’unification des méthodes
• La guerre des méthodes ne fait plus avancer la
  technologie des objets
• Recherche d’un langage commun unique
     – Utilisable par toutes les méthodes
     – Adapté à toutes les phases du développement
     – Compatible avec toutes les techniques de réalisation



Version 2.0                  12                  Pierre-Alain Muller
Différentes sortes de systèmes
• Logiciels
      – Ingénierie des logiciels
• Logiciels et matériels
      – Ingénierie des systèmes
• Personnes
      – Ingénierie des affaires

Unification sur plusieurs domaines d’applications

 Version 2.0                      13    Pierre-Alain Muller
La notation unifiée
• Basée sur les méthodes de BOOCH, OMT et
  OOSE
• Influencée par les bonnes idées des autres
  méthodes
• Mûrie par le travail en commun




Version 2.0           14               Pierre-Alain Muller
Principales influences
 • Souvent une histoire imbriquée
Booch               Catégories et sous-systèmes
Embley              Classes singletons et objets composites
Fusion              Description des opérations, numérotation des messages
Gamma, et al.Frameworks, patterns, et notes
Harel               Automates (Statecharts)
Jacobson            Cas d’utilisation (use cases)
Meyer               Pré- et post-conditions
Odell               Classification dynamique, éclairage sur les événements
OMT                 Associations
Shlaer-MellorCycle de vie des objets
Wirfs-Brock         Responsabilités (CRC)

 Version 2.0                          15                         Pierre-Alain Muller
Portée de la notation unifiée
• Standardiser les artefacts du développement
     – Modèles, notation et diagrammes
• Ne pas standardiser le processus
     – Dirigé par les cas d’utilisation
     – Centré sur l’architecture
     – Itératif et incrémental



Version 2.0                    16         Pierre-Alain Muller
Les objectifs
• Représenter des systèmes entiers
• Etablir un couplage explicite entre les concepts
  et les artefacts exécutables
• Prendre en compte les facteurs d’échelle
• Créer un langage de modélisation utilisable à la
  fois par les humains et les machines


Version 2.0             17               Pierre-Alain Muller
Approche retenue
•   Identifier la sémantique des concepts de base
•   Classer les concepts
•   Construire un métamodèle
•   Choisir une notation graphique
•   Regrouper par niveau d’abstraction, complexité et
    domaine


Version 2.0              18               Pierre-Alain Muller
Métamodèle
• Identification des concepts fondamentaux
   – Définition de la sémantique de ces concepts
   – Choix d’une représentation graphique
• Métamodélisation d’UML avec UML
   – Description formelle des éléments de modélisation
• Austère, pas pédagogique
   – Méthodologistes
   – Constructeurs d’outils

  Version 2.0                 19                   Pierre-Alain Muller
Les modèles et les vues
• Un modèle est un quanta de développement
    – Cohérence interne forte
    – Couplage faible avec les autres modèles
    – Relié à une phase de développement
• Une vue est une projection au travers des
  éléments de modélisation
    – Graphique
    – Peut englober plusieurs modèles

Version 2.0                 20                  Pierre-Alain Muller
Exemples de modèles
• Un système possède plusieurs modèles

                                     Système




               Modèle        Modèle               Modèle            Modèle
              d’analyse   de conception        de réalisation   de déploiement


Version 2.0                               21                              Pierre-Alain Muller
Les étapes
• Octobre 95
     – Unified Method V0.8
• Octobre 96
     – UML V0.91 (The Unified Modeling Language for
       Object-Oriented Development)
• Janvier 97
     – UML 1.0 est soumise à l’OMG
• Septembre 97
     – Approbation par le comité technique de l’OMG
Version 2.0                  22               Pierre-Alain Muller
Evolution de UML




Version 2.0          23          Pierre-Alain Muller
Acceptation de UML
• UML est dans le domaine public
• Soutenue par le marché
     – Microsoft, HP, IBM, Oracle...
• Successeur naturel des méthodes de Booch,
  OMT et OOSE
• UML est le fruit de l’expérience et des besoins
  de la communauté des utilisateurs

Version 2.0                 24            Pierre-Alain Muller
Les partenaires
• Courant 96 UML devient un enjeu stratégique
• Consortium de partenaires
     – DEC, HP, i-Logix, Intellicorp, IBM, ICON
       Computing, MCI Systemhouse, Microsoft, Oracle,
       Rational Software, TI et Unisys
     – IBM, Platinum, Data Access Technologies, Reich
       Technologies, Softeam, Taskon A/S


Version 2.0                25                Pierre-Alain Muller
En résumé
•   UML est une notation, pas une méthode
•   UML est un langage de modélisation objet
•   UML convient pour toutes les méthodes objet
•   UML est dans le domaine public




Version 2.0              26              Pierre-Alain Muller
Un survol d’UML



Version 2.0          27         Pierre-Alain Muller
Eléments de modélisation
• Briques pour capturer la sémantique des
  applications
• Pas accessibles directement aux utilisateurs
• Représentation interne (outils)
• Représentation externe (échange entre outils)




Version 2.0              28              Pierre-Alain Muller
Eléments de modélisation
• Les objets
    – Une entité d’un monde réel ou virtuel
• Les classes
    – La description d’un ensemble d’objets
• Les états
    – Une étape de la vie d’un objet
• Les tâches
    – Un flot de contrôle indépendant

Version 2.0                  29               Pierre-Alain Muller
Eléments de modélisation
• Les cas d’utilisation
     – Une manière dont un acteur utilise le système
• Les collaborations
     – La réalisation d’un cas d’utilisation par une société
       d’objets collaborants
• Les micro-architectures (patterns)
     – Un générateur pour la structure et l’interaction
       d’une société d’objets
Version 2.0                   30                   Pierre-Alain Muller
Eléments de modélisation
• Les composants
   – Un module contenant des entités d’implémentation
• Les noeuds
   – Un dispositif matériel capable d’exécuter du logiciel
• Les paquetages
   – Une partition du modèle
• Les notes
   – Un commentaire, une explication ou une annotation
  Version 2.0                  31                 Pierre-Alain Muller
Relations
• L’association
     – Une connexion sémantique entre instances
• La généralisation
     – Une relation de classification
• La dépendance
     – L’utilisation d’un élément par un autre
• La trace
     – Dépendance inter-modèles

Version 2.0                   32                  Pierre-Alain Muller
Mécanismes communs
• Les stéréotypes <<stéréotype>>
     – Extension des classes du métamodèle
• Les étiquettes
     – Paire (nom, valeur)
• Les notes
     – Commentaire textuel
• Les contraintes {contrainte}
     – Relation sémantique entre éléments
Version 2.0                  33              Pierre-Alain Muller
Types primitifs

       Booléen                                 Liste
                         Expression                    Multiplicité


                 Point                Chaîne
                                                       Temps

              Nom               Non interprété




Version 2.0                           34                     Pierre-Alain Muller
La notation UML



Version 2.0         35          Pierre-Alain Muller
Notation
 • Manipulée par les utilisateurs
 • Simple, intuitive, expressive, cohérente
 • Vues graphiques (multiples) des éléments de
   modélisation




Version 2.0            36               Pierre-Alain Muller
Les diagrammes d’UML
• 9 types de diagrammes
                                            Diagramme




              Composants          Classes          Séquence       Activité            Objets


 Déploiement           Cas d’utilisation      Etats-Transitions      Collaboration




Version 2.0                                  37                              Pierre-Alain Muller
Diagrammes
• Les diagrammes de classes
   – Les classes et les relations statiques
• Les diagrammes d’objets
   – Les objets et les liens
• Les diagrammes de séquence
   – Vision temporelle des interactions
• Les diagrammes de collaboration
   – Vision spatiale des interactions

  Version 2.0                  38             Pierre-Alain Muller
Diagrammes (suite)
• Les diagrammes de cas d’utilisation
     – Les acteurs et l’utilisation du système
• Les diagrammes d’états-transitions
     – Le comportement des objets
• Les diagrammes d’activités
     – Le flot de contrôle interne aux opérations




Version 2.0                   39                    Pierre-Alain Muller
Diagrammes (suite)
• Les diagrammes de composants
     – Les composants d’implémentation et leurs relations
• Les diagrammes de déploiement
     – La structure matérielle et la distribution des objets et
       des composants




Version 2.0                    40                   Pierre-Alain Muller
Paquetages
• Organisation des modèles

               Nom de
              paquetage




                               Cat              Sub
                          <<Catégorie>>   <<Sous-système>>




Version 2.0                       41                 Pierre-Alain Muller
Diagrammes de classes

 • Les classes
              Nom de classe                       Nom de classe




                     Nom de classe           Véhicule
                                           <<Utilitaire>>
                     <<Stéréotype>>
                                           Etat = testé
                        Propriété          Auteur = pam




Version 2.0                           42                      Pierre-Alain Muller
Diagrammes de classes
• Les attributs et les opérations

              Nom de classe                          A
       Nom : type = valeur initiale        +Attribut public
                                           #Attribut protégé
       Nom( )                              -Attribut privé
                                           Attribut de classe

                                           +Opération publique( )
                                           #Opération protégée( )
                                           -Opération privée( )
                                           Opération de classe( )




Version 2.0                           43                        Pierre-Alain Muller
Diagrammes de classes
• Les associations

       A              B




                           A       B           C




                               D       E



Version 2.0               44               Pierre-Alain Muller
Diagrammes de classes
• Décoration des associations

                                <Travaille pour
                     Société                         Personne



                                                           Pilote
   Société    Employeur        Personne           Avion             Personne
                     Employé

                                                          Passagers




Version 2.0                           45                            Pierre-Alain Muller
Diagrammes de classes
• Multiplicité des associations
     –1          un et un seul
     – 0..1      zéro ou un
     – m..n      de m à n
     –*          de zéro à plusieurs
     – 0..*      de zéro à plusieurs
     – 1..*      d’un à plusieurs


Version 2.0             46             Pierre-Alain Muller
Diagrammes de classes
• Exemples                                       Personne
                                                                    Parents
                                                                    2
  Personne                 Compte            Enfants       *
              1     0..*
                  {Ordonnée}


                                             Parents d'élèves
                            Classe                             Personne
                                                       *
                                     {Sous-ensemble}


                                                       *
                                                   Délégués


Version 2.0                     47                             Pierre-Alain Muller
Diagrammes de classes
• Restriction des associations (qualification)

       A         Clé                   B




     Echiquier
                   Ligne
                   Ligne        Case
                  Colonne
                  Colonne
                            1




Version 2.0                                48   Pierre-Alain Muller
Diagrammes de classes
• Les classe-associations

                A                    B



                           C
                     attributs           D

                     opérations( )




Version 2.0                 49               Pierre-Alain Muller
Diagrammes de classes
• Les agrégations
     – Connexions bidirectionnelles non symétriques
                      1
     Voiture                               Moteur
                                       1
                                                                        Parent
              Propriétaire                              Personne
                     1..*
    Personne                         Immeuble                            *
                             0..*
                                                    Enfants    *

                    0..1
    Agrégat                         Composant                 <S’occupe de
                             *

Version 2.0                                50                      Pierre-Alain Muller
Diagrammes de classes
• Généralisation simple et multiple

                      Super-classe           Classe plus
                                             générale




        Sous-classe            Classe plus
                               spécialisée



Version 2.0                      51                  Pierre-Alain Muller
Diagrammes de classes
• Les discriminants partitionnent les sous-classes

                                         Animal

                   Station                                Protection
                                    Nourriture

      Bipède   Quadrupède    Herbivore Carnivore   A plumes   A poils   A écailles




                                          Lapin



Version 2.0                               52                            Pierre-Alain Muller
Diagrammes de classes
• Exemple de contrainte
                        Champignon


               {Exclusif}

                 Agaricus       Boletus
                                              Pas de
                                              mélange des
                                              dimensions
                 Pied bleu    Bolet de loup



Version 2.0                      53                         Pierre-Alain Muller
Diagrammes de classes
• Relation de dépendance

                                           Liste

                       <<Instanciation>>

                 BAL

                        <<Friend>>

                                       Itérateur



Version 2.0                    54                  Pierre-Alain Muller
Diagrammes de classes
• Les interfaces
     – Jeu d’opérations
                                     ICommon
                                                             IStyle

              Client                          StyleAgent
                       ISpelling
                                                           IGrammar
                              {remote}
                                              StyleAgent




Version 2.0                              55                     Pierre-Alain Muller
Diagrammes d’objets
• Représentation des objets
          Nom de l’objet       Nom de l’objet : Classe      : Classe




                BoutonOK : IHM::Contrôles::BoutonPoussoir




Version 2.0                             56                    Pierre-Alain Muller
Diagrammes d’objets
• Représentation des objets et des liens

                                             Voiture           Moteur
                  : Voiture       : Moteur             1   1
                                                 1

                                                 4
: Roue        : Roue     : Roue   : Roue
                                             Roue




Version 2.0                             57                 Pierre-Alain Muller
Diagrammes d’objets
• Décorations

                              Passagers   : Personne

                 : Bus

                                       Conducteur
                                          : Personne

              : Destination



Version 2.0                       58                   Pierre-Alain Muller
Diagrammes de collaboration
• Représentation spatiale d’une interaction

                                : Ascenseur


                                1: Monter
                 : Cabine
                                      3: Fermer


                            2: Allumer        : Porte


                    : Lumière


Version 2.0                      59                     Pierre-Alain Muller
Diagrammes de collaboration
• Représentation des messages
                             Message
                  Argument
                                       Argument
              A                                   B




Version 2.0                     60                    Pierre-Alain Muller
Diagrammes de collaboration
                                                        A
• Exemples                                                      *[i :=1..n] : Message


            A.1, B.3 / Message              B                        :X

        A


                                 B                                                 B


                                                                     p := Question
                                 [X>Y] : Message
                                                            A
                      A


Version 2.0                                        61                     Pierre-Alain Muller
Diagrammes de collaboration
• Syntaxe des envois de message
     – 4 : Afficher (x, y) -- message simple
     – 3.3.1 : Afficher (x, y) -- message imbriqué
     – 4.2 : âge := Soustraire (Aujourd’hui, DateDeNaissance) -- message
       imbriqué avec valeur retournée
     – [Age >= 18 ans] 6.2 : Voter () -- message conditionnel
     – 4.a, b.6 / c.1 : Allumer (Lampe) -- synchronisation avec d’autres flots
       d’exécution
     – 1 * : Laver () -- itération
     – 3.a, 3.b / 4 *||[i := 1..n] : Eteindre () -- itération parallèle




Version 2.0                             62                           Pierre-Alain Muller
Diagrammes de collaboration
• Les objets actifs

               : Traitement de texte
                                       2 : Ecrire

                            1 : Lire

                                         : Imprimante
                : Scanner




Version 2.0                       63                    Pierre-Alain Muller
Diagrammes de collaboration
• La place de l’utilisateur

                           1: Venir me chercher au RDC


              : Personne             : Ascenseur



                    : Cabine       2: Ajouter destination RDC




Version 2.0                         64                          Pierre-Alain Muller
Diagrammes de collaboration
• Représentation des patterns
                                           handler       KeyboardHandler

                                                                  successor

                            Chain of           handler
                                                           MIDIHandler
                          Responsibility
                                                                  successor



              client                          handler      EventHandler


              Sequencer



Version 2.0                          65                         Pierre-Alain Muller
Diagrammes de séquence
• Représentation temporelle d’une interaction
              Un objet           Un autre objet        Encore un objet



                         Un message


                                            Un autre message




Version 2.0                            66                           Pierre-Alain Muller
Diagrammes de séquence
                                           Un objet                        Un objet             Un autre objet
• Exemples
                                                       Message                        Un message
                                                        réflexif




              A                        B                     Un objet


                  Message synchrone
                                                                        Créer
                                                                                      Un autre objet
                  Message asynchrone
                                                                          Détruire
                                                                                            X


Version 2.0                                       67                                       Pierre-Alain Muller
Diagrammes de séquence
                                  Un objet                              A             B             C

• Exemples                                                         x        Message
                                        Récursion   {y-x < 3 s}
                                                                   y             Message
       A       B
                                                    {z-y < 1 s}                           Message
                                                                   z

                                                                   t        Message
                                                    {t’-t < 2 s}
                                                                   t’



                              A              B

                   while X         Message
                   loop


                   end loop




Version 2.0                                  68                                       Pierre-Alain Muller
Diagrammes d’états-transitions
• Représentation des automates
     – Statecharts (David Harel)
                                           Classe              Automate
                                                    1   0..1


                 Etat intermédiaire

  Etat initial                        Etat final


                                       A                                 B



Version 2.0                            69                       Pierre-Alain Muller
Diagrammes d’états-transitions
                                                                 A
• Exemples                     Il fait trop chaud[ été ]                     Il fait trop chaud[ hiver ]

                                   Climatiser                                              Aérer
                   / Op1

              Un état                                                    C
              entry: Op2
               do: Op3                                                   D2
               exit: Op4                                   In
         on UnEvénement: Op5                    A
                                                                     X            Y
                   / Op6                                   Out
                                                                         D1


                                                                 H




Version 2.0                             70                                            Pierre-Alain Muller
Diagrammes d’états-transitions
• Exemples         Téléviseur
                                    Basculé


                         Attente                 Arrêt



                                    Basculé


                   Télécommande
                       Bouton enfoncé ^Téléviseur.Basculé

                                   Attente




Version 2.0               71                                Pierre-Alain Muller
Diagrammes d’activités
• Représentation d’un automate du point de vue
  des activités


                  E1
              do: Activité


              Activité finie


                   E2



Version 2.0                    72             Pierre-Alain Muller
Diagrammes d’activités
• Exemples




Version 2.0             73             Pierre-Alain Muller
Les diagrammes de cas d’utilisation
• Formalisés par I. Jacobson (Use Case)
                         Système



                            Cas d'utilisation X

              Acteur A

                                                  Acteur B
                            Cas d'utilisation Y




Version 2.0                             74                   Pierre-Alain Muller
Les diagrammes de cas d’utilisation
• Relations entre cas d’utilisations


                                  Virement         <<Etend>>
                                  par minitel

              Client distant                                      Client local
                                    <<Utilise>>
                                                       Virement



                               Identification


Version 2.0                                       75                       Pierre-Alain Muller
Les diagrammes de cas d’utilisation
• Transition vers les objets




Version 2.0              76    Pierre-Alain Muller
Diagrammes de composants
• Représentation des éléments de réalisation
              Spécification   Générique        Main
                                                      Tâche




Version 2.0                               77            Pierre-Alain Muller
Diagrammes de composants
                                           2: load                  The extension is called
              1: invoke (URL)              3: doit                  via a server thread,
   Client                       Server                              selected from a thread
                                                                    pool.
                                    4: create        L
                                                                        5: create
                                                 ISAPI Extension


        10: write response                      9: write response

                        COM Server Object                                     COM Object

                                            8: do some operation
                                                                                           6: send a message


                                 Legacy DLL                                         Message Queue
                                                          7: handle message




Version 2.0                                          78                                    Pierre-Alain Muller
Diagrammes de déploiement
• Architecture matérielle et répartition du logiciel
                         TX
                                       Console
                      Serveur X          <<TCP/IP>>             Serveur
                             3                          1
                                                                SGBD
                                                                       1
                                                                   1
                                                *                           Imprimante
                              PC                        <<RNIS>>
                                                                           <<Dispositif>>
                                                                                     1
                           Pilote

                                  1    Maître

                                                    Porte


                                        1..10               *


Version 2.0                       79                                            Pierre-Alain Muller
Diagrammes de déploiement

  Node1                          Node1

                 Module A                Module B


               xyz                            abc


              <process>
               ProcW




Version 2.0                 80                Pierre-Alain Muller
Vers un processus unifié



Version 2.0              81          Pierre-Alain Muller
Objectifs

•   Construire des modèles de systèmes
•   Organiser le travail
•   Gérer le cycle de vie de A à Z
•   Gérer le risque
•   Obtenir de manière répétitive des produits de
    qualité constante


Version 2.0               82               Pierre-Alain Muller
Caractéristiques du processus

•   Dirigé par les cas d’utilisation
•   Centré sur l’architecture
•   Itératif
•   Incrémental




Version 2.0                83          Pierre-Alain Muller
Dirigé par les cas d’utilisation
• Fil conducteur de toutes les activités

              Analyse       Conception et             Test
      Capturer, clarifier    Réalisation         Vérifier que les
        et valider les         Réaliser les      cas d’utilisation
       cas d’utilisation     cas d’utilisation    sont satisfaits


          Les cas d’utilisation relient ces tâches ensemble




Version 2.0                          84                     Pierre-Alain Muller
Dirigé par les cas d’utilisation
                                   Cas 1
                    <<Utilise>>




                       Cas 2               Cas 3




Version 2.0                       85               Pierre-Alain Muller
Les cas d’utilisation et les tests
• En Analyse
     – Modélisation en cas d’utilisation
     – Définition des cas de test
• En conception
     – Génération des cas de test depuis les diagrammes
       d’interaction et les automates d’états finis



Version 2.0                   86                Pierre-Alain Muller
Organisation du travail
• Découpage par cas d’utilisation

              Analyse      Conception et       Test
                            réalisation


                              Architectes   Intégrateurs
              Experts du                         et
                             Concepteurs
               domaine                        Testeurs
                            Programmeurs



Version 2.0                       87               Pierre-Alain Muller
Centrage sur l’architecture
• Recherche de la forme générale du système dès
  le début
• Approche systématique pour trouver une
  “bonne” architecture
     –   Support des cas d’utilisation
     –   Adaptation aux changements
     –   Pour et avec la réutilisation
     –   Compréhensible intuitivement
Version 2.0                   88         Pierre-Alain Muller
Architecture logicielle
• Architecture =
     Eléments + Formes + Motivations
• Architecture = Stratégie + Tactique




Version 2.0             89              Pierre-Alain Muller
La vision de l’architecte
• Il n’existe pas une seule manière de regarder un
  système
     – Philippe Kruchten, le modèle 4 + 1 vues, IEEE Software, Nov. 95




Version 2.0                          90                         Pierre-Alain Muller
Le modèle 4 + 1 vues
•   La vue logique
•   La vue de réalisation
•   La vue des processus
•   La vue de déploiement
•   La vue des cas d’utilisation



Version 2.0               91         Pierre-Alain Muller
La vue logique
• Aspects statiques et dynamiques
• Les éléments
     –   Les objets
     –   Les classes
     –   Les collaborations
     –   Les interactions
     –   Les paquetages <<Catégorie>>

Version 2.0                92           Pierre-Alain Muller
La vue de réalisation
• Organisation des modules dans l’environnement
  de développement
• Les éléments
     – Les modules
     – Les sous-programmes
     – Les tâches (en tant qu’unités de programme, comme
       en Ada)
     – Les paquetages <<sous-système>>
Version 2.0                 93                 Pierre-Alain Muller
La vue des processus
• Décomposition en flots d’exécution et
  synchronisation entre ces flots
• Les éléments
     –   Les tâches
     –   Les threads
     –   Les processus
     –   Les interactions

Version 2.0                 94            Pierre-Alain Muller
La vue de déploiement
• Les ressources matérielles et l’implantation du
  logiciel dans ces resources
• Les éléments
     – Les noeuds
     – Les modules
     – Les programmes principaux



Version 2.0                95             Pierre-Alain Muller
La vue des cas d’utilisation
• La colle entre les autres vues
• Les éléments
     –   Les acteurs
     –   Les cas d’utilisation
     –   Les classes
     –   Les collaborations



Version 2.0                      96     Pierre-Alain Muller
Récapitulatif
                        9 XH GH V FD V        9 X H OR J LT X H           9 XH GH           9 XH GH V                 9 XH GH
                         G ·X WLOLV D WLR Q                            U p D OLV D WLR Q   S UR F H V V X V       G p S OR LH P H Q W


 ' LD J U D P P H          $ F WH X U V
     GH FDV                   &DV
 G ·X WLOLV D WLR Q     G ·X WLOLV D WLR Q
 ' LD J U D P P H                               & OD V V H V
 G H F OD V V H V                              5 H OD WLR Q V

 ' LD J U D P P H           2 E MH WV           & OD V V H V
    G ·R E MH WV             / LH Q V            2 E MH WV
                                                  / LH Q V
' LD J U D P P H           $ F WH X U V          $ F WH X U V                                 2 E MH WV
GH Vp TXH QFH              2 E MH WV             2 E MH WV                                 0 H VVD JH V
                         0 H VVD JH V          0 H VVD JH V
 ' LD J U D P P H          $ F WH X U V          $ F WH X U V                                 2 E MH WV
        GH                 2 E MH WV             2 E MH WV                                    / LH Q V
F R OOD E R U D WLR Q
                            / LH Q V              / LH Q V                                 0 H VVD JH V
                          0 H VVD JH           0 H VVD JH V

     Version 2.0                                                  97                                          Pierre-Alain Muller
Récapitulatif (suite)
                  9 XH GHV FDV    9 XH ORJLTXH          9 XH GH       9 XH GHV      9 XH GH
                  G·XWLOLVDWLRQ                       UpDOLVDWLRQ    SURFHVVXV    GpSORLHPHQW


    ' LDJUDPPH       ( WDWV          ( WDWV                            ( WDWV
       G·pWDWV   7UDQVLWLRQV     7UDQVLWLRQV                       7UDQVLWLRQV
    WUDQVLWLRQV
    ' LDJUDPPH     $FWLYLWpV       $FWLYLWpV                         $FWLYLWpV
     G·DFWLYLWp   7UDQVLWLRQV     7UDQVLWLRQV                       7UDQVLWLRQV

   ' LDJUDPPH                                          RPSRVDQWV    RPSRVDQWV    RPSRVDQWV
        GH
   FRPSRVDQWV
   ' LDJUDPPH                                                                        1 RHXGV
        GH                                                                            /LHQV
   GpSORLHPHQW


Version 2.0                                      98                               Pierre-Alain Muller
Architecture, processus
                 et organisation
• Les processus et l’organisation doivent être
  adaptés à l’architecture
     – Un processus pour l’architecture générale
     – Un processus par application, composant système
       ou couche
     – Un processus par type de système


Version 2.0                 99                 Pierre-Alain Muller
Une bonne architecture facilite
• L’assemblage des composants pour des besoins
  génériques
• Le partage de composants réutilisables
• La navigation depuis les besoins jusqu’au code
  et réciproquement
• La responsabilisation des développeurs
• L’adaptation et l’évolution

Version 2.0            100              Pierre-Alain Muller
Approche
              itérative et incrémentale
• Segmentation du travail
• Concentration sur les besoins et les risques
• Les premières itérations sont des prototypes
     – Expérimentation et validation des technologies
     – Planification
• Les prototypes définissent le noyau de
  l’architecture
Version 2.0                  101                Pierre-Alain Muller
Approche
              itérative et incrémentale
• L’ordonnancement des itérations est basée sur
  les priorités entre cas d’utilisation et sur l’étude
  du risque




Version 2.0               102                Pierre-Alain Muller
Vue de l’encadrement
• Des phases
     –   Inception (étude d’oportunité)
     –   Elaboration (architecture, planning)
     –   Construction
     –   Transition

              Inception   Elaboration     Construction   Transition

                                    time




Version 2.0                         103                               Pierre-Alain Muller
Vue technique
• Des itérations




Version 2.0         104        Pierre-Alain Muller
Synchronisation des deux vues
• Itérations
     – Chaque cycle donne une génération
     – Chaque cycle est décomposé en phases
     – Chaque phase comprend des itérations
• Incréments
     – Le logiciel évolue par incrément
     – Une itération correspond à un incrément
     – Les itérations peuvent évoluer en parallèle
Version 2.0                  105                     Pierre-Alain Muller
Synchronisation des deux vues

     Inception            Elaboration                            Construction                                      Transition




                                                                 Construction




                                                                                                    Construction
                                                                                   Construction
                               Architectural



                                               Architectural




                                                                                                                                   Generation 1
                  Conceptual




                                                                                                                      Transition
                  Prototype



                               Prototype




                                                                 Release 1



                                                                                   Release 2



                                                                                                    Release 3
                                               Baseline
                               Release
                  Release




                                               Release




                                                                                                                      Release
        Preliminary   Architect.    Architect.      Devel.             Devel.           Devel.            Transition Transition
        Iteration     Iteration     Iteration       Iteration          Iteration        Iteration         Iteration  Iteration




Version 2.0                                                    106                                                   Pierre-Alain Muller
Répartition des efforts
                  Inception          Elaboration                        Construction                   Transition



    Planning

    Analysis


    Architecture design


    Design


    Implementation

    Integration

    Test/assessment



                     Preliminary   Iteration   Iteration    Iteration    Iteration     Iteration   Iteration   Iteration
                     Iteration     #1          #2 ...       #n+1         #...          #m          #m+1        #m+2 ..


Version 2.0                                                107                                          Pierre-Alain Muller
UML en résumé
       Un langage                                 Vers un
     de modélisation                             processus
         unifié                                    unifié

              •   Convergence             •   Convergence dans
                  aujourd’hui                 le futur
              •   L’unification           •   Consensus autour
                  conduit à la                d’un cadre
                  standardisation             directeur

Version 2.0                         108               Pierre-Alain Muller
La suite de l’histoire




Version 2.0             109            Pierre-Alain Muller
Prochaines étapes
• 1 er semestre 97
     – Consolidation de la proposition UML 1.0
• Septembre 97
     – Approbation du standard par le comité technique de
       l’OMG




Version 2.0                 110                  Pierre-Alain Muller
Pour en savoir plus
•   www.rational.com
•   otug@rational.com
•   www.essaim.univ-mulhouse.fr
•   uml@essaim.univ-mulhouse.fr
     – inscription automatique par mail à
              • majordomo@essaim.univ-mulhouse.fr
              • avec dans le corps du message : subscribe uml


Version 2.0                        111                  Pierre-Alain Muller
Pour en savoir plus
• Modélisation objet avec UML
   – Pierre-Alain Muller, Eyrolles, 430 pages
• Sommaire
   –   Genèse d’UML
   –   Approche objet
   –   Notation UML
   –   Encadrement des projets objet
   –   Etude de cas

 Version 2.0                  112               Pierre-Alain Muller

Contenu connexe

Tendances

Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logicielUSTHB & DELTALOG
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesSirine Barguaoui
 
Rapport du projet fin d'etudes
Rapport du projet fin d'etudesRapport du projet fin d'etudes
Rapport du projet fin d'etudesTahani RIAHI
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
Expo diagramme cas d'utilisation
Expo diagramme cas d'utilisationExpo diagramme cas d'utilisation
Expo diagramme cas d'utilisationaminooovich
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationMohamed Amine Mahmoudi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
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
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileNader Somrani
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testahmed oumezzine
 
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
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidBadrElattaoui
 

Tendances (20)

Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiques
 
Rapport du projet fin d'etudes
Rapport du projet fin d'etudesRapport du projet fin d'etudes
Rapport du projet fin d'etudes
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Expo diagramme cas d'utilisation
Expo diagramme cas d'utilisationExpo diagramme cas d'utilisation
Expo diagramme cas d'utilisation
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
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
 
Modele rapport pfe esprit
Modele rapport pfe  espritModele rapport pfe  esprit
Modele rapport pfe esprit
 
2 TUP
2 TUP2 TUP
2 TUP
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobile
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
 
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
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
 

En vedette (20)

Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
Cours uml
Cours umlCours uml
Cours uml
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
Uml & cas d'utilisation
Uml & cas d'utilisationUml & cas d'utilisation
Uml & cas d'utilisation
 
Uml
UmlUml
Uml
 
Igl cours 3 - introduction à uml
Igl   cours 3 - introduction à umlIgl   cours 3 - introduction à uml
Igl cours 3 - introduction à uml
 
Diagrammes de classes
Diagrammes de classesDiagrammes de classes
Diagrammes de classes
 
uml
umluml
uml
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Programmation orientée objet et java
Programmation orientée objet et javaProgrammation orientée objet et java
Programmation orientée objet et java
 
Cv Aric Lasry Epitech
Cv Aric Lasry EpitechCv Aric Lasry Epitech
Cv Aric Lasry Epitech
 
Hernandez_Remi_CV_v2
Hernandez_Remi_CV_v2Hernandez_Remi_CV_v2
Hernandez_Remi_CV_v2
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
Conférence ESI
Conférence ESIConférence ESI
Conférence ESI
 
Cours d'Introduction à Uml
Cours d'Introduction à UmlCours d'Introduction à Uml
Cours d'Introduction à Uml
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
Héritage et redéfinition de méthode
Héritage et redéfinition de méthodeHéritage et redéfinition de méthode
Héritage et redéfinition de méthode
 
Umldiagrams ForOOAD Lab B.Tech 4-1
Umldiagrams ForOOAD Lab B.Tech 4-1Umldiagrams ForOOAD Lab B.Tech 4-1
Umldiagrams ForOOAD Lab B.Tech 4-1
 
7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScript
 

Similaire à Cours uml

CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalAhmed Mekkaoui
 
Rattrapage uml
Rattrapage umlRattrapage uml
Rattrapage umlvangogue
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptxPrinceLankoand
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxinformatiquehageryah
 
Génie Logiciel - Unified modeling language
Génie Logiciel - Unified modeling languageGénie Logiciel - Unified modeling language
Génie Logiciel - Unified modeling languageJulien Schneider
 
013 mediha cgi - sensibilisation uml
013   mediha cgi - sensibilisation uml013   mediha cgi - sensibilisation uml
013 mediha cgi - sensibilisation umlAbdessamad Hamouch
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfYasushiTsubakik
 
Cyuml formation-uml-concepts-et-mise-en-oeuvre (1)
Cyuml formation-uml-concepts-et-mise-en-oeuvre (1)Cyuml formation-uml-concepts-et-mise-en-oeuvre (1)
Cyuml formation-uml-concepts-et-mise-en-oeuvre (1)CERTyou Formation
 
Cyuml formation-uml-concepts-et-mise-en-oeuvre
Cyuml formation-uml-concepts-et-mise-en-oeuvreCyuml formation-uml-concepts-et-mise-en-oeuvre
Cyuml formation-uml-concepts-et-mise-en-oeuvreCERTyou Formation
 
UML-jamil.pptx
UML-jamil.pptxUML-jamil.pptx
UML-jamil.pptxkdekde1
 
Modeliser une application_web
Modeliser une application_webModeliser une application_web
Modeliser une application_webMoez Moezm
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 

Similaire à Cours uml (20)

CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-Total
 
Rattrapage uml
Rattrapage umlRattrapage uml
Rattrapage uml
 
Plasticitérecherche2017
Plasticitérecherche2017Plasticitérecherche2017
Plasticitérecherche2017
 
Uml partie 1
Uml partie 1Uml partie 1
Uml partie 1
 
Uml 2
Uml 2Uml 2
Uml 2
 
Idm et ihm
Idm et ihmIdm et ihm
Idm et ihm
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptx
 
CM uml-concepts-avances
CM uml-concepts-avancesCM uml-concepts-avances
CM uml-concepts-avances
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
 
Génie Logiciel - Unified modeling language
Génie Logiciel - Unified modeling languageGénie Logiciel - Unified modeling language
Génie Logiciel - Unified modeling language
 
013 mediha cgi - sensibilisation uml
013   mediha cgi - sensibilisation uml013   mediha cgi - sensibilisation uml
013 mediha cgi - sensibilisation uml
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
1209 Master Sistemics
1209 Master Sistemics1209 Master Sistemics
1209 Master Sistemics
 
Cyuml formation-uml-concepts-et-mise-en-oeuvre (1)
Cyuml formation-uml-concepts-et-mise-en-oeuvre (1)Cyuml formation-uml-concepts-et-mise-en-oeuvre (1)
Cyuml formation-uml-concepts-et-mise-en-oeuvre (1)
 
Cyuml formation-uml-concepts-et-mise-en-oeuvre
Cyuml formation-uml-concepts-et-mise-en-oeuvreCyuml formation-uml-concepts-et-mise-en-oeuvre
Cyuml formation-uml-concepts-et-mise-en-oeuvre
 
UML-jamil.pptx
UML-jamil.pptxUML-jamil.pptx
UML-jamil.pptx
 
Modeliser une application_web
Modeliser une application_webModeliser une application_web
Modeliser une application_web
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
Methodo support
Methodo supportMethodo support
Methodo support
 

Cours uml

  • 1. Modélisation objet avec UML Pierre-Alain Muller pa.muller@essaim.univ-mulhouse.fr ESSAIM, 12 rue des Frères Lumière 68093 Mulhouse Cedex Version 2.0 1 Pierre-Alain Muller
  • 2. Au menu • La genèse d’UML • Un survol d’UML • La notation UML • Vers un processus unifié • La suite de l’histoire Version 2.0 2 Pierre-Alain Muller
  • 3. La genèse d’UML Version 2.0 3 Pierre-Alain Muller
  • 4. Complexité des logiciels • Les tendances – Programmation sans programmer – Micro-architectures (patterns) – Importance de l’architecture – Informatique distribuée – Multimédia Version 2.0 4 Pierre-Alain Muller
  • 5. De quoi a-t-on besoin ? • Un langage de modélisation – Notation claire – Sémantique précise • Un processus de génie logiciel Système Langage Processus Version 2.0 5 Pierre-Alain Muller
  • 6. Langage de modélisation • Générique • Expressif • Flexible (configurable, extensible) • Syntaxe et sémantique • Unification par convergence aujourd’hui Version 2.0 6 Pierre-Alain Muller
  • 7. Processus • Générique • Impossible à standardiser – Personnes, applications, cultures... • Cadre configurable • Unification par convergence dans le futur Version 2.0 7 Pierre-Alain Muller
  • 8. Comment modéliser ? • La manière de modéliser influence fortement – La compréhension du problème – La solution • Il n’existe pas de modèle universel – Jeux de modèles faiblement couplés – Multiplicité des niveaux d’abstraction • Les meilleurs modèles sont en prise sur le monde réel Version 2.0 8 Pierre-Alain Muller
  • 9. Evolution des méthodes • D’abord des méthodes structurées • A partir des années 80 émergence des méthodes orientées-objets • Les principales méthodes objets convergent – Différences superficielles – Notation, terminologie • L’expérience permet de séparer le bon grain de l’ivraie Version 2.0 9 Pierre-Alain Muller
  • 10. La prolifération des méthodes objet • Une cinquantaine de méthodes objet dans les cinq dernières années – Confusion, attentisme • Consensus autour d’idées communes – Objets, classes, associations, sous-systèmes, cas d’utilisation Version 2.0 10 Pierre-Alain Muller
  • 11. Rapprochement de Booch et OMT • Booch’93 et OMT-2 sont plus ressemblantes que différentes – Booch’93 adopte les associations, les diagrammes d'Harel, les traces d’événements – OMT-2 introduit les flots de messages et retire les diagrammes de flot de données • Booch-93 construction • OMT-2 analyse et abstraction Version 2.0 11 Pierre-Alain Muller
  • 12. L’unification des méthodes • La guerre des méthodes ne fait plus avancer la technologie des objets • Recherche d’un langage commun unique – Utilisable par toutes les méthodes – Adapté à toutes les phases du développement – Compatible avec toutes les techniques de réalisation Version 2.0 12 Pierre-Alain Muller
  • 13. Différentes sortes de systèmes • Logiciels – Ingénierie des logiciels • Logiciels et matériels – Ingénierie des systèmes • Personnes – Ingénierie des affaires Unification sur plusieurs domaines d’applications Version 2.0 13 Pierre-Alain Muller
  • 14. La notation unifiée • Basée sur les méthodes de BOOCH, OMT et OOSE • Influencée par les bonnes idées des autres méthodes • Mûrie par le travail en commun Version 2.0 14 Pierre-Alain Muller
  • 15. Principales influences • Souvent une histoire imbriquée Booch Catégories et sous-systèmes Embley Classes singletons et objets composites Fusion Description des opérations, numérotation des messages Gamma, et al.Frameworks, patterns, et notes Harel Automates (Statecharts) Jacobson Cas d’utilisation (use cases) Meyer Pré- et post-conditions Odell Classification dynamique, éclairage sur les événements OMT Associations Shlaer-MellorCycle de vie des objets Wirfs-Brock Responsabilités (CRC) Version 2.0 15 Pierre-Alain Muller
  • 16. Portée de la notation unifiée • Standardiser les artefacts du développement – Modèles, notation et diagrammes • Ne pas standardiser le processus – Dirigé par les cas d’utilisation – Centré sur l’architecture – Itératif et incrémental Version 2.0 16 Pierre-Alain Muller
  • 17. Les objectifs • Représenter des systèmes entiers • Etablir un couplage explicite entre les concepts et les artefacts exécutables • Prendre en compte les facteurs d’échelle • Créer un langage de modélisation utilisable à la fois par les humains et les machines Version 2.0 17 Pierre-Alain Muller
  • 18. Approche retenue • Identifier la sémantique des concepts de base • Classer les concepts • Construire un métamodèle • Choisir une notation graphique • Regrouper par niveau d’abstraction, complexité et domaine Version 2.0 18 Pierre-Alain Muller
  • 19. Métamodèle • Identification des concepts fondamentaux – Définition de la sémantique de ces concepts – Choix d’une représentation graphique • Métamodélisation d’UML avec UML – Description formelle des éléments de modélisation • Austère, pas pédagogique – Méthodologistes – Constructeurs d’outils Version 2.0 19 Pierre-Alain Muller
  • 20. Les modèles et les vues • Un modèle est un quanta de développement – Cohérence interne forte – Couplage faible avec les autres modèles – Relié à une phase de développement • Une vue est une projection au travers des éléments de modélisation – Graphique – Peut englober plusieurs modèles Version 2.0 20 Pierre-Alain Muller
  • 21. Exemples de modèles • Un système possède plusieurs modèles Système Modèle Modèle Modèle Modèle d’analyse de conception de réalisation de déploiement Version 2.0 21 Pierre-Alain Muller
  • 22. Les étapes • Octobre 95 – Unified Method V0.8 • Octobre 96 – UML V0.91 (The Unified Modeling Language for Object-Oriented Development) • Janvier 97 – UML 1.0 est soumise à l’OMG • Septembre 97 – Approbation par le comité technique de l’OMG Version 2.0 22 Pierre-Alain Muller
  • 23. Evolution de UML Version 2.0 23 Pierre-Alain Muller
  • 24. Acceptation de UML • UML est dans le domaine public • Soutenue par le marché – Microsoft, HP, IBM, Oracle... • Successeur naturel des méthodes de Booch, OMT et OOSE • UML est le fruit de l’expérience et des besoins de la communauté des utilisateurs Version 2.0 24 Pierre-Alain Muller
  • 25. Les partenaires • Courant 96 UML devient un enjeu stratégique • Consortium de partenaires – DEC, HP, i-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, TI et Unisys – IBM, Platinum, Data Access Technologies, Reich Technologies, Softeam, Taskon A/S Version 2.0 25 Pierre-Alain Muller
  • 26. En résumé • UML est une notation, pas une méthode • UML est un langage de modélisation objet • UML convient pour toutes les méthodes objet • UML est dans le domaine public Version 2.0 26 Pierre-Alain Muller
  • 27. Un survol d’UML Version 2.0 27 Pierre-Alain Muller
  • 28. Eléments de modélisation • Briques pour capturer la sémantique des applications • Pas accessibles directement aux utilisateurs • Représentation interne (outils) • Représentation externe (échange entre outils) Version 2.0 28 Pierre-Alain Muller
  • 29. Eléments de modélisation • Les objets – Une entité d’un monde réel ou virtuel • Les classes – La description d’un ensemble d’objets • Les états – Une étape de la vie d’un objet • Les tâches – Un flot de contrôle indépendant Version 2.0 29 Pierre-Alain Muller
  • 30. Eléments de modélisation • Les cas d’utilisation – Une manière dont un acteur utilise le système • Les collaborations – La réalisation d’un cas d’utilisation par une société d’objets collaborants • Les micro-architectures (patterns) – Un générateur pour la structure et l’interaction d’une société d’objets Version 2.0 30 Pierre-Alain Muller
  • 31. Eléments de modélisation • Les composants – Un module contenant des entités d’implémentation • Les noeuds – Un dispositif matériel capable d’exécuter du logiciel • Les paquetages – Une partition du modèle • Les notes – Un commentaire, une explication ou une annotation Version 2.0 31 Pierre-Alain Muller
  • 32. Relations • L’association – Une connexion sémantique entre instances • La généralisation – Une relation de classification • La dépendance – L’utilisation d’un élément par un autre • La trace – Dépendance inter-modèles Version 2.0 32 Pierre-Alain Muller
  • 33. Mécanismes communs • Les stéréotypes <<stéréotype>> – Extension des classes du métamodèle • Les étiquettes – Paire (nom, valeur) • Les notes – Commentaire textuel • Les contraintes {contrainte} – Relation sémantique entre éléments Version 2.0 33 Pierre-Alain Muller
  • 34. Types primitifs Booléen Liste Expression Multiplicité Point Chaîne Temps Nom Non interprété Version 2.0 34 Pierre-Alain Muller
  • 35. La notation UML Version 2.0 35 Pierre-Alain Muller
  • 36. Notation • Manipulée par les utilisateurs • Simple, intuitive, expressive, cohérente • Vues graphiques (multiples) des éléments de modélisation Version 2.0 36 Pierre-Alain Muller
  • 37. Les diagrammes d’UML • 9 types de diagrammes Diagramme Composants Classes Séquence Activité Objets Déploiement Cas d’utilisation Etats-Transitions Collaboration Version 2.0 37 Pierre-Alain Muller
  • 38. Diagrammes • Les diagrammes de classes – Les classes et les relations statiques • Les diagrammes d’objets – Les objets et les liens • Les diagrammes de séquence – Vision temporelle des interactions • Les diagrammes de collaboration – Vision spatiale des interactions Version 2.0 38 Pierre-Alain Muller
  • 39. Diagrammes (suite) • Les diagrammes de cas d’utilisation – Les acteurs et l’utilisation du système • Les diagrammes d’états-transitions – Le comportement des objets • Les diagrammes d’activités – Le flot de contrôle interne aux opérations Version 2.0 39 Pierre-Alain Muller
  • 40. Diagrammes (suite) • Les diagrammes de composants – Les composants d’implémentation et leurs relations • Les diagrammes de déploiement – La structure matérielle et la distribution des objets et des composants Version 2.0 40 Pierre-Alain Muller
  • 41. Paquetages • Organisation des modèles Nom de paquetage Cat Sub <<Catégorie>> <<Sous-système>> Version 2.0 41 Pierre-Alain Muller
  • 42. Diagrammes de classes • Les classes Nom de classe Nom de classe Nom de classe Véhicule <<Utilitaire>> <<Stéréotype>> Etat = testé Propriété Auteur = pam Version 2.0 42 Pierre-Alain Muller
  • 43. Diagrammes de classes • Les attributs et les opérations Nom de classe A Nom : type = valeur initiale +Attribut public #Attribut protégé Nom( ) -Attribut privé Attribut de classe +Opération publique( ) #Opération protégée( ) -Opération privée( ) Opération de classe( ) Version 2.0 43 Pierre-Alain Muller
  • 44. Diagrammes de classes • Les associations A B A B C D E Version 2.0 44 Pierre-Alain Muller
  • 45. Diagrammes de classes • Décoration des associations <Travaille pour Société Personne Pilote Société Employeur Personne Avion Personne Employé Passagers Version 2.0 45 Pierre-Alain Muller
  • 46. Diagrammes de classes • Multiplicité des associations –1 un et un seul – 0..1 zéro ou un – m..n de m à n –* de zéro à plusieurs – 0..* de zéro à plusieurs – 1..* d’un à plusieurs Version 2.0 46 Pierre-Alain Muller
  • 47. Diagrammes de classes • Exemples Personne Parents 2 Personne Compte Enfants * 1 0..* {Ordonnée} Parents d'élèves Classe Personne * {Sous-ensemble} * Délégués Version 2.0 47 Pierre-Alain Muller
  • 48. Diagrammes de classes • Restriction des associations (qualification) A Clé B Echiquier Ligne Ligne Case Colonne Colonne 1 Version 2.0 48 Pierre-Alain Muller
  • 49. Diagrammes de classes • Les classe-associations A B C attributs D opérations( ) Version 2.0 49 Pierre-Alain Muller
  • 50. Diagrammes de classes • Les agrégations – Connexions bidirectionnelles non symétriques 1 Voiture Moteur 1 Parent Propriétaire Personne 1..* Personne Immeuble * 0..* Enfants * 0..1 Agrégat Composant <S’occupe de * Version 2.0 50 Pierre-Alain Muller
  • 51. Diagrammes de classes • Généralisation simple et multiple Super-classe Classe plus générale Sous-classe Classe plus spécialisée Version 2.0 51 Pierre-Alain Muller
  • 52. Diagrammes de classes • Les discriminants partitionnent les sous-classes Animal Station Protection Nourriture Bipède Quadrupède Herbivore Carnivore A plumes A poils A écailles Lapin Version 2.0 52 Pierre-Alain Muller
  • 53. Diagrammes de classes • Exemple de contrainte Champignon {Exclusif} Agaricus Boletus Pas de mélange des dimensions Pied bleu Bolet de loup Version 2.0 53 Pierre-Alain Muller
  • 54. Diagrammes de classes • Relation de dépendance Liste <<Instanciation>> BAL <<Friend>> Itérateur Version 2.0 54 Pierre-Alain Muller
  • 55. Diagrammes de classes • Les interfaces – Jeu d’opérations ICommon IStyle Client StyleAgent ISpelling IGrammar {remote} StyleAgent Version 2.0 55 Pierre-Alain Muller
  • 56. Diagrammes d’objets • Représentation des objets Nom de l’objet Nom de l’objet : Classe : Classe BoutonOK : IHM::Contrôles::BoutonPoussoir Version 2.0 56 Pierre-Alain Muller
  • 57. Diagrammes d’objets • Représentation des objets et des liens Voiture Moteur : Voiture : Moteur 1 1 1 4 : Roue : Roue : Roue : Roue Roue Version 2.0 57 Pierre-Alain Muller
  • 58. Diagrammes d’objets • Décorations Passagers : Personne : Bus Conducteur : Personne : Destination Version 2.0 58 Pierre-Alain Muller
  • 59. Diagrammes de collaboration • Représentation spatiale d’une interaction : Ascenseur 1: Monter : Cabine 3: Fermer 2: Allumer : Porte : Lumière Version 2.0 59 Pierre-Alain Muller
  • 60. Diagrammes de collaboration • Représentation des messages Message Argument Argument A B Version 2.0 60 Pierre-Alain Muller
  • 61. Diagrammes de collaboration A • Exemples *[i :=1..n] : Message A.1, B.3 / Message B :X A B B p := Question [X>Y] : Message A A Version 2.0 61 Pierre-Alain Muller
  • 62. Diagrammes de collaboration • Syntaxe des envois de message – 4 : Afficher (x, y) -- message simple – 3.3.1 : Afficher (x, y) -- message imbriqué – 4.2 : âge := Soustraire (Aujourd’hui, DateDeNaissance) -- message imbriqué avec valeur retournée – [Age >= 18 ans] 6.2 : Voter () -- message conditionnel – 4.a, b.6 / c.1 : Allumer (Lampe) -- synchronisation avec d’autres flots d’exécution – 1 * : Laver () -- itération – 3.a, 3.b / 4 *||[i := 1..n] : Eteindre () -- itération parallèle Version 2.0 62 Pierre-Alain Muller
  • 63. Diagrammes de collaboration • Les objets actifs : Traitement de texte 2 : Ecrire 1 : Lire : Imprimante : Scanner Version 2.0 63 Pierre-Alain Muller
  • 64. Diagrammes de collaboration • La place de l’utilisateur 1: Venir me chercher au RDC : Personne : Ascenseur : Cabine 2: Ajouter destination RDC Version 2.0 64 Pierre-Alain Muller
  • 65. Diagrammes de collaboration • Représentation des patterns handler KeyboardHandler successor Chain of handler MIDIHandler Responsibility successor client handler EventHandler Sequencer Version 2.0 65 Pierre-Alain Muller
  • 66. Diagrammes de séquence • Représentation temporelle d’une interaction Un objet Un autre objet Encore un objet Un message Un autre message Version 2.0 66 Pierre-Alain Muller
  • 67. Diagrammes de séquence Un objet Un objet Un autre objet • Exemples Message Un message réflexif A B Un objet Message synchrone Créer Un autre objet Message asynchrone Détruire X Version 2.0 67 Pierre-Alain Muller
  • 68. Diagrammes de séquence Un objet A B C • Exemples x Message Récursion {y-x < 3 s} y Message A B {z-y < 1 s} Message z t Message {t’-t < 2 s} t’ A B while X Message loop end loop Version 2.0 68 Pierre-Alain Muller
  • 69. Diagrammes d’états-transitions • Représentation des automates – Statecharts (David Harel) Classe Automate 1 0..1 Etat intermédiaire Etat initial Etat final A B Version 2.0 69 Pierre-Alain Muller
  • 70. Diagrammes d’états-transitions A • Exemples Il fait trop chaud[ été ] Il fait trop chaud[ hiver ] Climatiser Aérer / Op1 Un état C entry: Op2 do: Op3 D2 exit: Op4 In on UnEvénement: Op5 A X Y / Op6 Out D1 H Version 2.0 70 Pierre-Alain Muller
  • 71. Diagrammes d’états-transitions • Exemples Téléviseur Basculé Attente Arrêt Basculé Télécommande Bouton enfoncé ^Téléviseur.Basculé Attente Version 2.0 71 Pierre-Alain Muller
  • 72. Diagrammes d’activités • Représentation d’un automate du point de vue des activités E1 do: Activité Activité finie E2 Version 2.0 72 Pierre-Alain Muller
  • 74. Les diagrammes de cas d’utilisation • Formalisés par I. Jacobson (Use Case) Système Cas d'utilisation X Acteur A Acteur B Cas d'utilisation Y Version 2.0 74 Pierre-Alain Muller
  • 75. Les diagrammes de cas d’utilisation • Relations entre cas d’utilisations Virement <<Etend>> par minitel Client distant Client local <<Utilise>> Virement Identification Version 2.0 75 Pierre-Alain Muller
  • 76. Les diagrammes de cas d’utilisation • Transition vers les objets Version 2.0 76 Pierre-Alain Muller
  • 77. Diagrammes de composants • Représentation des éléments de réalisation Spécification Générique Main Tâche Version 2.0 77 Pierre-Alain Muller
  • 78. Diagrammes de composants 2: load The extension is called 1: invoke (URL) 3: doit via a server thread, Client Server selected from a thread pool. 4: create L 5: create ISAPI Extension 10: write response 9: write response COM Server Object COM Object 8: do some operation 6: send a message Legacy DLL Message Queue 7: handle message Version 2.0 78 Pierre-Alain Muller
  • 79. Diagrammes de déploiement • Architecture matérielle et répartition du logiciel TX Console Serveur X <<TCP/IP>> Serveur 3 1 SGBD 1 1 * Imprimante PC <<RNIS>> <<Dispositif>> 1 Pilote 1 Maître Porte 1..10 * Version 2.0 79 Pierre-Alain Muller
  • 80. Diagrammes de déploiement Node1 Node1 Module A Module B xyz abc <process> ProcW Version 2.0 80 Pierre-Alain Muller
  • 81. Vers un processus unifié Version 2.0 81 Pierre-Alain Muller
  • 82. Objectifs • Construire des modèles de systèmes • Organiser le travail • Gérer le cycle de vie de A à Z • Gérer le risque • Obtenir de manière répétitive des produits de qualité constante Version 2.0 82 Pierre-Alain Muller
  • 83. Caractéristiques du processus • Dirigé par les cas d’utilisation • Centré sur l’architecture • Itératif • Incrémental Version 2.0 83 Pierre-Alain Muller
  • 84. Dirigé par les cas d’utilisation • Fil conducteur de toutes les activités Analyse Conception et Test Capturer, clarifier Réalisation Vérifier que les et valider les Réaliser les cas d’utilisation cas d’utilisation cas d’utilisation sont satisfaits Les cas d’utilisation relient ces tâches ensemble Version 2.0 84 Pierre-Alain Muller
  • 85. Dirigé par les cas d’utilisation Cas 1 <<Utilise>> Cas 2 Cas 3 Version 2.0 85 Pierre-Alain Muller
  • 86. Les cas d’utilisation et les tests • En Analyse – Modélisation en cas d’utilisation – Définition des cas de test • En conception – Génération des cas de test depuis les diagrammes d’interaction et les automates d’états finis Version 2.0 86 Pierre-Alain Muller
  • 87. Organisation du travail • Découpage par cas d’utilisation Analyse Conception et Test réalisation Architectes Intégrateurs Experts du et Concepteurs domaine Testeurs Programmeurs Version 2.0 87 Pierre-Alain Muller
  • 88. Centrage sur l’architecture • Recherche de la forme générale du système dès le début • Approche systématique pour trouver une “bonne” architecture – Support des cas d’utilisation – Adaptation aux changements – Pour et avec la réutilisation – Compréhensible intuitivement Version 2.0 88 Pierre-Alain Muller
  • 89. Architecture logicielle • Architecture = Eléments + Formes + Motivations • Architecture = Stratégie + Tactique Version 2.0 89 Pierre-Alain Muller
  • 90. La vision de l’architecte • Il n’existe pas une seule manière de regarder un système – Philippe Kruchten, le modèle 4 + 1 vues, IEEE Software, Nov. 95 Version 2.0 90 Pierre-Alain Muller
  • 91. Le modèle 4 + 1 vues • La vue logique • La vue de réalisation • La vue des processus • La vue de déploiement • La vue des cas d’utilisation Version 2.0 91 Pierre-Alain Muller
  • 92. La vue logique • Aspects statiques et dynamiques • Les éléments – Les objets – Les classes – Les collaborations – Les interactions – Les paquetages <<Catégorie>> Version 2.0 92 Pierre-Alain Muller
  • 93. La vue de réalisation • Organisation des modules dans l’environnement de développement • Les éléments – Les modules – Les sous-programmes – Les tâches (en tant qu’unités de programme, comme en Ada) – Les paquetages <<sous-système>> Version 2.0 93 Pierre-Alain Muller
  • 94. La vue des processus • Décomposition en flots d’exécution et synchronisation entre ces flots • Les éléments – Les tâches – Les threads – Les processus – Les interactions Version 2.0 94 Pierre-Alain Muller
  • 95. La vue de déploiement • Les ressources matérielles et l’implantation du logiciel dans ces resources • Les éléments – Les noeuds – Les modules – Les programmes principaux Version 2.0 95 Pierre-Alain Muller
  • 96. La vue des cas d’utilisation • La colle entre les autres vues • Les éléments – Les acteurs – Les cas d’utilisation – Les classes – Les collaborations Version 2.0 96 Pierre-Alain Muller
  • 97. Récapitulatif 9 XH GH V FD V 9 X H OR J LT X H 9 XH GH 9 XH GH V 9 XH GH G ·X WLOLV D WLR Q U p D OLV D WLR Q S UR F H V V X V G p S OR LH P H Q W ' LD J U D P P H $ F WH X U V GH FDV &DV G ·X WLOLV D WLR Q G ·X WLOLV D WLR Q ' LD J U D P P H & OD V V H V G H F OD V V H V 5 H OD WLR Q V ' LD J U D P P H 2 E MH WV & OD V V H V G ·R E MH WV / LH Q V 2 E MH WV / LH Q V ' LD J U D P P H $ F WH X U V $ F WH X U V 2 E MH WV GH Vp TXH QFH 2 E MH WV 2 E MH WV 0 H VVD JH V 0 H VVD JH V 0 H VVD JH V ' LD J U D P P H $ F WH X U V $ F WH X U V 2 E MH WV GH 2 E MH WV 2 E MH WV / LH Q V F R OOD E R U D WLR Q / LH Q V / LH Q V 0 H VVD JH V 0 H VVD JH 0 H VVD JH V Version 2.0 97 Pierre-Alain Muller
  • 98. Récapitulatif (suite) 9 XH GHV FDV 9 XH ORJLTXH 9 XH GH 9 XH GHV 9 XH GH G·XWLOLVDWLRQ UpDOLVDWLRQ SURFHVVXV GpSORLHPHQW ' LDJUDPPH ( WDWV ( WDWV ( WDWV G·pWDWV 7UDQVLWLRQV 7UDQVLWLRQV 7UDQVLWLRQV WUDQVLWLRQV ' LDJUDPPH $FWLYLWpV $FWLYLWpV $FWLYLWpV G·DFWLYLWp 7UDQVLWLRQV 7UDQVLWLRQV 7UDQVLWLRQV ' LDJUDPPH RPSRVDQWV RPSRVDQWV RPSRVDQWV GH FRPSRVDQWV ' LDJUDPPH 1 RHXGV GH /LHQV GpSORLHPHQW Version 2.0 98 Pierre-Alain Muller
  • 99. Architecture, processus et organisation • Les processus et l’organisation doivent être adaptés à l’architecture – Un processus pour l’architecture générale – Un processus par application, composant système ou couche – Un processus par type de système Version 2.0 99 Pierre-Alain Muller
  • 100. Une bonne architecture facilite • L’assemblage des composants pour des besoins génériques • Le partage de composants réutilisables • La navigation depuis les besoins jusqu’au code et réciproquement • La responsabilisation des développeurs • L’adaptation et l’évolution Version 2.0 100 Pierre-Alain Muller
  • 101. Approche itérative et incrémentale • Segmentation du travail • Concentration sur les besoins et les risques • Les premières itérations sont des prototypes – Expérimentation et validation des technologies – Planification • Les prototypes définissent le noyau de l’architecture Version 2.0 101 Pierre-Alain Muller
  • 102. Approche itérative et incrémentale • L’ordonnancement des itérations est basée sur les priorités entre cas d’utilisation et sur l’étude du risque Version 2.0 102 Pierre-Alain Muller
  • 103. Vue de l’encadrement • Des phases – Inception (étude d’oportunité) – Elaboration (architecture, planning) – Construction – Transition Inception Elaboration Construction Transition time Version 2.0 103 Pierre-Alain Muller
  • 104. Vue technique • Des itérations Version 2.0 104 Pierre-Alain Muller
  • 105. Synchronisation des deux vues • Itérations – Chaque cycle donne une génération – Chaque cycle est décomposé en phases – Chaque phase comprend des itérations • Incréments – Le logiciel évolue par incrément – Une itération correspond à un incrément – Les itérations peuvent évoluer en parallèle Version 2.0 105 Pierre-Alain Muller
  • 106. Synchronisation des deux vues Inception Elaboration Construction Transition Construction Construction Construction Architectural Architectural Generation 1 Conceptual Transition Prototype Prototype Release 1 Release 2 Release 3 Baseline Release Release Release Release Preliminary Architect. Architect. Devel. Devel. Devel. Transition Transition Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration Version 2.0 106 Pierre-Alain Muller
  • 107. Répartition des efforts Inception Elaboration Construction Transition Planning Analysis Architecture design Design Implementation Integration Test/assessment Preliminary Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration #1 #2 ... #n+1 #... #m #m+1 #m+2 .. Version 2.0 107 Pierre-Alain Muller
  • 108. UML en résumé Un langage Vers un de modélisation processus unifié unifié • Convergence • Convergence dans aujourd’hui le futur • L’unification • Consensus autour conduit à la d’un cadre standardisation directeur Version 2.0 108 Pierre-Alain Muller
  • 109. La suite de l’histoire Version 2.0 109 Pierre-Alain Muller
  • 110. Prochaines étapes • 1 er semestre 97 – Consolidation de la proposition UML 1.0 • Septembre 97 – Approbation du standard par le comité technique de l’OMG Version 2.0 110 Pierre-Alain Muller
  • 111. Pour en savoir plus • www.rational.com • otug@rational.com • www.essaim.univ-mulhouse.fr • uml@essaim.univ-mulhouse.fr – inscription automatique par mail à • majordomo@essaim.univ-mulhouse.fr • avec dans le corps du message : subscribe uml Version 2.0 111 Pierre-Alain Muller
  • 112. Pour en savoir plus • Modélisation objet avec UML – Pierre-Alain Muller, Eyrolles, 430 pages • Sommaire – Genèse d’UML – Approche objet – Notation UML – Encadrement des projets objet – Etude de cas Version 2.0 112 Pierre-Alain Muller