Journées Patterns Grenoble 3 et 4 avril 2003 Patterns pour le développement logiciel Langage et systèmes de patterns Isabelle Borne Université de Bretagne-Sud.

Slides:



Advertisements
Présentations similaires
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel I.
Advertisements

Etude de Cas Une compagnie d'assurance automobile propose à ses clients quatre familles de tarifs identifiables par une couleur, du moins au plus onéreux.
Introduction au patrons de conception « Design patterns »
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Réflexivité et réseaux d’ information
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
Excel 2007 et les services Excel. Pourquoi Excel ? Outil privilégié danalyse des données issues des bases multidimensionnelles Ergonomie connue des outils.
Patterns & Anti Patterns
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Exposé de Système - Informatique et Réseau
Reference Model of Open Distributed Processing
Design Pattern MVC En PHP5.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
Page de garde Introduction aux Design Patterns ISIA, Mars 2003
Etude des Technologies du Web services
Initiation à la conception de systèmes d'information
Réalisée par :Samira RAHALI
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
Chap 4 Les bases de données et le modèle relationnel
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Patterns et maintenabilité dans lindustrie : un cas concret Christophe Saint-Marcel Silicomp Ingénierie.
Développement d’un réseau social professionnel
Modélisation orientée objet UML
Etude globale de système.
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Behavioral Design Patterns The Observer Pattern Roberto Demontis Sylvain Giroux.
Présentation du mémoire
Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1.
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Initiation aux bases de données et à la programmation événementielle
La face cachée des systèmes de recherche Martin Bouchard, président Janvier 2003.
Adaptée du cours de Richard Grin
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Patrons de conceptions de créations
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Mise en oeuvre et exploitation
Module 8 : Surveillance des performances de SQL Server
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
Design Patterns en programmation par objets. Plan  Design patterns –De quoi s’agit-il? –Pourquoi faut-il les utiliser?  Design patterns essentiels 
Designs Patterns comment rendre son code faiblement couplé, et maintenable...
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Créer des packages.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Introduction au Génie Logiciel
Initiation à la conception des systèmes d'informations
IFT 785 Approches Orientée Objets Plan de cours. Information générale Professeur : – Sylvain Giroux –
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
IFT 232 Méthodes de Conception Orientées Objets Introduction.
Problèmes du génie logiciel. H. Lounis Les problèmes zTaille et complexité des logiciels ; zTaille croissante des équipes ; zSpécifications peu précises.
Behavioral Design Patterns The Observer Pattern. Intention Définir une dépendance de “1” à “n” entre des objets de telle sorte que lorsque l’état d’un.
La programmation par objets Principes et concepts Etude de Smalltalk.
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Design Patterns Cours IUT 7 mars 2001 Arnaud Nauwynck & Nédra Mellouli
Iup MIAGe 3° année Projet MIAGe Toulouse – Groupe 21 Charte graphique.
Réalisé avec le soutien de Pied de page fixe Pied de page 1 Titre Sous titre.
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
IHM Modèle d’architecture et liens avec les outils de production d’interface IHM Dirrigé par : Catherine RECANATI Présenté par : Youssef OUDGHIRI YOUSFI.
Factory Design Patterns Raffaella Sanna Sylvain Giroux.
Modèles de conception et BC4J Par Gabriela Cohen Yanéric Roussel.
TP D’UML Groupe N° 3.
Initiation aux bases de données et à la programmation événementielle
INSTITUT SUPERIEURE D’INFORMATIQUE Design Pattern
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
UML : méthode Processus. Introduction(1) ● Cycles ● Spécification par cas d'utilisation ● Identifier les besoins ● Analyse par cas d'utilisation ● Affiner.
ARIANE : Interopérabilité sémantique et accès aux sources d'information sur Internet Sylvain Aymard, Michel Joubert, Dominique Fieschi, Marius Fieschi.
Transcription de la présentation:

Journées Patterns Grenoble 3 et 4 avril 2003 Patterns pour le développement logiciel Langage et systèmes de patterns Isabelle Borne Université de Bretagne-Sud Vannes

I.Borne - UBS2 Sites Web n n n Portland Pattern Repository n Ward Cunnigham's WikiWiki Web

Patterns pour le développement logiciel Analyse Conception Programmation Architecture logicielle Anti-patterns

I.Borne - UBS4 Idiomes ou patterns de codage n Les Idiomes sont des patterns de bas niveau spécifiques à un langage de programmation. n Ils décrivent comment implémenter des aspects particuliers des composants ou leurs relations, avec les caractéristiques dun langage donné. n Langages : C++, Smalltalk, Java

I.Borne - UBS5 Patterns de conception (Design Patterns) n Abstraction, identification et façon de nommer les aspects clé dune structure de conception courante. n Échelle plus petite que les patterns darchitecture, mais niveau plus élevé que les idiomes spécifiques dun langage de programmation. n Organisés en catalogue.

I.Borne - UBS6 Références : n Erich Gamma & al (1995) Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley. n S.R. Alpert, K.Brown, B.Woolf (1998) The Design Patterns Smalltalk Companion, Addison-Wesley (Software patterns series). n J.W.Cooper (1998), The Design Patterns Java Companion, n S.A. Stelting, O.Maasen (2002) Applied Java Patterns, Sun Microsystems Press.

I.Borne - UBS7 Catalogue de Design Patterns Creational Structural Behavioral Factory MethodAdapter (class) Interpreter Template Method class object Abstract Factory Adapter (object) Chain of Responsibility Builder Bridge Command Prototype Composite Iterator Singleton Decorator Mediator Facade Memento Flyweight Observer Proxy State, Strategy, Visitor

I.Borne - UBS8 Anti Patterns n Représentent une « leçon apprise » n Erreurs logicielles que les gens font fréquemment. n Deux catégories : –mauvaise solution à un problème qui a produit une mauvaise situation. –comment sortir dune mauvaise situation et comment poursuivre à partir de là vers une bonne solution. n Référence : W.J. Brown & al (1998) Anti Patterns - Refactoring Software, Architectures, and Projects in Crisis, Wiley.

I.Borne - UBS9 Exemple de schéma pour les anti-patterns n « Background » n Forme générale n Symptômes et conséquences n Causes typiques n Exception connue n Solution « réparée » n Variations n Exemple n Solutions apparentées n Applicabilité à dautres points de vue ou échelles

I.Borne - UBS10 Pattern architecturaux n Schémas dorganisation structurelle fondamentaux pour les logiciels. n Exemples : Pipes and Filters, Broker, MVC, Micro-kernel n Références : –F.Buschmann & al., Pattern-Oriented Software Architecture, Wiley –R.Martin & al., Pattern Language of Program Design 3, Addison- Wesley 1998.

I.Borne - UBS11 Patterns danalyse n Question de modélisation générale en regardant un problème particulier dans un domaine. n Martin Fowler a proposé deux catégories de patterns : –« Analysis patterns » –« Supporting patterns » n Référence : Martin Fowler, Analysis Patterns - Reusable Object Models, Addison- Wesley, 1997.

I.Borne - UBS12 Exemples de patterns danalyse n « Accountability » –Le concept de comptabilité sapplique quand une personne ou une organisation est responsable dune 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.

I.Borne - UBS13 n « Observations and measurement » –Des quantités peuvent être utilisées en tant quattributs dobjets pour enregistrer de linformation 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.

I.Borne - UBS14 n « Referring to Objects » –Name, Identification scheme, object merge, object equivalence n « Planning » –Proposed and Implemented Action, Suspension, Plan, Resource Allocation etc.. n « Trading –Contract, Portfolio, Quote, Scenario

I.Borne - UBS15 Exemples de patterns support n « Layered Architecture for Information System » –Two-tier architecture, Three-tier architecture, Presentation and Application Logic, Database interaction n « Application Facades » –Interface simplifiée à un modèle compliqué. –Responsable du choix et de lorganisation de linformation pour une présentation.

I.Borne - UBS16 n « 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 …. n « Association patterns » –Associative Type, Keyed mapping, Historic mapping.

Patterns architecturaux Langage de pattern Catalogues et systèmes de patterns

I.Borne - UBS18 Bibliographie n Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, n Architectural Styles, Design Patterns, and Objects, R.T.Monroe & al., IEEE Software, January 1997, pages n Pattern-Oriented Software Architecture - A System of Patterns, F.Buschmann & al., John Wiley, n Pattern-Oriented Software Architecture - Patterns for Concurrent and Networked Objects, volume 2, D.Schmidt & al., John Wiley, 2000.

I.Borne - UBS19 A rchitecture logicielle n Architecture logicielle –Description des sous-systèmes et des composants dun logiciel et leurs relations. n Conception logicielle –Activité effectuée par un développeur logiciel qui produit larchitecture logicielle dun système. n Style architectural –Définit une famille de systèmes en termes de leur organisation structurelle et sémantique. n Framework –Logiciel partiellement complet qui a vocation dêtre instancié.

I.Borne - UBS20 Patterns architecturaux n Ils interviennent dans les plus haut niveaux du développement logiciel. n Ils ont souvent été découverts dans de gros projets. n Ils correspondent à des styles architecturaux classiques : –Pipe and filter –Layered systems –Event_based systems –….

I.Borne - UBS21 Un architecture classique : Pipe and Filter n Chaque composant possède un ensemble de données en entrée et un ensemble de données en sortie. n Un composant lit un flot de données en entrée et produit un flot de données en sortie. Filtre Pipe Source : sortie Sink : entrée

I.Borne - UBS22 Schéma de présentation des patterns darchitecture n nom n exemple n contexte n problème n solution n structure (CRC cards) n dynamique (scénarios) n implémentation n exemple résolu n variantes n usage connus n conséquences n voir aussi n crédits

I.Borne - UBS23 Pipe & Filter :exemple Analyse syntaxique Analyse sémantique Génération de code intermédiaire Optimisation Analyse lexicale Source du programme Flot de tokens Arbre de syntaxe abstrait Arbre de syntaxe abstrait augmenté Programme en code intermédiaire

I.Borne - UBS24 Pipe & Filter :problème, solution n Le problème : construire des systèmes pour transformer et calculer des flots de données. n La solution : la tâche globale est naturellement décomposée en plusieurs étapes de calcul séquentielles.

I.Borne - UBS25 Class Pipe Responsibility Transfers Data. Buffers Data. Synchronizes active neighbours. Collaborators Data Source Data Sink Filter Class Filter Responsibility Gets input Data. Performs a function on its input data. Supplies output data. Collaborators Pipe n La structure

I.Borne - UBS26 Class Data Source Responsibility Delivers input to processing pipeline Collaborators Pipe Class Data Sink Responsibility Consumes output Collaborators Pipe

I.Borne - UBS27 Langages de Pattern : définitions n Collection structurée de patterns comprenant des règles pour combiner les patterns dans un style architectural (structure architecturale récurrente). n Pattern : solution récurrente à un problème donné dans un contexte n Langage de patterns : ensemble de patterns qui, à tout niveau déchelle, collaborent pour résoudre un problème complexe. Ce problème ne peut pas être résolu par un seul pattern.

I.Borne - UBS28 Langages de Pattern : définitions n Les langages de patterns décrivent des frameworks logiciels ou des familles de systèmes reliés. n Un langage de pattern comprend des règles et des lignes de conduite qui expliquent comment et quand appliquer ses patterns.

I.Borne - UBS29 Origines des langages de pattern n A pattern Language [Alexander 1977] n A Timeless Way of Building [Alexander 1979] –Chaque pattern dépend à la fois du pattern plus petit quil contient et des patterns plus larges qui le contiennent. –La structure du langage est créée par le réseau de connexions entre patterns. –Un langage de pattern donne à chaque personne qui lutilise le pouvoir de créer une variété infinie de constructions nouvelles et uniques.

I.Borne - UBS30 Exemples de langages de patterns n Chaque communauté a son propre langage de patterns, qui augmente et change avec lexpérience. n Un langage de patterns pour la conception d interface utilisateur (Todd Coram et Jim Lee, PloP96 workshop). n Un langage de patterns pour lécriture de pattern (Gerard Meszaros, Jim Doble, Pattern Languages of Program Design 3, Addison-Wesley, 1998). n Crossing Chasms: A pattern Language for Relational Databases and Smalltalk ( Kyle Brown, Pattern Languages of Program Design 2, Addison-Wesley, 1996).

I.Borne - UBS31 Un langage de patterns pour la conception d interface utilisateur n Todd Coram et Jim Lee, PloP96 workshop. ces.html n Construire des interfaces qui se concentrent sur linteraction de lutilisateur

I.Borne - UBS32

I.Borne - UBS33 Meta-pattern : Interaction Style

I.Borne - UBS34 Explorable Interface

I.Borne - UBS35 Crossing Chasms: A pattern Language for Relational Databases and Smalltalk n Kyle Brown, Pattern Languages of Program Design 2, Addison- Wesley, 1996, or in Technical Journal, n Interfacer des bases de données relationnelles et un langage à objets. n Le langage de pattern –patterns architecturaux –patterns statiques –patterns dynamiques –patterns client-serveur

I.Borne - UBS36 n Patterns architecturaux : –Four-Layer Architecture (View, application model, domain model and infrastructure layers) –Table Design Time (when is the best time to develop your relational database system ?) View Layer Appplication Model Layer Domain Model Layer Infrastructure Layer

I.Borne - UBS37 n Patterns statiques : –Representing objects as tables –Object Identifier –Foreign Key reference –Representing Collections n Patterns dynamiques –Broker (séparation des parties spécifiques au domaine des parties spécifiques aux bases de données) –Object Metadata (réification du mapping) –Query Object (génération de requêtes SQL) n Patterns Client-Serveur –Client Synchronization –Cache Management (améliorer les performances du client)

I.Borne - UBS38 Catalogues de patterns n Un catalogue de patterns est une collection arbitraire de patterns qui sont faiblement reliés. n Typiquement il subdivise les patterns en un petit nombre de catégories et il peut inclure des références croisées entre les patterns. n Erich Gamma a lancé la présentation sous forme de catalogues des design patterns dans sa thèse de doctorat (1992).

I.Borne - UBS39 n Exemples : –C.Alexander : A pattern Language (1977) 253 patterns –GoF (1995) 23 design patterns –Buschmann & al (1996) : 25 patterns architecturaux et de conception –M.Fowler (1997) : patterns d analyse et patterns de support. n Un langage de pattern est une collection de patterns où chaque pattern est construit par rapport aux autres et représente une série de décisions. n Un catalogue de patterns est une collection arbitraire où les patterns existent par eux-mêmes.

I.Borne - UBS40 Les systèmes de patterns n Ensemble cohésif de patterns. n Les patterns contribuent à la construction et à lévolution darchitectures au complet. n Il est organisé entre groupes et sous-groupes de patterns reliés à plusieurs niveaux de granularité. n Il décrit les relations entre les patterns et leurs regroupements, et la façon dont ils peuvent être combinés et composés pour résoudre des problèmes plus complexes.

I.Borne - UBS41 Langage de patterns, système de patterns, catalogue de patterns n Système de pattern –ensemble cohésif –relations regroupements –sujet large n Catalogue –structuration –organisation n Langage de pattern –collection structurée –règles de combinaison –style architectural –sujet unique –méga-pattern

I.Borne - UBS42 Les systèmes de patterns pour larchitecture logicielle n Un système de pattern pour l architecture logicielle est : –une collection de patterns pour l architecture logicielle, –plus des lignes de conduite pour leur implémentation, leur combinaison et leur utilisation pratique dans le développement de logiciels.

I.Borne - UBS43 n Spécifications (Buschmann) –Il doit comporter une base suffisante de patterns. –Il doit décrire tous les patterns de façon uniforme. –Il doit montrer les diverses relations entre les patterns. –Il doit avoir une organisation de ses patterns. –Il doit supporter la construction de logiciels. –Il doit supporter sa propre évolution.

I.Borne - UBS44 critères de classification : 1) catégories de pattern : patterns architecturaux, patterns de conception et idiomes 2) catégories de problème.

I.Borne - UBS45

I.Borne - UBS46 n Le pattern architectural « Model-View-Controller » divise une application interactive en trois composants. n Le « modèle »contient les fonctionnalités de base et les données. n Les « vues » affichent les informations à lutilisateur. n Les « contrôleurs » gèrent les entrées de lutilisateur. n Un mécanisme de propagation des changements assure la cohérence entre linterface utilisateur (view + controller) et le modèle. Model-View-Controller

I.Borne - UBS47 Exemple n Considérons un système dinformation pour des élections politiques avec une représentation proportionnelle. n On a un tableur pour entrer les données et plusieurs sortes de tableau et de graphe représentent les résultats courants. n Les utilisateurs peuvent intervenir avec le système via une interface graphique. n Tous les affichages dinformation doivent immédiatement refléter les changements des données du vote. n Il doit être possible d ajouter de nouveaux moyens de représentation, par exemple laffectation des sièges de parlementaires. n Le système doit aussi être portable sur d autres plates-formes ou d autres standards daffichage « look and feel ».

I.Borne - UBS48 Contexte Applications interactives avec une interface homme-machine flexible. Problème n Quand vous étendez les fonctionnalités d une application, vous devez modifier les menus pour accéder à ces nouvelles fonctions. Les clients peuvent vouloir des adaptations spécifiques etc... n Les forces qui influencent la solution : –La même information est présentée différemment dans différentes fenêtres. –L affichage et le comportement de lapplication doivent refléter immédiatement les manipulations de données. –Les changements de linterface utilisateur doivent être faciles, et même possibles lors de lexécution. –Le support de différents standards de « look and feel » ou le portage de l interface utilisateur ne doit pas affecter le code dans le noyau de base de l application.

I.Borne - UBS49 Solution n MVC divise une application interactive en processus, sortie et entrée. n Model –Le composant modèle encapsule les données et les fonctionnalités du noyau de base. n Views –les composants vue affichent linformation à l utilisateur. Une vue obtient les données du modèle. –Chaque vue possède un composant contrôleur associé. n Controllers –Les contrôleurs reçoivent les entrées, comme des événements qui encodent les mouvements de la souris, lactivation des boutons de la souris ou les entrées au clavier. –Les événements sont traduits en des requêtes de service pour le modèle ou la vue. –L utilisateur interagit avec le système seulement via les contrôleurs.

I.Borne - UBS50 n Le mécanisme de propagation des changements est décrit par le pattern Publisher-Subscriber appelé aussi le pattern Observer.

I.Borne - UBS51 Structure Class Model Responsibility Fournit les fonctionnalités de lapplication Enregistre les vues dépendantes et les contrôleurs Avertit les composants dépendants des changements de données Collaborators View Controller

I.Borne - UBS52 Class View Responsibility Crée et initialise son contrôleur associé Affiche linformation pour lutilisateur Implémente les procédures de mise à jour Recherche les données dans le modèle Collaborators Controller Model

I.Borne - UBS53 Class Controller Responsibility Accepte les entrées de lutilisateur comme des événements Traduit les événements en requêtes de service pour le modèle ou affiche les requêtes pour la vue. Implémente les procédures de mise à jour si nécessaire Collaborators View Model

I.Borne - UBS54 Observer update Model coreData setOfObservers attach(Oberver) detach(Observer) notify getData service View Controller myModel myController initialize(Model) makeController activate display update myModel myView initialize(Model,View) handleEvent update attach getData call update attach call service create manipulate display

I.Borne - UBS55 Implémentation n étape 1: Séparer linteraction homme-machine du noyau fonctionnel. n étape 2: Implémenter le mécanisme de propagation de changements. n étape 3: Concevoir et implémenter les vues. n étape 4: Concevoir et implémenter les contrôleurs. n étape 5: Concevoir et implémenter la relation vue-contrôleur. n étape 6: Implémenter linitialisation du MVC. n Etape 7: Interaction dynamique des vues. n étape 8: contrôleurs enfichables (pluggable). n étape 9: Infrastructure pour les vues et les contrôleurs hiérarchiques. n étape 10: Découpler encore plus les dépendances du système.