Attrapez les tous !

[30 minutes]

La Ligue Pokémon souhaite que vous conceviez la prochaine génération du Pokédex. Le Pokédex est une base de données répertoriant différentes espèces de petits monstres combattants appelés Pokémon. Il devra également garder trace des plus grands combats de Pokémon de l'Histoire.

Pokémons

Une espèce de Pokémon est identifiée par un nom unique. Elle est décrite par différentes caractéristiques morphologiques (couleur et taille moyenne), et un ou deux (jamais zéro) types (feu, eau, acier, ...). Il existe naturellement plusieurs espèces de même type. Une espèce peut être l'évolution d'une autre espèce. Par exemple, Raichu est l'évolution de Pikachu. On considère qu'une espèce ne peut évoluer, au plus, qu'en une seule autre espèce, et que deux espèces différentes ne peuvent jamais évoluer en une même espèce.

Un Pokémon est un monstre d'une espèce précise. Il est identifié par un numéro unique distribué par la Ligue Pokémon. Il est caractérisé par un surnom affectif (pas nécessairement unique), un niveau (un entier compris entre 1 et 100 qui mesure ses aptitudes au combat), et un nombre de points de pouvoir (un entier positif qui limite ses capacités magiques).

Un Pokémon connaît des attaques. Une attaque est identifiée par un nom unique. Elle est également caractérisée par sa valeur de puissance (un entier positif), et un ou deux (jamais zéro) types. Chaque attaque requière un nombre donné de points de pouvoir pour être lancée. On notera qu'un Pokémon peut apprendre des attaques d'un type différent du sien.

Dresseurs de Pokémon et tournois

Chaque dresseur de Pokémon est identifié par un numéro unique distribué par la Ligue Pokémon. Il est caractérisé par un nom, un prénom, et un centre de rattachement. Il peut dresser plusieurs Pokémon, d'espèces et de niveaux différents. Un Pokémon n'a qu'un seul dresseur (son maître).

Un centre est identifié par un numéro de certification unique, également distribué par la Ligue Pokémon.

Un combat de Pokémon est la rencontre de deux dresseurs Pokémon. Il a lieu à une date précise, dans un centre certifié par la Ligue (les combats de rue sont interdits). Un vainqueur est proclamé à l'issu de chaque combat. Les combats sont parfois organisés dans le cadre de tournois. Chaque tournoi est identifié par un numéro d'homologation unique distribué par la Ligue. Ils sont organisés par un centre certifié (mais tous les combats d'un tournoi n'ont pas forcément lieu dans le centre organisateur).

Question

Réalisez un diagramme UML répondant aux besoins de la Ligue Pokémon.