Aller au contenu

Correction de Wouaf Wouaf

Rappel de l’énoncé

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) …..

Travail à faire

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.

Corrections

1) Construire le ou les Uses Cases (Cas d’utilisation)

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

2) Construire le diagramme de classes (sous forme graphique ou textuelle)

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

Classes : Adhérent, 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

Relation unidirectionnelle

Classes : Résultat, Critère

Association : Résultat 0..* concernerCritère 1 Critère

Relation unidirectionnelle

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

à venir

5) Ecrire un des 2 diagrammes de Séquences :

6) Construire un des 2 Diagrammes d’Activités

à venir

7) Construire un diagramme de Collaboration : Adhésion d’un adhérent à une association (messages numérotés, rôles BCE)

à venir

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)