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 2007
3
Local :
Mardi 15h30 – 17h20
Mercredi 10h30 – 12h20
D7-2021
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/2007/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.
 Etude 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
Documents très fortement recommandés
 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
Manuels et documents complémentaires recommandés
 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.
Références
 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/
 Joshua Bloch, Effective Java Programming Language Guide, Addison-Wesley, 2001.
 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