Cours BUT Info

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)

ACDescription
AC21.03Adopter de bonnes pratiques de conception et de programmation
AC21.04Vérifier et valider la qualité de l'application par les tests
AC25.04Définir et mettre en œuvre une démarche de suivi de projet
AC26.02Appliquer 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 :

Le bug invisible
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

  1. Des abstractions de plus haut niveau
  2. Les notions avancées de programmation objet
  3. Des bonnes pratiques : clean code, architecture, tests, gestion de versions
  4. 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

Consultation seule — téléchargement désactivé

Chargement du document…

Dernière mise à jour le

Sur cette page