Objectifs généraux

publicité
IFT 232 Méthodes de Conception Orientée Objets
Plan de cours
INFORMATIONS GÉNÉRALES
Professeur :
Session :
Crédits :
Sylvain Giroux ([email protected])
D4-1010-10
Hiver 2008
3
Local :
Mardi 15h30 – 17h20
Mercredi 10h30 – 12h20
D7-2020
Consultation :
Mardi 14h30 - 15h30
Pré-requis :
IFT 159 Analyse et programmation
ou GIF 600 Conception d’un système informatique distribué
Horaire :
Site web : http://www.dmi.usherb.ca/~sgiroux/cours/2008/IFT232
Liste de redistribution : [email protected]
OBJECTIFS
Objectifs généraux
 Spécifier, concevoir et tester des composants logiciels.
 Tester l'intégration des composants.
 Mesurer la qualité de la conception.
 Appliquer le processus de conception au sein d’un cadre documenté et normalisé.
Objectifs spécifiques
A la fin du cours, l’étudiant devra être capable de :
 Maîtriser un langage de spécification (UML)
 Maîtriser la programmation par objets
 Maîtriser la refactorisation
 Maîtriser la notion de schémas de conception.
 Maîtriser les processus de tests.
 Être capable d’évaluer la qualité de conception d’un programme.
CONTENU
 Présentation des types abstraits algébriques.
 Critères de conception.
 Étude des concepts d’encapsulation, d’héritage et de polymorphisme.
 Critères de composition en classes, schémas de conception et cadres d'application.
 Documentation de la conception avec la notation UML.
 Techniques de revue de conception.
 Tests boîte blanche (basés sur la structure du programme) et tests boîte noire (basés sur la spécification du
programme).
 Tests d'intégration.
 Mesure de qualité de la conception.
 Présentation des normes de conception IEEE.
IFT232 Conception orientée objet
1
Semaine
1
Contenu
Organisation du cours
 Plan de cours, logiciels utilisés dans le cours, projet.
Programmation par objets
 Les principes de base de la programmation par objets : instanciation,
encapsulation, héritage, polymorphisme, transmission de messages…
 Eléments de Java : classes, interfaces, variables, typage, exceptions...
2
Spécifications et tests unitaires:
 Types abstraits algébriques
 Spécification de programmes; préconditions, postconditions, invariants…
 Test unitaires: JUnit
3
Schéma de conception : Principes généraux, Singleton, State
Refactorisation
 Critères de conception et qualité de la conception.
 Techniques de refactorisation
4
5 -6
Méthodes de conception
 Méthodes de conception agiles.
 Normes de conception IEEE
 UML
Programmation par composants : le modèle JavaBeans (événements, introspection...)
7
Examen intra
 Pas de cours
8
Semaine de Relâche
 Pas de cours
9-10
Etude de cas sur les schémas de conception et la refactorisation : Singleton,
Observer, Adapter, Command, CompositeAbstract Factory, Factory Method, Template
Method, Decorator
11
Frameworks:
 Principes et applications
 Etude de cas : JUnit
12
Approfondissement sur les tests : tests boîte noire, tests boîte blanche, tests
d’intégration
13
Approfondissement : Mesure de qualité de la conception
14
Remise des projets
15
Examen Final
IFT232 Conception orientée objet
2
Evaluation
Projet
/30
Intra
/30
Final
/40
Durée : 1h50
Durée : 2h50
Projet
Les notions suivantes seront appliquées dans un projet de moyenne envergure : méthodologie agile, tests,
patrons de conception et refactorisation. Les équipes seront composées de 6 à 10 étudiants. A la fin du projet,
chaque équipe devra réaliser une démonstration du projet et remettre un rapport.
Bibliographie













E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns, Addison-Wesley, 1994.
Sun Microsystems, JavaBeans, v 1.01, 1997. (beans101.pdf)
Erich Gamma and Kent Beck, JUnitTest Infected: Programmers Love Writing Tests, Java Report, July
1998, Volume 3, Number 7, http://junit.sourceforge.net/doc/testinfected/testing.htm
Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, Head First Design Patterns, O'Reilly, 2004.
Joshua Bloch, Effective Java Programming Language Guide, Prentice Hall, 2001.
M. Fowler et K. Scott, UML distilled, A Brief Guide to the Standard Object Oriented Modeling Language,
Addison-Wesley, 2003.
Extreme programming
o Kent Beck, Extreme Programming Explained, Addison-Wesley, 1999
o Extreme programming, A gentle introduction, http://www.extremeprogramming.org/
o Martin Fowler, Is Design Dead?, http://martinfowler.com/articles/designDead.html
Joshua Kerievsky, Refactoring to Patterns, Addison-Wesley, 2004
o Refactoring To Patterns Catalog, http://www.industriallogic.com/xp/refactoring/catalog.html
M. Fowler, et al., Refactoring, Improving the design of existing code, Addison-Wiley, 2000.
o Refactoring Home Page, http://www.refactoring.com/
Kent Beck, Test Driven Development, Addison-Wesley, 2002.
Barbara Liskov, Program Development in Java, Abstraction, Specification and Object-Oriented Design,
Addison-Wesley, 2001.
Sun, Java Tutorial, http://java.sun.com/docs/books/tutorial/
Lisa Crispin, Tip House, Testing Extreme Programming, Addison-Wesley, 2002.
Logiciels disponibles




Editeur UML : Rational Rose for Java
Java : JSE 1.5.0 (http://java.sun.com)
IDEs : Eclipse (http://www.eclipse.org/)
Tests : JUnit (http://www.junit.org/)
IFT232 Conception orientée objet
3
Téléchargement