Patron Visiteur Gestion de clients

Dimension: px
Commencer à balayer dès la page:

Download "Patron Visiteur Gestion de clients"

Transcription

1 Patron Visiteur Gestion de clients Denis Conan et Christian Bac Revision : 1985 CSC4102 Télécom SudParis Mardi 25 janvier 2011

2 Avertissement : cet exemple de spécification, de conception et mise en œuvre de patron de conception correspond à un sujet donné en contrôle final, première session, du module CSC4002 il y a quelques années. Par conséquent, le programme ayant changé depuis, il y manque des éléments, comme la préparation des tests d intégration. Par ailleurs, la réalisation est très incomplète. Enfin, notez que le code de cet exemple est disponible dans un module Maven associé. 1 Cahier des charges Nous proposons l analyse d un cas d étude que nous présentons ci-après et qui démontre l utilisation d un patron de conception : le patron de conception «Visiteur». Étude de cas. Le patron de conception «Visiteur» propose une manière de séparer lors de la conception et de la programmation d un côté la gestion de données organisées dans des collections imbriquées et de l autre côté les algorithmes qui s appliquent sur les données référencées dans ces collections. Dans notre cas d étude dont le diagramme de classes est présenté dans la figure 1, les classes CustomerGroup, Customer, Order et Item sont organisées dans une hiérarchie de compositions. Nous souhaitons tout d abord afficher les informations d un groupe de clients (classes CustomerGroup et Customer) passant des commandes (classe Order) comprenant plusieurs articles (Item). Le traitement spécifique effectué dans cette première visite est spécifié dans la classe ContentVisitor. Ensuite, nous souhaitons parcourir de la même manière les collections imbriquées pour calculer le chiffre d affaire total, ce chiffre d affaire étant calculé à partir du prix de chaque article (attribut price de la classe Item) et des remises appliquées selon le client (attribut reductionrate de la classe Customer). Cette seconde visite est spécifiée dans la classe BusinessVisitor. Le fonctionnement du patron de conception «Visiteur» est le suivant. Le patron de conception «Visiteur» appelle la méthode accept sur l objet racine des collections imbriquées. La méthode accept de l objet racine appelle une méthode de même nom (accept) sur les références des objets de la collection qu il gère. La méthode accept des objets de cette collection appelle à son tour une méthode accept sur les objets des collections qu ils possèdent, etc. Ainsi, toutes les collections sont parcourues pour construire un graphe d appels de méthodes accept. C est la première fonctionnalité du patron de conception «Visiteur» : parcourir les éléments des collections imbriquées. La seconde fonctionnalité est la suivante. Lorsqu un nœud de l arbre est visité, en plus des appels accept sur les objets enfants accessibles à partir de ce nœud, la méthode accept effectue un traitement local. Ce traitement est effectué en appelant une méthode visit d une classe appelée «visiteur» qui réalise les traitements. Par conséquent, la classe jouant le rôle d un visiteur contient des méthodes visit, une méthode par type d objets visités. Présentation de la modélisation disponible pour l implantation. Voici quelques détails sur le diagramme de classes : interface Visitor : déclare les méthodes appelables lors des visites (des parcours d une collection), une méthode pour chaque type d objets de collection visités ; classe ContentReport et BusinessReport : exemples de visiteurs des collections. Chaque méthode visit définit ce qu il faut faire lorsqu un objet est parcouru lors de la visite. Par exemple, en ce qui concerne la classe ContentReport, le type et le nom de l objet sont affichés à l écran puis un compteur par classe d objets est incrémenté (customernb, ordersnb et itemsnb pour respectivement Customer, Order et Item). La dernière méthode displayresults affiche les compteurs. Cette méthode est généralement appelée après les visites. Le contenu de cette classe est donné dans la figure 2. interface Visitable : déclare la méthode accept utilisée lors des visites. Dans les collections feuilles de l arborescence (par exemple, la classe Item), cette méthode appelle la méthode visit du visiteur. Dans les autres collections (par exemple, la classe Order), elle parcourt en plus les «sous-collections» et appelle la méthode accept sur chacun des objets des sous-collections ; classes CustomerGroup, Customer, Order et Item : exemples de classes «visitables» dont la méthode accept est appelée lorsqu un objet de la classe est visité lors du parcours de la collection dans laquelle il est inséré. Nous donnons le corps de la méthode accept ci-dessous pour la classe Customer. Remarquez que la référence sur le visiteur est un argument de la méthode. Cela permet d appeler la méthode visit correspondante du visiteur pour le traitement à effectuer lors de la visite, par exemple de mettre à jour les statistiques dans le visiteur ContentReport. Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC4102 2

3 public void accept(visitor visitor) { visitor.visit(this); for (Iterator<Order> it = orders.iterator(); it.hasnext();) { ((Visitable) it.next()).accept(visitor); classe CustomerGroup : contient la racine de l arborescence des collections. Dans notre exemple, ce sont tous les objets de classe Customer. La classe CustomerGroup contient aussi une méthode accept dont le corps de la méthode est le suivant : public void accept(visitor visitor) { for (Iterator<Customer> it = customers.iterator(); it.hasnext();) { ((Customer) it.next()).accept(visitor); Enfin, la figure 3 présente le diagramme de communications d une méthode main d une classe Main montrant un cas d utilisation du système. Ce diagramme de communications n est pas complet : le message «21» donne lieu a des traitements imbriqués. La figure 4 présente le début du traitement de ce message. Ce n est que le début dans le sens où la figure présente la visite jusqu au premier objet feuille (de l objet cg:customergroup à l objet ia:item en passant par les objets c2:customer et o2:order), sans la visite des autres objets de types Customer, Order et Item. Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC4102 3

4 visitor BusinessReport totalamount:double customervisited:customer +visit(customer):void +visit(order):void +visit(item):void +gettotalamount():double <<interface>> Visitor +visit(customer):void +visit(order):void +visit(item):void ContentReport customersnb:int ordersnb:int itemsnb:int +visit(customer):void +visit(order):void +visit(item):void +displayresults():void CustomerGroup +constructeur() +addcustomer(customer):void +accept(visitor):void <<interface>> Visitable +accept(visitor):void Item name:string price:double +constructeur(string,double) +getname():string +getprice():double +accept(visitor):void * * Customer Order name:string discountrate:double +constructeur(string,double) +getname():string +getdiscountrate():double +addorder(order):void +accept(visitor):void * name:string +constructeur(string) +constructeur(string,string,double) +getname():string +additem(item):void +accept(visitor):void Figure 1 Diagramme de classes Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC4102 4

5 p u b l i c c l a s s ContentReport implements V i s i t o r { p r i v a t e i n t customersno ; p r i v a t e i n t ordersno ; p r i v a t e i n t itemsno ; p u b l i c void v i s i t ( Customer customer ) { System. out. p r i n t l n ( customer. getname ( ) ) ; customersno++; p u b l i c void v i s i t ( Order order ) { System. out. p r i n t l n ( order. getname ( ) ) ; ordersno++; p u b l i c void v i s i t ( Item item ) { System. out. p r i n t l n ( item. getname ( ) ) ; itemsno++; p u b l i c void d i s p l a y R e s u l t s ( ) { System. out. p r i n t l n ( "Nb o f customers : " + customersno ) ; System. out. p r i n t l n ( "Nb o f o r d e r s : " + ordersno ) ; System. out. p r i n t l n ( "Nb o f i t e m s s : " + itemsno ) ; Figure 2 Code Java de la classe ContentReport Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC4102 5

6 20 create() 22 displayresults() 17 create() 18 addcustomer(c1) 19 addcustomer(c2) 21 cr:contentreport cg:customergroup 15 create("customer2",0.2) 16 addorder(o4) 11 create("order4") 12 additem(ia) 13 additem(ib) 14 additem(ic) c2:customer o4:order 10 create("itema",4) ia:item 9 create("itemb",5) ib:item 8 create("itemc",6) ic:item Main 5 addorder(o1) 6 addorder(o2) 7 addorder(o3) 1 create("customer1",0.1) c1:customer 2 create("order1","item1",1) o1:order 2.1 create("item1",1) i1:item 3 create("order2","item2",2) o2:order 3.1 create("item2",2) i2:item 4 create("order3","item3",3) o3:order 4.1 create("item3",3) i3:item Figure 3 Diagramme de communications de la méthode main de la classe Main Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC4102 6

7 cr:contentreport visit(ia) visit(o4) visit(c2) o4:order ia:item 21 cg:customergroup c2:customer getname() getname() getname() ib:item ic:item c1:customer 21.2 o1:order i1:item o2:order i2:item o3:order i3:item Figure 4 Début de la fin du diagramme de communications de la figure 3 à partir du message «21». Ce n est que le début du traitement car la figure présente la visite jusqu au premier objet feuille (de l objet cg:customergroup à l objet ia:item en passant par les objets c2:customer et o2:order) sans la visite des autres objets de types Customer, Order et Item. Les flèches en pointillées montre la suite des interactions à ajouter pour terminer le diagramme. C est clairement une entorse à la notation UML, mais nous désirons uniquement montrer le principe de la visite et souhaitons que le diagramme ne soit pas trop chargé. Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC4102 7

8 2 Programmation Voici le code de l interface Visitable. p u b l i c i n t e r f a c e V i s i t a b l e { p u b l i c void accept ( V i s i t o r v i s i t o r ) ; Voici le code de la classe Order. import java. s q l. R esultset ; import java. s q l. SQLException ; import java. s q l. Statement ; import java. u t i l. I t e r a t o r ; import java. u t i l. Vector ; p u b l i c c l a s s Order implements V i s i t a b l e { p r i v a t e S t r i n g name ; p r i v a t e Vector<Item> items = new Vector<Item >(); p u b l i c Order ( S t r i n g n ) { name = n ; items = new Vector<Item >(); p u b l i c Order ( S t r i n g n, S t r i n g itemname, double itemprice ) { name = n ; items = new Vector<Item >(); additem ( new Item ( itemname, itemprice ) ) ; p u b l i c S t r i n g getname ( ) { r e t u r n name ; p u b l i c void accept ( V i s i t o r v i s i t o r ) { v i s i t o r. v i s i t ( t h i s ) ; f o r ( I t e r a t o r <Item> i t = items. i t e r a t o r ( ) ; i t. hasnext ( ) ; ) { ( ( Item ) i t. next ( ) ). accept ( v i s i t o r ) ; p u b l i c void additem ( Item item ) { items. add ( item ) ; // code pour l a reponse a l a q u e s t i o n 9 p u b l i c void initfromdb ( Statement stmt ) throws OperationImpossible { S t r i n g query = " s e l e c t from order where name = " + name + " " ; t r y { ResultSet r s e t = stmt. executequery ( query ) ; i n t order_idx ; i f ( r s e t. f i r s t ( ) ) { order_idx = r s e t. g e t I n t ( " idx " ) ; e l s e { throw new OperationImpossible ( " Order not found i n DB " + query ) query = " s e l e c t from item where order_id = " + order_idx + " " ; r s e t = stmt. executequery ( query ) ; while ( r s e t. next ( ) ) { S t r i n g n = r s e t. g e t S t r i n g ( " name " ) ; double p = r s e t. getdouble ( " p r i c e " ) ; additem ( new Item (n, p ) ) ; catch ( SQLException se ) { throw new OperationImpossible ( " Echec a c c e s Items " ) ; Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC4102 8

9 Voici la méthode main de la classe Main, y compris son prototype. package eu. t e l e c o m s u d p a r i s. csc4102. d e s i g n p a t t e r n. v i s i t o r ; import eu. t e l e c o m s u d p a r i s. csc4102. d e s i g n p a t t e r n. v i s i t o r. g e s t i o n d e c l i e n t s. ContentReport ; import eu. t e l e c o m s u d p a r i s. csc4102. d e s i g n p a t t e r n. v i s i t o r. g e s t i o n d e c l i e n t s. Customer ; import eu. t e l e c o m s u d p a r i s. csc4102. d e s i g n p a t t e r n. v i s i t o r. g e s t i o n d e c l i e n t s. CustomerGroup ; import eu. t e l e c o m s u d p a r i s. csc4102. d e s i g n p a t t e r n. v i s i t o r. g e s t i o n d e c l i e n t s. Item ; import eu. t e l e c o m s u d p a r i s. csc4102. d e s i g n p a t t e r n. v i s i t o r. g e s t i o n d e c l i e n t s. Order ; p u b l i c c l a s s Main { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { Customer c = new Customer ( " customer1 ", 0. 1 ) ; c. addorder ( new Order ( " order1 ", " item1 ", 1 ) ) ; c. addorder ( new Order ( " order2 ", " item2 ", 2 ) ) ; c. addorder ( new Order ( " order3 ", " item3 ", 3 ) ) ; Customer c2 = new Customer ( " customer2 ", 0. 2 ) ; Order o = new Order ( " order4 " ) ; o. additem ( new Item ( " itema ", 4 ) ) ; o. additem ( new Item ( " itemb ", 5 ) ) ; o. additem ( new Item ( " itemc ", 6 ) ) ; c2. addorder ( o ) ; CustomerGroup customers = new CustomerGroup ( ) ; customers. addcustomer ( c ) ; customers. addcustomer ( c2 ) ; ContentReport v i s i t o r = new ContentReport ( ) ; customers. accept ( v i s i t o r ) ; v i s i t o r. d i s p l a y R e s u l t s ( ) ; Nous écrivons maintenant le constructeur de la classe Item pour qu il lève une exception lorsque l un des attributs n est pas renseigné. Nous supposons que nous avons à notre disposition la classe d exception OperationImpossible (telle qu elle est implantée dans le cas d étude «Médiathèque»). p u b l i c c l a s s ItemWithException { p r i v a t e S t r i n g name ; p r i v a t e double p r i c e ; p u b l i c ItemWithException ( S t r i n g n, double p ) throws OperationImpossible { i f ( ( name == n u l l ) ( p r i c e == 0 ) ) { throw new OperationImpossible ( "Un des arguments n e s t pas r e n s e i g n e " ) ; name = n ; p r i c e = p ; Nous écrivons maintenant un test permettant de tester que le constructeur de la classe Item lève une exception lorsque l un des attributs n est pas renseigné. import org. j u n i t. Test ; p u b l i c c l a s s JUnit_ItemWithExceptionTest ( expected=operationimpossible. c l a s s ) p u b l i c void testnotnullname ( ) throws OperationImpossible { new ItemWithException ( n u ll, 1. 0 ) ; Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC4102 9

10 Le second visiteur, c est-à-dire la classe BusinessReport, sert à calculer le chiffre d affaire total selon la formule qui suit. Nous écrivons tout le code Java de la classe BusinessReport. ( ( )) totalamount = (i.getp rice() (1 c.getdiscountrate())) c Customer o Order i Item p u b l i c c l a s s BusinessReport implements V i s i t o r { p r i v a t e double totalamount ; p r i v a t e Customer c u s t o m e r V i s i ted ; p u b l i c BusinessReport ( ) { totalamount = 0 ; c u s t o m e r V i s i t e d = n u l l ; p u b l i c void v i s i t ( Customer customer ) { c u s t o m e r V i s i t e d = customer ; p u b l i c void v i s i t ( Order order ) { p u b l i c void v i s i t ( Item item ) { totalamount += item. g e t P r i c e ( ) (1 customervisited. getdiscountrate ( ) ) ; p u b l i c double gettotalamount ( ) { r e t u r n totalamount ; Télécom SudParis Denis Conan et Christian Bac Mardi 25 janvier 2011 CSC

Gestion de post-it CSC4102. Denis Conan et Christian Bac. Revision : 430

Gestion de post-it CSC4102. Denis Conan et Christian Bac. Revision : 430 Denis Conan et Christian Bac Revision : 430 CSC4102 Télécom SudParis 24 Novembre 2008 Avertissement : cet exemple de spécification et de conception correspond à un sujet donné en bureau d étude noté du

Plus en détail

Patrons Constructeur et Singleton Recettes de cuisine

Patrons Constructeur et Singleton Recettes de cuisine Patrons Constructeur et Singleton Recettes de cuisine Denis Conan et Christian Bac Revision : 805 CSC4102 Télécom SudParis Vendredi 31 janvier 2014 Avertissement : cet exemple de spécification, de conception

Plus en détail

Jeu en ligne CSC4102. Denis Conan et Christian Bac. Revision : 430

Jeu en ligne CSC4102. Denis Conan et Christian Bac. Revision : 430 Denis Conan et Christian Bac Revision : 430 CSC4102 Télécom SudParis 7 Décembre 2009 Avertissement : cet exemple de spécification et de conception correspond à un sujet donné en bureau d étude noté du

Plus en détail

Prise de rendez-vous et choix

Prise de rendez-vous et choix Denis Conan et Christian Bac Revision : 430 CSC4102 Télécom SudParis 19 Novembre 2007 Avertissement : cet exemple de spécification et de conception correspond à un sujet donné en bureau d étude noté du

Plus en détail

Exemple de questions en Spécification, Conception et Programmation

Exemple de questions en Spécification, Conception et Programmation Exemple de questions en Spécification, Conception et Programmation Les seuls documents autorisés sont ceux distribués en cours et en TP, et mis à disposition sur le site Web du module, ainsi que vos notes

Plus en détail

Liseuse CSC4102. Denis Conan et Christian Bac. Revision : 430

Liseuse CSC4102. Denis Conan et Christian Bac. Revision : 430 Denis Conan et Christian Bac Revision : 430 CSC4102 Télécom SudParis 5 Décembre 2011 Avertissement : cet exemple de spécification et de conception correspond à un sujet donné en bureau d étude noté du

Plus en détail

Exemple de questions en Programmation

Exemple de questions en Programmation Les seuls documents autorisés sont ceux distribués en cours et en TP, et mis à disposition sur le site Web du module, ainsi que vos notes personnelles. Notes en préambule : les questions qui suivent constituent

Plus en détail

Jeu d échecs CSC4102. Denis Conan et Christian Bac. Revision : 430

Jeu d échecs CSC4102. Denis Conan et Christian Bac. Revision : 430 Denis Conan et Christian Bac Revision : 430 CSC4102 Télécom SudParis 7 décembre 2009 Avertissement : cet exemple de spécification et de conception correspond à un sujet donné en bureau d étude noté du

Plus en détail

Compagnie aérienne. Chantal Taconet et Christian Bac CSC4102

Compagnie aérienne. Chantal Taconet et Christian Bac CSC4102 Chantal Taconet et Christian Bac CSC402 Télécom SudParis 20 Novembre 2006 Avertissement : cet exemple de spécification et de conception correspond à un sujet donné en bureau d étude noté du module CSC4002

Plus en détail

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 1 décembre 2014 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 1 décembre 2014 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2014/2015 des étudiants de 2 è année (EI2) CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 1 décembre 2014 Durée : 2H Coordonnateurs : Christian

Plus en détail

Projet ORAlgorithmics

Projet ORAlgorithmics Projet ORAlgorithmics Projet ORAlgorithmics Département d informatique Projet ORAlgorithmics Département d informatique et de recherche Opérationnelle Une collection d algorithmes de recherche opérationnelle

Plus en détail

Concepts de base de la programmation orientée objet

Concepts de base de la programmation orientée objet Concepts de base de la programmation orientée objet 1 / 23 Plan 1 Qu est-ce qu un objet? Une définition Principe d encapsulation des données Exemples 2 Qu est-ce qu une classe? Une définiton Exemple de

Plus en détail

Héritage, sous-typage et classes abstraites

Héritage, sous-typage et classes abstraites Héritage, sous-typage et classes abstraites Virginia Aponte Département Informatique CNAM-Paris April 18, 2017 Virginia Aponte (Cnam) NFA032 April 18, 2017 1 / 58 1. Sous-typage (polymorphisme objet) Virginia

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : vendredi 31 janvier 2014 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : vendredi 31 janvier 2014 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : vendredi 31 janvier 2014 Durée : 1H30 Coordonnateurs : Christian Bac et

Plus en détail

Université Bordeaux Collège Sciences et Technologies Jeudi 8 décembre Durée: 3 heures Documents autorisés Ce sujet comporte 5 pages

Université Bordeaux Collège Sciences et Technologies Jeudi 8 décembre Durée: 3 heures Documents autorisés Ce sujet comporte 5 pages Université Bordeaux Collège Sciences et Technologies Jeudi 8 décembre 2016 Master Informatique Examen UE: 4TIN706U Approche Objet Durée: 3 heures Documents autorisés Ce sujet comporte 5 pages 1 Questions

Plus en détail

Grilles d auto-évaluation

Grilles d auto-évaluation Denis Conan Revision : 1675 CSC4102 Télécom SudParis Août 2016 Ce document contient toutes les grilles d évaluation. Nous y faisons référence à la fin des séances pour l auto-évaluation et lors des soutenances

Plus en détail

Notion de type abstrait de données

Notion de type abstrait de données 1 de données type abstrait = contrat (1) Structures de données Christian Carrez Cnam 2 utilisation implantation contrat l établissement d'un contrat entre l'implanteur et l'utilisateur accord entre les

Plus en détail

Objecteering : éléments de base

Objecteering : éléments de base Partie 3 1 Objecteering : éléments de base 1.Fonctions 2.Fenêtres d interface 3.Principaux types d objets de modélisation 4.Système d aide Ob.1 Fonctions d Objecteering 2 Création et édition de modèles

Plus en détail

Documentation Technique : Grammaire & Parseur SoCQ

Documentation Technique : Grammaire & Parseur SoCQ Documentation Technique : Grammaire & Parseur SoCQ Julien Deflaux 1 er août 2008 1 Table des matières 1 Introduction 3 2 Grammaire SoCQ 4 2.1 Description des données..................... 4 2.2 Étendue

Plus en détail

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 5 décembre 2011 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 5 décembre 2011 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 5 décembre 2011 Durée : 2H Coordonnateurs : Christian

Plus en détail

Conception en UML, Architecture n-tiers, par l exemple

Conception en UML, Architecture n-tiers, par l exemple Conception en UML, Architecture n-tiers, par l exemple Utilisation de php 5, Mysql, Html, css,... Inspiré de UML2 par la pratique M. Blay-Fornarino Les codes sont disponibles sur le site web Bibliographie

Plus en détail

Corrigé du BE6 7 CSC Équipe enseignante. Revision : 1510

Corrigé du BE6 7 CSC Équipe enseignante. Revision : 1510 Équipe enseignante Revision : 50 CSC 4002 Télécom SudParis Octobre 205 Corrigé-type. Analyse du texte Les classes et attributs obtenus après analyse du texte sont les suivants : la classe équipage sert

Plus en détail

TP de Programmation Orientée Objet : abstraction

TP de Programmation Orientée Objet : abstraction TP de Programmation Orientée Objet : abstraction Expressiez-vous! Équipe pédagogique Programmation Orientée Objet Novembre MMXIV 1 Introduction Ce TP a pour objectif de manipuler des expressions arithmétiques

Plus en détail

1 Rappel : exemple simple

1 Rappel : exemple simple La généricité en Java (suite) F. Barthélemy 14 mars 2006 1 Rappel : exemple simple class Liste boolean estvide ( ) return true ; Liste s u i t e ( ) throws ListeVideException throw ListeVideException.

Plus en détail

Corrigés des Exercices Exercice: Interfaces graphiques

Corrigés des Exercices Exercice: Interfaces graphiques www.djouabri.com djouabri@djouabri.com Corrigés des Exercices Exercice: Interfaces graphiques Exercice : Interfaces graphiques Les systèmes d exploitation tels que Microsoft Windows, Mac OS et Linux supportent

Plus en détail

Rétro-ingéniérie. Jean-Yves Didier

Rétro-ingéniérie. Jean-Yves Didier Rétro-ingéniérie Jean-Yves Didier L objectif de ce TD est de construire une représentation graphique permettant d avoir une vue synthétique du code source d un logiciel. Il s agit donc de faire de la rétro-ingénierie

Plus en détail

l1 = m = s1 = s2 = l2 = c1 = c2 = 1 de 7 l1.equals(l2) retourne vrai ssi l1 et l2 sont égales en contenu.

l1 = m = s1 = s2 = l2 = c1 = c2 = 1 de 7 l1.equals(l2) retourne vrai ssi l1 et l2 sont égales en contenu. Université de Sherbrooke, Département d informatique IFT287 : Exploitation de BD relationnelles et OO, examen périodique Professeur : Marc Frappier, samedi 26 février 2011, 13h30 à 16h20, local D7-2021

Plus en détail

Université Bordeaux Collège Sciences et Technologies Jeudi 29 juin Durée: 3 heures Documents autorisés Ce sujet comporte 8 pages

Université Bordeaux Collège Sciences et Technologies Jeudi 29 juin Durée: 3 heures Documents autorisés Ce sujet comporte 8 pages Université Bordeaux Collège Sciences et Technologies Jeudi 29 juin 2017 Master Informatique Examen UE: 4TIN706U Approche Objet Durée: 3 heures Documents autorisés Ce sujet comporte 8 pages 1 Questions

Plus en détail

Java et les bases de. M. Sassolas. L3Pro SCT M7. 1 Java, la suite Importer du code existant Les exceptions Année Cours 5.

Java et les bases de. M. Sassolas. L3Pro SCT M7. 1 Java, la suite Importer du code existant Les exceptions Année Cours 5. L3Pro SCT Bases de et programmation Mathieu Sassolas IUT de Sénart Fontainebleau Département Informatique er du code existant Année 2015-2016 2 3 2 / 19 La structure des packages er du code existant 2

Plus en détail

GÉNIE LOGICIEL AVANCÉ

GÉNIE LOGICIEL AVANCÉ Institut de la Francophonie pour l Informatique RAPPORT DU PROJET GÉNIE LOGICIEL AVANCÉ Sujet : «Implémentation d'un carnet d'adresse en Java» Réalisé par: NGUYEN Van Tho KASEREKA KABUNGA Selain Hanoï,

Plus en détail

INTRODUCTION MODELISATION UML. C. Schlick. Université de Bordeaux. Modélisation UML. Axes de Modélisation UML?

INTRODUCTION MODELISATION UML. C. Schlick. Université de Bordeaux. Modélisation UML. Axes de Modélisation UML? Université de Bordeaux Modélisation UML MODELISATION UML INTRODUCTION C. Schlick schlick@u-bordeaux.fr 1 2 UML? Axes de Modélisation UML est une notation, pas une méthode de conception UML est un langage

Plus en détail

Sujet UE NFA032: Programmation avec Java : programmation objet

Sujet UE NFA032: Programmation avec Java : programmation objet Année universitaire 2015 2016 Sujet UE NFA032: Programmation avec Java : programmation objet Examen deuxième session : 21/04/2016 Responsable : F. Barthélemy Durée : 3 heures Consignes Aucun document n

Plus en détail

NFA032 Programmation objet avec Java

NFA032 Programmation objet avec Java NFA032 Programmation objet avec Java Centre CNAM de Paris Deuxième session 2015 semestre 2 Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet (5

Plus en détail

Eclipse Modeling Tools

Eclipse Modeling Tools Laboratoire d'analyse et d'architecture des Systèmes Eclipse Modeling Tools Génération d'un éditeur arborescent Résumé: Un éditeur Arborescent est généré à partir du méta-modèle «ecore». Une commande permet

Plus en détail

1.Répondez aux questions suivantes:

1.Répondez aux questions suivantes: Programmation Orientée Objet IUT Lumière, DUT STID 2 2007-2008 Pierre-Edouard Portier, Pierre Parrend Consignes: Vous disposez de 1 heure pour la partie sur papier 1 heure pour la partie sur machine Les

Plus en détail

GL2 : Patrons de conception. Lydie du Bousquet & Philippe Lalanda

GL2 : Patrons de conception. Lydie du Bousquet & Philippe Lalanda GL2 : Patrons de conception Lydie du Bousquet & Philippe Lalanda 1 Conception La conception est un défi Il existe des processus définissant les activités et leur organisation Mais rien sur le comment faire

Plus en détail

ITI Introduction à l informatique II

ITI Introduction à l informatique II ITI 1521. Introduction à l informatique II Marcel Turcotte École d ingénierie et de technologie de l information Version du 20 mars 2011 Résumé Iterator (Partie 2) Classe interne Implémentation fail-fast

Plus en détail

ITI Introduction à l informatique II

ITI Introduction à l informatique II Assises de la programmation orientée objet : attributs, variables et méthodes d instance École de science informatique et de génie électrique (SIGE) Université d Ottawa Version du 18 janvier 2017 Aperçu

Plus en détail

Notes en préambule : 1 Sujet

Notes en préambule : 1 Sujet Corrigé Barème Institut Télécom, Télécom SudParis, 2 è année CSC4002 : Introduction à la conception et à la programmation orientées objet Contrôle de connaissances : Bureau d Études Date : 7 Décembre 2009

Plus en détail

UML. Table des matières. Informatique et Science du Numérique

UML. Table des matières. Informatique et Science du Numérique UML Informatique et Science du Numérique Table des matières 1. Introduction...2 2. ArgoUML...2 3. Les différents types de diagrammes...2 3.1. Besoins des utilisateurs...4 3.2. Aspects fonctionnels...5

Plus en détail

Les conteneurs Java ou Collections. Daniel Tschirhart : Programmation Java V1.34

Les conteneurs Java ou Collections. Daniel Tschirhart : Programmation Java V1.34 Les conteneurs Java ou Collections Daniel Tschirhart : Programmation Java V1.34 Type de Donnée e Abstrait (T.D.A.) Un conteneur est un Type de Donnée Abstrait (T.D.A.) (également appelé collection) destiné

Plus en détail

Lo42. Projet printemps Codage de Huffman

Lo42. Projet printemps Codage de Huffman Projet printemps 2003 Codage de Huffman Le codage de Huffman peut être utilisé pour comprimer une suite d'éléments (par exemple un texte, qui est une suite de caractères) en remplaçant chaque élément par

Plus en détail

Programmation avec Java : programmation objet (NFA032)

Programmation avec Java : programmation objet (NFA032) Programmation avec Java : programmation objet (NFA032) Samedi 13 avril 2013 Aucun document n est autorisé. Le barème est donné à titre indicatif. Exercice 1 : exceptions (3 points) p u b l i c c l a s

Plus en détail

5. Collections et autres structures de données

5. Collections et autres structures de données Master 2 BBSG POO, langage Java Laurent Tichit 5. Collections et autres structures de données 1. Listes triées 2. Table associative : un annuaire 3. Affichage de l environnement d un programme 4. Arborescences

Plus en détail

Cours 3: Arbres. Parcours.

Cours 3: Arbres. Parcours. 1 Cours 3: Arbres. Parcours. Olivier Bournez bournez@lix.polytechnique.fr LIX, Ecole Polytechnique 2011-12 Algorithmique 2 Aujourd hui Parcours d arbres Parcourir un arbre Beaucoup d algorithmes sur les

Plus en détail

Les diagrammes UML (suite) Les états-actions

Les diagrammes UML (suite) Les états-actions Les diagrammes UML (suite) Les vues statiques Diagrammes de classes : classes et associations Diagrammes d objets : liens et objets, diag. de collaborations simples Diagrammes de cas d utilisation : fct

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages AntLR - Générateur d analyseurs Claude Moulin Université de Technologie de Compiègne NF11 Sommaire 1 Introduction 2 Evaluation d une expression 3 Expressions arithmétiques AntLR ANTLR

Plus en détail

Design Patterns. M. Sassolas M3105. Cours 4. Patrons de conception. Structuration. Comportement 2 / 41. Design Patterns. M. Sassolas M3105.

Design Patterns. M. Sassolas M3105. Cours 4. Patrons de conception. Structuration. Comportement 2 / 41. Design Patterns. M. Sassolas M3105. La modélisation avec UML: introduction aux patrons de ACDA CPOO () 1 Les patrons de Mathieu Sassolas IUT de Sénart Fontainebleau Département Informatique Année 2015-2016 2 création (abstract factory) 3

Plus en détail

R ECURSION ET ARBRES

R ECURSION ET ARBRES RÉCURSION ET ARBRES Algorithmes récursifs Exemple : calculer le factoriel n! On peut donner une solution itérative ou récursive C est vrai en général : Chaque algorithme récursif peut être transformé en

Plus en détail

Anne Tasso. 3 e édition Groupe Eyrolles, 2000, 2002, 2005, ISBN :

Anne Tasso. 3 e édition Groupe Eyrolles, 2000, 2002, 2005, ISBN : Anne Tasso 3 e édition 2005 Groupe Eyrolles, 2000, 2002, 2005, ISBN : 2-212-11679-9 chapitre n 10 Collectionner un nombre indéterminé d objets Les dictionnaires Pour améliorer la recherche d éléments complexes

Plus en détail

Module 8 Les Déclencheurs

Module 8 Les Déclencheurs Structure d un déclencheur Types d événements déclencheurs Propriétés d un déclencheur Validation des données Les programmes pilotés par événement, tels que Forms, exécutent la logique de programme en

Plus en détail

Termes et concepts (1) Diagramme d activités (DAC) Action. Termes et concepts (2)

Termes et concepts (1) Diagramme d activités (DAC) Action. Termes et concepts (2) Termes et concepts (1) Diagramme d activités (DAC)! Les diagrammes d'activité offrent une manière graphique et non ambiguë pour modéliser les traitements.! Comportement d'une méthode! Déroulement d'un

Plus en détail

COURS 5 : DIAGRAMME DE CLASSES

COURS 5 : DIAGRAMME DE CLASSES COURS 5 : DIAGRAMME DE CLASSES Samia BOULKRINAT ( Basé sur le cours de Assia HACHICHI) 1 1. La classe et l objet 2. Encapsulation, 3. Héritage, 4. Polymorphisme 2 La classe : "Abstraction d'un type de

Plus en détail

Cahier des charges. Musée du Louvre. billets

Cahier des charges. Musée du Louvre. billets Cahier des charges Musée du Louvre Création d une interface de réservation et d achat de billets Leo Grambert Chef de Projet Multimédia Développeur back-end 2017 Sommaire 1 Vision globale 3 1.1 Les objectifs.................................

Plus en détail

HMIN215 - Eléments de solutions pour les exercices sur les itérateurs

HMIN215 - Eléments de solutions pour les exercices sur les itérateurs HMIN215 - Eléments de solutions pour les exercices sur les itérateurs 1 Feu Tricolore Un feu tricolore se compose de trois couleurs (on peut utiliser la classe Color en Java, avec des valeurs comme Color.red).

Plus en détail

Rudiments d'uml. Diagrammes UML POO UML. Au commencement

Rudiments d'uml. Diagrammes UML POO UML. Au commencement POO Rudiments d'uml Diagrammes UML Diagrammes comportementaux Diagramme des cas d'utilisation... Diagrammes structurels ou statiques Diagramme de classes Diagramme des paquetages... Diagrammes d'interaction

Plus en détail

Les exercices sont totalement indépendants et l ordre dans lequel ils apparaissent ne préjuge pas de leur difficulté réelle ou supposée.

Les exercices sont totalement indépendants et l ordre dans lequel ils apparaissent ne préjuge pas de leur difficulté réelle ou supposée. Université Lille1 Licence mention Informatique Semestre 4 UE Programmation Orientée Objet Examen première session 27 mai 2011 3 heures - notes et polycopiés de cours/td/tp autorisés livres, calculatrices

Plus en détail

Résumé du sous-ensemble de la notation UML 2 utilisé dans ce livre

Résumé du sous-ensemble de la notation UML 2 utilisé dans ce livre Résumé du sous-ensemble de la notation UML 2 utilisé dans ce livre annexe A Diagramme de cas d utilisation Diagramme de séquence Diagramme de classes Diagramme de packages Diagramme d états Cahier du programmeur

Plus en détail

Principes d'utilisation des systèmes de gestion de bases de données

Principes d'utilisation des systèmes de gestion de bases de données Principes d'utilisation des systèmes de gestion de bases de données JDBC L3 Informatique Emmanuel Waller, LRI, Orsay JDBC le mode programme JDBC : qu'est ce que c'est? Avantages? devant les machines interface,

Plus en détail

TD 6 IJA Structures de données JAVA

TD 6 IJA Structures de données JAVA TD 6 IJA Structures de données JAVA IJA1 Sommaire Types de base Types primitifs Classes des types primitifs (wrappers) Structures de collection Tableaux L interface collection Vector et Hashtable Remarque:

Plus en détail

IFT FINAL. Directives: IFT Session Été, Final. Mohamed Lokbani. Inscrivez tout de suite votre nom et code permanent.

IFT FINAL. Directives: IFT Session Été, Final. Mohamed Lokbani. Inscrivez tout de suite votre nom et code permanent. IFT1020 - Session Été, Final Mohamed Lokbani IFT1020 - FINAL Inscrivez tout de suite votre nom et code permanent. Nom: Prénom(s): Signature: Code perm: Date : 29 juillet 2004 Durée: 3 heures (de 18h30

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

NFA032 Programmation objet avec Java

NFA032 Programmation objet avec Java NFA032 Programmation objet avec Java CNAM-Paris-Île-de-France Première session 2013 Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet (4 points)

Plus en détail

Prérequis sur la modélisation UML Diagramme de classes

Prérequis sur la modélisation UML Diagramme de classes Prérequis sur la modélisation UML Diagramme de classes Denis Conan, Chantal Taconet, Christian Bac avec Chantal Taconet et Christian Bac Revision : 1084 CSC4102 Télécom SudParis Février 2016 Table des

Plus en détail

Introduction à Java. Cours 3: Programmation Orientée Objet en Java. Stéphane Airiau. Université Paris-Dauphine

Introduction à Java. Cours 3: Programmation Orientée Objet en Java. Stéphane Airiau. Université Paris-Dauphine Introduction à Java Cours 3: Programmation Orientée Objet en Java Stéphane Airiau Université Paris-Dauphine Cours 3: Programmation Orientée Objet en Java (Stéphane Airiau) Java 1 But : ne pas coder la

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

Les Design Pattern GoF Suite

Les Design Pattern GoF Suite Les Design Pattern GoF Suite Dans le cours précédent, nous avons vu les Design Pattern suivants : Factory (Fabrication, qui crée des objets respectant une Interface) Stratégie (modification dynamique du

Plus en détail

Interfaces web pour la gestion de projets Trac Hudson Sonar

Interfaces web pour la gestion de projets Trac Hudson Sonar Interfaces web pour la gestion de projets Trac Hudson Sonar Outils de génie logiciel 12 mai 2009 1 /25 Introduction Interfaces web Facilite la communication au sein d une équipe de développement Installation

Plus en détail

Accès aux bases de données. Introduction à JDBC

Accès aux bases de données. Introduction à JDBC .doc Accès aux bases de données 1. QUELQUES DEFINITIONS... 2 2. LA CONNEXION... 4 3. EXECUTION ET CONTROLE D'UNE COMMANDE SQL... 6 3.1 Exécution des commandes SQL figées... 6 3.2 Exécution d'une requête

Plus en détail

L3 Informatique, parcours Recherche et innovation Cours Programmation, 1 er semestre, année TD 8 : Premiers pas en C++

L3 Informatique, parcours Recherche et innovation Cours Programmation, 1 er semestre, année TD 8 : Premiers pas en C++ L3 Informatique, parcours Recherche et innovation Cours Programmation, 1 er semestre, année 2012 2013 TD 8 : Premiers pas en C++ Luc Bougé, Matthieu Dorier 20 novembre 2012 Id: td08.tex 189 2012 11 14

Plus en détail

Rudiments d'uml. Diagrammes UML POO UML. Au commencement

Rudiments d'uml. Diagrammes UML POO UML. Au commencement POO Rudiments d'uml Diagrammes UML Diagrammes comportementaux Diagramme des cas d'utilisation... Diagrammes structurels ou statiques Diagramme de classes Diagramme des paquetages... Diagrammes d'interaction

Plus en détail

ITI Introduction à l informatique II

ITI Introduction à l informatique II Interface utilisateur graphique : Modèle-Vue-Contrôleur École de science informatique et de génie électrique (SIGE) Université d Ottawa Version du 7 février 2017 Aperçu Interface utilisateur graphique

Plus en détail

DUPIN CASSONE. RAPPORT DE PROJET Conception d un jeu- vidéo

DUPIN CASSONE. RAPPORT DE PROJET Conception d un jeu- vidéo RAPPORT DE PROJET Conception d un jeu- vidéo 1 Introduction... 3 Conception UML... 4 Diagramme de cas d utilisation... 5 Diagramme de classe... 7 Choix technologiques... 9 Interface graphique... 10 Threads...

Plus en détail

INF145 Programmation avancée et langage C MOTS RÉSERVÉS ET INSTRUCTIONS AU PRÉPROCESSEUR

INF145 Programmation avancée et langage C MOTS RÉSERVÉS ET INSTRUCTIONS AU PRÉPROCESSEUR Université du Québec (UQ) École de technologie supérieure Service des enseignements généraux Local B-2500-396-8938 Site Internet : http://www.seg.etsmtl.ca/inf115/ INF145 Programmation avancée et langage

Plus en détail

LOG2410 Tutoriel Enterprise Architect version Présentation générale du modélisateur UML

LOG2410 Tutoriel Enterprise Architect version Présentation générale du modélisateur UML LOG2410 Tutoriel Enterprise Architect version 10.0 Hiver 2014 Chargé de laboratoires : David Dubé david.dube@polymtl.ca 1. Présentation générale du modélisateur UML Figure 1.1 Interface principale Enterprise

Plus en détail

Examen (avec document) Corrigé

Examen (avec document) Corrigé CNAM NFP121 EXAMEN 1 29/01/2008 (Séance 14) Corrigé Préambule : Répondre de manière concise et précise aux questions. Ne pas mettre de commentaires de documentation sauf s ils sont nécessaires à la compréhension.

Plus en détail

Les sous-formulaires. Le code Adhérent est unique dans la table Adhérent : On ne visualisera qu un seul adhérent dans le formulaire principal

Les sous-formulaires. Le code Adhérent est unique dans la table Adhérent : On ne visualisera qu un seul adhérent dans le formulaire principal Les sous-formulaires Le formulaire de Consultation d un Adhérent, nous a permis de visualiser les informations contenues dans la requête ADHERENT_vivant, mais nous voudrions également savoir, sur le même

Plus en détail

Informatique - Word. On accède principalement à ces fonctionnalités par des icônes disponibles dans le ruban de Microsoft Word :

Informatique - Word. On accède principalement à ces fonctionnalités par des icônes disponibles dans le ruban de Microsoft Word : Word Les bases Microsoft Word est un logiciel de traitement de texte. Il permet principalement l édition de textes. Il contient aussi certaines fonctionnalités avancées comme le publipostage. Note : Ce

Plus en détail

Utilisation de visiteurs pour l'analyse sémantique avec Tatoo

Utilisation de visiteurs pour l'analyse sémantique avec Tatoo Utilisation de visiteurs pour l'analyse sémantique avec Tatoo michel.chilowicz@univ-mlv.fr Clyde Auditorium à Glasgow, photo par Ross Goodman (CC-By) Analyse sémantique Différentes phases : Découvertes

Plus en détail

Eclipse Modeling Tools

Eclipse Modeling Tools Eclipse Modeling Tools - Requête sur le modèle édité Laboratoire d'analyse et d'architecture des Systèmes Eclipse Modeling Tools Requête sur le modèle édité Select Noeuds Cout>=5 Résumé: Le méta-modèle

Plus en détail

La programmation par contrat. Où comment concevoir des applications qui fonctionnent du «premier coup»

La programmation par contrat. Où comment concevoir des applications qui fonctionnent du «premier coup» La programmation par contrat Où comment concevoir des applications qui fonctionnent du «premier coup» L objet élément essentiel d un programme Un objet est présent dans un environnement Il interagit avec

Plus en détail

Diagrammes UML Vue Dynamiques

Diagrammes UML Vue Dynamiques 1. Diagrammes d interaction 1.1 Introduction Chapitre 4 Diagrammes UML Vue Dynamiques Les diagrammes d interaction permettent d établir un lien entre les diagrammes de cas d utilisation et les diagrammes

Plus en détail

CORRIGE : Patron «DECORATEUR»

CORRIGE : Patron «DECORATEUR» CONSERVATOIRE NATIONAL DES ARTS ET METIERS Cnam / Versailles Examen UE NFP 121 : Programmation avancée Session de Juillet 2015 Le 4 Juillet 2015 Durée : 3 heures CORRIGE CORRIGE : Patron «DECORATEUR» (7

Plus en détail

17. Interaction avec un SGBDR

17. Interaction avec un SGBDR 17. Interaction avec un SGBDR 17.1. Introduction Les programmes Java disposent d'un pont logiciel pour s'interfacer avec un SGBDR, représenté par une API nommé JDBC ( Java Database Connectivity ). Par

Plus en détail

Chapitre. Les exceptions. Java Avancé. Yousri Kessentini

Chapitre. Les exceptions. Java Avancé. Yousri Kessentini Chapitre 1 Les exceptions 1 Prévoir les erreurs d'utilisation Certains cas d'erreurs peuvent être prévus à l'avance par le programmeur. exemples: erreurs d'entrée-sortie (I/O fichiers) erreurs de saisie

Plus en détail

Exercices en langage JAVA

Exercices en langage JAVA Exercices en langage JAVA H. Frezza-Buet et M. Ianotto 10 février 2003 Table des matières 1 Ecrire un programme, le compiler et l exécuter 3 1.1 Calcul de la somme des 100 premiers entiers avec une classe

Plus en détail

Partie II: Introduction à l orienté-objet

Partie II: Introduction à l orienté-objet Partie II: Introduction à l orienté-objet Références: C++ from the Beginning, Jan Skansholm, Addison Wesley, 1997 Chapitres couverts Chapitre 6 Object-oriented Program Development Chapitre 7 Classes Chapitre

Plus en détail

Programmation Java - bases

Programmation Java - bases Programmation Java - bases Programmation objet avec Java (2) Christelle Urtado & Sylvain Vauttier Janvier 2013 Surdéfinition et Dans un constructeur, pour appeler un autre constructeur de la même classe,

Plus en détail

Cours de base d Ingéniérie des applications objet. Introduction

Cours de base d Ingéniérie des applications objet. Introduction 0-0 Cours de base d Ingéniérie des applications objet. Introduction Support de Cours Christophe Dony Université Montpellier-II 1 Contenu du cours - concepts de base de la programmation par objets avec

Plus en détail

GLO-3001 Architecture logicielle. Luc Lamontagne Hiver 2010

GLO-3001 Architecture logicielle. Luc Lamontagne Hiver 2010 GLO-3001 Architecture logicielle Luc Lamontagne Hiver 2010 Plan Définitions Architecte logiciel Architecture logicielle Une bonne architecture logicielle? Architecture vs. conception Styles, patrons et

Plus en détail

Combinaison de plusieurs types de virtualisations

Combinaison de plusieurs types de virtualisations Fiche technique AppliDis Combinaison de plusieurs types de virtualisations Fiche IS00273 Version document : 1.2 Diffusion limitée : Systancia, membres du programme Partenaires AppliDis et clients ou prospects

Plus en détail

DESS TEXTE. Outils informatiques 4. Programmation objet en Perl p.1

DESS TEXTE. Outils informatiques 4. Programmation objet en Perl p.1 Outils informatiques 4. Programmation objet en Perl DESS TEXTE Outils informatiques 4. Programmation objet en Perl p.1 Introduction En programmation orientée objet, on définit des éléments ayant des caractéristiques

Plus en détail

Documentation utilisateur Etiquettes, adresses et comptage

Documentation utilisateur Etiquettes, adresses et comptage Documentation utilisateur Etiquettes, adresses et comptage Etiq_uti.doc - édité le 08/06/2012 - Dernière mise à jour le 08/06/2012 10:22:00 Table des matières 1. QUE FAIT CETTE FONCTIONNALITE?... 3 2.

Plus en détail

Chapitre 4 Processus de développement agile

Chapitre 4 Processus de développement agile 4 Processus de développement agile 1I2AC1 : Génie logiciel et Conception par objet Régis Clouard, ENSICAEN - GREYC «Si débugger c est supprimer des bugs, alors programmer ne peut être que les ajouter.»

Plus en détail

Cours 7 : Représentation de l information : les fichiers

Cours 7 : Représentation de l information : les fichiers 1) Définition: a) Les fichiers texte : Ils sont constitués d'une suite de caractères formant un texte (chaîne de caractères). On les utilise pour enregistrer des textes mais également des valeurs numériques

Plus en détail

Conception objet en Java avec BlueJ une approche interactive. 10. Techniques d abstraction avancées Classes abstraites et interfaces

Conception objet en Java avec BlueJ une approche interactive. 10. Techniques d abstraction avancées Classes abstraites et interfaces Conception objet en Java avec BlueJ une approche interactive 10. Techniques d abstraction avancées Classes abstraites et interfaces David J. Barnes, Michael Kölling Traduction et adaptation française :

Plus en détail

Quelle démarche pour passer des besoins utilisateur au code?

Quelle démarche pour passer des besoins utilisateur au code? Quelle démarche pour passer des besoins utilisateur au code? Introduction à la modélisation avec UML Tiré de : Roques, P. (2008). Les cahiers du programmeur UML 2 - Modéliser une application web (4 e édition)».

Plus en détail

Correction TD5 : Le design pattern Composite

Correction TD5 : Le design pattern Composite IUT Villetaneuse M3105 : Conception et programmation objet avancées Année 2016/2017, Formation Initiale Correction TD5 : Le design pattern Composite Nous allons utiliser le design pattern composite pour

Plus en détail

STRUCTURES DE DONNÉES ET ALGORITHMES. Esial 1 ère année Année

STRUCTURES DE DONNÉES ET ALGORITHMES. Esial 1 ère année Année STRUCTURES DE DONNÉES ET ALGORITHMES Esial 1 ère année Année 2006-2007 Plan Conception d une solution Type Abstrait Type Liste Type Pile Type File 2 Conception d une solution Formuler le problème modélisation

Plus en détail

Anagrammes [20 points]

Anagrammes [20 points] Anagrammes [20 points] Une anagramme est un mot obtenu par permutation des lettres d un autre mot. Par exemple, les mots anglais parental, prenatal et paternal sont des anagrammes les uns des autres, car

Plus en détail