Ce cours aborde les méthodes et techniques de développement avancées, telles que les tests et l'évolution du code, ainsi que la gestion de projets informatique, notamment les méthodes agiles.
La qualité de la conception et du code sont des aspects importants également traités.
Compétences visées:
maîtriser les concepts sous-jacents aux méthodes de développement modernes et avancées,
connaître et savoir mettre en œuvre les méthodes de développement avancées,
savoir dimensionner un projet informatique, le planifier et en effectuer le suivi,
connaître et savoir mettre en œuvre les méthodes agiles,
savoir évaluer la qualité du code d’une application et l’améliorer,
savoir concevoir, réaliser et maintenir un système logiciel de qualité.
Plan du cours
Introduction
Gestion et méthodes de développement
Cycle de vie du logiciel
Gestion de projet
Estimation de la charge
Planification
Méthodes agiles
Documents – Cahier des charges
Qualité
Tests logiciels
Documentation du code
Métriques de qualité
Refactoring
Description des TP
Réalisation de divers Kata de refactoring.
Connaissances requises
bases de la conception logicielle et techniques de développement,
bonne connaissance des patrons de conception,
bonne connaissance de la programmation orientée objets, plus particulièrement en Java,
maîtrise des tests unitaires,
connaissance des outils modernes de développement : gradle, git.
RSE (Responsabilité Sociale et Environnementale)
Bibliographie
Beck, K. (2002). Test-Driven Development by Example. 1re éd. Addison-Wesley Professional, p. 240. isbn : 978-0321146533.
— (2007). Implementation Patterns. 1re éd. Signature Series. Addison-Wesley, p. 176. isbn : 978-0321413093.
Brooks, F. P. (1975). The mythical man-month : Essays on Software Engineering. Addison-Wesley, p. 200. isbn : 0-201-00650-2.
Farley, D. (2022). Modern Software Engineering. Addison-Wesley. isbn : 978-0-13-731491-1.
Feathers, M. (2004). Working Effectively with Legacy Code. Pearson, p. 464. isbn : 978-0131177055.
Fowler, M. (nov. 2002). Patterns of Enterprise Application Architecture. Signature Series. Addison-Wesley, p. 560. isbn : 978-0321127426
Fowler, M. et K. Beck (2018). Refactoring : Improving the Design of Existing Code. 2e éd. Signature Series. Addison-Wesley, p. 448. isbn : 978-0134757599.
Gamma, E. et al. (1994). Design Patterns : Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley, p. 416. isbn : 0-201-63361-2.
Glass, R. L. (2003). Facts and Fallacies of Software Engineering. Addison-Wesley. isbn : 978-0-321-11742-7.
Hunt, A. et D. Thomas (2000). The Pragmatic Programmer. 1re éd. Addison-Wesley, p. 321. isbn : 978-0-201-61622-4.
Kerievsky, J. (2004). Refactoring to Patterns. Addison-Wesley Professional, p. 367. isbn : 978-0321213358.
Ousterhout, J. (2018). A Philosophy of Software Design. 1re éd. Yaknyam Press, p. 190. isbn : 978-1-7321022-0-0.
Weinberg, G. M. (1971). The Psychology of Computer Programming. Van Nostrand Reinhold, p. 288