UML – UnifiedModelingLanguage4/4 : concepts avancés	<br />Yannick Prié<br />Département Informatique – Faculté des Science...
Objectifs de ce cours<br />Introduction à des concepts et des technologies plus avancés liés à UML, notamment au traitemen...
Plan<br />Outils UML<br />Métamodèle UML <br />Object constraint language<br />Model Driven Development<br />Conclusions s...
Deux types d’outils UML<br /><ul><li>Outils de dessins améliorés
intègrent les diagrammes comme simples formes
incapable de traiter les diagrammes : pas de sémantique
Outils UML utilisant la sémantique d’UML
gestion des diagrammes et du modèle
vérification de cohérence
génération de code
squelettes de classes / contenus des méthodes (peu)
rétro-ingénierie
diagrammes de classes
diagrammes de séquences (peu)
de plus en plus intégrés / en compléments d’autres outils
IDE, gestion de projet, du risque, des besoins, de la qualité, des tests, du workflow, etc.</li></ul>2010-2011 / Yannick P...
Modèles UML et code<br /><ul><li>Modèle avec
classes
attributs, associations
opérations
spécialisation
paquetages
interactions
Correspond à du code dans un langage de programmation modèle dans un langage
Java, C++, C#, python, etc.</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<...
Traduction simple en objet (Java)<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancé...
2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />CREATE TABLE eleve (<br />	eleve...
<ul><li>Pro-ingénierie
générer le code à partir du modèle
Upcoming SlideShare
Loading in...5
×

CM uml-concepts-avances

1,970

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,970
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
83
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

CM uml-concepts-avances

  1. 1. UML – UnifiedModelingLanguage4/4 : concepts avancés <br />Yannick Prié<br />Département Informatique – Faculté des Sciences et Technologies<br />Université Claude Bernard Lyon 1<br />2011-2012<br />
  2. 2. Objectifs de ce cours<br />Introduction à des concepts et des technologies plus avancés liés à UML, notamment au traitements automatiques des diagrammes pour générer des systèmes<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  3. 3. Plan<br />Outils UML<br />Métamodèle UML <br />Object constraint language<br />Model Driven Development<br />Conclusions sur UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  4. 4. Deux types d’outils UML<br /><ul><li>Outils de dessins améliorés
  5. 5. intègrent les diagrammes comme simples formes
  6. 6. incapable de traiter les diagrammes : pas de sémantique
  7. 7. Outils UML utilisant la sémantique d’UML
  8. 8. gestion des diagrammes et du modèle
  9. 9. vérification de cohérence
  10. 10. génération de code
  11. 11. squelettes de classes / contenus des méthodes (peu)
  12. 12. rétro-ingénierie
  13. 13. diagrammes de classes
  14. 14. diagrammes de séquences (peu)
  15. 15. de plus en plus intégrés / en compléments d’autres outils
  16. 16. IDE, gestion de projet, du risque, des besoins, de la qualité, des tests, du workflow, etc.</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  17. 17. Modèles UML et code<br /><ul><li>Modèle avec
  18. 18. classes
  19. 19. attributs, associations
  20. 20. opérations
  21. 21. spécialisation
  22. 22. paquetages
  23. 23. interactions
  24. 24. Correspond à du code dans un langage de programmation modèle dans un langage
  25. 25. Java, C++, C#, python, etc.</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  26. 26. Traduction simple en objet (Java)<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />enseignement<br />Cours<br />Eleve<br />-titre : string<br />-module : string<br />*<br />assiste<br />0..*<br />annee : Date<br />#eleves<br />coursSuivi<br /> #travailler(h int) <br /> …<br /> public associerCoursSuivi(unCours : Cours)<br /> { /* ecrire ici */<br /> }<br /> public nbCoursSuivi<br /> {<br /> return coursSuivi.length ;<br /> }<br /> protected travailler(h : int) <br /> {<br /> /* ecrire ici */<br /> }<br /> /* etc. */ <br />}<br />package enseignement ;<br />public class Eleve <br />{<br /> private Date annee ; <br /> private Court coursSuivi[] ;<br /> public Eleve() ;<br /> public Date getAnnee()<br /> { return annee ; }<br /> public void setAnnee(Date uneAnnee)<br /> { annee = uneAnnee ; }<br /> …<br />
  27. 27. 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />CREATE TABLE eleve (<br /> eleve_id NUMBER (5) ,<br /> annee DATE,<br /> PRIMARY KEY (eleve_id)<br />) ;<br />CREATE TABLE cours (<br /> eleve_id NUMBER (5) REFERENCES eleve(eleve_id) ,<br /> cours_id NUMBER (5) ,<br /> titre CHAR (128) ,<br /> module CHAR(48) ,<br /> PRIMARY KEY (cours_id)<br />) ;<br />Remarque : traduction en relationnel<br />eleve<br />cours<br />1<br />assiste<br />0..*<br />annee : date<br />-titre : string<br />-module : string<br />#eleves<br />cours<br />
  28. 28. <ul><li>Pro-ingénierie
  29. 29. générer le code à partir du modèle
  30. 30. outils : paramétrage (héritage, associations…)
  31. 31. Rétro-ingénierie
  32. 32. générer le modèle à partir de l’implantation
  33. 33. seuls les outils automatiques peuvent le faire
  34. 34. Ingénierie bidirectionnelle (roundtrip engineering)
  35. 35. synchronisation entre code et modèle</li></ul>UML<br />Implantation<br />Ingénierie UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  36. 36. Comment aller plus loin ?<br />Exprimer toute la sémantique objet des diagrammes (pas seulement les classes)<br />Métamodèle UML, Meta Object Facility<br />Etre capable d’exprimer des contraintes dans un langage formel<br />Object Constraint Language = OCL<br />Pour atteindre l’objectif de concevoir et programmer en même temps<br />Model Driven Development<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  37. 37. Plan<br />Outils UML<br />Métamodèle UML <br />Object constraint language<br />Model Driven Development<br />Conclusions sur UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  38. 38. Méta-modèle<br /><ul><li>A la base, l’ensemble de UML est décrit en UML
  39. 39. Méta-modèle UML
  40. 40. description formelle de tout ce qu’il est possible de construire et de la sémantique associée
  41. 41. nécessaire pour les fabricants d’outils « sémantiquement pertinents »
  42. 42. Dans le métamodèle
  43. 43. Essentiellement des diagrammes de classes avec contraintes et la description de la signification dynamique des éléments</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  44. 44. Packages du méta-modèle UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  45. 45. Extrait du méta-modèle<br />Exemple avec quelques classes de haut-niveau (genre classeur, en revenant sur les diagrammes qui les utilisent).<br />D’après OMG UML2 Superstructure, Figure 30<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  46. 46. (Larman, 2005)<br />Extension d’UML : stéréotypes<br />Relation d’extension <br />d’une métaclassedu métamodèle<br />« stereotype »<br />Authorship<br />« metaclass »<br />Element<br />author: String<br />status: String<br />définition<br />« authorship »<br />author = "craig"<br />author =  "tested"<br />« authorship »<br />Case<br />…<br />utilisation<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  47. 47. Encore plus loin : MOF<br /><ul><li>UML1  UML2
  48. 48. très gros travail sur le métamodèle pour que rien ne reste dans l’ombre (informel)
  49. 49. toutes les conséquences de l’utilisation d’un élément de modélisation doivent être connue et maîtrisées
  50. 50. Meta Objet Facility
  51. 51. Métamétamodèleautodécritpermettant de décrire des métamodèles
  52. 52. UML
  53. 53. CWM
  54. 54. Common WarehouseMetamodel : structure de BD </li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  55. 55. Interopérabilité entre outils UML<br /><ul><li>XML MetadataInterchange (OMG)
  56. 56. standard basé sur MOF pour échanger des modèles
  57. 57. syntaxe XML (eXtensibleMarkupLanguage)
  58. 58. XMI permet d’échanger des modèles UML entre outils UML
  59. 59. Remarques
  60. 60. génération de documentation HTML
  61. 61. transformation XSL
  62. 62. diagrammes
  63. 63. transformation en SVG (Standard vectorGraphics)
  64. 64. dans les faits, implémentations pas forcéments cohérentes ! </li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  65. 65. Plan<br />Outils UML<br />Métamodèle UML <br />Object constraint language<br />Model Driven Development<br />Conclusions sur UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  66. 66. Contrainte<br /><ul><li>Condition ou restriction sémantique associée à un ou plusieurs éléments de modèle exprimée
  67. 67. en langue standard (exemple : français)
  68. 68. dans un langage formel
  69. 69. Assertion qui doit être vraie
  70. 70. entre des appels d’opérations (qui changent le système)
  71. 71. à des moments précis par rapport aux appels d’opérations</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  72. 72. OCL Object Constraint Language<br /><ul><li>Standardisé par l’OMG
  73. 73. Permet d’exprimer des contraintes de façon formelle
  74. 74. Expression
  75. 75. d’invariants au sein d’un classe ou d’un type : bon fonctionnement des instances
  76. 76. contraintes au sein d’une opération : bon fonctionnement de l’opération
  77. 77. pré- et post- conditions d’opérations : avant et après l’exécution
  78. 78. cf.programmation par contrats (Meyer)
  79. 79. gardes : sur la modification de l’état d’un objet
  80. 80. expressions de navigation : chemins
  81. 81. Utilisation
  82. 82. génération de code
  83. 83. MDA</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  84. 84. OCL :troisexemples<br />Classe<br />nb_eleves<br />ajouter(eleve)<br />Pile<br />nb_element<br />ajouter(elt)<br />Personne<br />no_secu<br />sexe<br />context nom_élément [inv|pre|post] : expression de la contrainte<br />context Pile inv : <br /> self.nb_elements >= 0 -- nb_element = attribut de Pile<br />context Personne inv -- intégrité de l’objet personne <br /> / attributs no_secu et sexe<br />if sexe = "F"  then no_secu.commence_par() = 2<br />else no_secu.commence_par() = 1<br />endif<br />context Classe::ajouter(un_eleve : eleve) <br />pre classe_non_surchargée : nb_eleves <= 25<br />post : elevesexists(un_eleve)<br />+eleves<br />Personne<br />1<br />n<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  85. 85. Plan<br />Outils UML<br />Métamodèle UML <br />Object constraint language<br />Model Driven Development<br />Conclusions sur UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  86. 86. Modèles et code<br />Code seulement<br />Visualisationde code<br />Roundtripengineering<br />Centré sur le modèle<br />Modèle seulement<br />Modèle<br />Modèle<br />Modèle<br />Modèle<br />Code<br />Code<br />Code<br />Code<br />C’est quoi un modèle ?<br />Le code estle modèle<br />Code et modèle coexistent<br />Le modèleest le code<br />Il y a justeà concevoir<br />(d’après http://www-128.ibm.com/developerworks/rational/library/3100.html)<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  87. 87. MDA : Model Driven Architecture <br /><ul><li>Architecture pilotée par les modèles
  88. 88. mis en place et supporté par l'OMG
  89. 89. http://www.omg.org/mda/
  90. 90. UML comme langage de programmation
  91. 91. passer d’un développement centré sur le code à un développement centré sur les modèles
  92. 92. Pour permettre, de la façon la plus intégrée possible
  93. 93. productivité
  94. 94. portabilité
  95. 95. interopérabilité
  96. 96. maintenance
  97. 97. documentation</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  98. 98. MDA<br />Deux types de modèles <br />PIM (Platform Independant Model)<br />en UML<br />PSM (platform specific model)<br />pas obligatoirement en UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />PSM<br />PIM<br />Code<br />Règles et outilsde transformation<br />Règles et outilsde transformation<br />
  99. 99. MDD / MDE<br /><ul><li>Termes plus généraux, non OMG
  100. 100. MDD : Model DrivenDevelopment
  101. 101. MDE : Model Driven Engineering
  102. 102. Principe de développement qui consiste à considérer
  103. 103. qu’une part importante de l’activité consiste à créer des modèles décrivant les éléments d’un système,
  104. 104. que ces tâches doivent être instrumentées pour faciliter le travail des développeurs
  105. 105. gérer les modèles, leur évolution, leur stockage, leur échange, les liens à leur utilisation, etc.
  106. 106. Exemples
  107. 107. MDA – OMG
  108. 108. EMF : Eclipse Modeling Framework
  109. 109. autour de modèles exprimés en XMI</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  110. 110. MDA : conclusion<br /><ul><li>Pour certains
  111. 111. l’avenir de l’informatique
  112. 112. des outils existent
  113. 113. des « leaders » utilisent et promeuvent
  114. 114. D’autres sont moins convaincus
  115. 115. entre
  116. 116. « ça ne marchera jamais »
  117. 117. « je demande à voir »
  118. 118. Acceptation
  119. 119. possibilité de programmer mieux et plus vite (moins cher)
  120. 120. rapport apprentissage / gain
  121. 121. dans les entreprises
  122. 122. dans les écoles
  123. 123. A suivre… </li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  124. 124. Plan<br />Outils UML<br />Métamodèle UML <br />Object constraint language<br />Model Driven Development<br />Conclusions sur UML<br />2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  125. 125. Conclusions sur UML<br /><ul><li>Propriétés d’UML
  126. 126. unification de concepts de modélisation
  127. 127. puissance d’expression
  128. 128. nombreux formalismes (issus de méthodes existantes)
  129. 129. compromis formalisation / niveau d’abstraction / indépendance aux langages / sémantique fixée / extensibilité
  130. 130. Langage universel
  131. 131. pour de multiples domaines
  132. 132. pour diverses activités de la conception
  133. 133. dans différents modes
  134. 134. esquisse, plan, programme</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  135. 135. Conclusions sur UML<br /><ul><li>Standard international : adopté un peupartout
  136. 136. les diagrammessont simples, facilesà lire et àcommuniquer
  137. 137. beaucoup de variantes locales
  138. 138. outilspuissants
  139. 139. dessin
  140. 140. pro et rétroingénierie
  141. 141. MDA
  142. 142. UML n’estqu’unlangage
  143. 143. encapsule tout oupartie de la sémantique de description
  144. 144. mais ne dit pas comment construire les modèles
  145. 145. Il faututiliser des méthodes
  146. 146. démarches de conception et d’utilisation des diagrammes et des modèles qui expliquent les bonnesmanières de concevoir</li></ul>2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 | UML : concepts avancés<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×