Objectifs du cours : Un premier objectif est d'apprendre à concevoir un logiciel orienté objet (structuration  en paquetages et classes faiblement couplés et fortement cohésifs ; utilisation de Design Patterns). Un second objectif est d'apprendre à mettre en oeuvre une méthodologie itérative Agile pour concevoir, réaliser et maintenir des logiciels orientés objet. Un troisième objectif est d'apprendre à mettre en oeuvre une démarche qualité dans un contexte Agile.

Les principales compétences visées sont :
- Mettre en oeuvre une méthodologie Itérative Agile pour concevoir, réaliser et maintenir des logiciels de qualité
- Utiliser des diagrammes UML pour modéliser un objet d'étude
- Concevoir l'architecture d'un logiciel orienté objet
- Mettre en oeuvre les concepts de la programmation orientée objet pour développer de bons logiciels
- Choisir les algorithmes et structures de données adaptés à la situation
- Mettre en oeuvre les outils génériques pour la qualité logicielle

Programme :

- Méthodologies de développement logiciel itératives et Agiles

- Principes de conception orientée objet et étude des principaux design patterns
- Outils pour la qualité logicielle

Mise en pratique en projet longue durée d'une méthodologie Agile pour analyser, concevoir, développer et tester un logiciel. Ce projet est également l'occasion de mettre en pratique des design patterns, des outils pour le contrôle de la qualité, le test (test-driven development et non régression), le versioning et l'intégration continue, le model checking, etc.