Introduction       D´finition
                    e                Premier exemple      Canevas de description   Deuxi`me e...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description           Deuxi...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple       Canevas de description          De...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description     Deuxi`me ex...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Introduction       D´finition
                    e                Premier exemple   Canevas de description   Deuxi`me exem...
Prochain SlideShare
Chargement dans…5
×

Introduction aux patrons logiciels

2 973 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 973
Sur SlideShare
0
Issues des intégrations
0
Intégrations
85
Actions
Partages
0
Téléchargements
61
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction aux patrons logiciels

  1. 1. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Introduction aux Patrons Logiciels Software Patterns Gerson Suny´ e gerson.sunye@univ-nantes.fr Master Alma – Universit´ de Nantes e April 25, 2009 G. Suny´ e Master Alma – U. Nantes 1/ 78 Introduction aux Patrons Logiciels
  2. 2. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e 1 Introduction 2 D´finition e 3 Premier exemple 4 Canevas de description 5 Deuxi`me exemple e 6 Caract´ristiques e G. Suny´ e Master Alma – U. Nantes 2/ 78 Introduction aux Patrons Logiciels
  3. 3. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e 1 Introduction 2 D´finition e 3 Premier exemple 4 Canevas de description 5 Deuxi`me exemple e 6 Caract´ristiques e G. Suny´ e Master Alma – U. Nantes 3/ 78 Introduction aux Patrons Logiciels
  4. 4. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Bibliographie (1/2) Software Patterns. James Coplien. SIGS Books. New York, 1996. Smalltalk Patterns: Best Practices. Kent Beck. Prentice Hall, 1997, 256 pp., ISBN 0-13-476904-X. Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm,Ralph Johnson, and John Vlissides. Addison Wesley. October 1994. Real-Time Design Patterns. Bruce Powel Douglass. Addison Wesley. 2003. G. Suny´ e Master Alma – U. Nantes 4/ 78 Introduction aux Patrons Logiciels
  5. 5. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Bibliographie (2/2) Pattern Languages of Program Design. Coplien & Schmidt 1 Vlissides, Coplien, & Kerth 2 3 Martin, Riehle, Buschmann 4 Harrison, Foote, Rohnert G. Suny´ e Master Alma – U. Nantes 5/ 78 Introduction aux Patrons Logiciels
  6. 6. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Liens Patterns Home Page: http://hillside.net/patterns/ Portland Pattern Repository: http://c2.com/ppr/index.html Cetus Links: http://www.objenv.com/cetus/oo patterns.html Patterns FAQ: http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html G. Suny´ e Master Alma – U. Nantes 6/ 78 Introduction aux Patrons Logiciels
  7. 7. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Motivation R´utilisation. e Passage de connaissances. Communication entre d´veloppeurs. e Documentation. G. Suny´ e Master Alma – U. Nantes 7/ 78 Introduction aux Patrons Logiciels
  8. 8. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Historique (1/5) Christopher Alexander: Notes on the Synthesis of Form, Harvard University Press, 1 1964. 2 The Oregon Experiment, Oxford University Press, 1975. 3 A Pattern Language: Towns, Buildings, Construction, Oxford University Press, 1977. 4 The Timeless Way of Building, Oxford University Press, 1979. G. Suny´ e Master Alma – U. Nantes 8/ 78 Introduction aux Patrons Logiciels
  9. 9. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Historique (2/5) Dans [TTWoB] Alexander propose un paradigme pour l’architecture, bas´ sur trois concepts: e The Quality (a.k.a. “the Quality Without a Name”). 1 The Gate. 2 The Way (a.k.a. “the Timeless Way”). 3 G. Suny´ e Master Alma – U. Nantes 9/ 78 Introduction aux Patrons Logiciels
  10. 10. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Historique (3/5) Voir la page History of Patterns dans le WikiWikiWeb de Ward Cunningham: http://c2.com/cgi-bin/wiki?HistoryOfPatterns Using Pattern Languages for Object-Oriented Programs. Ward Cunningham and Kent Beck. OOPSLA’87. G. Suny´ e Master Alma – U. Nantes 10/ 78 Introduction aux Patrons Logiciels
  11. 11. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Historique (4/5) Advanced C++ Programming Styles and Idioms. Jim Coplien, 1991. Workshops OOPSLA de 90 ` 92. a G. Suny´ e Master Alma – U. Nantes 11/ 78 Introduction aux Patrons Logiciels
  12. 12. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Historique (5/5) Hillside Group (Conf´rences PLoP): Kent Beck, Grady Booch, e Richard Gabriel et al. OOPSLA 1993, 94. Design Patterns [GoF]. 1995. G. Suny´ e Master Alma – U. Nantes 12/ 78 Introduction aux Patrons Logiciels
  13. 13. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e 1 Introduction 2 D´finition e 3 Premier exemple 4 Canevas de description 5 Deuxi`me exemple e 6 Caract´ristiques e G. Suny´ e Master Alma – U. Nantes 13/ 78 Introduction aux Patrons Logiciels
  14. 14. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition e D´finition g´n´rale: Un patron est une solution ´prouv´e d’un e ee e e probl`me dans un contexte. e Alexander: Chaque patron est une r`gle en trois parties, qui e exprime la relation entre un certain contexte, un probl`me et une solution. e G. Suny´ e Master Alma – U. Nantes 14/ 78 Introduction aux Patrons Logiciels
  15. 15. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (TWoB 1/3) e Plus qu’une solution ` un probl`me dans un contexte: a e “Comme un ´l´ment du monde, chaque patron est une relation entre un ee certain contexte, un certain syst`me de forces qui se produisent ` e a plusieurs reprises dans ce contexte, et une certaine configuration spatiale qui permet ` ces forces de se constituer. (. . . ) a G. Suny´ e Master Alma – U. Nantes 15/ 78 Introduction aux Patrons Logiciels
  16. 16. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (TWoB 2/3) e (. . . ) Comme un ´l´ment du langage, un patron est une instruction qui ee montre comment cette configuration spatiale peut ˆtre utilis´e, ` e ea r´p´tition, pour constituer le syst`me de forces, partout o` le contexte le ee e u rend relevant. (. . . ) G. Suny´ e Master Alma – U. Nantes 16/ 78 Introduction aux Patrons Logiciels
  17. 17. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (TWoB 3/3) e (. . . ) En bref, un patron est en mˆme temps une chose qui se produit e dans le monde, et la r`gle qui nous dit comment la cr´er, et quand nous e e devons la cr´er. C’est donc les deux, un processus et une chose; la e description d’une chose vivante et la description du processus qui g´n´rera cette chose (TWoB pp. 247).” ee G. Suny´ e Master Alma – U. Nantes 17/ 78 Introduction aux Patrons Logiciels
  18. 18. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (Riehle et Zullighoven) e Dirk Riehle et Heinz Zullighoven dans Understanding and Using Patterns in Software Development: “Un patron est l’abstraction d’une forme concr`te qui se e reproduit dans un contexte sp´cifique et non arbitraire”. e G. Suny´ e Master Alma – U. Nantes 18/ 78 Introduction aux Patrons Logiciels
  19. 19. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (Coplien 1/2) e Jim Coplien, dans Software Patterns: “J’aime bien faire la relation entre cette d´finition et les e patrons de couture. Je pourrais vous expliquer comment faire un habit en sp´cifiant la route que les ciseaux doivent suivre ` travers e a le tissu en terme d’angles et longueur de coupe. (. . . ) G. Suny´ e Master Alma – U. Nantes 19/ 78 Introduction aux Patrons Logiciels
  20. 20. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (Coplien 2/2) e (. . . ) Ou alors, je peux vous donner un patron. En lisant la sp´cification, vous n’auriez aucune id´e de ce qui ´tait e e e en train d’ˆtre fait, ou si vous aviez fait ce qu’il fallait, e avant la fin. Le patron annonce le produit: il est la r`gle pour r´aliser e e une chose, et aussi, dans diff´rents aspects, la chose e elle-mˆme.” e G. Suny´ e Master Alma – U. Nantes 20/ 78 Introduction aux Patrons Logiciels
  21. 21. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (wiki 1/3) e Wiki wiki web: Les patrons de conception sont une technique utile pour la transmission de connaissances sur des probl`mes e r´currents dans le d´veloppement logiciel. e e G. Suny´ e Master Alma – U. Nantes 21/ 78 Introduction aux Patrons Logiciels
  22. 22. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (wiki 2/3) e Wiki wiki web (bis): Un patron de conception nomme, motive et explique syst´matiquement une conception g´n´rique qui s’adresse e ee ` un probl`me de conception r´current dans les syst`mes a e e e ` objets. a Il d´crit le probl`me, la solution, le moment d’appliquer e e cette solution et ses cons´quences. (. . . ) e G. Suny´ e Master Alma – U. Nantes 22/ 78 Introduction aux Patrons Logiciels
  23. 23. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e D´finition (wiki 3/3) e (. . . ) Il donne aussi des conseils et des exemples de mise en oeuvre. La solution est un arrangement d’objets et classes qui r´solvent le probl`me. e e Elle est personnalis´e et mise en oeuvre pour r´soudre le e e probl`me dans un contexte particulier. e G. Suny´ e Master Alma – U. Nantes 23/ 78 Introduction aux Patrons Logiciels
  24. 24. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Contre-d´finition (1/2) e Qu’est-ce que n’est pas un patron? Une r`gle. e Une recette consacr´e. e Une structure de donn´es. e Une solution isol´e ` un probl`me dans un contexte. ea e G. Suny´ e Master Alma – U. Nantes 24/ 78 Introduction aux Patrons Logiciels
  25. 25. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Contre-d´finition (2/2) e Contre-exemple: Probl`me : comment allouer des objets dans la m´moire? e e Contexte : un syst`me ` objets dans la m´moire virtuelle. e a e Solution : ex´cuter quelques probl`mes typiques et d´couvrir e e e quels objets communiquent fr´quemment et les e placer dans une mˆme page. e G. Suny´ e Master Alma – U. Nantes 25/ 78 Introduction aux Patrons Logiciels
  26. 26. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Langages de patrons (1/2) Chaque patron est une phrase dans un langage de patrons. Un langage de patrons est une collection de patrons. Les patrons forment un graphe. Chaque patron produit un contexte pour ceux qui le suivent. G. Suny´ e Master Alma – U. Nantes 26/ 78 Introduction aux Patrons Logiciels
  27. 27. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Langages de patrons (2/2) Chaque patron se construit dans le contexte de ceux qui l’ont pr´c´d´. eee Un langage de patrons d´finit un style architectural. e Les patrons isol´s ont une utilit´ limit´e. e e e G. Suny´ e Master Alma – U. Nantes 27/ 78 Introduction aux Patrons Logiciels
  28. 28. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e 1 Introduction 2 D´finition e 3 Premier exemple 4 Canevas de description 5 Deuxi`me exemple e 6 Caract´ristiques e G. Suny´ e Master Alma – U. Nantes 28/ 78 Introduction aux Patrons Logiciels
  29. 29. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Exemple I Nom, probl`me, contexte e Nom : Cinq couleurs dans l’assiette. Probl`me : Comment rendre app´tissant, ` peu de frais, un e e a plat simple tel qu’une assiette de crudit´s? e Contexte : La cuisine au quotidien, notamment la cuisine familiale o` les parents et les enfants partagent la u mˆme table, le mˆme repas. e e G. Suny´ e Master Alma – U. Nantes 29/ 78 Introduction aux Patrons Logiciels
  30. 30. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Forces Cinq couleurs dans l’assiette Au jour le jour, la plupart d’entre nous avons peu de temps ` a consacrer ` la pr´paration des repas. a e Les techniques culinaires avanc´es sont peu famili`res du e e grand public. La pr´paration des plats contribue de fa¸on significative au e c plaisir des repas. Une certaine diversit´ des aliments est n´cessaire pour une e e nourriture ´quilibr´e. e e Les enfants mangent plus volontiers quand l’assiette est app´tissante. e G. Suny´ e Master Alma – U. Nantes 30/ 78 Introduction aux Patrons Logiciels
  31. 31. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Solution Cinq couleurs dans l’assiette Pour une mˆme assiette, choisir les ingr´dients de fa¸on ` ce e e ca que les cinq couleurs suivantes soient pr´sentes: blanc, vert, e rouge, jaune, noir. Les quantit´s des ingr´dients pour chaque couleur n’ont pas e e besoin d’ˆtre identiques: une seule touche de couleur peut e suffire. Les couleurs peuvent ˆtre approximatives: par exemple, un e ingr´dient orange peut donner la couleur rouge ou jaune en e fonction du reste de l’assiette. G. Suny´ e Master Alma – U. Nantes 31/ 78 Introduction aux Patrons Logiciels
  32. 32. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Exemples Cinq couleurs dans l’assiette Ce patron convient particuli`rement bien pour la composition e d’assiettes de crudit´s. e Les couleurs courantes dans les crudit´s sont le vert (salade, e germes), le blanc (navet, c´leri), le rouge (radis, tomate). e Le noir et le jaune sont moins r´pandus: une simple olive noir e au milieu de l’assiette, un quartier ou une rondelle de citron sur le bord transforment une assiette banale en une assiette app´tissante. e La salade grecque, par exemple, respecte ce patron: tomates, concombre, feta, olives noires, huile d’olive. G. Suny´ e Master Alma – U. Nantes 32/ 78 Introduction aux Patrons Logiciels
  33. 33. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Impl´mentation e Cinq couleurs dans l’assiette La couleur de la porcelaine ou de la fa¨ ıence, les d´corations e peintes sur l’assiette peuvent ˆtre prises en compte pour e obtenir le compte des couleurs. On aura dans sa cuisine en permanence des ingr´dients qui e apportent les couleurs: olives noires et vertes. citrons. tomates, tomates cerise. salade, germes de luzerne. G. Suny´ e Master Alma – U. Nantes 33/ 78 Introduction aux Patrons Logiciels
  34. 34. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Auteur Cinq couleurs dans l’assiette Origine : Cuisine chinoise traditionnelle, notamment la cuisine macrobiotique. Auteur : Bruno Borghi. Mont St-Michel, 7 juin 2000. G. Suny´ e Master Alma – U. Nantes 34/ 78 Introduction aux Patrons Logiciels
  35. 35. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e 1 Introduction 2 D´finition e 3 Premier exemple 4 Canevas de description 5 Deuxi`me exemple e 6 Caract´ristiques e G. Suny´ e Master Alma – U. Nantes 35/ 78 Introduction aux Patrons Logiciels
  36. 36. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Canevas de description Les patrons sont d´crits sous la forme litt´raire. e e Ils ne sont que “documentation”. Les composants essentiels sont: Nom, Probl`me, Contexte, e Forces et Solution. Il existe plusieurs canevas de description. Exemples: GoF, Alexander, Coplien, Cockburn, Portland. G. Suny´ e Master Alma – U. Nantes 36/ 78 Introduction aux Patrons Logiciels
  37. 37. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Canevas essentiel Contexte. Nom. Probl`me. e Forces. Solution. Auteur et date. G. Suny´ e Master Alma – U. Nantes 37/ 78 Introduction aux Patrons Logiciels
  38. 38. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Contexte La place du patron dans le langage de patrons. Habituellement n´glig´ ou pas mis en valeur dans les patrons ee logiciels. G. Suny´ e Master Alma – U. Nantes 38/ 78 Introduction aux Patrons Logiciels
  39. 39. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Nom (1/2) Un label significatif qui traduit le principe du patron. Le nom a tendance ` ˆtre bas´ sur la solution. ae e Il doit ˆtre court, concis, riche s´mantiquement, r´v´lateur ou e e ee suggestif. Les noms ing´nieux (mais pas trop) sont m´morables. e e G. Suny´ e Master Alma – U. Nantes 39/ 78 Introduction aux Patrons Logiciels
  40. 40. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Nom (2/2) Le nom devient une partie du vocabulaire du domaine. Les patrons du GoF sont des analogies (Bridge, Fa¸ade, etc.). c G. Suny´ e Master Alma – U. Nantes 40/ 78 Introduction aux Patrons Logiciels
  41. 41. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Probl`me e Habituellement, le probl`me est pos´ comme une question, ou e e comme un ´nonc´. e e C’est la premi`re chose que l’on regarde. e La compr´hension du probl`me vient avec l’analyse des forces. e e G. Suny´ e Master Alma – U. Nantes 41/ 78 Introduction aux Patrons Logiciels
  42. 42. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Forces (1/3) Le coeur d’un patron. La totalit´ est un champ de forces ou compromis. e Les patrons individuels encapsulent des forces en relation. Permettent de traiter un patron ` la fois. a G. Suny´ e Master Alma – U. Nantes 42/ 78 Introduction aux Patrons Logiciels
  43. 43. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Forces (2/3) Qu’est-ce qui fait une force? Ce qui rend le probl`me complexe. e Pourquoi les solutions ´videntes ne sont pas ad´quates. e e Les facteurs qui contrecarrent d’autres approches d’ou autres solutions. Les contradictions et les conflits. G. Suny´ e Master Alma – U. Nantes 43/ 78 Introduction aux Patrons Logiciels
  44. 44. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Forces (3/3) Les patrons ´quilibrent les forces dans un contexte: e Cout Un p a tt e rn d a ns u n c o nt e xt e Un a utr e c o nt e xt e , u n a utr e p a tt e rn Maintenabilité Sureté G. Suny´ e Master Alma – U. Nantes 44/ 78 Introduction aux Patrons Logiciels
  45. 45. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Forces (Alexander 1/2) “Personne ne deviendra un meilleur concepteur en suivant aveugl´ment une m´thode (. . . ) e e G. Suny´ e Master Alma – U. Nantes 45/ 78 Introduction aux Patrons Logiciels
  46. 46. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Forces (Alexander 2/2) (. . . ) Si on essaye de comprendre l’id´e que l’on peut e cr´er des patrons abstraits, en ´tudiant l’implication d’un e e syst`me limit´ de forces, et que l’on peut cr´er des e e e nouvelles formes par la combinaison de ces patrons – et r´aliser que cela ne marchera qu’avec des patrons qui e traitent avec un syst`me de forces dont l’interaction e interne est tr`s dense et dont l’interaction avec d’autres e forces du monde est tr`s faible – alors, dans le processus e d’essai pour cr´er ces diagrammes ou patrons pour soi, e on peut trouver l’id´e centrale ` laquelle ce livre se e a consacre”. Pr´face de Notes on Synthesis of Form. e G. Suny´ e Master Alma – U. Nantes 46/ 78 Introduction aux Patrons Logiciels
  47. 47. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Solution (1/2) Les solutions ´quilibrent les forces. e Les solutions s’appliquent au syst`me comme un tout: elles e sont transformables et non fixes. G. Suny´ e Master Alma – U. Nantes 47/ 78 Introduction aux Patrons Logiciels
  48. 48. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Solution (2/2) Le centre d’int´rˆt de la plupart des gens. ee Souvent, un patron d´crit une solution directe et simpliste: il e faut donc essayer de r´soudre le probl`me ` un niveau plus e e a profond. Plutˆt que recenser les solutions, les patrons doivent o encourager le lecteur ` manoeuvrer les forces et remanier les a solutions. G. Suny´ e Master Alma – U. Nantes 48/ 78 Introduction aux Patrons Logiciels
  49. 49. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Solution (Alexander) “Encore, le patron op`re sur la totalit´: ils ne sont pas e e des parties, qui peuvent ˆtre ajout´es – mais des e e relations, qui s’imposent aux pr´c´dentes pour mieux ee d´tailler, mieux structurer et donner plus de substance – e de mani`re ` faire ´merger graduellement, mais toujours ea e dans sa totalit´, la substance de la construction, dans e chaque phase de sa croissance. Alexander, The Timeless Way of Building, p. 459. G. Suny´ e Master Alma – U. Nantes 49/ 78 Introduction aux Patrons Logiciels
  50. 50. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Canevas GoF (1/3) Nom : Un label significatif qui traduit le principe du patron. Intention : Le probl`me de conception concern´. e e Alias : Autres noms connus, s’il en existe. Motivation : Un exemple d’application du probl`me de e conception en cause et la solution propos´e. e Indications d’utilisation : Le contexte dans lequel le patron peut ˆtre appliqu´. e e G. Suny´ e Master Alma – U. Nantes 50/ 78 Introduction aux Patrons Logiciels
  51. 51. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Canevas GoF (2/3) Structure : Le diagramme de classes (OMT) repr´sentant la e solution. Participants : Le rˆle des diff´rentes classes qui composent le o e diagramme. Collaborations : La collaboration entre les participants. Cons´quences : Compromis et b´n´fices de son utilisation. e ee G. Suny´ e Master Alma – U. Nantes 51/ 78 Introduction aux Patrons Logiciels
  52. 52. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Canevas GoF (3/3) Impl´mentation : Astuces et techniques pour l’impl´menter. e e Exemples de code : Extraits de code exemple en Smalltalk et C++. Utilisations connues : R´f´rences ` des syst`mes r´els (au moins ee a e e deux) o` le patron est utilis´. u e Patrons analogues : Les patrons en relation ´troite avec celui-ci, e leurs diff´rences, la mani`re de les associer. e e G. Suny´ e Master Alma – U. Nantes 52/ 78 Introduction aux Patrons Logiciels
  53. 53. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Canevas de Coplien Nom. Contexte. Probl`me. e Forces. Solution. Croquis. Contexte r´sultant. e Raisonnement. G. Suny´ e Master Alma – U. Nantes 53/ 78 Introduction aux Patrons Logiciels
  54. 54. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Canevas de Cockburn (1/2) Onglet. Forces en ´quilibre. e Facteurs affectant l’´quilibre. e Action recommand´e. e Contexte r´sultant. e Effet de surdosage. G. Suny´ e Master Alma – U. Nantes 54/ 78 Introduction aux Patrons Logiciels
  55. 55. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Canevas de Cockburn (2/2) Patrons en relation. Sp´cialisations. e Principes concern´s. e Situations (exemples). Lecture. G. Suny´ e Master Alma – U. Nantes 55/ 78 Introduction aux Patrons Logiciels
  56. 56. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e 1 Introduction 2 D´finition e 3 Premier exemple 4 Canevas de description 5 Deuxi`me exemple e 6 Caract´ristiques e G. Suny´ e Master Alma – U. Nantes 56/ 78 Introduction aux Patrons Logiciels
  57. 57. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Applicabilit´ e . . . une fois que vous avez d´cid´ de vos objets et de leurs ee associations, c’est l’heure de d´terminer comment vos objets sont e plac´s par rapport ` l’espace d’adressage dans lequel ils vont e a s’ex´cuter. Ce patron vous aide ` d´terminer o` ils sont plac´s et e ae u e leur position relative aux fronti`res de l’espace d’adressage. e G. Suny´ e Master Alma – U. Nantes 57/ 78 Introduction aux Patrons Logiciels
  58. 58. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Probl`me e Parfois, un mˆme objet doit apparaˆ sur diff´rents contextes e ıtre e informatiques (i.e. espaces d’adressage). Comment pouvons nous rendre transparent la diff´rence entre un e et plusieurs (e.g. local vs. distribu´) espaces d’adressage? e G. Suny´ e Master Alma – U. Nantes 58/ 78 Introduction aux Patrons Logiciels
  59. 59. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Forces (1/8) Complexit´. e Distribution. Disponibilit´ d’information. e Coˆt. u Performance. G. Suny´ e Master Alma – U. Nantes 59/ 78 Introduction aux Patrons Logiciels
  60. 60. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Forces (2/8) Souvent, les syst`mes informatiques doivent ˆtre mis en œuvre sur e e des multiples espaces d’adressage, pour diff´rentes raisons: e Coˆt. u Taille, R´partition physique. e Diversit´ des environnements de programmation. e Normalisation. etc. G. Suny´ e Master Alma – U. Nantes 60/ 78 Introduction aux Patrons Logiciels
  61. 61. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Forces (3/8) Parfois, ces syst`mes peuvent ˆtre facilement d´compos´s en e e e e objets, vivant chacun dans un espace d’adressage. Quelques objets seront contraints ` exister dans certains espaces a d’adressage par le couplage avec le mat´riel (senseurs, lecteurs de e disque, etc.). D’utres objets peuvent ˆtre plac´s en fonction de ces couplages. e e G. Suny´ e Master Alma – U. Nantes 61/ 78 Introduction aux Patrons Logiciels
  62. 62. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Forces (4/8) Parfois, cependant, un concept existe en deux espaces diff´rents, et e il est tr`s difficile de le d´composer. e e Ou alors, un objet doit collaborer avec d’autres objets, dans plus d’un espace adressage, parce qu’il a besoin d’informations de plus d’un espace d’adressage pour accomplir son comportement. De mˆme, des demandes (asynchrones) arrivant d’objets des deux e espaces doivent ˆtre trait´es. e e G. Suny´ e Master Alma – U. Nantes 62/ 78 Introduction aux Patrons Logiciels
  63. 63. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Forces (5/8) Dans ce cas, aucun des espaces ne peut r´aliser la tˆche seul. e a Par cons´quent, un objet doit exister dans plus d’un espace e d’adressage. L’objet en question doit ˆtre divis´ en un ou plusieurs objets par e e espace d’adressage. G. Suny´ e Master Alma – U. Nantes 63/ 78 Introduction aux Patrons Logiciels
  64. 64. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Forces (6/8) Diviser un objet ` travers plusieurs espaces d’adressage introduit a une complexit´ suppl´mentaire, puisqu’un seul objet est plus e e simple que deux demi-objets, plus un protocole entre les deux. Un demi objet pourrait impl´menter tout le comportement et e consulter les autres objets quand il a besoin de retrouver des informations ou r´aliser une action. e G. Suny´ e Master Alma – U. Nantes 64/ 78 Introduction aux Patrons Logiciels
  65. 65. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Forces (7/8) Si ces interactions/collaborations sont fr´quentes, le coˆt e u (d’ex´cution ou d’attente) de construction des objets-message et e de les envoyer ` un objet d’un autre espace d’adressage peut ˆtre a e inacceptable. G. Suny´ e Master Alma – U. Nantes 65/ 78 Introduction aux Patrons Logiciels
  66. 66. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Forces (8/8) R´partir un objet en deux parties ´gales permet ` chaque partie de e e a r´pondre ` plusieurs demandes sans consulter un autre espace e a d’adressage, mais peut r´sulter en une duplication de fonctionnalit´ e e et en un besoin de maintenir les deux objets synchronis´s. e Cette r´partition isole l’interface de l’objet du protocole utilis´ e e entre les demi-objets. G. Suny´ e Master Alma – U. Nantes 66/ 78 Introduction aux Patrons Logiciels
  67. 67. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - En cons´quence (1/3) e Diviser l’objet en deux demi-objets ind´pendants (un dans chaque e espace d’adressage) avec un protocole entre eux. Dans chaque espace d’adressage, impl´menter toute fonctionnalit´ e e n´cessaire pour l’interaction avec les autres objets dans cet espace e d’adressage. (Ceci peut r´sulter en une fonctionnalit´ dupliqu´e, e e e i.e., impl´ment´e dans les deux espaces d’adressage). (. . . ) e e G. Suny´ e Master Alma – U. Nantes 67/ 78 Introduction aux Patrons Logiciels
  68. 68. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - En cons´quence (2/3) e (. . . ) D´finir le protocole entre les deux demi-objets qui coordonne e les activit´s des deux et porte l’information essentielle ayant besoin e d’ˆtre pass´e entre les espaces d’adressage. e e G. Suny´ e Master Alma – U. Nantes 68/ 78 Introduction aux Patrons Logiciels
  69. 69. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - En cons´quence (3/3) e Address Space 1 Address Space 2 o bj o bj o bj o bj h a lf⌧ o b j h a lf⌧ o b j o bj o bj Synchronization Protocol G. Suny´ e Master Alma – U. Nantes 69/ 78 Introduction aux Patrons Logiciels
  70. 70. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Patrons connexes Une fois que la fonctionnalit´ de chaque demi-objet est e d´termin´e, le protocole entre eux peut ˆtre d´fini. e e e e Ceci implique l’utilisation d’autres patrons pour concevoir le protocole (Message as Object, Message Parameter as Object), plus les m´canismes pour r´aliser la cr´ation (information collection, e e e formatting) et la r´ception (parsing, handling) du message. e G. Suny´ e Master Alma – U. Nantes 70/ 78 Introduction aux Patrons Logiciels
  71. 71. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Exemples (1/3) Distribution physique: D´bogueurs non natifs. e Services t´l´phoniques distribu´s ` travers un r´seau national. ee ea e Syst`mes acc´dant ` des dispositifs mat´riels, comme des e e a e senseurs. Interfaces utilisateurs distantes de l’information (bases de donn´es centralis´es). e e Bases de donn´es r´parties (dupliqu´es). e e e G. Suny´ e Master Alma – U. Nantes 71/ 78 Introduction aux Patrons Logiciels
  72. 72. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Exemples (2/3) Taille: Syst`mes o` les fonctions doivent ˆtre accomplies dans un e u e microprocesseur esclave, en raison du coˆt en temps r´el de la u e fonction. Environnement de programmation h´t´rog`nes: ee e L’interface utilisateur ´crite en Smalltalk d’un d´bogeur C++. e e G. Suny´ e Master Alma – U. Nantes 72/ 78 Introduction aux Patrons Logiciels
  73. 73. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e HOPP - Exemples (3/3) Normalisation: Les points de contrˆle de service (SCP) contiennent les o logiciels cr´´s par des op´rateurs t´l´phoniques pour modifier ee e ee les appels qui passent par les switches du r´seau t´l´phonique. e ee Ces logiciels peuvent ne pas avoir la permission de s’ex´cuter e dans ces switches. → (C’est aussi un exemple d’environnement de programmation h´t´rog`ne, car les switches ont des environnement ee e propri´taires, tandis que les SCP utilisent des environnement e bas´s sur UNIX). e G. Suny´ e Master Alma – U. Nantes 73/ 78 Introduction aux Patrons Logiciels
  74. 74. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Auteur Gerard Meszaros Affiliation: BNR, Canada PO Box 3511, Station C, Ottawa, Ontario Canada K1Y 4H7 E-mail: gerard@bnr.ca Phone: (613) 763-7860 Fax: (613) 765-4855 Current contact information: gerard.meszaros@acm.org, 87 Connaught Dr. NW, Calgary, Alberta, Canada T2K 1V9, 403-264-5840, FAX 403-233-2021. G. Suny´ e Master Alma – U. Nantes 74/ 78 Introduction aux Patrons Logiciels
  75. 75. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e 1 Introduction 2 D´finition e 3 Premier exemple 4 Canevas de description 5 Deuxi`me exemple e 6 Caract´ristiques e G. Suny´ e Master Alma – U. Nantes 75/ 78 Introduction aux Patrons Logiciels
  76. 76. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Caract´ristiques d’un bon patron e Il doit ˆtre une solution ` un probl`me dans un contexte. e a e Il est l’´l´ment n´cessaire ` l’int´grit´ d’un ensemble, compris ee e a ee dans le contexte d’autres patrons dans cet ensemble. Il doit ˆtre capable d’expliquer ` celui qui doit r´soudre le e a e probl`me, comment le faire. e La solution doit ˆtre mature et ´prouv´e. e e e G. Suny´ e Master Alma – U. Nantes 76/ 78 Introduction aux Patrons Logiciels
  77. 77. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Caract´ristiques d’un bon patron e Il doit contribuer au confort humain ou ` la qualit´ de vie. a e La solution doit ˆtre construite ` l’aide de la perspicacit´ de e a e celui qui doit r´soudre le probl`me, et peut ˆtre impl´ment´e e e e e e un million de fois sans ˆtre deux fois la mˆme. e e Il doit avoir un ensemble dense de forces en interaction, qui sont ind´pendantes des forces d’autres patrons. e Il tend ` avoir une harmonie g´om´trique. a ee G. Suny´ e Master Alma – U. Nantes 77/ 78 Introduction aux Patrons Logiciels
  78. 78. Introduction D´finition e Premier exemple Canevas de description Deuxi`me exemple e Caract´ristiques e Un patron bien ´crit e Il est court. Il raconte une histoire. Il est une phrase dans un langage de patrons. Il est attentif ` l’esth´tique. a e Il a un ´l´ment humain explicite. ee G. Suny´ e Master Alma – U. Nantes 78/ 78 Introduction aux Patrons Logiciels

×