Modelisation´ et implementation´ de l’architecture PACa` l’aide des patrons Proxy et Abstract FactoryThierryDuvalUniversite´ Europeenne´ de BretagneUniversite´ de Rennes 1IRISA - Campus de Beaulieu35042, Rennes, FranceThierry.Duval @ irisa.fr´RESUME INTRODUCTIONDes modeles` d’architecture tels que MVC, PAC, PAC Le but de ce cours est de presenter´ une methodologie´ per-Amodeus ou Arch donnent lieu a` de nombreuses possi mettant d’utiliser au mieux le modele` d’architecture logi ´ ´ `bilites d’implementation. Ceci pose des problemes aux cielle PAC [1] en l’interpretant´ sous l’angle du modele`etudiants´ ou jeunes diplomˆ es´ qui ne savent pas quelle Arch [8], un peu comme a dej´ a` pu le faire le modele` PAC solution choisir lorsqu’ils doivent les coder. Depuis Amodeus [7]. Nous choisissons ici d’ajouter systemati ´plusieurs annees,´ nous avons mis au point une methodolo ´ quement des interfaces logicielles (telles qu’on peut lesgie qui implemente´ le modele` PAC en utilisant princi trouver dans des langages de modelisation´ ou de program palement les patrons de conception Proxy, Fabrique Ab mation comme UML ou Java) entre les trois facettes dustraite, et, dans une moindre mesure, Singleton. Graceˆ modele` PAC.a` cette methodologie,´ les etudiants´ sont guides´ dans la´ ´structuration de leur code, et l’IHM est separ´ ee´ effi DEMARCHE PROPOSEEcacement du noyau fonctionnel, montrant ainsi comment Afin d’obtenir un maximum d’independance´ entre ...
Modelisationetimplementationdel’architecturePAC a` l’aidedes patrons Proxy et Abstract Factory
Thierry Duval
UniversiteEuropeennedeBretagne UniversitedeRennes1 IRISA - Campus de Beaulieu 35042, Rennes, France Thierry.Duval @ irisa.fr
RESUME Des mode`les d’architecture tels que MVC, PAC, PAC AmodeusouArchdonnentlieu`adenombreusespossi bilitesd’implementation.Ceciposedesprobl`emesaux etudiantsoujeunesdiploˆmesquinesaventpasquelle solution choisir lorsqu’ils doivent les coder.Depuis plusieursannees,nousavonsmisaupointunemethodolo giequiimplementelemod`elePACenutilisantprinci palement les patrons de conception Proxy, Fabrique Ab straite,et,dansunemoindremesure,Singleton.Grˆace `acettemethodologie,lesetudiantssontguidesdansla structuration de leur code, et l’IHM est separee effi cacement du noyau fonctionnel, montrant ainsi comment realiserproprementcetteseparationavecdesproprietes d’evolution importantes :changement de l’IHM ou du codedunoyaufonctionnel,maisaussiajoutd’interactivite `aunnoyaufonctionnelnoninteractif.Nousproposons doncdepresentericicettedemarchemethodologiqueet del’illustrer`al’aided’unexemplequenoustraiteronsen ` Java en utilisant l’API Swing.A l’issue du cours, des tineaussibien`adesetudiantsdeniveaumaster2qu’a` desdoctorantsoua`desingenieursdebutants,ondoitˆetre en mesure de structurer efficacement une application in teractivea`l’aidedumod`elePACAmodeus,enrendant notammentlecomposantdecontroˆleleplusindependant possibledelapartiepresentationgraphiqueetdelaboˆıte `aoutilgraphiqueeffectivementutilisee.
MOTS CLES :Mode`les d’Architecture Logicielle, Pa trons de Conception.
CATEGORIES AND SUBJECT DESCRIPTORS: HCI — User Interfaces — Theory and methods; Software — Software Architecture — Patterns
H.5.2: D.2.11:
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page.To copy otherwise, to republish, to post on servers or to redistribute to lists, re quires prior specific permission and/or a fee. IHM 2010,2023 Septembre 2010, Luxembourg, Luxembourg .
INTRODUCTION Le but de ce cours est de presenter une methodologie per mettant d’utiliser au mieux le mode`le d’architecture logi ciellePAC[1]enl’interpretantsousl’angledumod`ele Arch[8],unpeucommeadeja`pulefairelemod`elePAC Amodeus [7].Nous choisissons ici d’ajouter systemati quement des interfaces logicielles (telles qu’on peut les trouverdansdeslangagesdemodelisationoudeprogram mation comme UML ou Java) entre les trois facettes du mod`elePAC.
DEMARCHE PROPOSEE Afin d’obtenir un maximum d’independance entre les differentesfacettesdescomposantsPAC,nouspartonsde l’interpretationdumod`elePACquenousavonsproposee en1999[3]etcompleteeen2000[4],quiestillustreefig ure 1.Cette approche propose de specifier les services offertsparchaquefacettedumod`elePAC`al’aided’une interface, de facon a` ce que par exemple la facette controˆle CneconnaissesafacetteabstractionAassocieequ’au traversdel’interfaceIAimplementeeparcetteabstrac tion. L’interfacede controˆle IC herite ici de l’interface abstractionIAafinquelecontrˆolepuisseˆetreconsidere commeunproxydesonabstractionassociee.
Figure 1:vaceniet`dlePeCAtiondIunmtoerpretaacrfes entre facettes
La presence du composant interface presentation va per mettreaucomposantdecontroˆled’ˆetretotalementinde pendantdescaracteristiquesdel’APIgraphiqueutilisee parlecomposantdepresentation,seulcedernierayant besoin d’une connaissance precise de cette API.
Delamˆemefacon,lapresenced’uneinterfacedecontroˆle vapermettreaucomposantdepresentationd’eˆtreinde pendant des caracteristiques effectives du composant de controˆ le.
` Al’execution,lesfacettesdescomposantsPACseront bienentendudespresentations,descontrˆoles,oudesab stractions et non pas des interfaces de ces composants.
LIENS AVEC LES PATRONS DE CONCEPTION Notredemarches’appuieegalementsurlespatronsde conception Proxy, Fabrique Abstraite, et Singleton, dont on pourra trouver une description dans [6].
Utilisation du proxy Lepatrondeconceptionproxyesticiutilisepourpou voir substituer un composant controˆle au composant ab stractionauquelilestassocie.C’estdecettefaconque lecontrˆolepourrainterceptertouslesmessages`adesti nation du composant abstraction, jouant ainsi son roˆle de contrˆoleurd’acc`esetdemaintiendecoherenceavecson composantpresentationassocie.
Utilisation de la fabrique abstraite Le patron de conception fabrique abstraite va permet tre de regrouper dans un ou plusieurs composants dedies l’ensembledesmethodesdecreationdesobjetsd’uneap plication. C’estce qui va nous permettre de faire evoluer uneapplicationenremplacantlafabriqueinitiale,quicree des composants abstraction, par une fabrique qui va alors creerdescomposantsdecontrˆole.
Utilisation du singleton Lepatronsingletonn’estpasessentiela`notremethode, mais il permet de s’assurer qu’on ne creera qu’une seule fabrique de composants de chaque type (abstraction, con troˆleetpresentation)pouruneapplicationdonnee.
ILLUSTRATION DE LA DEMARCHE Nousillustronscettedemarchemethodologiquea`l’aide d’un exemple en Java en utilisant l’API Swing :il s’agit d’ajouterdel’interactivite`aunnoyaufonctionnelinitiale ment non graphique et non interactif. L’accent est mis sur lanecessitedeseparerefficacementlecontrˆoled’unepart du noyau fonctionnel, et d’autre part de l’API graphique utilisee.Lademarchepermetegalementderemplacer tre`s facilement l’API Swing par d’autres API graphiques comme par exemple SWT.
LademarcheestpresenteeencoursdeMaster2a`l’Univer sitedeRennes1depuis2000[5],elleaaussietepresentee sous forme d’un tutorial lors des conferences IHM 2005 et IHM2009.Elleaegalementeteutiliseedanslecadredu developpement de plusieurs versions d’un logiciel com mercial[2]dansunbutd’optimiserlareutilisationde code. BIBLIOGRAPHIE 1. Coutaz,J. Pac:An object oriented model for imple menting user interfaces.SIGCHI Bull., 19(2):37–41, 1987. 2.Degrigny,F.,andDuval,T.Utilisationdumod`elepac amodeus pour une reutilisation optimale de code dans ledeveloppementdeplusieursversionsd’unlogiciel commercial. InIHM 2004:Proceedings of the 16th conference on Association Francophone d’Interaction HommeMachine, pages 149–156, New York, NY, USA, 2004. ACM. 3.Duval,T.,andNigay,L.Implementationd’uneap plicationdesimulationselonlemod`elepacamodeus. InIHM 1999:Proceedings of the 11th conference on Association Francophone d’Interaction Homme Machine, pages 86–93, New York, NY, USA, 1999. ACM. 4. Duval,T., and Pennaneac’h, F.Using the pac amodeus model and design patterns to make interac tive an existing objectoriented kernel. InTOOLS ’00: Proceedings of the Technology of ObjectOriented Languages and Systems (TOOLS 33), pages 407–418, Washington, DC, USA, 2000. IEEE Computer Soci ety. 5.Duval,T.,andTarby,J.C.Ameliorerlaconcep tion des applications interactives par l’utilisation con jointedumod`elepacetdespatronsdeconception.In IHM’06: Proceedings of the 18th International Con ference of the Association Francophone d’Interaction HommeMachine, pages 225–232, New York, NY, USA, 2006. ACM. 6. GammaE., Helm R., Johnson R., and Vlissides J.De sign Patterns : Elements of reusable ObjectOriented Software. AddisonWesley,1995. 7. Nigay, L., andCoutaz, J.A design space for mul timodal systems:concurrent processing and data fu sion. InCHI ’93: Proceedings of the INTERACT ’93 and CHI ’93 conference on Human factors in com puting systems, pages 172–178, New York, NY, USA, 1993. ACM. 8. UIMS1992. Ametamodel for the runtime architec ture of an interactive system: the uims tool developers workshop.SIGCHI Bull., 24(1):32–37, 1992.