Cours de Génie Logiciel

Documents pareils
Patrons de Conception (Design Patterns)

Plan. Patrons de conception. Motivations. Design Pattern : principe. Philippe Collet

Analyse,, Conception Objet

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Projet Active Object

Cours de Génie Logiciel

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Le développement d'applications informatiques

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Design patterns. Design patterns - définition. Design patterns - avantages

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Héritage presque multiple en Java (1/2)

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Généralités sur le Langage Java et éléments syntaxiques.

Modélisation UML. Christine Solnon INSA de Lyon - 3IF 1/140.

Chapitre 2. Classes et objets

Université de Bangui. Modélisons en UML

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

A. À propos des annuaires

CQP Développeur Nouvelles Technologies (DNT)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

BES WEBDEVELOPER ACTIVITÉ RÔLE

Initiation à JAVA et à la programmation objet.

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

LES ACCES ODBC AVEC LE SYSTEME SAS

Présentation du PL/SQL

WEA Un Gérant d'objets Persistants pour des environnements distribués

IFT2255 : Génie logiciel

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Introduction : présentation de la Business Intelligence

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

et Programmation Objet

Annexe : La Programmation Informatique

Procédés d intégration

PHP 5.4 Développez un site web dynamique et interactif

Sur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique

Introduction au Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel

PG208, Projet n 3 : Serveur HTTP évolué

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Générer du code à partir d une description de haut niveau

CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

Chapitre 2 : Abstraction et Virtualisation

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Module BD et sites WEB

Vérifier la qualité de vos applications logicielle de manière continue

Programme de formation

Présentations personnelles. filière IL

OMGL6 Dossier de Spécifications

Intégration de systèmes

Modélisation de Lignes de Produits en UML *

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

FORMATION Offre de Formation - Packaging. Les bonnes pratiques du packaging avec Installshield et AdminStudio. Contact et inscriptions

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Devenez un véritable développeur web en 3 mois!

Pourquoi l apprentissage?

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

EIP 2012 Projet Livepad. Documentation technique 1.5

Les diagrammes de modélisation

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Méthodes de développement. Analyse des exigences (spécification)

Chapitre I : le langage UML et le processus unifié

UML (Diagramme de classes) Unified Modeling Language

ARTICA PROJECT Vous souhaitez mettre en place simplement un serveur sécurisé: De messagerie.

Sybase PowerAMC 16. Guide des nouvelles fonctionnalités générales. DOCUMENTATION

Partie 1 : la construction du nombre chez l'enfant. Page 2. Partie 2 : Des jeux et des nombres Page 8

Chapitre 1 : Introduction aux bases de données

OwnCloud. Définition 1 / 10. Date d'édition 03/09/2013 Public concerné Étudiants, Personnels Version du logiciel

TAGREROUT Seyf Allah TMRIM

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Diagramme de classes

Application 1- VBA : Test de comportements d'investissements

10. Base de données et Web. OlivierCuré

Chapitre VI- La validation de la composition.

SAP BusinessObjects Web Intelligence (WebI) BI 4

Qu'est-ce que le BPM?

Génie Logiciel Orienté Objet UML

Objets et Programmation. origine des langages orientés-objet

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

Urbanisation de système d'information. PLM 3 (Product Lifecycle Management) Élaborations, versions, variantes, configurations

Plan Pédagogique du cours

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

WINDOWS SHAREPOINT SERVICES 2007

Catalogue & Programme des formations 2015

Java DataBaseConnectivity

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Qualité du logiciel: Méthodes de test

Transcription:

Cours de Génie Logiciel Sciences-U Lyon Design Pattern http://www.rzo.free.fr Pierre PARREND 1 Mai 2005

Sommaire Les Design Pattern Introduction Concepts Objets Réutilisation Utilisation des Design Patterns Catalogue de Design Pattern Pierre PARREND 2 Mai 2005

Introduction Les Design Pattern Le Gang of Four 'GoF' Erich Gamma Richard Helm Ralph Johnson John Vlissides 'Element of reusable Object-Oriented Software' D'autres nomenclatures existent DP pour des domaines précis (ex : interaction) Pierre PARREND 3 Mai 2005

Introduction Les Design Pattern 'Chaque Pattern décrit un problème qui apparait et réaparait dans notre environnement, et ensuite décrit le coeur de la solution à ce problème, de telle manière que l'on peut utiliser cette solution plus d'un million de fois, sans jamais le faire de la même manière' Christopher Alexander. Pierre PARREND 4 Mai 2005

Introduction Les Design Pattern Trois types Principaux Issus de la nomenclature 'GOF' (Gang of Four) Design Patterns de Création Design Patterns de Structure Design Patterns de Comportement Pierre PARREND 5 Mai 2005

Introduction Trois Familles principales Design Patterns de création Comment créer de nouveaux objets 'Usine Abstraite' (Abstract Factory), Gof 87 'Constructeur' (Builder), Gof 97 'Méthode d'usine' (Factory Method), Gof 107 Prototype, Gof 117 Singleton, Gof 127 Pierre PARREND 6 Mai 2005

Introduction Trois Familles principales Design Patterns de Structure Comment organiser les objets 'Adapteur' (Adapter), Gof 139 'Pont' (Bridge), Gof 151 'Composite', Gof 163 'Décorateur' (Decorator), Gof 175 'Facade', Gof 185 'Poids mouche' (Flyweight), Gof 195 'Proxy', Gof 207 Pierre PARREND 7 Mai 2005

Introduction Trois Familles principales Design Patterns de Comportement 'Chaine de responsabilité' (Chain of responsability), Gof 223 'Commande', Gof 233 'Interpreteur', Gof 243 'Iterateur', Gof 257 'Médiateur', Gof 273 'Memento', Gof 283 'Observateur', Gof 293 'Etat' (State), Gof 305 'Stratégie' (Strategy), Gof 315 'Méthode Patron' (Template Method), Gof 325 'Visiteur' (Visitor), Gof 331 Pierre PARREND 8 Mai 2005

Introduction Un autre Design Pattern MVC Modèle/Vue/Contrôleur Par exemple avec Java-Swing Vue = Interface graphique Modèle = traitement (réaction aux évènements) Généralisé par l''observateur' Contrôleur Vue Modèle Autres Systèmes Pierre PARREND 9 Mai 2005

Introduction Autres Familles de Design Patterns Interactions Concurence de données Programmation distribuée Programmation temps-réel Interfaces utilisateurs Pilotes matériels Accès à une base de données orientée objets Pierre PARREND 10 Mai 2005

Sommaire Les Design Pattern Introduction Concepts Objets Réutilisation Utilisation des Design Patterns Catalogue de Design Pattern Pierre PARREND 11 Mai 2005

Concepts Objets Rappel : le paradigme Objet Objet Données Méthodes, opérations Procédure de traitement de ces données Requêtes, messages Pour accéder aux méthodes Encapsulation Accès aux données par le biais des méthodes seulement Etat interne non accessible de l'extérieur Pierre PARREND 12 Mai 2005

Concepts Objets Granularité des objets Taille des objets variable Tableau (Array) Contrôleur d'une Machine à voter Application entière Nombre des objets variable Singleton Livres d'une bibliothèque Pierre PARREND 13 Mai 2005

Concepts Objets Spécification de l'interface d'un objet Ensemble des signatures de méthodes Nom de la méthode Paramètres Type de retour Définit un type Ex : Objets de type Window, qui acceptent toutes les requêtes définies par l'interface 'Window' Un objet peut être de plusieurs types S'il implémente plusieurs interfaces Des Objets différents peuvent être de même type Ex : Base de Donnée et Serveur Web (interface Serveur) Pierre PARREND 14 Mai 2005

Concepts Objets Implémentation d'objets Création Déclaration Boulangerie monfournil; Instanciation new Boulagerie() Initialisation monfournil = new Boulagerie() Pierre PARREND 15 Mai 2005

Concepts Objets Rôle des interfaces Ensemble de méthodes signatures Définition d'un comportement Spécialisation de ce comportement par héritage d'interfaces Transparence de l'implémentation L'utilisateur manipule les interfaces, pas les classes elles-même Programmez en fonction des interfaces, pas des implémentations Pierre PARREND 16 Mai 2005

Concepts Objets Difficulté de la programmation objet Flexibilité Réutilisabilité Des logiciels Pierre PARREND 17 Mai 2005

Concepts Objets Héritage et composition Deux techniques de réutilisation Héritage Accès, modification des fonctionnalités existantes Réutilisation en 'Boite Blanche' Composition Assemblage d'objets existants Réutilisation en 'Boite Noire' Pierre PARREND 18 Mai 2005

Concepts Objets Héritage Avantages Définition statique à la compilation Usage simple, intégré au langage Modifications aisées Inconvénients Pas de modification à l'éxécution Viol de l'encapsulation Pas de modification du parent sans influer sur l'enfant Peu flexible, donc peu réutilisable Pierre PARREND 19 Mai 2005

Concepts Objets Composition Avantages Définition à l'execution Par acquisition de références sur d'autres objets Respect de l'encapsulation Manipulation des interfaces, et non des objets Favorisez la composition d'objets sur l'héritage de classes Pierre PARREND 20 Mai 2005

Concepts Objets Aggrégation et association Aggrégation Des objets font parties d'un autre La durée de vie des objets aggrégés est égale (au plus) à celle de l'objet aggrégat Association Connaissance d'un objet par un autre Accès possible Indépendance des durées de vies Pierre PARREND 21 Mai 2005

Sommaire Les Design Pattern Introduction Concepts Objets Réutilisation Utilisation des Design Patterns Catalogue de Design Pattern Pierre PARREND 22 Mai 2005

Réutilisation Conception pour la réutilisation Anticiper Les besoins futurs L'évolution des besoins actuels Le système doit pouvoir évoluer Sinon, reconception globale nécessaire Design Patterns Evolution indépendante des différents acteurs Permet l'évolution de l'ensemble du système Pierre PARREND 23 Mai 2005

Réutilisation Causes de difficultés d'évolutions Création d'objets en spécifiant le nom de leur classe Solution : créer les objets indirectement, et manipuler leur interface Usine abstraite, méthode d'usine, prototype Dépendance à certaines opérations Par appel explicite de méthode Solutions : Chaine de responsabilité, Commande Dépendance hardware/software Dépendance à la plate-forme Solutions : Usine abstraite, Pont Pierre PARREND 24 Mai 2005

Réutilisation Causes de difficultés d'évolutions Dépendance à la représentation des objets Stockage, implémentation, location connue du client Solution : cacher ces informations au client Usine Abstraite, Pont, Memento, Proxy Dépendance algorithmique Besoin d'extension, optimisation, remplacement des algorrithmes Solution : Constructeur, Iterateur, Stratégie, Méthode Patron, Visiteur Pierre PARREND 25 Mai 2005

Réutilisation Causes de difficultés d'évolutions Couplage étroit entre classes Solution : Couplage souple, augmente la probabilité de réutiliser les classes Usine abstraite, Pont, Chaine de responsabilité, Commande, Facade, Mediateur, Observateur Extension des fonctionnalités par sous-classes Solution : usage d'une sous-classe, extension par la composition Pont, Chaine de responsabilité, Composite, Décorateur, Observateur, Stratégie Difficulté de modification de classes existantes Solution : Adaptateur, Décorateur, Visiteur Pierre PARREND 26 Mai 2005

Réutilisation Environnements de réutilisation Applications Réutilisation interne Boites à outils = Toolkit Ex : librairie C Pour des applications qu'on ne connait pas Indépendance maximale au contexte Framework Réutilisation de conception Documenté par les Design Pattern utilisés Pierre PARREND 27 Mai 2005

Sommaire Les Design Pattern Introduction Concepts Objets Réutilisation Utilisation des Design Patterns Catalogue de Design Pattern Pierre PARREND 28 Mai 2005

Utilisation Sélection d'un Design Pattern Types de DP Création, structure, comportement Objectifs des DP Correspondance entre DP et Problème Relations entre les DP Cause de re-conception Besoin de variabilité Pierre PARREND 29 Mai 2005

Utilisation Usage d'un Design Pattern Vision globale du pattern Applicabilité et conséquences sont à prendre en compte Etude détaillée Structure, Participants, Collaboration Analyse de l'exemple Code de réalisation Pierre PARREND 30 Mai 2005

Utilisation Usage d'un Design Pattern Choix des noms des Participants Pertinents dans le contexte de votre application Définition des noms d'opérations Spécifiques à l'application Implémentation des opérations Pierre PARREND 31 Mai 2005

Utilisation A ne pas faire Usage non justifié Flexibilité, variabilité Mais aussi complication, coût en performance Seulement quand on a besoin de la flexibilité apportée Pierre PARREND 32 Mai 2005

Sommaire Les Design Pattern Introduction Concepts Objets Utilisation des Design Patterns Catalogue de Design Pattern Création Structure Comportement Pierre PARREND 33 Mai 2005

Catalogue DP de Création Design Pattern de création : Singleton Usine Abstraite Méthode Usine Constructeur Prototype Pierre PARREND 34 Mai 2005

Catalogue DP de Création Design Pattern de création : Abstraction du processus d'instanciation Indépendance de Création Composition Représentation Des objets Importance de la composition Plus que de l'héritage Pierre PARREND 35 Mai 2005

Catalogue DP de Création Design Pattern de création : Flexibilité Ce qui est créé Qui le crée Comment c'est créé Quand c'est créé Pierre PARREND 36 Mai 2005

Catalogue DP de Création Singleton Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 37 Mai 2005

Catalogue DP de Création Usine Abstraite Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 38 Mai 2005

Catalogue DP de Création Méthode Usine Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 39 Mai 2005

Constructeur Nom Structure Applicabilité Conséquences Participants Collaboration Code Catalogue DP de Création Pierre PARREND 40 Mai 2005

Catalogue DP de Création Prototype Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 41 Mai 2005

Sommaire Les Design Pattern Introduction Concepts Objets Utilisation des Design Patterns Catalogue de Design Pattern Création Structure Comportement Pierre PARREND 42 Mai 2005

Catalogue DP de structure Design Pattern de Structure Adaptateur Facade Proxy Pont Composite Décorateur Poids Mouche Pierre PARREND 43 Mai 2005

Adaptateur Nom Structure Applicabilité Conséquences Participants Collaboration Code Catalogue DP de structure Pierre PARREND 44 Mai 2005

Catalogue DP de structure Facade Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 45 Mai 2005

Catalogue DP de structure Proxy Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 46 Mai 2005

Catalogue DP de structure Pont Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 47 Mai 2005

Composite Nom Structure Applicabilité Conséquences Participants Collaboration Code Catalogue DP de structure Pierre PARREND 48 Mai 2005

Décorateur Nom Structure Applicabilité Conséquences Participants Collaboration Code Catalogue DP de structure Pierre PARREND 49 Mai 2005

Catalogue DP de structure Poids Mouche Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 50 Mai 2005

Sommaire Les Design Pattern Introduction Concepts Objets Utilisation des Design Patterns Catalogue de Design Pattern Création Structure Comportement Pierre PARREND 51 Mai 2005

Catalogue DP de comportement Design Pattern de Comportement Observateur Itérateur Stratégie Méthode Patron Memento Chaine de responsabilité Pierre PARREND 52 Mai 2005

Catalogue DP de comportement Design Pattern de Comportement (non détaillés ici) Commande Interpréteur Médiateur Etat Visiteur Pierre PARREND 53 Mai 2005

Observateur Catalogue DP de comportement Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 54 Mai 2005

Itérateur Catalogue DP de comportement Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 55 Mai 2005

Stratégie Catalogue DP de comportement Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 56 Mai 2005

Catalogue DP de comportement Méthode Patron Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 57 Mai 2005

Memento Catalogue DP de comportement Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 58 Mai 2005

Catalogue DP de comportement Chaine de responsabilité Nom Structure Applicabilité Conséquences Participants Collaboration Code Pierre PARREND 59 Mai 2005

Design Pattern Introduction Bilan Pierre PARREND 60 Mai 2005