Newer
Older
# R3.04, Qualité de Développement, Contrôle TP du 8 janvier 2025
Clôner ce dépôt sur le groupe déjà existant qui vous
correspond https://gitlab.univ-lille.fr/iut-info/r3.04/2024-2025/groupe-x/nom-prenom où x est la lettre de votre groupe et où
nom et prenom sont les vôtres.
*Conseil : lire en entier avant de démarrer (ce n'est pas bien long !)*
Il s'agit pour ce CTP de réaliser un logiciel basique pour faire les comptes dans le cadre de dépenses au sein d'un
groupe, typiquement pour des vacances entre amis. Le principe est simple, on entre les participants et leurs dépenses,
le logiciel indique un récapitulatif. D'une part, le montant des dépenses et le solde pour chaque participant (positif
ou négatif), d'autre part, le montant des dépenses par poste et le pourcentage que cela représente.
On considérera que les postes de dépenses sont fixés : Transport, Restauration, Hébergement, Loisirs et Autres.
- qu'il y a d'abord une phase d'ajout des participants puis une seconde pour les dépenses
- qu'on peut ajouter des dépenses en faisant entrée dans le champ de saisie du montant ou en appuyant sur le bouton **Ajouter** (idem pour les participants avec **+**)
- que chaque champ est requis pour pouvoir ajouter une dépense, dans ce prototype, on considérera que l'utilisateur les remplira systématiquement et avec des valeurs du bon type
- qu'on considérera que chaque participant compte pour une part, on ne se préoccupe pas ici de gérer le cas d'un couple ou d'une famille
- Le **modèle** sera à faire **en TDD** (commit à chaque étape, création du test compris) et devra :
- pouvoir prendre en compte les participations de chacun aux dépenses
- restituer la somme totale des dépenses
- restituer le somme et le pourcentage des participations par poste
- restituer la somme des participations par participant
- calculer le solde pour chaque participant
- L'**architecture** devra respecter le patron **MVC**, chaque vue sur le modèle étant un objet qui l'observe. À cette
fin, on vous rappelle que vous pouvez recourir à la couche abstraite Observable/ Observer fournie dans ce dépôt.
- L'**ensemble du code** devra être aussi *propre* que possible (**clean code**), vous pouvez recourir à des outils
d'analyse statique.
- Votre **dépôt** devra être propre et structuré, n'oubliez pas de *push* !
## Ressources
Durant ce CTP, vous pouvez consulter vos autres TP, la documentation, le cours et utiliser votre IDE avec ses
Interdiction formelle de communication, dans la salle comme à distance, avec toute autre personne que vos enseignants, sous peine de sanction importante.
À noter que tout départ avant la fin du temps imparti devra être signalé à l'enseignant présent.
Le dépôt contient une classe d'exemple contenant le code javaFX qui pourra vous servir pour la partie graphique (on ne
cherche pas ici à évaluer vos compétences en javaFX). Bien entendu, il s'agit d'adapter et restructurer ce code comme il
convient dans votre logiciel, notamment pour prendre en compte les différentes vues présentes dans l'application.
Le pom.xml est configuré pour que la commande *mvn javafx:run* lance l'exemple fourni (vous pouvez bien sûr changer cette configuration).