+ All Categories
Home > Technology > Introduction aux patrons logiciels

Introduction aux patrons logiciels

Date post: 29-Nov-2014
Category:
Upload: gerson-sunye
View: 1,958 times
Download: 0 times
Share this document with a friend
Description:
 
78
Introduction efinition Premier exemple Canevas de description Deuxi` eme exemple Caract´ eristiques Introduction aux Patrons Logiciels Software Patterns Gerson Suny´ e [email protected] Master Alma – Universit´ e de Nantes April 25, 2009 G. Suny´ e Master Alma – U. Nantes 1/ 78 Introduction aux Patrons Logiciels
Transcript
Page 1: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Introduction aux Patrons LogicielsSoftware Patterns

Gerson [email protected]

Master Alma – Universite de Nantes

April 25, 2009

G. Sunye Master Alma – U. Nantes 1/ 78

Introduction aux Patrons Logiciels

Page 2: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

1 Introduction

2 Definition

3 Premier exemple

4 Canevas de description

5 Deuxieme exemple

6 Caracteristiques

G. Sunye Master Alma – U. Nantes 2/ 78

Introduction aux Patrons Logiciels

Page 3: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

1 Introduction

2 Definition

3 Premier exemple

4 Canevas de description

5 Deuxieme exemple

6 Caracteristiques

G. Sunye Master Alma – U. Nantes 3/ 78

Introduction aux Patrons Logiciels

Page 4: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

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-OrientedSoftware. Erich Gamma, Richard Helm,Ralph Johnson, andJohn Vlissides. Addison Wesley. October 1994.

Real-Time Design Patterns. Bruce Powel Douglass. AddisonWesley. 2003.

G. Sunye Master Alma – U. Nantes 4/ 78

Introduction aux Patrons Logiciels

Page 5: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Bibliographie (2/2)

Pattern Languages of Program Design.

1 Coplien & Schmidt2 Vlissides, Coplien, & Kerth3 Martin, Riehle, Buschmann4 Harrison, Foote, Rohnert

G. Sunye Master Alma – U. Nantes 5/ 78

Introduction aux Patrons Logiciels

Page 6: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

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. Sunye Master Alma – U. Nantes 6/ 78

Introduction aux Patrons Logiciels

Page 7: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Motivation

Reutilisation.

Passage de connaissances.

Communication entre developpeurs.

Documentation.

G. Sunye Master Alma – U. Nantes 7/ 78

Introduction aux Patrons Logiciels

Page 8: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Historique (1/5)

Christopher Alexander:

1 Notes on the Synthesis of Form, Harvard University Press,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. Sunye Master Alma – U. Nantes 8/ 78

Introduction aux Patrons Logiciels

Page 9: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Historique (2/5)

Dans [TTWoB] Alexander propose un paradigme pourl’architecture, base sur trois concepts:

1 The Quality (a.k.a. “the Quality Without a Name”).2 The Gate.3 The Way (a.k.a. “the Timeless Way”).

G. Sunye Master Alma – U. Nantes 9/ 78

Introduction aux Patrons Logiciels

Page 10: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Historique (3/5)

Voir la page History of Patterns dans le WikiWikiWeb de WardCunningham: http://c2.com/cgi-bin/wiki?HistoryOfPatterns

Using Pattern Languages for Object-Oriented Programs.Ward Cunningham and Kent Beck. OOPSLA’87.

G. Sunye Master Alma – U. Nantes 10/ 78

Introduction aux Patrons Logiciels

Page 11: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Historique (4/5)

Advanced C++ Programming Styles and Idioms. Jim Coplien,1991.

Workshops OOPSLA de 90 a 92.

G. Sunye Master Alma – U. Nantes 11/ 78

Introduction aux Patrons Logiciels

Page 12: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Historique (5/5)

Hillside Group (Conferences PLoP): Kent Beck, Grady Booch,Richard Gabriel et al. OOPSLA 1993, 94.

Design Patterns [GoF]. 1995.

G. Sunye Master Alma – U. Nantes 12/ 78

Introduction aux Patrons Logiciels

Page 13: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

1 Introduction

2 Definition

3 Premier exemple

4 Canevas de description

5 Deuxieme exemple

6 Caracteristiques

G. Sunye Master Alma – U. Nantes 13/ 78

Introduction aux Patrons Logiciels

Page 14: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition

Definition generale: Un patron est une solution eprouvee d’unprobleme dans un contexte.

Alexander: Chaque patron est une regle en trois parties, quiexprime la relation entre un certain contexte, unprobleme et une solution.

G. Sunye Master Alma – U. Nantes 14/ 78

Introduction aux Patrons Logiciels

Page 15: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (TWoB 1/3)

Plus qu’une solution a un probleme dans un contexte:“Comme un element du monde, chaque patron est une relation entre un

certain contexte, un certain systeme de forces qui se produisent a

plusieurs reprises dans ce contexte, et une certaine configuration spatiale

qui permet a ces forces de se constituer. (. . . )

G. Sunye Master Alma – U. Nantes 15/ 78

Introduction aux Patrons Logiciels

Page 16: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (TWoB 2/3)

(. . . ) Comme un element du langage, un patron est une instruction qui

montre comment cette configuration spatiale peut etre utilisee, a

repetition, pour constituer le systeme de forces, partout ou le contexte le

rend relevant. (. . . )

G. Sunye Master Alma – U. Nantes 16/ 78

Introduction aux Patrons Logiciels

Page 17: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (TWoB 3/3)

(. . . ) En bref, un patron est en meme temps une chose qui se produit

dans le monde, et la regle qui nous dit comment la creer, et quand nous

devons la creer. C’est donc les deux, un processus et une chose; la

description d’une chose vivante et la description du processus qui

generera cette chose (TWoB pp. 247).”

G. Sunye Master Alma – U. Nantes 17/ 78

Introduction aux Patrons Logiciels

Page 18: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (Riehle et Zullighoven)

Dirk Riehle et Heinz Zullighoven dans Understanding and UsingPatterns in Software Development:

“Un patron est l’abstraction d’une forme concrete qui sereproduit dans un contexte specifique et non arbitraire”.

G. Sunye Master Alma – U. Nantes 18/ 78

Introduction aux Patrons Logiciels

Page 19: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (Coplien 1/2)

Jim Coplien, dans Software Patterns:

“J’aime bien faire la relation entre cette definition et lespatrons de couture.Je pourrais vous expliquer comment faire un habit enspecifiant la route que les ciseaux doivent suivre a traversle tissu en terme d’angles et longueur de coupe. (. . . )

G. Sunye Master Alma – U. Nantes 19/ 78

Introduction aux Patrons Logiciels

Page 20: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (Coplien 2/2)

(. . . ) Ou alors, je peux vous donner un patron. En lisantla specification, vous n’auriez aucune idee de ce qui etaiten train d’etre fait, ou si vous aviez fait ce qu’il fallait,avant la fin.Le patron annonce le produit: il est la regle pour realiserune chose, et aussi, dans differents aspects, la choseelle-meme.”

G. Sunye Master Alma – U. Nantes 20/ 78

Introduction aux Patrons Logiciels

Page 21: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (wiki 1/3)

Wiki wiki web:

Les patrons de conception sont une technique utile pourla transmission de connaissances sur des problemesrecurrents dans le developpement logiciel.

G. Sunye Master Alma – U. Nantes 21/ 78

Introduction aux Patrons Logiciels

Page 22: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (wiki 2/3)

Wiki wiki web (bis):

Un patron de conception nomme, motive et expliquesystematiquement une conception generique qui s’adressea un probleme de conception recurrent dans les systemesa objets.Il decrit le probleme, la solution, le moment d’appliquercette solution et ses consequences. (. . . )

G. Sunye Master Alma – U. Nantes 22/ 78

Introduction aux Patrons Logiciels

Page 23: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Definition (wiki 3/3)

(. . . ) Il donne aussi des conseils et des exemples de miseen oeuvre.La solution est un arrangement d’objets et classes quiresolvent le probleme.Elle est personnalisee et mise en oeuvre pour resoudre leprobleme dans un contexte particulier.

G. Sunye Master Alma – U. Nantes 23/ 78

Introduction aux Patrons Logiciels

Page 24: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Contre-definition (1/2)

Qu’est-ce que n’est pas un patron?

Une regle.

Une recette consacree.

Une structure de donnees.

Une solution isolee a un probleme dans un contexte.

G. Sunye Master Alma – U. Nantes 24/ 78

Introduction aux Patrons Logiciels

Page 25: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Contre-definition (2/2)

Contre-exemple:

Probleme : comment allouer des objets dans la memoire?

Contexte : un systeme a objets dans la memoire virtuelle.

Solution : executer quelques problemes typiques et decouvrirquels objets communiquent frequemment et lesplacer dans une meme page.

G. Sunye Master Alma – U. Nantes 25/ 78

Introduction aux Patrons Logiciels

Page 26: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

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. Sunye Master Alma – U. Nantes 26/ 78

Introduction aux Patrons Logiciels

Page 27: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Langages de patrons (2/2)

Chaque patron se construit dans le contexte de ceux qui l’ontprecede.

Un langage de patrons definit un style architectural.

Les patrons isoles ont une utilite limitee.

G. Sunye Master Alma – U. Nantes 27/ 78

Introduction aux Patrons Logiciels

Page 28: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

1 Introduction

2 Definition

3 Premier exemple

4 Canevas de description

5 Deuxieme exemple

6 Caracteristiques

G. Sunye Master Alma – U. Nantes 28/ 78

Introduction aux Patrons Logiciels

Page 29: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Exemple INom, probleme, contexte

Nom : Cinq couleurs dans l’assiette.

Probleme : Comment rendre appetissant, a peu de frais, unplat simple tel qu’une assiette de crudites?

Contexte : La cuisine au quotidien, notamment la cuisinefamiliale ou les parents et les enfants partagent lameme table, le meme repas.

G. Sunye Master Alma – U. Nantes 29/ 78

Introduction aux Patrons Logiciels

Page 30: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

ForcesCinq couleurs dans l’assiette

Au jour le jour, la plupart d’entre nous avons peu de temps aconsacrer a la preparation des repas.

Les techniques culinaires avancees sont peu familieres dugrand public.

La preparation des plats contribue de facon significative auplaisir des repas.

Une certaine diversite des aliments est necessaire pour unenourriture equilibree.

Les enfants mangent plus volontiers quand l’assiette estappetissante.

G. Sunye Master Alma – U. Nantes 30/ 78

Introduction aux Patrons Logiciels

Page 31: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

SolutionCinq couleurs dans l’assiette

Pour une meme assiette, choisir les ingredients de facon a ceque les cinq couleurs suivantes soient presentes: blanc, vert,rouge, jaune, noir.

Les quantites des ingredients pour chaque couleur n’ont pasbesoin d’etre identiques: une seule touche de couleur peutsuffire.

Les couleurs peuvent etre approximatives: par exemple, uningredient orange peut donner la couleur rouge ou jaune enfonction du reste de l’assiette.

G. Sunye Master Alma – U. Nantes 31/ 78

Introduction aux Patrons Logiciels

Page 32: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

ExemplesCinq couleurs dans l’assiette

Ce patron convient particulierement bien pour la compositiond’assiettes de crudites.

Les couleurs courantes dans les crudites sont le vert (salade,germes), le blanc (navet, celeri), le rouge (radis, tomate).

Le noir et le jaune sont moins repandus: une simple olive noirau milieu de l’assiette, un quartier ou une rondelle de citronsur le bord transforment une assiette banale en une assietteappetissante.

La salade grecque, par exemple, respecte ce patron: tomates,concombre, feta, olives noires, huile d’olive.

G. Sunye Master Alma – U. Nantes 32/ 78

Introduction aux Patrons Logiciels

Page 33: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

ImplementationCinq couleurs dans l’assiette

La couleur de la porcelaine ou de la faıence, les decorationspeintes sur l’assiette peuvent etre prises en compte pourobtenir le compte des couleurs.

On aura dans sa cuisine en permanence des ingredients quiapportent les couleurs:

olives noires et vertes.citrons.tomates, tomates cerise.salade, germes de luzerne.

G. Sunye Master Alma – U. Nantes 33/ 78

Introduction aux Patrons Logiciels

Page 34: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

AuteurCinq couleurs dans l’assiette

Origine : Cuisine chinoise traditionnelle, notamment lacuisine macrobiotique.

Auteur : Bruno Borghi. Mont St-Michel, 7 juin 2000.

G. Sunye Master Alma – U. Nantes 34/ 78

Introduction aux Patrons Logiciels

Page 35: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

1 Introduction

2 Definition

3 Premier exemple

4 Canevas de description

5 Deuxieme exemple

6 Caracteristiques

G. Sunye Master Alma – U. Nantes 35/ 78

Introduction aux Patrons Logiciels

Page 36: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Canevas de description

Les patrons sont decrits sous la forme litteraire.

Ils ne sont que “documentation”.

Les composants essentiels sont: Nom, Probleme, Contexte,Forces et Solution.

Il existe plusieurs canevas de description.

Exemples: GoF, Alexander, Coplien, Cockburn, Portland.

G. Sunye Master Alma – U. Nantes 36/ 78

Introduction aux Patrons Logiciels

Page 37: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Canevas essentiel

Contexte.

Nom.

Probleme.

Forces.

Solution.

Auteur et date.

G. Sunye Master Alma – U. Nantes 37/ 78

Introduction aux Patrons Logiciels

Page 38: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Contexte

La place du patron dans le langage de patrons.

Habituellement neglige ou pas mis en valeur dans les patronslogiciels.

G. Sunye Master Alma – U. Nantes 38/ 78

Introduction aux Patrons Logiciels

Page 39: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Nom (1/2)

Un label significatif qui traduit le principe du patron.

Le nom a tendance a etre base sur la solution.

Il doit etre court, concis, riche semantiquement, revelateur ousuggestif.

Les noms ingenieux (mais pas trop) sont memorables.

G. Sunye Master Alma – U. Nantes 39/ 78

Introduction aux Patrons Logiciels

Page 40: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Nom (2/2)

Le nom devient une partie du vocabulaire du domaine.

Les patrons du GoF sont des analogies (Bridge, Facade, etc.).

G. Sunye Master Alma – U. Nantes 40/ 78

Introduction aux Patrons Logiciels

Page 41: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Probleme

Habituellement, le probleme est pose comme une question, oucomme un enonce.

C’est la premiere chose que l’on regarde.

La comprehension du probleme vient avec l’analyse des forces.

G. Sunye Master Alma – U. Nantes 41/ 78

Introduction aux Patrons Logiciels

Page 42: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Forces (1/3)

Le coeur d’un patron.

La totalite est un champ de forces ou compromis.

Les patrons individuels encapsulent des forces en relation.

Permettent de traiter un patron a la fois.

G. Sunye Master Alma – U. Nantes 42/ 78

Introduction aux Patrons Logiciels

Page 43: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Forces (2/3)

Qu’est-ce qui fait une force?

Ce qui rend le probleme complexe.

Pourquoi les solutions evidentes ne sont pas adequates.

Les facteurs qui contrecarrent d’autres approches d’ou autressolutions.

Les contradictions et les conflits.

G. Sunye Master Alma – U. Nantes 43/ 78

Introduction aux Patrons Logiciels

Page 44: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Forces (3/3)

Les patrons equilibrent les forces dans un contexte:

un c o nt ext e

Maintenabilité Sureté

Cout

Un a utre c o nt ext e ,un a utre p a tt e rn

Un p a tt e rn d a ns

G. Sunye Master Alma – U. Nantes 44/ 78

Introduction aux Patrons Logiciels

Page 45: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Forces (Alexander 1/2)

“Personne ne deviendra un meilleur concepteur ensuivant aveuglement une methode (. . . )

G. Sunye Master Alma – U. Nantes 45/ 78

Introduction aux Patrons Logiciels

Page 46: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Forces (Alexander 2/2)

(. . . ) Si on essaye de comprendre l’idee que l’on peutcreer des patrons abstraits, en etudiant l’implication d’unsysteme limite de forces, et que l’on peut creer desnouvelles formes par la combinaison de ces patrons – etrealiser que cela ne marchera qu’avec des patrons quitraitent avec un systeme de forces dont l’interactioninterne est tres dense et dont l’interaction avec d’autresforces du monde est tres faible – alors, dans le processusd’essai pour creer ces diagrammes ou patrons pour soi,on peut trouver l’idee centrale a laquelle ce livre seconsacre”.Preface de Notes on Synthesis of Form.

G. Sunye Master Alma – U. Nantes 46/ 78

Introduction aux Patrons Logiciels

Page 47: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Solution (1/2)

Les solutions equilibrent les forces.

Les solutions s’appliquent au systeme comme un tout: ellessont transformables et non fixes.

G. Sunye Master Alma – U. Nantes 47/ 78

Introduction aux Patrons Logiciels

Page 48: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Solution (2/2)

Le centre d’interet de la plupart des gens.

Souvent, un patron decrit une solution directe et simpliste: ilfaut donc essayer de resoudre le probleme a un niveau plusprofond.

Plutot que recenser les solutions, les patrons doiventencourager le lecteur a manoeuvrer les forces et remanier lessolutions.

G. Sunye Master Alma – U. Nantes 48/ 78

Introduction aux Patrons Logiciels

Page 49: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Solution (Alexander)

“Encore, le patron opere sur la totalite: ils ne sont pasdes parties, qui peuvent etre ajoutees – mais desrelations, qui s’imposent aux precedentes pour mieuxdetailler, mieux structurer et donner plus de substance –de maniere a faire emerger graduellement, mais toujoursdans sa totalite, la substance de la construction, danschaque phase de sa croissance.Alexander, The Timeless Way of Building, p. 459.

G. Sunye Master Alma – U. Nantes 49/ 78

Introduction aux Patrons Logiciels

Page 50: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Canevas GoF (1/3)

Nom : Un label significatif qui traduit le principe dupatron.

Intention : Le probleme de conception concerne.

Alias : Autres noms connus, s’il en existe.

Motivation : Un exemple d’application du probleme deconception en cause et la solution proposee.

Indications d’utilisation : Le contexte dans lequel le patron peutetre applique.

G. Sunye Master Alma – U. Nantes 50/ 78

Introduction aux Patrons Logiciels

Page 51: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Canevas GoF (2/3)

Structure : Le diagramme de classes (OMT) representant lasolution.

Participants : Le role des differentes classes qui composent lediagramme.

Collaborations : La collaboration entre les participants.

Consequences : Compromis et benefices de son utilisation.

G. Sunye Master Alma – U. Nantes 51/ 78

Introduction aux Patrons Logiciels

Page 52: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Canevas GoF (3/3)

Implementation : Astuces et techniques pour l’implementer.

Exemples de code : Extraits de code exemple en Smalltalk etC++.

Utilisations connues : References a des systemes reels (au moinsdeux) ou le patron est utilise.

Patrons analogues : Les patrons en relation etroite avec celui-ci,leurs differences, la maniere de les associer.

G. Sunye Master Alma – U. Nantes 52/ 78

Introduction aux Patrons Logiciels

Page 53: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Canevas de Coplien

Nom.

Contexte.

Probleme.

Forces.

Solution.

Croquis.

Contexte resultant.

Raisonnement.

G. Sunye Master Alma – U. Nantes 53/ 78

Introduction aux Patrons Logiciels

Page 54: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Canevas de Cockburn (1/2)

Onglet.

Forces en equilibre.

Facteurs affectant l’equilibre.

Action recommandee.

Contexte resultant.

Effet de surdosage.

G. Sunye Master Alma – U. Nantes 54/ 78

Introduction aux Patrons Logiciels

Page 55: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Canevas de Cockburn (2/2)

Patrons en relation.

Specialisations.

Principes concernes.

Situations (exemples).

Lecture.

G. Sunye Master Alma – U. Nantes 55/ 78

Introduction aux Patrons Logiciels

Page 56: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

1 Introduction

2 Definition

3 Premier exemple

4 Canevas de description

5 Deuxieme exemple

6 Caracteristiques

G. Sunye Master Alma – U. Nantes 56/ 78

Introduction aux Patrons Logiciels

Page 57: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Applicabilite

. . . une fois que vous avez decide de vos objets et de leursassociations, c’est l’heure de determiner comment vos objets sontplaces par rapport a l’espace d’adressage dans lequel ils vonts’executer. Ce patron vous aide a determiner ou ils sont places etleur position relative aux frontieres de l’espace d’adressage.

G. Sunye Master Alma – U. Nantes 57/ 78

Introduction aux Patrons Logiciels

Page 58: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Probleme

Parfois, un meme objet doit apparaıtre sur differents contextesinformatiques (i.e. espaces d’adressage).Comment pouvons nous rendre transparent la difference entre unet plusieurs (e.g. local vs. distribue) espaces d’adressage?

G. Sunye Master Alma – U. Nantes 58/ 78

Introduction aux Patrons Logiciels

Page 59: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Forces (1/8)

Complexite.

Distribution.

Disponibilite d’information.

Cout.

Performance.

G. Sunye Master Alma – U. Nantes 59/ 78

Introduction aux Patrons Logiciels

Page 60: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Forces (2/8)

Souvent, les systemes informatiques doivent etre mis en œuvre surdes multiples espaces d’adressage, pour differentes raisons:

Cout.

Taille,

Repartition physique.

Diversite des environnements de programmation.

Normalisation.

etc.

G. Sunye Master Alma – U. Nantes 60/ 78

Introduction aux Patrons Logiciels

Page 61: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Forces (3/8)

Parfois, ces systemes peuvent etre facilement decomposes enobjets, vivant chacun dans un espace d’adressage.

Quelques objets seront contraints a exister dans certains espacesd’adressage par le couplage avec le materiel (senseurs, lecteurs dedisque, etc.).

D’utres objets peuvent etre places en fonction de ces couplages.

G. Sunye Master Alma – U. Nantes 61/ 78

Introduction aux Patrons Logiciels

Page 62: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Forces (4/8)

Parfois, cependant, un concept existe en deux espaces differents, etil est tres difficile de le decomposer.

Ou alors, un objet doit collaborer avec d’autres objets, dans plusd’un espace adressage, parce qu’il a besoin d’informations de plusd’un espace d’adressage pour accomplir son comportement.

De meme, des demandes (asynchrones) arrivant d’objets des deuxespaces doivent etre traitees.

G. Sunye Master Alma – U. Nantes 62/ 78

Introduction aux Patrons Logiciels

Page 63: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Forces (5/8)

Dans ce cas, aucun des espaces ne peut realiser la tache seul.

Par consequent, un objet doit exister dans plus d’un espaced’adressage.

L’objet en question doit etre divise en un ou plusieurs objets parespace d’adressage.

G. Sunye Master Alma – U. Nantes 63/ 78

Introduction aux Patrons Logiciels

Page 64: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Forces (6/8)

Diviser un objet a travers plusieurs espaces d’adressage introduitune complexite supplementaire, puisqu’un seul objet est plussimple que deux demi-objets, plus un protocole entre les deux.

Un demi objet pourrait implementer tout le comportement etconsulter les autres objets quand il a besoin de retrouver desinformations ou realiser une action.

G. Sunye Master Alma – U. Nantes 64/ 78

Introduction aux Patrons Logiciels

Page 65: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Forces (7/8)

Si ces interactions/collaborations sont frequentes, le cout(d’execution ou d’attente) de construction des objets-message etde les envoyer a un objet d’un autre espace d’adressage peut etreinacceptable.

G. Sunye Master Alma – U. Nantes 65/ 78

Introduction aux Patrons Logiciels

Page 66: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Forces (8/8)

Repartir un objet en deux parties egales permet a chaque partie derepondre a plusieurs demandes sans consulter un autre espaced’adressage, mais peut resulter en une duplication de fonctionnaliteet en un besoin de maintenir les deux objets synchronises.

Cette repartition isole l’interface de l’objet du protocole utiliseentre les demi-objets.

G. Sunye Master Alma – U. Nantes 66/ 78

Introduction aux Patrons Logiciels

Page 67: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - En consequence (1/3)

Diviser l’objet en deux demi-objets independants (un dans chaqueespace d’adressage) avec un protocole entre eux.

Dans chaque espace d’adressage, implementer toute fonctionnalitenecessaire pour l’interaction avec les autres objets dans cet espaced’adressage. (Ceci peut resulter en une fonctionnalite dupliquee,i.e., implementee dans les deux espaces d’adressage). (. . . )

G. Sunye Master Alma – U. Nantes 67/ 78

Introduction aux Patrons Logiciels

Page 68: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - En consequence (2/3)

(. . . ) Definir le protocole entre les deux demi-objets qui coordonneles activites des deux et porte l’information essentielle ayant besoind’etre passee entre les espaces d’adressage.

G. Sunye Master Alma – U. Nantes 68/ 78

Introduction aux Patrons Logiciels

Page 69: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - En consequence (3/3)

Address Space 1Address Space 2

Synchronization Protocol

o b j

o b j

o b j

o b j

h a lf⌧ o b j h a lf⌧ o b j

o b j

o b j

G. Sunye Master Alma – U. Nantes 69/ 78

Introduction aux Patrons Logiciels

Page 70: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Patrons connexes

Une fois que la fonctionnalite de chaque demi-objet estdeterminee, le protocole entre eux peut etre defini.

Ceci implique l’utilisation d’autres patrons pour concevoir leprotocole (Message as Object, Message Parameter as Object), plusles mecanismes pour realiser la creation (information collection,formatting) et la reception (parsing, handling) du message.

G. Sunye Master Alma – U. Nantes 70/ 78

Introduction aux Patrons Logiciels

Page 71: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Exemples (1/3)

Distribution physique:

Debogueurs non natifs.Services telephoniques distribues a travers un reseau national.Systemes accedant a des dispositifs materiels, comme dessenseurs.Interfaces utilisateurs distantes de l’information (bases dedonnees centralisees).Bases de donnees reparties (dupliquees).

G. Sunye Master Alma – U. Nantes 71/ 78

Introduction aux Patrons Logiciels

Page 72: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Exemples (2/3)

Taille:

Systemes ou les fonctions doivent etre accomplies dans unmicroprocesseur esclave, en raison du cout en temps reel de lafonction.

Environnement de programmation heterogenes:

L’interface utilisateur ecrite en Smalltalk d’un debogeur C++.

G. Sunye Master Alma – U. Nantes 72/ 78

Introduction aux Patrons Logiciels

Page 73: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

HOPP - Exemples (3/3)

Normalisation:

Les points de controle de service (SCP) contiennent leslogiciels crees par des operateurs telephoniques pour modifierles appels qui passent par les switches du reseau telephonique.Ces logiciels peuvent ne pas avoir la permission de s’executerdans ces switches.

→ (C’est aussi un exemple d’environnement de programmationheterogene, car les switches ont des environnementproprietaires, tandis que les SCP utilisent des environnementbases sur UNIX).

G. Sunye Master Alma – U. Nantes 73/ 78

Introduction aux Patrons Logiciels

Page 74: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Auteur

Gerard Meszaros

Affiliation: BNR, Canada

PO Box 3511, Station C,

Ottawa, Ontario Canada K1Y 4H7

E-mail: [email protected]

Phone: (613) 763-7860

Fax: (613) 765-4855

Current contact information: [email protected], 87 Connaught Dr. NW, Calgary, Alberta, Canada T2K

1V9, 403-264-5840, FAX 403-233-2021.

G. Sunye Master Alma – U. Nantes 74/ 78

Introduction aux Patrons Logiciels

Page 75: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

1 Introduction

2 Definition

3 Premier exemple

4 Canevas de description

5 Deuxieme exemple

6 Caracteristiques

G. Sunye Master Alma – U. Nantes 75/ 78

Introduction aux Patrons Logiciels

Page 76: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Caracteristiques d’un bon patron

Il doit etre une solution a un probleme dans un contexte.

Il est l’element necessaire a l’integrite d’un ensemble, comprisdans le contexte d’autres patrons dans cet ensemble.

Il doit etre capable d’expliquer a celui qui doit resoudre leprobleme, comment le faire.

La solution doit etre mature et eprouvee.

G. Sunye Master Alma – U. Nantes 76/ 78

Introduction aux Patrons Logiciels

Page 77: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Caracteristiques d’un bon patron

Il doit contribuer au confort humain ou a la qualite de vie.

La solution doit etre construite a l’aide de la perspicacite decelui qui doit resoudre le probleme, et peut etre implementeeun million de fois sans etre deux fois la meme.

Il doit avoir un ensemble dense de forces en interaction, quisont independantes des forces d’autres patrons.

Il tend a avoir une harmonie geometrique.

G. Sunye Master Alma – U. Nantes 77/ 78

Introduction aux Patrons Logiciels

Page 78: Introduction aux patrons logiciels

Introduction Definition Premier exemple Canevas de description Deuxieme exemple Caracteristiques

Un patron bien ecrit

Il est court.

Il raconte une histoire.

Il est une phrase dans un langage de patrons.

Il est attentif a l’esthetique.

Il a un element humain explicite.

G. Sunye Master Alma – U. Nantes 78/ 78

Introduction aux Patrons Logiciels


Recommended