Ch. 0 — Introduction
Pourquoi « ça marche » ne suffit plus : complexité, durée de vie, bugs célèbres et objectifs du cours R3.04.
Le cours en deux phrases
R3.04 Qualité de développement part d'un constat simple : un code qui fonctionne, ce n'est plus suffisant. Les systèmes visés sont très complexes, conçus pour durer des dizaines d'années et faciles à faire évoluer — et ça, ça ne s'improvise pas.
Les apprentissages critiques (AC)
| AC | Description |
|---|---|
| AC21.03 | Adopter de bonnes pratiques de conception et de programmation |
| AC21.04 | Vérifier et valider la qualité de l'application par les tests |
| AC25.04 | Définir et mettre en œuvre une démarche de suivi de projet |
| AC26.02 | Appliquer une démarche pour intégrer une équipe informatique |
Ce qu'on va étudier
- Approfondissement de la POO : principes SOLID, notions de dépendance et de couplage
- Les patrons de conception (design patterns)
- Des éléments d'architecture logicielle et le refactoring (restructuration de code)
- La structuration de l'application (modularité)
- La gestion de version avancée avec Git (branches, etc.)
« Ça marche » n'est plus suffisant
Pourquoi changer de regard ?
À petite échelle, programmer est simple. À l'échelle industrielle, c'est très difficile : des milliers de classes et méthodes interagissent, chacune avec ses données, ses hypothèses, ses effets de bord. Le moindre détail peut produire des effets énormes.
Les systèmes doivent en plus :
- Durer : leur espérance de vie se compte en décennies, alors que les développeurs partent au bout de quelques années — le code survit à ses auteurs ;
- Évoluer : le monde change (nouvelles lois, nouvelles technologies…), le système doit s'adapter.
Petit bug, grosses conséquences
Bug de l'an 2000 (Y2K)
Le gouvernement fédéral américain a dépensé 8,38 milliards de dollars en 5 ans — l'équivalent d'environ 275 000 années de travail d'un programmeur junior.
Ariane 5 — premier vol, 1996
Rocket perdue pour plus de 370 millions de dollars, à cause d'une conversion flottants → entiers signés (64 bits vers 16 bits) : un simple dépassement d'entier (integer overflow).
Un point-virgule parasite (anecdote, 1990)
Un ; en trop après le for a coûté 2 jours d'arrêt de production :
for (i = 0; i < n; i++); // ← ce point-virgule exécute une boucle… vide
{
// ce bloc s'exécute une seule fois, hors de la boucle
}Les moyens à notre disposition
- Des abstractions de plus haut niveau
- Les notions avancées de programmation objet
- Des bonnes pratiques : clean code, architecture, tests, gestion de versions
- Des outils : IDE, refactoring, gestionnaire de versions, librairies de tests, méthodologie
Évaluation
- Informations pratiques sur Moodle
- Un DS (les parties de TD sont intégrées aux TP)
- Ce cours est crucial pour la SAÉ Développement d'Application
À retenir
- « Ça marche » n'est pas suffisant ;
- Programmer est difficile ; programmer des gros systèmes est TRÈS difficile ;
- Il faut donc : des abstractions de haut niveau, des bonnes pratiques et des outils.
ch0-introduction.pdf
R3 04-cours-0-Introduction.pdf · 13 diapositives
Chargement du document…
Dernière mise à jour le