Question 1
Pour vous, quelles sont les caractéristiques d'un programme
bien écrit ?
Nous voulons créer un logiciel ayant les fonctionnalités
suivantes:
- Calcul et affichage de l'état du compte d'un client du
Video-club.
- Affichage des films qu'un client a loués ainsi que la
durée de la location.
- Le calcul de facturation dépend du nombre de jours de
location ainsi que du type film.
- Les types de films sont les suivants ("CHILDRENS'', ''REGULAR'',
''NEW_RELEASE'').
- De plus, le programme doit permettre de calculer des points de
fidélité variant selon que le film soit du type
"NEW_RELEASE'' ou non.
Analysez la solution proposée dans la
version 1.0 et discutez des
améliorations que vous pensez nécessaires.
Question 2
Nous voulons maintenant ajouter une sortie au format HTML. Un client
pourra ainsi regarder son compte directement par Internet.
Proposez une modification minimum permettant cette nouvelle
fonctionnalité. Que remarquez-vous ? Comparer avec la
version 1.1beta.
Rappelez l'algorithme de sélection d'une méthode et d'une
variable (classe ou instance).
Proposez une nouvelle solution. Quelles sont les avantages et les
inconvénients de votre solution ? Comparez avec la
version 1.1.
Question 3
Le client veut changer la façon dont il classifie ses films
mais il ne connaît pas exactement ce classement. Il sait
cependant
que ces changements modifieront la tarification des films ainsi que le
calcul des points de fidélité.
Proposez une évolution permettant d'obtenir ce changement.
Quelles sont les avantages et les inconvénients de votre
solution
? Comparez avec la
version 1.2.
On veut factoriser l'algorithme de calcul des prix. Comparez avec la
version 1.2.1.
Question 4
Remarque: cette question repart de la
version 1.2.
Analysez et décrivez le fonctionnement de la
version 1.3.beta (Fabrique
abstraite) et de la
version 1.3
(Monteur).
Qu'apportent ces nouvelles architectures en terme de
réutilisabilité ?