MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée)

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée)"

Transcription

1 MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) Daniel Le Berre dans une classe CRIL-CNRS FRE 2499, Université d Artois, Lens, FRANCE 2 décembre 2004 MI3GL 2004/ MI3GL 2004/ : définition dans une classe 1 DOD = Department of Defense cathedrale-bazar_monoblock.html magic-cauldron-fr_monoblock.html MI3GL 2004/ Changer la structure du code sans changer son comportement Utilisation de tests unitaires pour le vérifier Utilisation de mauvaises odeurs dans le code pour détecter les parties à changer Popularisé par Martin Fowler [4] Beaucoup d outils de développement (dont Eclipse) facilitent le refactoring. Plus d infos sur MI3GL 2004/ Extract Method 1/2 Extract Method 2/2 Un ensemble d instructions peuvent être groupées. Remplacer ces instructions par une méthode dont le nom explique son rôle. void printowing () { printbanner (); //print details System. out. println ( name: + name ); System. out. println ( amount + getoutstanding ()); void printowing () { printbanner (); printdetails (getoutstanding ()); void printdetails (double outstanding ) { System. out. println ( name: + name ); System. out. println ( amount + outstanding ); MI3GL 2004/ MI3GL 2004/ Rename Method Rename Method Le nom d une méthode ne révèle pas son rôle. Le nom d une méthode ne révèle pas son rôle. Changer le nom de la méthode. Changer le nom de la méthode. MI3GL 2004/ MI3GL 2004/2005 8

2 Introduce Assertion 1/2 Introduce Assertion 2/2 Unepartieducodefaitdessuppositionsàproposdel état du programme. Rendre ces suppositions explicites en utilisant une assertion. double getexpenselimit () { // should have either expense limit or // a primary project return ( expenselimit!= NULL EXPENSE )? expenselimit : primaryproject. getmemberexpenselimit (); double getexpenselimit () { assert ( expenselimit!= NULL EXPENSE primaryproject!= null ); return ( expenselimit!= NULL EXPENSE )? expenselimit : primaryproject. getmemberexpenselimit (); MI3GL 2004/ MI3GL 2004/ Replace Temp with query 1/2 Replace Temp with query 2/2 Le code utilise une variable temporaire pour connaître le résultat d une expression. Remplacer l expression par une méthode. Remplacer toutes les références à la variable temporaire par la méthode. La nouvelle méthode peut être utilisée dans d autres méthodes. double baseprice = quantity itemprice ; if ( baseprice > 1000) return baseprice 0.95; else return baseprice 0.98; if ( baseprice() > 1000) return baseprice () 0.95; else return baseprice () 0.98;... double baseprice () { return quantity itemprice ; MI3GL 2004/ MI3GL 2004/ Introduce Parameter Object Introduce Parameter Object Un groupe de paramètres vont naturellement ensemble. Un groupe de paramètres vont naturellement ensemble. Les remplacer par un objet. Les remplacer par un objet. MI3GL 2004/ MI3GL 2004/ Preserve whole Object Plusieurs valeurs sont demandées àunobjetetpassées comme paramètres d une méthode. Passer directement l objet en paramètre. int low = daystemprange().getlow(); int high = daystemprange().gethigh(); withinplan = plan. withinrange(low, high ); withinplan = plan.withinrange(daystemprange()); Replace Method with Method Object 1/2 Il existe une longue méthode qui utilise des variables locales telles que l utilisation de Extract Method est impossible. Déplacer la méthode dans son propre objet de telle sorte que les variables locales deviennent ses attributs. Il est alors possible de décomposer la méthode en plusieurs méthodes sur le même objet. class Order... double price () { double primarybaseprice ; double secondarybaseprice ; double tertiarybaseprice ; // long computation ;... MI3GL 2004/ MI3GL 2004/

3 Replace Method with Method Object 2/2 Replace Parameter with Method Un objet appelle une méthode, et passe le résultat en paramètre d une autre méthode. L autre méthode peut aussi appeler cette méthode. Enlever le paramètre et laisser le seconde méthode appeler la première. int baseprice = quantity itemprice ; discountlevel = getdiscountlevel (); double finalprice = discountedprice ( baseprice, discountlevel ); int baseprice = quantity itemprice ; double finalprice = discountedprice ( baseprice ); MI3GL 2004/ MI3GL 2004/ Pull Up Field Pull Up Field Deux sous classes ont le même attribut. Deux sous classes ont le même attribut. Déplacer l attribut dans la superclasse. Déplacer l attribut dans la superclasse. MI3GL 2004/ MI3GL 2004/ Form template method 1/3 Form template method 2/3 Il existe deux méthodes dans des sous classes qui effectuent des tâches similaires dans le même ordre, mais ces tâches sont différentes. Remplacer ces tâches par des méthodes ayant la même signature, telles que les méthodes originales deviennent identiques. Ensuite, vous pouvez les faire remonter. MI3GL 2004/ MI3GL 2004/ Form template method 3/3 MI3GL 2004/ Substitute Algorithm 1/2 Vous voulez remplacer un algorithme par un autre. Remplacez le corps de la méthode par le nouvel algorithme. String foundperson( String [] people){ for ( int i = 0; i < people. length ; i++) { if ( people [ i ]. equals ( Don )){ return Don ; if ( people [ i ]. equals ( John )){ return John ; if ( people [ i ]. equals ( Kent )){ return Kent ; return ; MI3GL 2004/

4 Substitute Algorithm 2/2 Extract class String foundperson( String [] people){ List candidates = Arrays. aslist ( new String [] { Don, John, Kent ); for ( int i=0; i<people. length ; i++) if ( candidates. contains(people [ i ])) return people [ i ]; return ; Uneclassefaitletravailquidevraitêtre fait par deux. Declarer une nouvelle classe et déplacer les membres appropriés vers la nouvelle classe. MI3GL 2004/ MI3GL 2004/ Extract class Extract subclass Uneclassefaitletravailquidevraitêtre fait par deux. Declarer une nouvelle classe et déplacer les membres appropriés vers la nouvelle classe. Une classe a des services utilisés uniquement par certaines instances. Créer une sous classe pour ces services. MI3GL 2004/ MI3GL 2004/ Extract subclass Une classe a des services utilisés uniquement par certaines instances. Créer une sous classe pour ces services. Collapse Hierarchy Une classe et une sous classe ne sont pas très différentes. Les fusionner MI3GL 2004/ MI3GL 2004/ Collapse Hierarchy Une classe et une sous classe ne sont pas très différentes. Inline class Les fusionner Uneclassenefaitpasgrandchose. Déplacer toutes ses responsabilités dans une autre classe et l enlever. MI3GL 2004/ MI3GL 2004/

5 Inline class Remove parameter Uneclassenefaitpasgrandchose. Déplacer toutes ses responsabilités dans une autre classe et l enlever. Un paramètre n est plus utilisé dans une méthode. Enlever ce paramètre. MI3GL 2004/ MI3GL 2004/ Remove parameter Un paramètre n est plus utilisé dans une méthode. Enlever ce paramètre. MI3GL 2004/ Kent Beck. extreme Programming explained, Embrace Change. Addison Wesley, B. Boehm. Software Engineering Project Management, chapter A spiral model of software development and enhancement Bernd Bruegge and Allen H. Dutoit. Object Oriented Software Engineering: Conquering Complex and Changing Systems. Prentice Hall, ISBN: : Improving the Design of Existing Code. Object Technology Series. Addison Wesley, Indispensable! MI3GL 2004/ Patterns of Enterprise Application Architecture. The Addison-Wesley Signature Series. Addison Wesley, UML distilled: A brief Guide to the Standard Object Modelling Language. Object Technology series. Addison Wesley, 3rd edition, Indispensable! Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison Wesley, Aposséder absolument! Marie-Claude Gaudel, Bruno Marre, Françoise Schienger, and Gilles Bernot. MI3GL 2004/ Précis de Génie Logiciel. Enseignement de l Informatique. Masson, ISBN : Andrew Hunt and David Thomas. The Pragmatic Programmer. Addison Wesley, Un livre interessant (mais en anglais) pour tous les programmeurs. Robert C. Martin. Agile Software Development: Principles, Patterns and Practices. Prentice Hall, Utile. Robert C. Martin. UML for Java Programmers. Prentice Hall, MI3GL 2004/ Bertrand Meyer. Conception et programmation orientées objet. Eyrolles, Indispensable pour tout programmeur dans un langage objet, même si les exemples donnés sont plutôt en Eiffel. P. G. Neumann. Computer-Related Risks. Reading. Addison-Wesley, MA, W. W. Royse. Managing the development of large software systems. In IEEE Computer Society, editor, Tutorial: Software Engineering Project Management, pages , Washington, DC, Jack Shirazi. Java Performance Tuning, 2nd edition. O Reilly, MI3GL 2004/

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée)

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) Daniel Le Berre CRIL-CNRS FRE 2499, Université d Artois, Lens, FRANCE {leberre}@cril.univ-artois.fr 4 novembre 2004 MI3GL 2004/2005

Plus en détail

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée)

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) Aperçu du cours Avant propos Définitions MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) Daniel Le Berre CRIL-CNRS FRE 2499, Université d Artois, Lens, FRANCE {leberre}@cril.univ-artois.fr

Plus en détail

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée)

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) Daniel Le Berre CRIL-CNRS FRE 2499, Université d Artois, Lens, FRANCE {leberre}@cril.univ-artois.fr 1 er novembre 2004 MI3GL 2004/2005

Plus en détail

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée)

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) Daniel Le Berre CRIL-CNRS FRE 2499, Université d Artois, Lens, FRANCE {leberre}@cril.univ-artois.fr 15 novembre 2004 MI3GL 2004/2005

Plus en détail

Génie Logiciel. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/

Génie Logiciel. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Génie Logiciel Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Le contenu de ce support de cours a été influencé par les lectures citées à la fin de ce support.

Plus en détail

Programmation PHP Septembre 2010

Programmation PHP Septembre 2010 IFT1147 Programmation Serveur Web avec PHP Plan La POO en PHP Lecture du chapitre 20. Programmation par objets Introduction à la POO Objets et classes Propriétés Méthodes Private Héritage Polymorphisme

Plus en détail

Rappels. Génie logiciel. Broker. Problem: service location. Patterns. Philippe Dugerdil. Layer Batch sequential Publish subscribe MVC Proxy.

Rappels. Génie logiciel. Broker. Problem: service location. Patterns. Philippe Dugerdil. Layer Batch sequential Publish subscribe MVC Proxy. Rappels Génie logiciel Philippe Dugerdil 24..20 Patterns Layer Batch sequential Publish subscribe MVC Proxy Problem: service location Broker network Broker Implemented tactics Modifiability tactics Use

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 5 de cours/td Université Paris-Diderot Objectifs: Boucles while. Variables booléennes. 1 La boucle while Boucle non bornée [Cours] La boucle non bornée permet de

Plus en détail

Objectifs. Conception et programmation objet avancées Introduction. Planning du cours - 2h par séance TD+TP

Objectifs. Conception et programmation objet avancées Introduction. Planning du cours - 2h par séance TD+TP Objectifs Conception et programmation objet avancées Introduction Petru Valicov petru.valicov@univ-amu.fr 2015-2016 Approfondir les notions de programmation objet (bonnes pratiques, patrons de conception)

Plus en détail

Tests unitaires Développement dirigé par les tests

Tests unitaires Développement dirigé par les tests Tests unitaires Développement dirigé par les tests Utilisation de JUnit Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthierpicard@emsefr Tests unitairesdéveloppement dirigé par

Plus en détail

Composite, Interpréteur et Visiteur

Composite, Interpréteur et Visiteur Composite, Interpréteur et Visiteur Cnam Paris jean-michel Douin Version du 10 Octobre 2003 Notes de cours java : les patterns Composite, Interpréteur et Visiteur Les notes et les Travaux Pratiques sont

Plus en détail

Génie Logiciel et Gestion de Projets

Génie Logiciel et Gestion de Projets Génie Logiciel et Gestion de Projets INFO-F-407 Ragnhild Van Der Straeten 2007-2008 ULB 1 1 Génie Logiciel et Gestion de Projets Organisation 2 2 Ragnhild Van Der Straeten VUB, 4K209 Campus Etterbeek rvdstrae@vub.ac.be

Plus en détail

Génie Logiciel et Gestion de Projets

Génie Logiciel et Gestion de Projets Génie Logiciel et Gestion de Projets INFO-F-407 Ragnhild Van Der Straeten 2008-2009 ULB 1 Génie Logiciel et Gestion de Projets Organisation 2 Ragnhild Van Der Straeten VUB, 4K209 Campus Etterbeek rvdstrae@vub.ac.be

Plus en détail

Patrons de conception : Iterator. Patrons de conception. Problèmes récurrents. Patron de conception

Patrons de conception : Iterator. Patrons de conception. Problèmes récurrents. Patron de conception Patrons de conception : Iterator Théorie et pratique de la programmation Michel Schinz 203-03-25 Patrons de conception 2 Problèmes récurrents En programmation, comme dans toute discipline, certains problèmes

Plus en détail

Refactorings. Saliha Bouden. IFT6251 Houari Sarhaoui 2004/02/26. Département d informatique et de recherche opérationnelle Université de Montréal

Refactorings. Saliha Bouden. IFT6251 Houari Sarhaoui 2004/02/26. Département d informatique et de recherche opérationnelle Université de Montréal Refactorings Saliha Bouden IFT6251 Houari Sarhaoui 2004/02/26 Département d informatique et de recherche opérationnelle Université de Montréal Refactorings Introduction C'est quoi un refactoring? Pourquoi

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

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

Environnements de développement (intégrés) Environnements de développement (intégrés) JDT (débogage), outils d analyse statique Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Tests. Tests unitaires Junit, ctest, Test Driven Development Intégration continue Tests d'intégration Tests d'acceptation (UAT, Recette)

Tests. Tests unitaires Junit, ctest, Test Driven Development Intégration continue Tests d'intégration Tests d'acceptation (UAT, Recette) Tests Différents niveaux de tests Tests unitaires Junit, ctest, Test Driven Development Intégration continue Tests d'intégration Tests d'acceptation (UAT, Recette) 2010-2011 POO 1 Tests unitaires Ne devrait

Plus en détail

Les «Design Patterns» Bruno Mermet Université du Havre 2007-2008

Les «Design Patterns» Bruno Mermet Université du Havre 2007-2008 Les «Design Patterns» Bruno Mermet Université du Havre 2007-2008 Introduction Origine Design Patterns, Elements of Reusable Object-Oriented Software, E. Gamma, R. Helm, R. Johnson, J. Vlissides, Addison-Wesley,

Plus en détail

PLAN DE COURS Automne 2014

PLAN DE COURS Automne 2014 PLAN DE COURS Automne IFT-6003 88158 - Architecture logicielle Informations générales Crédits : 3 Temps consacré : 3-2-4 Mode d'enseignement : Présentiel Site Web : http://cours.ift.ulaval.ca/a/glo-4003_88108/

Plus en détail

Gestion de la configuration et contrôle du code source

Gestion de la configuration et contrôle du code source MGL7460 Automne 2015 Gestion de la configuration et contrôle du code source Guy Tremblay Professeur Département d informatique UQAM http://www.labunix.uqam.ca/~tremblay 10 septembre 2015 Parmi les premières

Plus en détail

Familiarisation avec Eclipse / Netbeans

Familiarisation avec Eclipse / Netbeans Institut Galilée LEE Année 011-01 Master T.P. 0 Familiarisation avec Eclipse / Netbeans Lien important contenant le pdf du cours et du TP, et ensuite des sources : http://www-lipn.univ-paris13.fr/~fouquere/mpls

Plus en détail

Optimisation. Algorithme de RETE C.Forgy, 1982, Carnegie Mellon

Optimisation. Algorithme de RETE C.Forgy, 1982, Carnegie Mellon Optimisation Algorithme de RETE C.Forgy, 1982, Carnegie Mellon Cycle de base d un moteur d inférence Base de F a i t s 1 Moteur d inférence DETECTION CHOIX DEDUCTION 3 3 2 Base de C on n ai s s a n ce

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure 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étail

Concepts des langages de. Introduction à Clojure

Concepts des langages de. Introduction à Clojure Concepts des langages de programmation Introduction à Clojure Plan C'est quoi clojure? Types et structures de données Fonctions et expressions dans Clojure Commentaires en Clojure Définition de variables

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 +Cours 2 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

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

Évaluer les qualités d un système d information (SI); Contribuer au développement et à la maintenance d un SI;

Évaluer les qualités d un système d information (SI); Contribuer au développement et à la maintenance d un SI; Faculté des sciences Centre de formation en technologies de l information Cours : INF 755 Méthodes d analyse et conception Trimestre : Hiver 2016 Enseignant : Alain Cardinal 1. Mise en contexte L industrie,

Plus en détail

JUnit 3.8 / JUnit 4. P. Grafion / Junit v1.4 1

JUnit 3.8 / JUnit 4. P. Grafion / Junit v1.4 1 JUnit 3.8 / JUnit 4 P. Grafion / Junit v1.4 1 Objectifs Framework de tests écrit pour faciliter : l écriture de tests tests unitaires tests de recette l exécution de ces tests l exploitation de ces tests

Plus en détail

Génie Logiciel. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/

Génie Logiciel. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Génie Logiciel Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Le contenu de ce support de cours a été influencé par les lectures citées à la fin de ce support.

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ 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étail

Cours 3 : Encapsulation et tests

Cours 3 : Encapsulation et tests DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.fr Cours 3 : Encapsulation et tests Plan Divers Paquetages : intérêt, utilisation des packages existants, créer un package Encapsulation

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 7 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Facult e des Sciences - Univ. Artois Janvier 2011 Exceptions

Plus en détail

Les IDEs. Integrated Development Environment. NetBeans (Oracle) Eclipse (IBM) etc.

Les IDEs. Integrated Development Environment. NetBeans (Oracle) Eclipse (IBM) etc. Les IDEs Integrated Development Environment NetBeans (Oracle) Eclipse (IBM) etc. Quand ne pas utiliser un IDE? Lorsqu'on apprend le langage Pourquoi? Tous les mécanismes de base du langage peuvent être

Plus en détail

Université Montpellier-II UFR des Sciences - Département Informatique Master Informatique - UE GMIN30F. Réutilisation et Composants.

Université Montpellier-II UFR des Sciences - Département Informatique Master Informatique - UE GMIN30F. Réutilisation et Composants. Université Montpellier-II UFR des Sciences - Département Informatique Master Informatique - UE GMIN30F Réutilisation et Composants. Introduction Notes de cours - 2002-2014 Christophe Dony 1 Contenu du

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 7 de cours/td Université Paris-Diderot Objectifs: Savoir écrire un programme en entier (structure du programme avec une procédure main et des déclarations de fonctions,

Plus en détail

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La 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 1 IMPORTANCE DES OBJETS DANS L INFORMATIQUE LOGICIELLE1 Cours de base d Ingéniérie des applications objet. Introduction Support de Cours Christophe Dony Université Montpellier-II Contenu du cours - concepts

Plus en détail

Bases de la programmation orientée objet en Java

Bases de la programmation orientée objet en Java Bases de la programmation orientée objet en Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-33 Avant propos Difficultés...

Plus en détail

IFT2251 Introduction au génie logiciel Plan de cours. 2. Description du cours et objectifs généraux

IFT2251 Introduction au génie logiciel Plan de cours. 2. Description du cours et objectifs généraux IFT2251 Introduction au génie logiciel Plan de cours Été 2008 Yann-Gaël Guéhéneuc 1. Introduction Les exigences et les attentes à l égard de la qualité logicielle sont de plus en plus grandes. La taille

Plus en détail

Introduction. http://www-public.it-sudparis.eu/~gibson/teaching/designpatterns/designpatterns-intro.pdf

Introduction. http://www-public.it-sudparis.eu/~gibson/teaching/designpatterns/designpatterns-intro.pdf Introduction http://www-public.it-sudparis.eu/~gibson/teaching/designpatterns/designpatterns-intro.pdf Also in moodle: http://moodle.tem-tsp.eu/course/view.php?id=408 Intro.1 http://www-public.it-sudparis.eu/~gibson/teaching/designpatterns/

Plus en détail

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe.

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe. Plan du cours Syntaxe abstraite Martin Odersky 21 et 22 novembre 2005 version 1.0 1 2 3 Syntaxe abstraite Martin Odersky 1 de 31 Syntaxe abstraite Martin Odersky 2 de 31 Un analyseur syntaxique fait généralement

Plus en détail

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions.

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions. Fiabilité d un logiciel Exceptions Université Française d Egypte Version O 5.7 5/10/15 Richard Grin Robustesse : fonctionne correctement, même en présence d événements exceptionnels Correction : donne

Plus en détail

Composite & décorateur

Composite & décorateur Composite & décorateur Cnam Paris jean-michel Douin Version du 1er Octobre 2005 Notes de cours java : les patterns Les notes et les Travaux Pratiques sont disponibles en http://jfod.cnam.fr/tp_cdi/{douin/

Plus en détail

Types 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. 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étail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

Collections d objets (de taille variable)

Collections d objets (de taille variable) Introduction à la programmation en Java Frédéric MALLET Jean-Paul ROY UFR Sciences de Nice Licence Math-Info 2006-2007 Module L1I1 10-1 Où en sommes-nous? Nous savons rédiger le texte d une classe d objets,

Plus en détail

Langages de haut niveau

Langages de haut niveau Langages de haut niveau Introduction Un assembleur est un programme traduisant en code machine un programme écrit à l'aide des mnémoniques Les langages d'assemblage représentent une deuxième génération

Plus en détail

Les tableaux (ou vecteurs) (1/3) Cours numéro 3: Programmation impérative LI213 Types et Structures de données. Les tableaux (3/3) Les tableaux (2/3)

Les tableaux (ou vecteurs) (1/3) Cours numéro 3: Programmation impérative LI213 Types et Structures de données. Les tableaux (3/3) Les tableaux (2/3) Les tableaux (ou vecteurs) (1/3) Le type tableau est une des réponses à la question : LI213 Types et Structures de données Licence d Informatique Université Paris 6 comment agréger un très grand nombre

Plus en détail

Généralités Composants élémentaires d'un programme Instructions simples. JL Damoiseaux - Dpt R&T

Généralités Composants élémentaires d'un programme Instructions simples. JL Damoiseaux - Dpt R&T JAVA - I Généralités Composants élémentaires d'un programme Instructions simples 2 JAVA? Un langage de programmation (orienté objets) Une architecture basée sur une Machine Virtuelle Un ensemble très important

Plus en détail

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 1. Définition d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex

Plus en détail

Exceptions. Qu est ce qu un cas exceptionnel? Principe : détecter le maximum d erreurs à la compilation, mais... pas toujours possible

Exceptions. Qu est ce qu un cas exceptionnel? Principe : détecter le maximum d erreurs à la compilation, mais... pas toujours possible Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille Principe : détecter le maximum d erreurs à la compilation, mais pas toujours possible Gestion des erreurs

Plus en détail

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Cours1 +Cours 2 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

Plus en détail

Nfp121 Programmation Avancée. L évolution de Java conséquences sur le cours. Java 2

Nfp121 Programmation Avancée. L évolution de Java conséquences sur le cours. Java 2 Nfp121 Programmation Avancée Des Cours, des Exercices dirigés, des devoirs hebdomadaires Cours 1h30 + 0h30 Présentation devoirs Eds 1h30 centrés sur la réponse aux devoirs et compléments L évolution de

Plus en détail

Pour cet examen, vous disposez de la classe Voiture, incomplète, qui suit :

Pour cet examen, vous disposez de la classe Voiture, incomplète, qui suit : UNIVERSITÉ DE MONTRÉAL FACULTÉ DES ARTS ET DES SCIENCES DIRECTION DE L ENSEIGNEMENT DE SERVICE EN INFORMATIQUE COURS : IFT 1170 EXAMEN INTRA DATE : 4 juin 2009 CHARGÉ DE COURS : Michel Reid DURÉE : 2 heures

Plus en détail

ENSTA : cours IN204 Introduction à JAVA et UML

ENSTA : cours IN204 Introduction à JAVA et UML ENSTA : cours IN204 Introduction à JAVA et UML Thierry Bommart DASSAULT AVIATION DGT/DPR/EOS thierry.bommart@dassault-aviation.fr 01.47.11.54.93 Page : 1 Plan Ecole Nationale Supérieure de Techniques Avancées

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

Plus en détail

Design Patterns. Pourquoi utiliser des patterns? Pourquoi utiliser des patterns? Les patterns vue de loin. D où viennent les design patterns?

Design Patterns. Pourquoi utiliser des patterns? Pourquoi utiliser des patterns? Les patterns vue de loin. D où viennent les design patterns? Noël NOVELLI ; Université de la Méditerranée ; LIF et Département d Informatique Case 901 ; 163 avenue de Luminy 13 288 MARSEILLE cedex 9 Design Patterns D où viennent les design patterns? D où viennent

Plus en détail

Chapitre 1 Introduction

Chapitre 1 Introduction Chapitre 1 Introduction Jean Privat Université du Québec à Montréal INF7330 Construction de logiciels Diplôme d études supérieures spécialisées en systèmes embarqués Automne 2012 Jean Privat (UQAM) 01

Plus en détail

Développement de logiciel

Développement de logiciel approche formelle et approche à objets Pascal ANDRE Université de Nantes Master Miage M1 Plan Introduction Développement formel du logiciel Développement du logiciel à objets Projection Développement du

Plus en détail

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1 Polymorphisme Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Université Lille 1 - Licence Informatique Programmation Orientée Objet 1 des méthodes

Plus en détail

Génie Logiciel. Art et Science de la construction de logiciel Conception. D. Revuz Université de Marne la Vallée

Génie Logiciel. Art et Science de la construction de logiciel Conception. D. Revuz Université de Marne la Vallée Génie Logiciel Art et Science de la construction de logiciel Conception D. Revuz Université de Marne la Vallée Organisation Conception Techniques, langages, Design Patterns Méthodes I Diagrammes UML outils

Plus en détail

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Introduction à la Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 4 avril 2013 Bertrand Estellon (DII AMU) Introduction à la Programmation

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2013-2014 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 12 pages

Plus en détail

Nfp121 Programmation Avancée

Nfp121 Programmation Avancée Nfp121 Programmation Avancée Des Cours, des Exercices dirigés, des devoirs hebdomadaires Cours 1h30 + 0h30 Présentation devoirs Eds 1h30 centrés sur la réponse aux devoirs et compléments L évolution de

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Chapitre 13 Développer une application Android La création d applications

Plus en détail

Tests d'acceptation avec FitNesse

Tests d'acceptation avec FitNesse Tests d'acceptation avec FitNesse Bruno Mermet 2010 ébauche Plan Présentation générale de FitNesse Langage de marquage : référence Types de table Slim : référence Présentation générale de FitNesse Tests

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

Cours JAVA : La fiabilité en Java

Cours JAVA : La fiabilité en Java Cours JAVA : La fiabilité en Java Version 1.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle DANT - 2015/2016

Plus en détail

Génie logiciel (Un aperçu)

Génie logiciel (Un aperçu) (Un aperçu) (sommerville 2010) Laurent Pérochon INRA URH 63122 St Genès Champanelle Laurent.perochon@clermont.inra.fr Ensemble d activités conduisant à la production d un logiciel Sur un échantillon de

Plus en détail

Programmation Orientée Objet C++ Cours 1

Programmation Orientée Objet C++ Cours 1 Programmation Orientée Objet C++ Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence B. W. Kernighan et D. M. Ritchie - Le langage C : Norme

Plus en détail

Master M1 Informatique: Analyse et Conception des Logiciels

Master M1 Informatique: Analyse et Conception des Logiciels Master M1 Informatique: Analyse et Conception des Logiciels Pascal Molli et Hala Skaf-Molli 24 Juin 2008 (2ième session) Les documents de cours sont autorisés 1 Exercice en 5 lignes maximums répondez aux

Plus en détail

Evolution, Maintenance et Réutilisation des logiciels, aka: E/M/R.

Evolution, Maintenance et Réutilisation des logiciels, aka: E/M/R. Evolution, Maintenance et Réutilisation des logiciels, aka: E/M/R. Olivier Inizan - Bureau PEPI IDL - INRA - GAP - URGI La Londes Les Maures, 5-9 décembre 2011 Objectifs de la session Dans votre expérience

Plus en détail

Règles d'écriture des programmes DIVERS. Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com

Règles d'écriture des programmes DIVERS. Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com Règles d'écriture des programmes DIVERS Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com Table des matières 1 Les conventions d'écriture... 3 1.1 "Notation Hongroise" (Hungarian notation)...3

Plus en détail

Comment éviter le plagiat lors de l écriture des travaux pratiques dans les cours de

Comment éviter le plagiat lors de l écriture des travaux pratiques dans les cours de Comment éviter le plagiat lors de l écriture des travaux pratiques dans les cours de programmation Présentation adaptée avec l aimable autorisation de - Christopher h Fuhrman, Département t de Génie Logiciel

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

Ioannis Parissis UFR IMA Laboratoire LIG. Test logiciel

Ioannis Parissis UFR IMA Laboratoire LIG. Test logiciel Test logiciel Objectif et plan du du cours Présenter les concepts de base sur le test logiciel Introduire des techniques simples pour construire des tests A partir de la spécification informelle du programme

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée Master 1 T.P. 1 Bases Java - Eclipse / Netbeans PDJ Environnements Java Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement d exécution

Plus en détail

Compilation. Mirabelle Nebut 2012-2013. Bureau 332 - M3 mirabelle.nebut at lifl.fr

Compilation. Mirabelle Nebut 2012-2013. Bureau 332 - M3 mirabelle.nebut at lifl.fr Bureau 332 - M3 mirabelle.nebut at lifl.fr 2012-2013 Organisation du cours Organisation : C / TD / TP sur 12 semaines Évaluation : contrôles courts en amphi au cours du semestre ; TP rendus ; contrôle

Plus en détail

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr CCI - Initiation à Java E.Coquery emmanuel.coquery@liris.cnrs.fr Présentation du langage Outline 1 Présentation du langage 2 Types de données primitifs 3 Objets Présentation du langage Un langage orienté

Plus en détail

Déclaration et Implémentation d'une classe

Déclaration et Implémentation d'une classe Définir et Instancier une classe en Java Déclaration et Implémentation d'une classe En algorithmique (comme en C++ la plupart du temps), l'écriture du corps des méthodes (implémentation) se fait après

Plus en détail

Notions d héritage en Java

Notions d héritage en Java EILCO ING 1 - POO Java TP 5 2014/2015 Notions d héritage en Java L héritage est la capacité d une classe (la sous-classe) à hériter des membres (attributs et méthodes) d une autre classe (la super-classe).

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC 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

Plus en détail

GÉNIE LOGICIEL (SOFTWARE ENGINEERING)

GÉNIE LOGICIEL (SOFTWARE ENGINEERING) GÉNIE LOGICIEL (SOFTWARE ENGINEERING) 6ÈME PARTIE TEST DU LOGICIEL (SOFTWARE TESTING) Faculté des Sciences et Techniques http://perso.univ-st-etienne.fr/jacquene/gl/ Francois.Jacquenet@univ-st-etienne.fr

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

7 astuces pour améliorer vos tests unitaires

7 astuces pour améliorer vos tests unitaires 7 astuces pour améliorer vos tests unitaires Pascal Laurin Novembre 2015 Microsoft.NET MVP Développeur & Architect chez GSoft @plaurin78 pascal.laurin@outlook.com www.pascallaurin.com http://fr.slideshare.net/pascallaurin

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. M2 CDS2I - 4 février 2010

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. M2 CDS2I - 4 février 2010 1 / 24 Développement Web - Servlet Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer M2 CDS2I - 4 février 2010 2 / 24 Plan Plan 1 2 Le modèle MVC 3 Structure

Plus en détail

Objectifs du cours: Gestion des exceptions. CSI1502 Principes fondamentaux en conception des logiciels. Prise en charge d`exception en Java

Objectifs du cours: Gestion des exceptions. CSI1502 Principes fondamentaux en conception des logiciels. Prise en charge d`exception en Java CSI1502 Principes fondamentaux en conception des logiciels Chapter 8: Gestion des exceptions Objectifs du cours: Gestion des exceptions Comprendre ce qui suit: Le fonctionnement de «try-catch» Propagation

Plus en détail

Types de données et objets

Types de données et objets Types de données et objets VL A D Y RA V E L O M A N A N A Licence 1 S2 Université Denis Diderot (P7). vlad@liafa.jussieu.fr LIAFA Bureau 6A13. 175, rue Chevaleret Ravelomanana Vlady Types de données et

Plus en détail

Algorithmique Correction du DS1

Algorithmique Correction du DS1 Algorithmique Correction du DS1 IUT Informatique de Lens, 1ère Année Université d Artois Frédéric Koriche koriche@cril.fr 2011 - Semestre 1 Exercice 1 Exercice 1 Un service de reprographie facture : 0.10

Plus en détail

cours 4 : programmes fiables

cours 4 : programmes fiables cours 4 : programmes fiables généricité assertions généricité généricité généricité généricité possibilité d écrire des classes paramétrées par d autres classes permet de : écrire un code dépendant d un/de

Plus en détail

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration Pluquet Frédéric July, 3rd 2012 Etude de techniques efficaces de versionnement d objets pour les langages orientés

Plus en détail

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales:

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales: Plan Conseils de Programmation Joël Quinqueton Dépt MIAp, UFR IV UPV Université Montpellier III Types et classes Un exemple de classe Les erreurs en Java L héritage en Java Types primitifs Tableaux Classes:

Plus en détail

Programmation non structurée

Programmation non structurée Java et POO Programmation non structurée Construire(Maison m){ creuser; commander(béton) couler les fouilles; commander les parpaings; while(!fini(sous-sol)){poser parpaings; commander(ourdis); while(.

Plus en détail

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR Créer une simple application Java avec ECLIPSE Par Ahcène BOUNCEUR Janvier 2005 INTRODUCTION Dans cet exemple nous allons vous montrer comment peut-on créer une simple application Java en utilisant l IDE

Plus en détail

PC* Structure de pile

PC* Structure de pile Structure de pile I. Définition........................................... 2 I.1 Introduction..................................... 2 I.2 Opérations caractérisant une structure de pile...................

Plus en détail

Améliorer les Classes. Chapitre 5: Améliorer les Classes. Affectation Revisitée. Références. Alias. Affectation de Référence

Améliorer les Classes. Chapitre 5: Améliorer les Classes. Affectation Revisitée. Références. Alias. Affectation de Référence Chapitre : Améliorer les Classes Présentation pour Java Software Solutions Foundations of Program Design Deuxième Edition par John Lewis et William Loftus Java Software Solutions est publié par Addison-Wesley

Plus en détail