Cours de Génie Logiciel

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

Projet Active Object

Cours de Génie Logiciel

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

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Des projets et des Hommes au service de l innovation EDI.

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

Annuaires LDAP et méta-annuaires

Diagramme de classes

Catalogue de Pattern pour le CSCW

Génie logiciel (Un aperçu)

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

OMGL6 Dossier de Spécifications

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

INDUSTRIALISATION ET RATIONALISATION

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)

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

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)

Patrons de Conception (Design Patterns)

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

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

RTDS G3. Emmanuel Gaudin

Chapitre I : le langage UML et le processus unifié

Environnements de développement (intégrés)

SECTION 5 BANQUE DE PROJETS

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Formation : WEbMaster

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

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Plan du cours. Historique du langage Nouveautés de Java 7

Rational Unified Process

Description de la formation

Architecture d'entreprise : Guide Pratique de l'architecture Logique

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

CQP Développeur Nouvelles Technologies (DNT)

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Architecture des ordinateurs

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

Programmation en Java IUT GEII (MC-II1) 1

GOL502 Industries de services

Chapitre VI- La validation de la composition.

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

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

//////////////////////////////////////////////////////////////////// Administration systèmes et réseaux

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Introduction : présentation de la Business Intelligence

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

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Chapitre 10. Architectures des systèmes de gestion de bases de données

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

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

Mise en œuvre des serveurs d application

Information utiles. webpage : Google+ : digiusto/

Enquête 2014 de rémunération globale sur les emplois en TIC

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

TP1 : Initiation à Java et Eclipse

Fiche de l'awt Intégration des applications

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

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Bases Java - Eclipse / Netbeans

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

BES WEBDEVELOPER ACTIVITÉ RÔLE

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

Concepteur Développeur Informatique

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

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD/TP PAC - Programmation n 3

RMI le langage Java XII-1 JMF

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Programmation MacOSX / ios

La carte à puce. Jean-Philippe Babau

Cours Gestion de projet

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

1. Considérations sur le développement rapide d'application et les méthodes agiles

Traduction des Langages : Le Compilateur Micro Java

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

CNAM cours NFE107 : Urbanisation et architecture des SI Xavier Godefroy, Rapport sur le BPM, mai Le BPM

Classeur de suivi de l auditeur. Architecture et Ingénierie des Systèmes et des Logiciels

Chapitre 10. Les interfaces Comparable et Comparator 1

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

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

MANAGEMENT DES SERVICES INFORMATIQUES

Conception de réseaux de télécommunications : optimisation et expérimentations

7. ECONOMIE 7.3. COMMERCE GESTIONNAIRE DE TRES PETITES ENTREPRISES

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

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

PFE Télécommunications. Pré-rapport à l'issue des 6 premières semaines de stage. Page 1 sur 5 1 %

Présentation des CMS au CIFOM-EAA

Oracle Database 11g: Administration Workshop I Release 2

Réalisation d une application de soumission de cours en ligne de l Université Virtuelle de Tunis

Catalogue des Formations

IRL : Simulation distribuée pour les systèmes embarqués

Renforcez la flexibilité et la réactivité de votre entreprise Dotez votre entreprise d'un système de gestion des données de référence éprouvé

Entraînement au concours ACM-ICPC

Transcription:

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

Plan du cours Le génie logiciel Modélisation avec UML Les Design Pattern MDA conception orientée modèles Pierre PARREND 2 Mai 2005

Sommaire Un Design Pattern Motivations Les Design Pattern Les Frameworks Pierre PARREND 3 Mai 2005

Un Design Pattern Un Design Pattern Exemple : le Singleton Problème : instance unique d'une classe Ex : Ballon de foot sur un terrain, Compteur partagé Pierre PARREND 4 Mai 2005

Un Design Pattern Un Design Pattern, le Singleton Un seul objet de la classe existe Objet disponible dans la classe Attribut de classe Contrôle du Constructeur privé Obtention de l'instance par une méthode spécifique getinstance() Pierre PARREND 5 Mai 2005

Un Design Pattern Un Design Pattern, le Singleton public class Singleton { private Singleton instance; private Singleton() { } } public Singleton getinstance() { if(instance==null)instance = new Singleton(); return instance; } Pierre PARREND 6 Mai 2005

Un Design Pattern Un Design Pattern, le Singleton En contexte : le compteur partagé Singleton Valeur incrémentée Pierre PARREND 7 Mai 2005

Un Design Pattern Un Design Pattern, le Singleton En contexte : le compteur partagé public class CompteurPartage { private CompteurPartage instance; private int valeur=0; private CompteurPartage(){} public CompteurPartage getinstance() { if(instance==null)instance=new CompteurPartage(); return instance;} } public void incremente() { valeur++;} Pierre PARREND 8 Mai 2005

Un Design Pattern Un Design Pattern, le Singleton Nom Singleton Contexte initial Besoin de classes à instance unique Problème Comment mettre à disposition une seule instance d'une classe? Forces en présence La classe concernée, les classes l'utilisant Pierre PARREND 9 Mai 2005

Un Design Pattern Un Design Pattern, le Singleton Solution Constructeur privé, contrôle par une méthode annexe Conséquence de l'application Pas de constructeur accessible Utilisations connues du pattern Compteur, etc. Pierre PARREND 10 Mai 2005

Sommaire Un Design Pattern Motivations Les Design Pattern Les Frameworks Pierre PARREND 11 Mai 2005

Motivations Ingénierie logicielle (entreprise, recherche) Création de : Code Modèles Applications Pierre PARREND 12 Mai 2005

Motivations Pourquoi ne pas réutiliser l'existant? Gain de temps Donc d'argent 'Time-to-market' réduit (temps de mise sur le marché) Avantage concurrentiel Indispensable à la (sur)vie de l'entreprise Gain de savoir-faire Capitalisation Qualité, les solutions étant déjà validées Indipensable à la satisfaction du client Pierre PARREND 13 Mai 2005

Motivations Pourquoi ne pas réutiliser l'existant? Gain technologique Attention portée sur les nouveautés Et non la réécriture de solutions existantes Amélioration des produits Meilleure motivation des développeurs Pierre PARREND 14 Mai 2005

Motivations Réutilisation de Code Dépend du contexte Possible au niveau algorithmique Dans la conception Objet Fonctionnalités dépendant Pas des algorithmes Mais des messages échangés entre les objets Apport limité Algorithmes de tri, de cryptage, de routage Très spécifique Hors de notre problèmatique Pierre PARREND 15 Mai 2005

Motivations Réutilisation de modèles Modélisation UML Pour une situation donnée Performant Visibilité Modifiable Facile à modifier Pierre PARREND 16 Mai 2005

Motivations Réutilisation de modèles Design Pattern Modèles génériques Solutions à des problèmes récurrents Parfois difficiles Non triviaux Pierre PARREND 17 Mai 2005

Motivations Réutilisation d'applications Fonctionnalités réutilisables? Services nécessaires Pour un type d'applications données Framework = Applications semi-finies Pierre PARREND 18 Mai 2005

Sommaire Un Design Pattern Motivations Les Design Pattern Les Frameworks Pierre PARREND 19 Mai 2005

Design Pattern Les Design Pattern - DP Solution récurrente qui décrit et résout un problème général dans un contexte particulier Pierre PARREND 20 Mai 2005

Design Pattern Les Design Pattern - DP = patron = schème = micro-architecture = canevas = guide Pierre PARREND 21 Mai 2005

Design Pattern Intérêts Proposition de solution(s) Pas de prescription Définition d'un ensemble de classes ou d'objets collaborants Granularité supérieure aux simples classes Documentation associée Nom, contexte, problème, conséquence Nom Définition d'un vocabulaire précis Pierre PARREND 22 Mai 2005

Design Pattern Intérêts Solutions éprouvées Transmission de savoir-faire, d'expertise Solutions adaptables Comme tout modèle Ensemble de solutions 'Langages de patterns' Liens entre les patterns Pour un contexte applicatif donné Pierre PARREND 23 Mai 2005

Design Pattern Familles de Pattern Pierre PARREND 24 Mai 2005

Design Pattern Familles de Pattern Patterns de conception = Design Pattern Patterns métier = pattern de domaine Analyse + conception ~= Pattern d'analyse Patterns d'architecture Structuration d'architecture logicielle Ex : structuration en couche, client/serveur Pierre PARREND 25 Mai 2005

Design Pattern Familles de Pattern Patterns organisationnels Solution à des problèmes organisationnels Ex : organisation des activités de développement logiciel Patterns Pédagiques Solutions dans le domaine de l'apprentissage, la formation Ex : introduction des DP dans une entreprise Patterns d'implémentation Exploitation d'un langage de programmation donnée Pour résoudre un problème typique Pierre PARREND 26 Mai 2005

Design Pattern Description Nom Contexte initial Problème Forces en présence Solution Conséquence de l'application Utilisations connues du pattern Liens Pierre PARREND 27 Mai 2005

Sommaire Un Design Pattern Motivations Les Design Pattern Les Frameworks Pierre PARREND 28 Mai 2005

Frameworks Les Frameworks Applications pour un domaine donné Fonctionnalités récurrentes Réutilisation des services possible Granularité plus large Composants, couches d'architecture logicielle!= Design Pattern, granularité de niveau classe Pierre PARREND 29 Mai 2005

Frameworks Caractéristiques Définition de La structure globale Mécanisme de contrôle Collaboration des objets entre eux Mécanisme d'extensibilité Implémentation Restriction à un langage de programmation donné Liberté de modification limitée Pierre PARREND 30 Mai 2005

Frameworks Caractéristiques Principe d'hollywood 'Don't call us, we'll call you' 'Ne nous appelez pas, nous vous appelerons' L'utilisateur précise seulement les classes dont il a besoin Par héritage des classes du framework Le framework fournit le lien entre ces classes, les méthodes types (héritées par les classes utilisateur) Pierre PARREND 31 Mai 2005

Frameworks Types Framework métier = framework vertical Dépendant d'un domaine Framework d'application = framework horizontal Expertise nécessaire à une application générique Ex : j2ee/struts pour les serveurs web Ex : Framework IHM (interface Homme-Machine) Pierre PARREND 32 Mai 2005

Frameworks Types Framework Boîte Blanche Manipulation des classes Héritage et implémentation par l'utilisateur Extension des abstractions existantes Framework Boîte Noire Utilisation de classes déjà implémentées Plus simple Pierre PARREND 33 Mai 2005

Frameworks Avantages Amélioration de la productivité L'architecture générale fournie, et validée Analyse Conception Implémentation Attention portée sur les spécificités de l'application Prototypage rapide Comportement flexible et extensible Maintenance facilitée : documentation disponible Pierre PARREND 34 Mai 2005

Frameworks Inconvénients Nombreuses classes interconnectées Compréhension difficile Mise en oeuvre idem Sur-ensemble des besoins d'une application En grande partie inutile Liberté de conception restreinte Incompatibilité des frameworks entre eux 'architecture mismatch' Pb de versions des technologies employées Flots de contrôle multiples Pierre PARREND 35 Mai 2005

Frameworks DP et frameworks Utilisation conjointe Meilleure compréhensibilité Niveaux de granularité Framework Pattern Classe Pierre PARREND 36 Mai 2005

Design Pattern Introduction Bilan Classes et Objets Patterns Applications semi-finies Granularité Pierre PARREND 37 Mai 2005