Objectifs (en terme de compétences)
- comprendre et expliquer comment mesurer les qualités d'un logiciel (et notamment la qualité de la maintenabilité);
- comprendre et expliquer la nature des problèmes rencontrés dans la maintenance de logiciels complexes et les processus impliqués;
- comprendre et mettre en oeuvre quelques approches-type pour favoriser la réutilisabilité et la maintenabilité, mesurer les qualités et gérer l'évolution du logiciel;
- programmer en Smalltalk, un langage orienté-objet pur.
Objet de l'activité (principaux thèmes à aborder)
- Les "bonnes pratiques" de la programmation orienté-objet;
- Les techniques de réutilisation, application frameworks;
- Les métriques et mesures de logiciels;
- La gestion de versions: variantes, révisions, configurations;
- La compréhension et rétro-ingénierie de logiciels;
- La ré-ingénierie et la restructuration de logiciels;
- L'utilisation de certains outils qui supportent les taches mentionnées ci-dessus.
Résumé : Contenu et Méthodes
La théorie introduite dans les exposés magistraux sera mis en pratique pendant les travaux pratiques qui se dérouleront dans une salle informatique. Un seul logiciel sera développé au cours des différentes séances des travaux pratiques, et les différents techniques apprises seront testées sur ce logiciel. L'évaluation de ce cours est un projet ou les étudiants doivent appliquer les techniques apprises sur un logiciel au choix, afin d'analyser les qualités de ce logiciel (et notamment sa maintenabilité).
Autres informations (Pré-requis, Evaluation, Support, ...)
- Pré-requis:
INGI2251 - Génie logiciel: méthodes de développement
- Références:
(1) N.E. Fenton and S.L. Pfleeger, " Software Metrics: A Rigorous and Practical Approach", 2nd edition, Thomson Computer Press, 1996.
(2) K.Beck, "Smalltalk Best Practice Patterns", Addison-Wesley, Prentice Hall, 1996
(3) M. Fowler, "Refactoring, Improving the Design of Existing Code", Addison-Wesley, 1999
- Remarques:
Les informations pratiques relatives au cours seront accessibles sur iCampus http://www.icampus.ucl.ac.be/INGI2252/
|