Remaniement de code I (Refactoring 1/2)
Nous disposons du code source d'une application téléchargeable ici refactoring.tgz. Il s'agit d'un des exemples principaux du livre de référence sur le remaniement de code : Refactoring , de Martin Fowler et al., Addison-Wesley, 1999
exercice 1: Reverse engeneering
- Importez ce programme dans un nouveau projet eclipse.
- Décrivez les différentes classes disponibles et les services qu'elles offrent.
- Implémentez un programme principal qui met en place le cas d'utilisation suivant:
Un client a loué les fims :
- "Rogue One" de type NEW_RELESASE pendant 5 jours,
- "Reine des neiges" de type CHILDREN pendant 7 jours,
- "Star Wars III" de type REGULAR pendant 4 jours.
On affiche sur la sortie standard toutes les informations de ce client.
- Décrivez les interactions entre vos objets pendant l'exécution de ce programme.
exercice 2: Test de non régression
- En utilsant le framework de test Junit4, implémentez le cas d'utilisation précédent sous forme d'un test de non régression.
Le test se contentera de comparer la String retourné par la méthode
statement
avec celle que vous avez obtenu dans votre premier programme. - Vérifiez que votre test ne passe plus lorsque vous modifiez les règles de calculs dans la méthode
statement
.
exercice 3: Critiques
- Critiquer l'état du code de l'application.
- Établir une liste des améliorations nécessaires selon les critères suivants: Lisibilité, Maintenabilité, Réutilisabilité et Extensibilité.
Info: Lancez votre test de non régression après chaque modification.