← Retour au cours

A2 · Objets et conception : héritage, composition, contrats

1A engineering (ECC Coding Week) · 60 min

Ouvrir les diapositivesPDF

Lab

Télécharger le lab (.zip)Ouvrir dans Colab

Nécessite Python 3.12 ou plus récent.

Décompressez l'archive, puis dans ce dossier :

uv run python verify.py

Évaluation

Évaluation de sortie A2 : substituabilité et refactoring sûr

Durée : 40 minutes, puis un défi oral de 3 à 5 minutes.

Utilisez la suite de caractérisation fournie dans lab/. Vous n'êtes pas évalué sur la conception de cette suite, mais sur l'usage que vous faites de ses preuves.

Rendu

1. Décision de conception, A2.1

Pour la hiérarchie de notifications fournie, choisissez l'héritage ou la composition. Énoncez le contrat du client, repérez un cas concret de substitution et comparez le coût du changement des deux conceptions.

2. Évaluation d'un patron, A2.2

Identifiez le patron déjà présent dans le code de formatage. Indiquez la variation qu'il localise, ce que sa suppression couplerait et un contexte où il ajouterait une indirection injustifiée.

3. Séquence de refactoring, A2.3

Refactorez la hiérarchie de notifications vers la conception choisie en au moins trois commits cohérents. Exécutez la suite fournie après chaque commit. Soumettez l'historique ordonné et les preuves vertes correspondantes.

Défi oral

L'enseignant révèle un nouveau sous-type et un nouvel appelant, ou annule un commit intermédiaire. Prédisez le résultat, lancez le test de caractérisation pertinent et défendez l'ordre des étapes ainsi que la décision de conception.

Références