• Aucun résultat trouvé

Design Patterns Design Patterns

N/A
N/A
Protected

Academic year: 2022

Partager "Design Patterns Design Patterns"

Copied!
15
0
0

Texte intégral

(1)

1

Analyse

Analyse , Conception , Conception Objet

Objet

Design Patterns Design Patterns

Introduction Introduction

O. Boissier, SMA/G2I/ENS Mines Saint-Etienne, Olivier.Boissier@emse.fr,Avril 2004

2

Sommaire Sommaire

9Conception

¾Réutilisabilité

¾Bibliothèque de classe vs. Framework

¾ Design Pattern

¾Historique

¾ Catégories de Patterns

¾ Bibliographie

3

Conception Conception

¾ Face à des problèmes complexes, rechercher la modularité afin d’obtenir un ensemble de modules plus simples et plus facilement gérables.

¾ Dans le monde des objets, la notion de ‘‘modules’’

se décline en :

¾Classes

¾ abstractions des données et des services

¾Méthodes

¾ Implémentation des services

¾Packages / sous-systèmes

¾ Groupement de classes dans une seule collection

¾Processus physiques (client/serveur, …)

4

Deux questions sur la Deux questions sur la conception de modules conception de modules

¾ Cohésion : degré avec lequel les tâches

réalisées par un seul module sont

fonctionnellement reliées

¾ Quel est le liant d ’un module ?

¾ Quel est son objectif ?

¾ Fait-il une ou plusieurs choses ?

¾ Quel est sa fonction ?

¾ Couplage : force de l’interaction entre les modules dans le système

¾ Comment est-ce que les modules travaillent ensemble ?

¾ Qu’ont-ils besoins de connaître l ’’un sur l ’autre

?

¾ Quand font-ils appel aux

fonctionnalités de chacun ?

(2)

5

Cohésion et Couplage Cohésion et Couplage

Cohésion entre modules Couplage

entre modules

9 Cohésion (relations logiques entre items d ’un objet)

9

Etendue de la responsabilité d ’un module (une seule/plusieurs)

9

Informelle (définie en terme d ’objectif)

9

Une forte cohésion est une bonne qualité

9 Couplage (force des relations physiques entre items d ’un objet)

9

Dépendance entre les modules

9

Peut-être définie formellement

9

Un couplage ‘‘lâche’’ est une bonne qualité

6

Cohésion Cohésion

‘‘mauvais’’ exemple

‘‘mauvais’’ exemple

Class GameBoard {

public GamePiece[ ][ ] getState()

- Méthode copiant la grille dans un tableau temporaire, résultat de l ’appel de la méthode.

public Player isWinner()

- vérifie l’état du jeu pour savoir s ’il existe un gagnant, dont la référence est retournée. Null est retourné si aucun gagnant.

public boolean isTie()

- retourne true si aucun déplacement ne peut être effectué, false sinon.

public void display ()

- affichage du contenu du jeu. Espaces blanc affichés pour chacune des références nulles.

GameBoard est responsable des règles du jeu et de l ’affichage.

}

Cohésion Cohésion

‘‘bon’’ exemple

‘‘bon’’ exemple

Class GameBoard {

public GamePiece[ ][ ] getState() - -

public Player isWinner() - -

public boolean isTie() - -

}

class BoardDisplay {

public void displayBoard (GameBoard gb)

- affichage du contenu du jeu. Espaces blanc affichés pour

Couplage Couplage Exemple Exemple

void initArray(int[ ] iGradeArray, int nStudents) { int i;

for (i=0; i < nStudents; i++) { iGradeArray[i] = 0;

}

Couplage entre client et initArray par le 2nd paramètre

void initArray(int[ ] iGradeArray) { int i;

for (i=0; i < iGradeArray.length; i++) { iGradeArray[i] = 0;

} Couplage faible

(et meilleure fiabilité)

(3)

9 class BookNode {

private String title;

private BookNode next;

public BookNode (String newTitle) { title = newTitle;

next = null;

}

public BookNode getNext () { return (next);

}

public void setNext (BookNode nextBook) { next = nextBook;

}

public void print () {

System.out.println (title);

}

}//class BookNode

Que se passe-t-il

si nous ajoutons Author ?

title

next

Couplage Couplage

Nœuds d’une classe

Nœuds d’une classe Booklist Booklist

10 class BookNode {

private Book book;

private BookNode next;

public BookNode (String title, String author) { book = new Book(title, author);

next = null;

} ...

}

Couplage Couplage

Nœuds d’une classe

Nœuds d’une classe Booklist Booklist

book title author

class Book

private String title;

private String author;

public Book(String title, String auth) { ...

}

}//class Book

11

Principes de conception (1) Principes de conception (1)

¾ Programmer une interface plus qu’une implémentation,

¾ Utiliser des classes abstraites (interfaces en Java) pour définir des interfaces communes à un ensemble de classes,

¾ Déclarer les paramètres comme instances de la classe abstraite plutôt que comme instances de classes particulières.

Ainsi :

¾ les classes clients ou les objets sont indépendants des classes des objets qu’ils utilisent aussi longtemps que les objets respectent l ’interface qu’ils attendent,

¾ les classes clients ou les objets sont indépendants des classes qui implémentent l ’interface.

12

Exemple Exemple

Tri d’étudiants (1) : ‘‘mauvais’’

Tri d’étudiants (1) : ‘‘mauvais’’

class StudentRecord { private Name lastName;

private Name firstName;

private long ID;

public Name getLastName() {return lastName;}

… // etc }

class SortedList {

Object[] sortedData = new Object[size];

public void add(StudentRecord X) { // …

Name a = X.getLastName();

Name b = sortedData[k].getLastName();

if (a.lessThan(b)) … else … //do something

} … }

(4)

13

Exemple Exemple

Tri d’étudiants (2) : ‘‘solution 1’’

Tri d’étudiants (2) : ‘‘solution 1’’

class StudentRecord { private Name lastName;

private Name firstName;

private long ID;

public boolean lessThan(Object X) {

return lastName.lessThan(X.lastName);}

… // etc }

class SortedList {

Object[] sortedData = new Object[size];

public void add(StudentRecord X) { // …

if (X.lessThan(sortedData[k])) … else … //do something } … }

14

Exemple Exemple

Tri d’étudiants (3) : ‘‘solution 2’’

Tri d’étudiants (3) : ‘‘solution 2’’

Interface Comparable {

public boolean lessThan(Object X);

public boolean greaterThan(Object X);

public boolean equal(Object X);

}

class StudentRecord implements Comparable { private Name lastName;

private Name firstName;

private long ID;

public boolean lessThan(Object X) {

return lastName.lessThan(((StudentRecord)X).lastName);}

… // etc }

Exemple Exemple

Tri d’étudiants (4) : ‘‘solution 2’’

Tri d’étudiants (4) : ‘‘solution 2’’

class SortedList {

Object[] sortedData = new Object[size];

public void add(Comparable X) { // …

if (X.lessThan(sortedData[k])) … else … //do something }

… }

Principes de conception (2) Principes de conception (2)

¾ Préférer la composition d’objet à l’héritage de classes

Ainsi :

¾ le comportement peut changer en cours d ’exécution,

¾ les classes sont plus focalisées sur une tâche,

¾ réduction des dépendances d ’implémentation.

(5)

17

Sommaire Sommaire

• Conception 9 Réutilisabilité

¾Bibliothèque de classe vs. Framework

¾ Design Pattern

¾ Historique

¾ Catégories de Patterns

¾ Bibliographie

18

Réutilisation en Génie Logiciel Réutilisation en Génie Logiciel

Expression des besoins

Spécifications

Informelles Patrons d’analyse

Modèles de domaine

Composants métiers conceptuels

Patrons d’architecture Patrons de conception ERP, Frameworks Patrons d’implantation Composants métiers logiciels Bibliothèques de classes Analyse

(abstraction du

monde réel) Modèle

Descriptif &

Normatif Informatisable

Modèle Effectif Informatisé Conception

(solution technique)

Implantation (solution opérationnelle)

Logiciel

19

Réutilisation en Génie Logiciel Réutilisation en Génie Logiciel

Gestion des ressources Opérations Bancaires

Analyse

«métier commun»

«métier spécifique»

- Le problème traité est issu d’une analyse de domaine - Aide à la

construction de modèles objets descriptifs

Composite Observateur Blackboard Conception

«architecture»

«conception»

- identifier, nommer et abstraire des thèmes récurrents de la conception par objet.

- Aide à la construction de modèles objets effectifs

Simuler l’héritage multiple en Java

Implantation

« idiome »

- comment implanter dans un langage particulier certains traits absents de ce langage

Documenter un framework Documentation

- technique de dialogue, de documentation, d’enseignement , etc.

20

Bibliothèque de classe Bibliothèque de classe

¾ Ensemble de classes

¾ le plus souvent abstraites

¾indépendantes (pas d ’interaction a priori entre elles)

¾sans comportements par défaut

Architecture Bibliothèque de classes

Réseaux IHM

Math Collections Base de

Données Application

Flux de contrôle

(6)

21

Framework

Framework = squelette = squelette d’application

d’application

¾Ensemble de classes :

¾concrètes ou abstraites conçues pour être utilisées ensemble,

¾ en interaction,

¾fournissant des comportements par défaut

Architecture de Framework

Réseaux IHM

Collections Math

Base de Données Application

Flux de contrôle

22

Framework

Framework = squelette = squelette d’application (suite)

d’application (suite)

¾ Application framework : encapsultation d ’une expertise applicable à une large variété de programmes,

¾ Domain framework : encapsulation d ’une expertise dans un domaine de problèmes particulier

¾ Support framework : services de niveau système (accès fichier, application répartie, …)

Framework

Framework = squelette = squelette d’application (suite)

d’application (suite)

¾ Boîte blanche ou en verre :

¾ fondé sur l ’héritage,

¾ conçu par la généralisation de classes de différentes applications,

¾ utilisé par dérivation de classes

¾ Boîte noire :

¾ fondé sur la composition,

¾ utilisé par composition des composants entre eux.

Sommaire Sommaire

• Conception

• Réutilisabilité

• Bibliothèque de classe vs. Framework

9Design Pattern

¾ Historique

¾ Catégories de Patterns

¾Bibliographie

(7)

25

Autres domaines : Architecture

C. Alexander : 253 patrons de conception architecturaux (64,77,79)

« Pattern #112 d’Alexander»

xNom : Transition d’entrée

xQuoi : créer une transition du monde extérieur vers un univers intérieur, plus privé xPourquoi : L’entrée dans un bâtiment influence la façon dont on va se sentir à

l’intérieur

xQuand : systèmes d’accès et d’entrée pour les maisons, les cliniques, les magasins, etc.

xComment : Créer un espace de transition entre la rue et la porte d’entrée. Marquer le cheminement dans l’espace de transition par un changement de lumière, un changement de direction, etc.

xPatterns en relation : vue Zen (#134), etc.

tiré de «Introduction aux patterns» Jean Bézivin

26

Autres domaines : l’hydraulique

Ken Asplund en 1973

« Le volume d’eau en aval » (Downstream Water Volume )

Problème : Quand on détourne une partie des eaux d’une rivière, le volume d’eau dans le drainage décroît, ce qui conduit à un affaiblissement des contributions de la rivière.

Contraintes : Il ne faut pas que le détournement d’une partie de la rivière pénalise l’irrigation des cultures en aval ; la population ne doit pas souffrir de cette baisse du débit des eaux ; l’impact écologique doit être limité au minimum.

Solution : Il faut maintenir le niveau des eaux en aval en ramenant un maximum d’eau détournée vers son lit d’origine ; en traitant les eaux usées afin de les réintroduire en aval ; en économisant les eaux d’irrigation en évitant les systèmes de pulvérisation ou de brumisation.

27

Définition Définition

Un patron décrit à la fois un problème qui se produit très fréquemment dans votre environnement et l’architecture de la solution à ce problème de telle façon que vous puissiez utiliser cette solution des milliers de fois sans jamais l’adapter deux fois de la même manière.

C. Alexander

Décrire avec succès des types de solutions récurrentes à des problèmes communs dans des types de situations

28

Design Pattern Design Pattern

Les patrons sont des composants logiques décrits indépendamment d’un langage donné (solution exprimée par des modèles semi-formels)

xCoad [Coad92]

Une abstraction d’un doublet, triplet ou d’un ensemble de classes qui peut être réutilisé encore et encore pour le développement d’applications xAppleton [Appleton97]

Une règle tripartite exprimant une relation entre un certain contexte, un certain problème qui apparaît répétitivement dans ce contexte et une certaine configuration logicielle qui permet la résolution de ce problème.

xAarsten [Aarsten96]

Un groupe d’objets coopérants liés par des relations et des règles qui

expriment les liens entre un contexte, un problème de conception et sa

solution.

(8)

29

Design Pattern (suite) Design Pattern (suite)

¾ Documentation d ’une expérience éprouvée de conception

¾ Identification et spécification d ’abstractions qui sont au dessus du niveau des simples classes, instances

¾ Vocabulaire commun et aide à la compréhension de principes de conception,

¾ Moyen de documentation de logiciels

¾ Aide à la construction de logiciels répondant à des propriétés précises, de logiciels complexes et hétérogènes

30

Design Patterns / Design Patterns / Frameworks

Frameworks

¾ Synergie entre ces deux concepts

¾ les design patterns décrivent à un niveau plus abstrait des composants de frameworks, implémentés dans un langage particulier,

¾ les design patterns aident à la conception des frameworks,

¾ la conception de frameworks aident à la découverte de nouveaux design patterns.

Présentation d’un pattern Présentation d’un pattern

¾ Nom du pattern

¾ utilisé pour décrire le pattern, ses solutions et les conséquences en un mot ou deux

¾ Problème

¾ description des conditions d ’applications. Explication du problème et de son contexte.

¾ Solution

¾ description des éléments (objets, relations, responsabilités, collaboration) permettant de concevoir la solution au problème ; utilisation de diagrammes de classes, de séquences, … vision statique ET dynamique de la solution

¾ Conséquences

¾ description des résultats (effets induits) de l ’application du pattern

Sommaire Sommaire

• Conception

• Réutilisabilité

• Bibliothèque de classe vs. Framework

• Design Pattern 9 Historique

¾ Catégories de Patterns

¾Bibliographie

(9)

33 PLoP 94

Montibello

Design Patterns : Element of Reusable Object-Oriented Software

Gamma 95

EuroPLoP 96

Kloster

OOPSLA 87

Beck et Cunnimghan

Gamma et al. (GoF) OOPSLA 91, OOPSLA 92

• Object Models: Strategies, Patterns and Applications Coad 95

Patterns Languages of Program Design Coplien et Schmidt 95

Pattern-Oriented Software Architecture: A System of Patterns.

Buschmann 96

Analysis Patterns : Reusable Object Model Fowler 97

ChiliPLoP 98

Wickenburg

Historique Historique

34

Sommaire Sommaire

• Conception

• Réutilisabilité

• Bibliothèque de classe vs. Framework

• Design Pattern

• Historique

9 Catégories de Patterns

¾ Bibliographie

35

Catégories de Patterns Catégories de Patterns

¾ Architectural Patterns :

¾ schémas d ’organisation structurelle de logiciels (pipes, filters, brokers, blackboard, MVC, …)

¾ Design Patterns :

¾ caractéristiques clés d ’une structure de conception commune à plusieurs applications,

¾ de portée plus limitée que les architectural patterns

¾ Idioms ou coding patterns

¾ solution liée à un langage particulier

¾ Anti-patterns :

¾ mauvaise solution ou comment sortir d ’une mauvaise solution

¾ Organizational patterns :

¾ organisation de tout ce qui entoure le développement d ’un logiciel (humains)

36

Catégories de Design Catégories de Design Patterns

Patterns

¾ Création

¾ description de la manière dont un objet ou un ensemble d ’objets peuvent être créés, initialisés, et configurés : isoler le code relatif à la création, l ’initialisation afin de rendre l ’application indépendante de ces aspects.

¾ Structure

¾ description de la manière dont doivent être connectés des objets de l ’application afin de rendre ces connections indépendantes des évolutions futures de l ’application : découplage de l ’interface et de l ’implémentation de classes et d ’objets

¾ Comportement

¾ description de comportements d ’interaction entre objets : gestion

des interactions dynamiques entre des classes et des objets.

(10)

37

Portée des Design Patterns Portée des Design Patterns

¾ Portée Classes

¾Focalisation sur les relations entre classes et leurs sous-classes

¾ Réutilisation par héritage

¾ Portée Objets

¾ Focalisation sur les relations entre les objets

¾Réutilisation par composition

38

Vue d’ensemble des Design Vue d’ensemble des Design Patterns

Patterns

Visitor Strategy State Proxy

Observer Flyweight

Memento Facade

Mediator Decorator

Singleton

Iterator Composite

Prototype

Command Bridge

Builder

Chain of responsibility Adapter

Abstract Factory Objet

Template Method Interpreter Adapter

Factory method Classe

Portée

Comportement Structure

Création

but

Design Patterns de création Design Patterns de création

¾ Abstract Factory : interface pour la création de familles d’objets sans spécifier les classe concrètes.

¾ Builder :séparation de la construction d’objets complexes de leur représentation afin qu’un même processus de construction puisse créer différentes représentations.

¾ Factory Method :définition d’une interface pour la création d’objets associées dans une classe dérivée.

¾ Prototype :spécification des types d’objet à créer en utilisant une instance prototype.

¾ Singleton : comment assurer l’unicité de l’instance d’une classe.

Design Patterns de structure Design Patterns de structure

¾ Adapter : traducteur adaptant l’interface d’une classe en une autre interface convenant aux attentes des classes clientes.

¾ Bridge :découplage de l’abstraction de l’implémentation pour faire varier les deux indépendamment.

¾ Composite : structure pour la construction d’agrégations récursives.

¾ Decorator : extension d’un objet de manière transparente.

¾ Facade : unification de plusieurs interfaces de sous- systèmes.

¾ Flyweight : partage efficace de plusieurs objets.

¾ Proxy : approximation d’un objet par un autre.

(11)

41

Design Patterns de Design Patterns de comportement (1) comportement (1)

¾ Chain of Responsibility :délégation des requêtes à des responsables de services.

¾ Command: encapsulation de requêtes par des objets afin de permettre à un objet de traiter plusieurs types de

requêtes.

¾ Interpreter : étant donné un langage, représentation de la grammaire le définissant pour l’interpréter.

¾ Iterator : parcours séquentiel de collections.

¾ Mediator : coordination d’interactions entre des objets associés.

¾ Memento : capture et restauration d ’états d’objets.

42

Design Patterns de Design Patterns de comportement (2) comportement (2)

¾ Observer :mise à jour automatique des dépendants d’un objet.

¾ State : permettre à un objet de modifier son comportement lorsque son état interne change.

¾ Strategy : abstraction pour sélectionner un algorithme parmi plusieurs.

¾ Template method :définition d’un squelette d’algorithme dont certaines étapes sont fournies par une classe dérivée.

¾ Visitor :représentation d’opérations devant être appliquées à des éléments d’une structure hétérogène d’objets.

43

Causes de

Causes de reconception reconception (1) (1)

¾ Création d’un objet par la spécification d ’une classe explicite

¾ Abstract factory, Factory Method, Prototype

¾ Dépendances entre opérations spécifiques

¾ Chain of Responsibility, Command

¾ Dépendances par rapport aux plate-formes matérielles et logicielles :

¾ Abstract factory, Bridge

¾ Dépendances par rapport aux représentations et implémentation des objets :

¾ Abstract factory, Bridge, Memento, Proxy

44

Causes de

Causes de reconception reconception (2) (2)

¾ Dépendances algorithmiques :

¾ Builder, Iterator, Strategy, Template Method, Visitor

¾ Couplage important :

¾ Abstract factory, Bridge, Chain of Responsibility, Command, Facade, Mediator, Observer

¾ Accroissement des fonctionnalités par dérivation :

¾ Bridge, Chain of Responsibility, Composite, Decorator, Observer, Strategy

¾ Impossibilité de modifier des classes facilement :

¾ Adapter, Decorator, Visitor

(12)

45

Memento Memento

¾ Lorsque l ’on utilise les Design Patterns, se souvenir que :

¾ ce ne sont que des suggestions,

¾ qu’ils pointent vers des solutions,

¾ qu’ils sont implémentés différemment selon les langages de programmation,

¾ qu’ils sont rarement utilisés seuls mais plutôt combinés avec d ’autres patterns,

¾ que les solutions ainsi conçues sont généralement plus génériques et plus facilement réutilisables.

46

Anti Patterns Anti Patterns

¾ Représentent une « leçon apprise »

¾ Erreurs logicielles que les gens font fréquemment.

¾ Deux catégories :

¾ mauvaise solution à un problème qui a produit une mauvaise situation.

¾ comment sortir d’une mauvaise situation et

comment poursuivre à partir de là vers une bonne solution.

¾ Référence : W.J. Brown & al (1998) Anti Patterns - Refactoring Software, Architectures, and Projects in Crisis, Wiley.

Exemple de schéma pour les anti Exemple de schéma pour les anti- - patterns

patterns

¾ « Background »

¾ Forme générale

¾ Symptômes et conséquences

¾ Causes typiques

¾ Exception connue

¾ Solution « réparée »

¾ Variations

¾ Exemple

¾ Solutions apparentées

¾ Applicabilité à d’autres points de vue ou échelles

Pattern architecturaux Pattern architecturaux

¾ Schémas d’organisation structurelle fondamentaux pour les logiciels.

¾ Exemples : Pipes and Filters, Broker, MVC, Micro- kernel

¾ Références :

¾ F.Buschmann & al., Pattern-Oriented Software Architecture, Wiley 1996.

¾ R.Martin & al., Pattern Language of Program Design 3,

Addison-Wesley 1998.

(13)

49

Patterns d’analyse Patterns d’analyse

¾ Question de modélisation générale en regardant un problème particulier dans un domaine.

¾ Martin Fowler a proposé deux catégories de patterns :

¾ « Analysis patterns »

¾ « Supporting patterns »

¾ Référence :

Martin Fowler, Analysis Patterns - Reusable Object Models, Addison-Wesley, 1997.

50

Exemples de patterns d’analyse Exemples de patterns d’analyse

¾ « Accountability »

¾ Le concept de comptabilité s’applique quand une personne ou une organisation est responsable d’une autre.

¾ notion abstraite qui peut représenter plusieurs problèmes spécifiques, comportant des structures, des contrats, et du personnel.

¾ Party, organization hierarchies, organization structure etc.

51

¾ « Observations and measurement »

¾ Des quantités peuvent être utilisées en tant qu’attributs d’objets pour enregistrer de l’information sur eux.

¾ Ces patterns montrent comment cette approche échoue et suggère des approches plus

sophistiquées.

¾ Quantity, conversion ratio, compound units, measurement, observation, protocol, dual time record etc.

52

¾ « Referring to Objects »

¾ Name, Identification scheme, object merge, object equivalence

¾ « Planning »

¾ Proposed and Implemented Action, Suspension, Plan, Resource Allocation etc..

¾ « Trading

¾ Contract, Portfolio, Quote, Scenario

(14)

53

Exemples de patterns support Exemples de patterns support

¾ « Layered Architecture for Information System »

¾ Two-tier architecture, Three-tier architecture, Presentation and Application Logic, Database interaction

¾ « Application Facades »

¾ Interface simplifiée à un modèle compliqué.

¾ Responsable du choix et de l’organisation de l’information pour une présentation.

54

¾ « Patterns for Type Model Design Templates »

¾ comment transformer un modèle de spécification implicite en un modèle explicite et une

implémentation.

¾ Implementing Associations, Object Creation, Implementing Constraints ….

¾ « Association patterns »

¾ Associative Type, Keyed mapping, Historic mapping.

Sommaire Sommaire

• Conception

• Réutilisabilité

• Bibliothèque de classe vs. Framework

• Design Pattern

• Historique

• Catégories de Patterns 9 Bibliographie

Bibliographie Bibliographie

¾ Erich Gamma & al (1995) Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley.

¾ ” Pattern Languages of Program Design ”, Coplien J.O., Schmidt D.C., Addison-Wesley, 1995.

¾ ” Pattern languages of program design 2 ”, Vlissides, et al, ISBN 0- 201-89527-7, Addison-Wesley

¾ ” Pattern-oriented software architecture, a system of patterns ”, Buschmann, et al, Wiley

¾ ” Advanced C++ Programming Styles and Idioms ”, Coplien J.O., Addison-Wesley, 1992.

¾ S.R. Alpert, K.Brown, B.Woolf (1998) The Design Patterns Smalltalk Companion, Addison-Wesley (Software patterns series).

¾ J.W.Cooper (1998), The Design Patterns Java Companion, http://www.patterndepot.com/put/8/JavaPatterns.htm.

¾ S.A. Stelting, O.Maasen (2002) Applied Java Patterns, Sun

(15)

57

Sites Web Sites Web

¾ http://st-www.cs.uiuc.edu/users/patterns/patterns.html

¾ http://hillside.net/patterns/patterns.html

¾ Portland Pattern Repository

¾ http://www.c2.com/ppr

¾ Ward Cunnigham's WikiWiki Web

¾ http://www.c2.com/cgi/wiki?WelcomeVisitors

¾ http://www.c2.com/cgi/wiki?PatternIndex

Références

Documents relatifs

 Le pattern Factory Method (pattern de fabrication ou méthode de fabrique ou patron de méthode de fabrique) a pour objectif de définir une classe de fabrique d’un

In semantic matching for Abstract Factory, types of the classes are analyzed to validate the family information acquired from the behavioral matching as per the findings of

My doctoral research is based on finding these design patterns to be applied on model transformation problems and evaluating them in terms of quality criteria.. My next step is

The Six Thinking Hats technique can be used effectively in practical creativity group meetings, as it provides a way of understanding and accepting different thinking styles that

The contribution of this paper is twofold: (i) a collaborative, incremental, and iterative method for pattern-based ontology design, called eXtreme Design (XD); (ii) a first version

La traduction de l’arbre syntaxique en code intermédiaire est réalisée via un visiteur (TranslateVisitor), mais cette phase doit être précédée du calcul des escapes.. Le calcul

// vérifie l’état du jeu pour savoir s ハ ’il existe un gagnant, dont la référence est retournée. // Null est retourn é si

Problème : on souhaite pouvoir créer dynamiquement des familles d'objets apparentés (par exemple des instances d'une même classe), tout en permettant de reporter certaines