40
. Rieu ept Informatique, IUT2 Grenoble [email protected] Introduction aux patrons

D. Rieu Dept Informatique, IUT2 Grenoble [email protected] Introduction aux patrons

Embed Size (px)

Citation preview

Page 1: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

D. Rieu Dept Informatique, IUT2 [email protected]

Introduction aux patrons

Page 2: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 2

SpécificationsInformelles

Modèle ObjetDescriptif & Normatif

Modèle ObjetEffectif Normalise

Logiciel

Expression des besoins

Analyse (abstraction du monde réel)

Conception (solution technique)

Implantation (solution opérationnelle)

Nerson 92

Composants de différents niveauxComposants de différents niveaux

Page 3: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 3

Composants réutilisablesComposants réutilisables

le composant logiciel ne suffit plusle composant logiciel ne suffit plus

toute une panoplie de modèles de composants toute une panoplie de modèles de composants réutilisablesréutilisables Dédié à un niveau d’abstractionDédié à un niveau d’abstraction Capitalisant savoir / savoir-faireCapitalisant savoir / savoir-faire

Patron (Patterns) : un modèle consensuel ?Patron (Patterns) : un modèle consensuel ?

Page 4: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 4

Patron ?Patron ?

Un patron constitue une base de savoir-faire pour résoudre Un patron constitue une base de savoir-faire pour résoudre un problème récurrent dans un domaine particulier. un problème récurrent dans un domaine particulier.

L’expression de ce savoir-faire :L’expression de ce savoir-faire :

permet d’identifier le problème à résoudrepermet d’identifier le problème à résoudre

propose une solution possible et correcte pour y répondrepropose une solution possible et correcte pour y répondre

offre les moyens d’adapter cette solutionoffre les moyens d’adapter cette solution

Page 5: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 5

PATTERNité : l’architecturePATTERNité : l’architecture

« Pattern #112 d’Alexander»Nom : Transition d’entréeQuoi : créer une transition du monde extérieur vers un univers intérieur, plus privéPourquoi : L’entrée dans un bâtiment influence la façon dont on va se sentir à

l’intérieurQuand : systèmes d’accès et d’entrée pour les maisons, les cliniques, les magasins, etc.Comment : 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 changementde direction, etc.

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

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

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

Page 6: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 6

D’autres domaines : l’hydraulique.

« 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 dansle 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énalisel’irrigation des cultures en aval ; la population ne doit pas souffrir de cette baisse du débitdes eaux ; l’impact écologique doit être limité au minimum.

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

Ken Asplund en 1973

Page 7: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 7

Décrire avec succès des types de solutions récurrentes

à des problèmes communs dans des types de situations

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éfinition

Page 8: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 8

Les patrons pour les SILes patrons pour les SI

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

Coad [Coad92]Une abstraction d’un doublet, triplet ou d’un ensemble de classes qui peut êtreréutilisé encore et encore pour le développement d’applications Appleton [Appleton97]Une règle tripartite exprimant une relation entre un certain contexte, un certainproblème qui apparaît répétitivement dans ce contexte et une certaine configurationlogicielle qui permet la résolution de ce problème. Aarsten [Aarsten96]Un groupe d’objets coopérants liés par des relations et des règles qui exprimentles liens entre un contexte, un problème de conception et sa solution.

Page 9: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 9

Historique

PLoP 94Montibello

Design Patterns : Element of ReusableObject-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 ApplicationsCoad 95

• Patterns Languages of Program DesignCoplien et Schmidt 95

Pattern-Oriented Software Architecture: A System of Patterns.Buschmann 96Analysis Patterns : Reusable Object Model Fowler 97

ChiliPLoP 98 Wickenburg

Page 10: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 10

Patron « observateur » d ’E. Gamma

Intention : définir une interdépendance entre objets dépendants de façon telle que, quand un objet change d’état, tous ceux qui en dépendent en soit informés et automatiquement mis à jour.

GoF, 1995

0204060Est =

20,4Ouest = 30,6Nord = 45,9

1 sujet

3 observateurs

x = 55y = 97

1 sujet

3 observateursMotivation :

Page 11: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 11

Patron « observateur »

Sujet

état_sujet

lire_etat ()modifier_etat ()notifier ()lier (Observeur)délier (Observeur)

Observateur

état-obs.

mise_à_jour( )

un-Sujet un-autre-Observateurun-Observateur

2: notifier1: modifier_état

3: mise_à_jour

4: mise_à_jour

1,n

Structure et Collaborations

4: lire_état

5: lire_état

Observateurs

return état_sujet

pour tout o de Observateurs

o.mise_à-jour ()

Page 12: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 12

Documenter un framework

Documentation

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

Gestion des ressourcesOpé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

Simuler l’héritagemultiple en Java

Implantation« idiome »

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

Types de patrons / portée

CompositeObservateurBlackboard

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

Page 13: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 13

23 modèles de conception du «Gang of Four»

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

ORIGINES• pratique de Smalltalk & C++• conception et réalisation de frameworks (cadriciels)

• thèse d’Erich Gamma, Object-Oriented Software Development based on ET++ :

Design Patterns, Class Library, Tools, Institut für Informatik, Zurich, 1991.• des conférences OOPSLA 91, 92, …• Design Patterns - Elements of Reusable Object Oriented Software, Addison-Wesley, 1995. (existence d’une version française)

Patrons de Gamma : introduction

Page 14: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 14

1- nom du patron et classification

2- intention : le problème à résoudre

3- alias : les patrons similaires dans d’autres langages de patrons

4- motivation : un scénario d’application du patron, les problèmes particuliers

5- indications d’utilisation : les situations dans lesquelles ce patron peut être utilisé

6- structure : une représentation graphique du patron utilisant la notation OMT

7- participants : les classes et/ou les objets participants et leurs responsabilités

8- collaborations : comment les participants collaborent

9- conséquences : décrit les résultats d’utilisation du patron

10- implantation : les astuces et les conseils d'implantation

11- exemples de code : fragments de code illustrant l’implantation du patron

12- utilisations remarquables : des exemples d’utilisations réelles de ce patron

13- modèles apparentés : d’autres patrons utilisés avec (ou par) celui-ci

Patrons de Gamma : formalisme

Page 15: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 Patron 15

Formalismes des patronsFormalismes des patrons

Narratif ou Structuré

Nom

Le patron

Diagramme

Indications

Un exemple

Nom

IntentionAlias

Motivation

Indications d’utilisation

UtilisationsModèles Apparentés

P. Coad E. Gamma

StructureParticipantsCollaborationsConséquencesImplantationExemples de Code

• Solution plus ou moins détaillée• Liens inter-patrons• Cas réels d’utilisation (framework)

Page 16: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 Patron 16

Classification GofClassification Gof

Création Structure Comportement

Classe

héritage

Délègue lacréation des objetsaux sous-classes

Factory Method

Décrit la manièrede composer lesclasses

Adapter

décrire desalgorithmes et desflots de données

Interpreter

Objet

délégation

Délègue lacréation d’objet àun autre objet

Abstract Factory

Décrit la manièred’assembler desobjets

Composite

Décrit des protocolesde coopérations entreobjets pour accomplirune tâcheObserver

Fonction

Portée

Page 17: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 Patron 17

Exemple : Factory MethodExemple : Factory MethodNom : Factory Method , Classification : Creation - Classe Alias : constructeur virtuel Intention : Définit une interface pour créer des objets, mais laisse les sous-classes décider de la classe à instancier. Motivation : Il s’agit permettre l’adaptation de classes abstraites de framework qui bien que abstraites ont à créer des objets dans d’autres classes abstraites.

Document

MyDocument

Application

MyApplication

CreateDocument NewDocument

doc = self.CreateDocumentdocs.inserer(doc)doc.ouvrir

docs

CreateDocument return new MyDocument()

Page 18: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 Patron 18

Exemple : Factory MethodExemple : Factory Method

Product

ConcreteProduct

Creator

ConcreteCreator

FactoryMethod AnOpération

FactoryMethod

...product = self. FactoryMethod....

Structure

Participants

Product : l’interface des objets créés par la «factory method»ConcreteProduct : réalise l’interfaceCreator : déclare la «factory method» et l’utilise pour manipuler des produitsConcreteCreator : surcharge ou réalise la «factory method»

return new ConcreteProduct()

Page 19: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 Patron 19

Exemple : CompositeExemple : Composite

Nom : Composite, Classification : Structure - Objet

Intention : décrire des compositions récursives et permettre aux clients de traiterdes objets individuels ou des compositions d’objets uniformément.

Motivation : Dans les applications graphiques, par exemple les éditeursgraphiques, le système autorise l’élaboration de figures composites à partir defigures simples et prédéfinies mais aussi à partir de figures composites élaboréesprécédemment.

Page 20: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 Patron 20

Exemple : CompositeExemple : Composite

un-Clientune-Figure

uneFigureComposée

uneFigureSimple

1: colorer ()2: colorer () 3:colorer ()

4: tracer ()5: tracer ()

une-Figure*

Figurecolorer ()tracer ()ajouter(fig)supprimer(fig)accéder ()

FigureComposéecolorer () { }tracer ()ajouter(fig)supprimer(fig)accéder ()

1,n

Cerclecolorer ()tracer ()

Textecolorer ()tracer ()

pour tout c de composants c.colorer()

composant

Page 21: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 Patron 21

Exemple : CompositeExemple : Composite

Client

Composant

Opérationspécifique ()Ajouter(Composant)Supprimer(Composant)Accéder()

Composite

Opérationspécifique ()Ajouter(Composant)Supprimer(Composant)Accéder()

Feuille

Opérationspécifique ()

1,n Client :manipule les objets feuilles etcomposites à traversl’interface ComposantComposant:définit l’interface commune

des objets.Feuille :définit le comportement des

objets simples.Composite :définit le comportement des

objets composites, réalise lesopérations de gestion descomposants.

Structure et Participants:

pour tout c de composants c.operationspécifique

composant

Page 22: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 Patron 22

Exemple : CompositeExemple : Composite

C o l l a b o r a t i o n :

L e s c l i e n t s u t i l i s e n t l a c l a s s e C o m p o s a n t p o u r i n t e r a g i r a v e c l e s o b j e t s d a n s l a s t r u c t u r ec o m p o s é e . S ’ i l s ’ a g i t d ’ u n e f e u i l l e , l a r e q u ê t e e s t p r i s e e n c o m p t e i m m é d i a t e m e n t . S ’ i l s ’ a g i td ’ u n c o m p o s i t e , l a r e q u ê t e e s t p r o p a g é e à s e s e n f a n t s .

I m p l a n t a t i o n :

r é f é r e n c e a u x e n f a n t s ( c o m p o s é - > c o m p o s a n t ) : o r d r e ? ( I t e r a t o r ) r é f é r e n c e a u p è r e ( c o m p o s a n t - > c o m p o s é ) : M a j p a r l e c o m p o s é p a r t a g e d e c o m p o s a n t ( u t i l i s a t i o n d u F l y w e i g h t ) i n t e r f a c e c o m m u n e ?

P r o d u i r e u n e i m p l a n t a t i o n p a r d é f a u t e n i m a g i n a n t l a m i g r a t i o n d e s o b j e t s ( a c c é d e r p o u r u n e c l a s s e F e u i l l e )

Page 23: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 23

Typologie des patrons

Patrons

PatronsGénéraux

Patronsde Domaine

couverture

PatronsD’Analyse

PatronsConception

PatronsD’Implantation

portée

PatronsProcessus

PatronsProduit

nature

Page 24: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 24

Nouvelle-Opération-BancaireNouvelle-Opération-Bancaire

Nom : Nouvelle-Opération-Bancaire

Problème : Permet de traiter uniformément les opérations bancaires (création compte, prêt, retrait, dépôt, etc.) pour faciliter la maintenance et l’évolution du système.

Force : Uniformisation des traitements, Réutilisation dès l’expression des besoins.

Page 25: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 25

Nouvelle-Opération-BancaireNouvelle-Opération-BancaireCas d’application :

2 cas spécifiques

Retrait Compte

Accéder au compte Contrôler le compte Vérifier la création du retrait Créer le retrait Prévenir le clientClient

NouveauCompte

Accéder au clientContrôler le clientVérifier la création du compte Créer le compte Prévenir l’agent

Agentbancaire

Cas général

NouvelleOpération Bancaire

Acteur

Accéder au produit Contrôler le produit Vérifier la création de l’opérationCréer l’opérationPrévenir l’acteur

Page 26: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 26

Client

c : Compte« Produit »

o: Retrait« Opération-Bancaire »

1: retrait-compte(numc, m)

3 : état:= ton-état ? ()

2 : c:= un-compte? (numc)

7: lier-compte (c)

4 : [ état = non bloqué]o:= réaliser -retrait (m)

6 : o:= créer-retrait ( c,m)

8: lier-retrait (o)

5 : vérifier-création-retrait (m)

9 : retirer (m)

Banque« Agrégat-Produit »

10 : afficher « Retrait effectué »

Nouvelle-Opération-BancaireNouvelle-Opération-Bancaire

Page 27: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 27

Agent-Bancairecl : Client« Produit »

c: Compte« Opération-Bancaire »

1 : nouveau-compte(numcl, type, versement)

2 : cl := un- client? (numcl)

3 : état:= ton-état ? ()

7: lier-client (cl)

4 : [ état=OK]c := réaliser-compte (type, versementt)

6 : c:= créer-compte(cl, type, versement)

9: lier-compte(c)

5 : vérifier-création-compte (type,versementt)

Agence« Agrégat-Produit »

10 : afficher « Compte ouvert »

8: verser (versement)

Nouvelle-Opération-BancaireNouvelle-Opération-Bancaire

Page 28: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 28

NouvelleOpération Bancaire

Acteur

Accéder au produit Contrôler le produit Vérifier la création de l’opérationCréer l’opérationPrévenir l’acteur

Solution Modèle

Nouvelle-Opération-BancaireNouvelle-Opération-Bancaire

Page 29: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 29

Solution Modèle

Acteur p: Produit o : Opération-Bancaire

1: nouvelle-opération-produit (idp,valop) 2 : p := un- produit? ( idp)

3: état:= ton-état ? ()

7 : lier-produit(p)

4 : [ état = OK ]o := réaliser-opération (valop)

6: o:= créer-opération-bancaire (p, valop)

5 : vérifier-création-opération (valop)

8: lier-opération-bancaire(o)

Agrégat-Produit 

9 : afficher « Opération créée »

Nouvelle-Opération-BancaireNouvelle-Opération-Bancaire

Page 30: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 30

Solution Modèle

 Agrégat-Produit 

nouvelle-opération-produit() un-produit?(): Produit

 Produit 

ton-état? ()

réaliser-opération ():Opération-Bancairevérifier-création-opération (): Bool

lier-opération-bancaire (o:Opération-Bancaire)

0..*

1 1..*

Opération-Bancaire

créer-opération-bancaire(p:Produit,..)lier-produit(p:Produit)

Patron « Nouvelle-Opération-Bancaire »

Nouvelle-Opération-BancaireNouvelle-Opération-Bancaire

Page 31: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 31

NouvelleOpérationBancaire

acteur

SupprimerOpérationProduit

Réutilisation dès l’expression des besoins

RetraitCompte

client

NouveauCompte

Agent Bancaire

SupprimerCompte

SupprimerClient

DépotCompte

Page 32: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 32

ImitationImitation

Imiter un patron =

dupliquer et adapter les solutions modèles

Adapter un duplicata de patron =

(renommer | redéfinir | ajouter | supprimer)* des propriétés

Ingénierie des systèmesIngénierie des systèmes

Page 33: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 33

Exemple d ’ImitationExemple d ’Imitation

  

nouvelle-opération-produit()un-produit? (): Produit

 

patron «Nouvelle-Opération-Bancaire»

0..*

1..*

Agrégat-Produit

Produit

Opération Bancaire

ton-état? ()

réaliser-opération ():Opération-Bancairevérifier-création-opération (): Boollier-opération-bancaire (o:Opération-Bancaire)

créer-opération-bancaire(p:Produit,..)lier-produit(p:Produit)

1

créer-retrait (c:Compte,…) : Retraitlier-compte (c : Compte)

1

modèle «Nouveau-Compte»modèle «Retrait-Compte»

nouveau-compte ()un-client? () : Client

0..*

1

1..*

créer-compte (cl:Client,…) :Comptelier-client (cl : Client)verser ()

retrait-compte() un-compte?() : Compte

0..*

1..*

Banque

Compte

Retrait

Client

Compte

Agence

ton-état? ()

réaliser-compte ():Comptevérifier-création-compte ():Boollier-compte (c:Compte)

ton-état? ()

réaliser-retrait ():Retraitvérifier-création-retrait ():Boollier-retrait (o:Retrait)retirer ()

2 imitations

1 patron

Page 34: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 34

Intégration d’imitationIntégration d’imitation

Ingénierie des systèmesIngénierie des systèmes

Intégrer des imitations = (unir)* les rôles des classes

Union consiste à :

- remplacer deux classes par une seule

regroupant les propriétés des classes initiales ou

- appliquer un patron Rôle

Exemple : classe Compte

Page 35: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 35

Exemple d ’IntégrationExemple d ’Intégration

1..*

nouveau-compte ()un-client? () : Client

retrait-compte() un-compte?() : Compte

0..*

1

Banque

créer-retrait (c:Compte,…)lier-compte (c : Compte)

créer-compte (cl:Client,…)lier-client (cl : Client)verser ()ton-état? ()réaliser-retrait ():Retraitvérifier-création-retrait lier-retrait (o:Retrait)retirer ()

0..*

1

1..*

Agence

CompteClient Retrait

ton-état? ()

réaliser-compte ():Comptevérifier-création-compte ():lier-compte (c:Compte)

Maintenance et Traçabilité ?

Page 36: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 36

Nouveau-Compte«Nouvelle-Opération-Bancaire»

Agence

Banque

Client

Compte

Retrait

Opération-Bancaire

ProduitAgrégat-ProduitAgrégat-Produit

Retrait-Compte«Nouvelle-Opération-Bancaire»

Produit

Opération-Bancaire

Un système = une intégration d’imitations de patrons

Page 37: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 37

Un système = une intégration d’imitations de patrons

Composite

FigureChangeListener

AttributeFigure

RectangleFigure

StandardDrawing

CompositeFigure

Figure

Médiateur

AbstractFigure

FigureChangeEventMulticaster

Médiateur concret

Collègue concret

Observateur

Observateur concret

Sujet

Sujet concret

Composant

Composite concretFeuille

Observateur

Gestionnaire

Gestionnaire concret

Client

Gestionnaire concret

Chaîne de responsabilité

Gestionnaire concret

Page 38: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 38

Ingénierie des systèmesIngénierie des systèmesLa structure générale d’un modèle de SI peut-elle être construite exclusivement par imitation et intégration de patrons sans ajouts de classes ou de liaisons ?

OUI si :

- si on reste au même niveau d’abstraction (usage du patron Rôle, des patrons de Gamma, etc.)

- le catalogue de Patrons est complet

Page 39: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 39

Complétude des catalogues de patronsComplétude des catalogues de patronsTrès difficilement vérifiable

Plus facile pour un catalogue mono-domaine (SI bancaire, produit…)

L’ingénierie des patrons passe par une analyse de domaine

Catalogue de patrons

Ingénierie des Patrons

Ingénierie des SI

Analyse du domaine

Nouveau SI

Cahier des charges

utilisateurs

SI existants

plus le catalogue est complet, plus les patrons sont liés les uns aux autresplus le processus d’ingénierie des SI est spécifié.

Page 40: D. Rieu Dept Informatique, IUT2 Grenoble Dominique.Rieu@iut2.upmf-grenoble.fr Introduction aux patrons

Département info/IUT2 40

Deux processus complémentaires

- d’ingénierie des SI à partir de patrons (BY reuse)langage de patrons + opérations de bases Imitation, Intégration d’imitations

- d’ingénierie des patrons (FOR reuse)systèmes existants, analyse de domaine + relations inter-patrons Alternative, Extension/Raffinement, Utilisation

Nouvelle approche d’ingénierieNouvelle approche d’ingénierie