Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.
|
|
- Marguerite Normand
- il y a 8 ans
- Total affichages :
Transcription
1 JAVA et Design Pattern Page 1/26 JAVA et Design Pattern Etude des Pattern Design Modélisation UML, Etude et critique des implémentations Java Par Laurent DESECHALLIERS Mastère Spécialisé en Management de Projets en Milieu Industriel CESI de Rouen Promotion 2002/2003 Avril 2003 Membres du Jury : Farid BAGUI Gilles BIAGETTI Aurelie DUMARCHE
2 JAVA et Design Pattern Page 2/26 Table des matières 0.Objectifs, démarche et outils 1.Le pattern Observer 1.1 Diagrammes de classes et de séquence 1.2 Diagramme d'état transition 1.3 Le pattern Observer en Java Diagrammes des classes de test Source de la classe ObservableTest Source de la classe ObserverClass Source de la classe Start (fonction main) 1.4 Analyse des Observer/Observable du SDK Sun Source de la méthode notifyobserver Source de l'interface Observer Schéma d'un scénario des ''faiblesses'' d'identification observateur/observé Proposition d'une solution aux ''faiblesses'' d'identification observateur/observé Source de la solution Scénario de test 2.Le Pattern Design Template Method 2.1 Exemple du tri à bulle 2.2 Schéma UML du Template Method 3.Le pattern Factory 3.1 Présentation du Patern Factory 3.2 Présentation(suite)du Patern Factory 4.Le pattern Strategy 4.1 Problèmatiques des différenciations 4.2 Problèmatiques des stratégies multiples 4.3 Diagrammes et avantages 5.Conclusion 6.Bibliographie et ressources diverses
3 JAVA et Design Pattern Page 3/26 0. Objectifs, démarche et outils 0.1 Les objectifs visés Apprendre à maîtriser certains Design Pattern afin de passer à un niveau suppérieur en architecture logicielle. 0.2 La démarche suivie Lecture d'un ouvrage de référence et d'une série d'articles parus dans le magazine Login. Réflexion sur les Design Pattern et essais de modélisation et de transposition des Design Pattern sur des cas concrets d'architecture logicielle Développement en Java de ces Design Pattern Modélisation UML puis Analyse des forces et faiblesses d'une implémentation Java d'un Design Pattern Observer 0.3 Les outils utilisés Jbuilder 8.0 Multi-plateforme/développé en Java Simple et convivial Offre une version community N'enferme pas dans des structures de fichiers propriétaires Poseidon UML for Community Multi-plateforme/développé en Java Offre une version community Moins 'obèse' et tout aussi valable que Rationnal Rose Open Office Raisons identiques aux deux softs précédents
4 JAVA et Design Pattern Page 4/26 1.Le pattern Observer 1.1 Diagrammes de classes et de séquence
5 JAVA et Design Pattern Page 5/26 1. Le pattern Observer 1.2 Diagramme d'état/transition
6 JAVA et Design Pattern Page 6/26 1. Le pattern Observer 1.3 Test de l'observateur en Java Diagrammes des classes de test
7 JAVA et Design Pattern Page 7/26 1.Le pattern Oberver 1.3 Test de l'observateur en Java Source de la classe ObservableTest package observateur; import java.util.*; /** * <p>titre : Test observateur Java</p> * <p>description : </p> * <p>copyright : Copyright (c) 2003</p> * <p>société : </p> Laurent Deséchalliers */ public class ObservableTest extends Observable // START CLASS // public ObservableTest() super(); System.out.println("Costructeur de l'objet Observable"); // public synchronized void setchanged() super.setchanged(); //notifyobservers(); System.out.println("Statut Observé est : a changé"); // protected synchronized void setchanged(object arg) super.setchanged(); notifyobservers(arg); // public void notifyobservers(object arg) super.notifyobservers(arg) ; System.out.println("L'observé Notifie les objets Observateur"); // public void notifyobservers() System.out.println("L'observé Notifie les objets Observateur"); super.notifyobservers(null) ;
8 JAVA et Design Pattern Page 8/26 // public void addobserver(observerclass1 o) super.addobserver(o); System.out.println("L'observé "+ o.getclassname() + " ajouté à la liste des observateurs"); // public void deleteobserver(observerclass1 o) super.deleteobserver(o); System.out.println("L'observé "+ o.getclassname() + "supprimé à la liste des observateurs"); // END CLASS *****************************************************************
9 JAVA et Design Pattern Page 9/26 1.Le pattern Observer 1.3 Test de l'observateur en Java Source de la classe ObserverClass1 package observateur; import java.util.*; /** * <p>titre : Test observateur Java</p> * <p>description : </p> * <p>copyright : Copyright (c) 2003</p> * <p>société : </p> Laurent Deséchalliers */ public class ObserverClass1 implements Observer // START CLASS ********************************************************* protected String internal_class_name = new String(); // public ObserverClass1(String class_name) internal_class_name = class_name; System.out.println("L'objet "+ internal_class_name+" est vivant"); // public String getclassname() return internal_class_name; // public void update(observable o, Object arg ) System.out.println("L'objet "+internal_class_name+" a été notifié");
10 JAVA et Design Pattern Page 10/26 1.Le pattern Observer 1.3 Test de l'observateur en Java Source de la classe Start (fonction main) package observateur; import java.util.*; /** * <p>titre : Test observateur Java</p> * <p>description : </p> * <p>copyright : Copyright (c) 2003</p> * <p>société : </p> Laurent Deséchalliers */ public class start public static void main(string[] args) ObservableTest Observe1 = new ObservableTest() ; ObserverClass1 Observateur1 = new ObserverClass1("Obs1"); ObserverClass1 Observateur2 = new ObserverClass1("Obs2"); ObserverClass1 Observateur3 = new ObserverClass1("Obs3"); ObserverClass1 Observateur4 = new ObserverClass1("Obs4"); Observe1.setChanged() ; Observe1.addObserver(Observateur1) ; Observe1.addObserver(Observateur2) ; Observe1.addObserver(Observateur3) ; Observe1.addObserver(Observateur4) ; Observe1.notifyObservers() ;
11 JAVA et Design Pattern Page 11/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Source de la méthode notifyobserver (SDK Sun Java 2 V. 1.4) public void notifyobservers(object arg) /* * a temporary array buffer, used as a snapshot of the state of * current Observers. */ Object[] arrlocal; synchronized (this) /* We don't want the Observer doing callbacks into * arbitrary code while holding its own Monitor. * The code where we extract each Observable from * the Vector and store the state of the Observer * needs synchronization, but notifying observers * does not (should not). The worst result of any * potential race-condition here is that: * 1) a newly-added Observer will miss a * notification in progress * 2) a recently unregistered Observer will be * wrongly notified when it doesn't care */ if (!changed) return; arrlocal = obs.toarray(); clearchanged(); for (int i = arrlocal.length-1; i>=0; i--) ((Observer)arrLocal[i]). update(this, arg);
12 JAVA et Design Pattern Page 12/26 1.Le pattern Observer 1.4 Analyse des Observer/observable du SDK Sun Source de l'interface Observer (SDK Sun Java 2 V. 1.4) Source : Observer.java SDK Sun 1.4 public interface Observer void update(observable o, Object arg); Source : Observable.java SDK Sun 1.4 public void notifyobservers(object arg) Object[] arrlocal; synchronized (this) if (!changed) return; arrlocal = obs.toarray(); clearchanged(); for (int i = arrlocal.length-1; i>=0; i--) ((Observer)arrLocal[i]).update(this,arg); Aucune sécurité d'exécution de l'implémentation de la méthode public update des classes utilisant l'interface observer.
13 JAVA et Design Pattern Page 13/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Schéma d'un scénario des ''faiblesses'' d'identification observateur/observé
14 JAVA et Design Pattern Page 14/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Proposition d'une solution aux ''faiblesses'' d'identification observateur/observé Avantages de la solution utilisant untemplate Method Sécurisation de la liaison observateur/observé On conserve la notion de 'contrat' Désavantage On perd la capacité d'hériter des classes observatrices (Peut y remédier par une composition ou agrégation)
15 JAVA et Design Pattern Page 15/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Source de la solution package observateur; import java.util.*; public class obs1templatemethod implements Observer protected String internal_class_name = new String(); protected ObservableTest _observable; // public obs1templatemethod() // public obs1templatemethod (String class_name, ObservableTest o) internal_class_name = class_name; System.out.println("L'objet "+ internal_class_name+" est vivant"); _observable = o; System.out.println("La classe a observée est mémorisée"); // public String getclassname() return internal_class_name; // public void update(observable o, Object arg ) System.out.println("Test sé&curité notification partie update"); if (o==_observable) System.out.println("L'objet "+internal_class_name+" est bien le bon appelant"); System.out.println("L'objet "+internal_class_name+" est mis à jour"); this.updatedifference(o,arg); else System.out.println("L'objet est malicieux"); ; // protected void updatedifference(observable o, Object arg )
16 JAVA et Design Pattern Page 16/26 1.Le pattern Oberver 1.4 Analyse des Observer/Observable du SDK Sun Source de la solution package observateur; import java.util.*; /** * <p>titre : Test observateur Java</p> * <p>description : </p> * <p>copyright : Copyright (c) 2003</p> * <p>société : </p> Laurent Deséchalliers */ public class obstype2 extends obs1templatemethod public obstype2(string class_name, ObservableTest o) super(class_name,o); protected void updatedifference(observable o, Object arg ) System.out.println("L'objet "+internal_class_name+" a été notifié / partie updatedifférence du la classe fils");
17 JAVA et Design Pattern Page 17/26 1.Le pattern Observer 1.4 Analyse des Observer/Observable du SDK Sun Scénario de test Source du test // Véritable objet observé ObservableTest ObjetObserve = new ObservableTest(); // Objet Observable malicieux ObservableTest ObjetObserveMalicieux = new ObservableTest(); // Observateur du test obstype2 Observateur1 = new obstype2("obs1",objetobserve); System.out.println("Test du bon objet observé"); ObjetObserve.setChanged() ; ObjetObserve.addObserver(Observateur1); ObjetObserve.notifyObservers(); System.out.println(" "); System.out.println("Test dd l'objet malicieux"); Observateur1.update(ObjetObserveMalicieux, null); Traces du test L'objet Obs1 est vivant La classe a observée est mémorisée Test du bon objet observé Statut Observé est : a changé L'observé Notifie les objets Observateur Test s&curité notification partie update L'objet Obs1 est bien le bon appelant L'objet Obs1 est mis à jour L'objet Obs1 a été notifié / partie updatedifference du la classe fils Test de l'objet malicieux Test sécurité notification partie update L'objet est malicieux
18 JAVA et Design Pattern Page 18/26 2.Le pattern Template Method 2.1 Exemple du tri à bulle Algo Tri a bulle sur une suite A n d'éléments dont le type n'est pas définit Si A n+1 <A n alors permute A n et A n Problème de redondance d'éléments à trier nombre réels chaines de caractère de code pour chaque type Il faut donc définir une structure générique d'un algoritme dont on déléguera certaines étapes aux sous-classes.
19 JAVA et Design Pattern Page 19/26 2.Le pattern Template Method 2.1 Schéma UML du Template Method Avantage : On obtient un code unique et réutilisable (extension à d'autres type d'éléments à trier).
20 JAVA et Design Pattern Page 20/26 3. Le pattern Factory 3.1 Présentation du Patern factory Objectif Participants et collaborateurs Conséquences Découpler l'instanciation d'une méthode de la classe cliente. Father définit l'interface des classes fils utilisés par des classes clientes. FatherFactory instancie une classes fils de Father en fonction d'un contexte donné. Le polymorphisme de classe découple Father de ses classes utilisatrices. Par ce découplage, on obtient : La possibilité de modifier les implémentations des classes fils de Father sans modifier les classes utilisatrices On peut ajouter des classes fils à Father, voire modifier celles déjà existantes (pour les diviser par exemple) sans avoir a retoucher les classes utilisatrices On peut modifier les règles d'attribution de classes de la Factory sans modifier les classes utilisatrices et Father. On diminue le nombre de classes filles du Client de Father Factory
21 JAVA et Design Pattern Page 21/26 3. Le pattern Factory 3.2 Présentation (suite) du Pattern Factory Les objets sont responsables d'eux même : Father (et ses fils) résolvent la tache qui leur est assigné. FatherFactory choisit la classe la plus adaptée en fonction du contexte donné. En comparaison avec une organisation projet : le choix des membres d'un projet est effectué par un chef de projet et non par les membres (potentiels) du projet. PS : les configurations peuvent être multiples
22 JAVA et Design Pattern Page 22/26 4. Le pattern Strategy 4.1 Problématiques des différentiations On applique une stratégie simple à un objet : exemple du calcul de taxe en fonction du pays. Cas n 1 : on veut différencier (classe E) des éléments (hors stategy) de A Problème : on doit différencier pour chaque statégie explosion des classes
23 JAVA et Design Pattern Page 23/26 4. Le pattern Strategy 4.2 Problèmatiques des stratégies multiples Cas n 2 : on veut rajouter une stratégie à deux options Problème : on doit différencier pour chaque statégie explosion des classes Autre possibilité lourde et inélégante : on rajoute deux classes Strategy2_1 et Strategy2_2 dans A. Couplage fourt, perte du polymorphisme.
24 JAVA et Design Pattern Page 24/26 4. Le pattern Strategy 4.3 Diagrammes et avantages Souplesse d'ajout : De type de stratégies D'élément d'un type de stratégie De destruction et remodelage d'un type de stratégie Un couplage faible Découplage Client/configuration Couplage faible configuration/stratégy Aucun couplage Client/Strategy Les objets sont responsables : Chaque Strategy est responsable de sa stratégie Les développeurs sont responsables Simplification du travail en équipe
25 JAVA et Design Pattern Page 25/26 5. Conclusion Ce que ce travail m'a apporté : Mieux appréhender une approche objet non hiérarchisée et monolithique Travailler avec une autre philosophie de conception basée sur l'esthétisme et l'agilité des structures objet (ne pas oublier que les pattern design ont été créés par un architecte et des anthropologues) Regrets : Ne pas avoir réussi à me convaincre de l'utilité du pattern Bridge Ce type d'enseignement et d'autres (Extrem Programming) ne soient : pas enseignés dans les universités et écoles d'ingénieur pas (ou très peu) utilisé dans les entreprises Perspectives d'avenir : Continuer à travailler mes ressources actuelles Lire (et travailler avec ardeur) le livre du ''Gang Of For'' Publier un article sur un Pattern Design dédié aux files d'attentes adapté à des systèmes à contraintes d'exécutions multiples (disques durs par exemple)
26 JAVA et Design Pattern Page 26/26 6. Bibliographie et Ressources Diverses Design Pattern par la pratique. A. Shalloway, J.R. Trott. Eyroles. 249p. ISBN Login n 90 à 97. (série d'articles consacrés au Design Pattern). Sources du SDK v. 1.4 Java de SUN. Je tiens à remercier tout particulièrement les éditeurs et développeurs indépendant offrants des logiciels libres ou des éditions community. Grâce à leurs actions, la maîtrise des systèmes d'information dévient, un peu plus chaque jour, accessible à tous.
Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailLangage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2
Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD
Plus en détailDesign patterns. Design patterns - définition. Design patterns - avantages
Design patterns Conception UML Implantation Java Anne Lapujade 1 Design patterns - définition 2 v Objectif : proposer des solutions standardisées à des problèmes de conception classiques v Design pattern
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailTD2 Programmation concurrentielle
TD2 Programmation concurrentielle Développement Logiciel (L2-S4) Lundi 10 février 2014 Exercice 1 (Au bar...) Trois clients se trouvent au bar. Il est tard, ils sont fatigués, et ils s endorment sur le
Plus en détailPackage Java.util Classe générique
Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailInitiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr
Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailApprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)
Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les
Plus en détailObjets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailPage 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>
Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances
Plus en détailThreads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Plus en détailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailProgrammation Par Objets
Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets
Plus en détailProjet de programmation (IK3) : TP n 1 Correction
Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public
Plus en détailJ2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation
J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread
Plus en détailJava Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailInfo0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java
Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailUne introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailCours de Génie Logiciel
Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes
Plus en détailPatrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Plus en détailRemote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailTD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Plus en détailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailCorrigé des exercices sur les références
Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile
Plus en détailTD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailPrésentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...
Au programme Conception Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Présentation L UE COO est le prolongement immédiat de l UE POO du S4 informatique. cf. http://portail.fil.univ-lille1.fr/portail/ls4/poo
Plus en détailAuto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Plus en détail[APPLICATON REPARTIE DE VENTE AUX ENCHERES]
2012 Polytech Nice- Sophia El Hajji Khalil Yousfi Hichem SI4 - Log [APPLICATON REPARTIE DE VENTE AUX ENCHERES] Sommaire Architecture de l application... 3 Le Serveur... 3 Le Client... 4 Passage en CORBA...
Plus en détailMaîtriser le menu contextuel dans un OfficeBean
Maîtriser le menu contextuel dans un OfficeBean Diffusé Par Le Projet Documentation d'openoffice.org Version 1.0 Aurélie Schröder Université de Genève Division informatique AurelieSch@netcourrier.com Table
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailLambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
Plus en détailConception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA
Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA I. Introduction Suite à une demande des étudiants, il m'est apparu intéressant de montrer, à travers un exemple concret, comment
Plus en détailLangage Java. Classe de première SI
Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les
Plus en détailOnce the installation is complete, you can delete the temporary Zip files..
Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une
Plus en détailSynchro et Threads Java TM
Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire
Plus en détailRAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
Plus en détailCours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Plus en détailP 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 )
P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes
Plus en détailCalcul Parallèle. Cours 5 - JAVA RMI
Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation
Plus en détailUne architecture, pourquoi faire? Architecture Logicielle des IHM. IHM et architecture. Découpage par Abstraction
Architecture Logicielle des IHM Principes de bases Modèle MVC Modèle PAC Une architecture, pourquoi faire? Organiser le code (rangement) Simplifier (diviser pour régner) Organiser le travail Itératif Parallèle
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailLOG4430 : Architecture logicielle et conception avancée
LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cours 3 Bibliothèques et chargement Dynamique de composants Département de génie informatique et de génie logiciel École Polytechnique
Plus en détailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en détailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détail4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
Plus en détailJADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailConfigurer la supervision pour une base MS SQL Server Viadéis Services
Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailProgrammation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13
Programmation Réseau Sécurité Java Jean-Baptiste.Yunes@univ-paris-diderot.fr UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie
Plus en détailForthcoming Database
DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of
Plus en détailHéritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Plus en détailIntroduction : les processus. Introduction : les threads. Plan
IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres
Plus en détailInstructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00
Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce
Plus en détail1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7
Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application
Plus en détailDéveloppement Logiciel
Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles
Plus en détailProgrammation par les Objets en Java
Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détail4. Groupement d objets
Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux
Plus en détailAPI04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture
API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant
Plus en détailPolymorphisme, la classe Object, les package et la visibilité en Java... 1
Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....
Plus en détailLes frameworks au coeur des applications web
Les frameworks au coeur des applications web Mémoire de bachelor réalisé par : Arielle Moro Directeur de mémoire : Peter Daehne, Professeur HES Genève, le vendredi 27 août 2010, Haute Ecole de Gestion
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailSurveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition
Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution
Plus en détailIngénierie des Modèles. Méta-modélisation
Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr
Plus en détailCedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation
Plus en détailTutoriel: Création d'un Web service en C++ avec WebContentC++Framework
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailCours en ligne Développement Java pour le web
Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité
Plus en détailLOG4430 : Architecture et conception avancée
LOG4430 : Architecture et conception avancée Abdou Maiga Patrons pour la conception d applications distribuées Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc,
Plus en détailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailGestion distribuée (par sockets) de banque en Java
Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailConnexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC
Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger
Plus en détailTypes d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Plus en détailDifferential Synchronization
Differential Synchronization Neil Fraser Google 2009 BENA Pierrick CLEMENT Lucien DIARRA Thiemoko 2 Plan Introduction Stratégies de synchronisation Synchronisation différentielle Vue d ensemble Dual Shadow
Plus en détailPrendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;
s Introduction Naissance d'un programme Exercice I-1: Apprendre à décomposer une tâche en sous-tâches distinctes a. Objets nécessaires : 1 tableau, 1 clou, 2 pointes, 1 ficelle, 1 marteau, 1 crayon, 1
Plus en détailJava et les bases de données
Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples
Plus en détailRMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plus en détailLe Guide Pratique des Processus Métiers
Guides Pratiques Objecteering Le Guide Pratique des Processus Métiers Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam 21 avenue Victor Hugo 75016
Plus en détailJava Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Plus en détailJava Licence professionnelle CISII, 2009-2010
Java Licence professionnelle CISII, 2009-2010 Cours 6 : le paquetage (package) Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett 1 Définition - Les classes Java sont regroupées
Plus en détailProgramme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
Plus en détailAlfstore workflow framework Spécification technique
Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date
Plus en détail