SlideShare une entreprise Scribd logo

Cours uml

cours uml

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

Recommandé

Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia 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
 
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
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriMansouri Khalifa
 
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
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationLilia Sfaxi
 

Contenu connexe

Tendances

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
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vieHarun Mouad
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieMohammed Amine Mostefai
 
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élisationNassim Amine
 
UML Part 3- diagramme de séquences mansouri
UML Part 3- diagramme de séquences mansouriUML Part 3- diagramme de séquences mansouri
UML Part 3- diagramme de séquences mansouriMansouri Khalifa
 
UML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriUML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriMansouri Khalifa
 
Méthodologie 2 Track Unified Process
Méthodologie 2 Track Unified ProcessMéthodologie 2 Track Unified Process
Méthodologie 2 Track Unified ProcessZakaria Bouazza
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
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
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
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
 
Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsAmir Souissi
 

Tendances (20)

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
 
UML Diagrammes Dynamiques
UML Diagrammes DynamiquesUML Diagrammes Dynamiques
UML Diagrammes Dynamiques
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vie
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
 
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 Part 3- diagramme de séquences mansouri
UML Part 3- diagramme de séquences mansouriUML Part 3- diagramme de séquences mansouri
UML Part 3- diagramme de séquences mansouri
 
UML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriUML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouri
 
Méthodologie 2 Track Unified Process
Méthodologie 2 Track Unified ProcessMéthodologie 2 Track Unified Process
Méthodologie 2 Track Unified Process
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Uml
UmlUml
Uml
 
UML Diagrammes Statiques
UML Diagrammes StatiquesUML Diagrammes Statiques
UML Diagrammes Statiques
 
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
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Igl cours 3 - introduction à uml
Igl   cours 3 - introduction à umlIgl   cours 3 - introduction à uml
Igl cours 3 - introduction à uml
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
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
 
Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
 

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 & cas d'utilisation
Uml & cas d'utilisationUml & cas d'utilisation
Uml & cas d'utilisation
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
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
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)
 
In01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancéesIn01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancées
 

Similaire à Cours uml

CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalAhmed Mekkaoui
 
Rattrapage uml
Rattrapage umlRattrapage uml
Rattrapage umlvangogue
 
AnalyseEtConceptionChapire1.pptx
AnalyseEtConceptionChapire1.pptxAnalyseEtConceptionChapire1.pptx
AnalyseEtConceptionChapire1.pptxhoudaounaies
 
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
Cyuml formation-uml-concepts-et-mise-en-oeuvreCyuml formation-uml-concepts-et-mise-en-oeuvre
Cyuml formation-uml-concepts-et-mise-en-oeuvreCERTyou Formation
 
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
 
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
 
AnalyseEtConceptionChapire1.pptx
AnalyseEtConceptionChapire1.pptxAnalyseEtConceptionChapire1.pptx
AnalyseEtConceptionChapire1.pptx
 
Uml 2
Uml 2Uml 2
Uml 2
 
Idm et ihm
Idm et ihmIdm et ihm
Idm et ihm
 
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
 
BDD-UML.pptx
BDD-UML.pptxBDD-UML.pptx
BDD-UML.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
Cyuml formation-uml-concepts-et-mise-en-oeuvreCyuml formation-uml-concepts-et-mise-en-oeuvre
Cyuml formation-uml-concepts-et-mise-en-oeuvre
 
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)
 
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
 

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