🖨️ Version PDF
La Fédération Française Canine (FFC) souhaite automatiser le suivi des adhérents (maîtres et chiens), des associations affiliées et des concours auxquels participent les chiens.
Sachant que :
Chaque association s’est spécialisée dans une ou plusieurs races.
Les adhérents adhèrent à une ou plusieurs associations en fonction de leurs amies les bêtes. A leur arrivée dans une association, ils paient un droit d’entrée qui diffère d’une association à l’autre. Puis ils acquittent une cotisation annuelle également fonction de l’association et de la race du chien.
Chaque adhérent doit faire connaître son adresse, son téléphone.
Les chiens seront enregistrés dès leur tatouage avec le n° du tatouage ou de la puce et l’endroit du marquage.
On conservera la date de naissance, la race, la couleur de la robe et les origines du chien (père et mère).
Un chien a un nom de baptême.
Toute les races ont des critères à respecter :
Ces critères varient d’une race à l’autre.
Chaque chien de race doit être confirmé lors d’un concours dans les premiers mois de son existence. C’est pendant ce concours qu’est évalué le respect des critères (mention Excellent, Très bien, bien, passable, insuffisant). Si un des critères est insuffisant la confirmation n’a pas lieu. Dans le cas contraire, un certificat de confirmation est délivré au propriétaire avec « l’état civil du chien » , celui du maître, les résultats obtenus par le chien face aux critères de la race, le lieu, le concours et la date de confirmation.
Les concours se déroulent à une date donnée et un lieu précis. Des épreuves se déroulent durant ces concours (beauté, élégance, dressage pour compagnie, dressage pour chasse, ….).
Les propriétaires doivent inscrire leur animal aux épreuves auxquelles ils souhaitent participer sachant qu’un chien doit appartenir à une race et une catégorie concernée par l’épreuve. Par catégorie, on entend « pupile » (moins de sept mois), les juniors (moins de 15 mois) …..
1) Construire le ou les Uses Cases (Cas d’utilisation)
2) Construire le diagramme de classes (sous forme graphique ou textuelle)
3) Écrire le dictionnaire des données
4) Une fois le Diagramme de classe validé, générer ou écrire vos classes métiers en java
5) Ecrire un des 2 diagrammes de Séquences
6) Construire un des 2 Diagrammes d’Activités
7) Construire un diagramme de Collaboration : Adhésion d’un adhérent à une association (messages numérotés, rôles BCE)
8) Construire le diagramme d’États-transitions du Cycle de vie d’un Chien (Enregistré puis Inscrit au concours puis Évaluation puis Confirmé/Non confirmé)
9) Diagramme de Composants (Optionnel) : Architecture logique (Front, API, Services : Adhérent/Chien/Concours/Confirmation, Repo, Paiement, Email)
10) Diagramme de Déploiement (Optionnel) : Vue physique (Client web : Reverse Proxy, App serveur, BDD, API paiement) Prenez le temps de bien lire l’énoncé car cette étude de cas n’est pas si simple qu’il y parait.
Version PlantUML :
@startuml left to right direction skinparam packageStyle rectangle skinparam usecase { BackgroundColor #f9f9f9 BorderColor #3366cc ArrowColor #3366cc } actor "Adhérent (Maître)" as Adherent actor "Association (facultatif)" as Association actor "Fédération Française Canine (FFC)" as FFC actor "Juge" as Juge rectangle "Waouf Waouf" { (Enregistrer adhérent) as UseCase1 (Gérer les associations) as UseCase2 (Enregistrer un chien) as UseCase3 (Définir les critères d'une race) as UseCase4 (Gérer les cotisations et droits d'entrée) as UseCase5 (Inscrire un chien à un concours) as UseCase6 (Évaluer un chien lors d'un concours) as UseCase7 (Délivrer un certificat de confirmation) as UseCase8 (Consulter les informations des chiens) as UseCase9 (Gérer les épreuves et catégories de concours) as UseCase10 (Gérer les races) as UseCase11 UseCase7 --> UseCase8 : <<include>> } '=== Relations entre acteurs et cas === Adherent --> UseCase1 : "S'inscrire" Adherent --> UseCase3 : "Déclarer son chien" Adherent --> UseCase6 : "Inscrire à une épreuve" Adherent --> UseCase9 : "Consulter ses chiens" Association --> UseCase2 : "Déclarer les races spécialisées" Association --> UseCase5 : "Fixer les cotisations" Juge --> UseCase7 : "Évaluer un chien" Juge --> UseCase8 : "Valider la Confirmation" FFC --> UseCase2 : "S'occuper de" FFC --> UseCase10 : "Organiser les concours" FFC --> UseCase4 : "En charge de définir" FFC --> UseCase11: "Est Responsable" @enduml
Liste des Classes trouvées :
Liste des classes d’association :
Liste des relations avec leurs multiplicités :
Classes : Association, Race
Classe d’association : Spécialiser
Association : Association 0..* spécialiser 1..* Race
Classes : Association, Chien
Classe d’association : Confirmer
Association : Association 0..* confirmer 0..* Chien
Classes : Adhérent, Association
Classe d’association : Cotiser
Association : Adhérent 0..* cotiser 1..* Association
Classe d’association : Inscription
Association : Adhérent 1..* inscrireAdhérent 0..* Association
Classes : Adhérent, Chien
Association : Adhérent 1 posséder 0..* Chien
Classes : Chien, Concours
Association : Chien 1..* inscrire 0..* Concours
Classes : Chien, Epreuve
Association : Chien 0..* participer 0..* Epreuve
Classes : Concours, Race
Association : Concours 0..* concerner 0..* Race
Classes : Concours, Epreuve
Type d’association : Composition.
Association : Concours 1..* composer 1..* Epreuve
Classes : Chien
Type d’association : Récursif
Association : Chien (rôle = enfant) 0..* avoirParent 0..2 (rôle=parent) Chien
Classes : Chien, Race
Association : Chien 0..* être 1 Race
Classes : Race, Critère
Classe d’association : Type
Association : Race 1..* avoir 1..* Critère
Classes : Résultat, Chien
Association : Résultat 0..* concernerChien 1 Chien
Relation unidirectionnelle
Classes : Résultat, Epreuve
Association : Résultat 0..* concernerEpreuve 1 Epreuve
Classes : Résultat, Critère
Association : Résultat 0..* concernerCritère 1 Critère
Classes : Critère, Catégorie, Epreuve
Classe d’association : Estimer
Type association : Ternaire
Association : multiplicité 0..* sur les 3 pattes
3) Ecrire le dictionnaire des données
à venir
4) Une fois le Diagramme de classe validé, générez ou écriver vos classes métiers en java
5) Ecrire un des 2 diagrammes de Séquences :
Inscrire un chien à une épreuve (vérifications race/catégorie)
Confirmer un chien lors d’un concours (notes par critère : décision)
10) Diagramme de Déploiement (Optionnel) : Vue physique (Client web : Reverse Proxy, App serveur, BDD, API paiement)