Précédent   Forum des professionnels en informatique > Général Développement > Conception > Modélisation > UML > Diagrammes de Classes
Diagrammes de Classes Forum d'entraide sur les Diagrammes de Classes ( Class Diagram )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2011, 01h33   #1
Futur Membre du Club
 
dark meteor
Inscription : janvier 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : dark meteor

Informations forums :
Inscription : janvier 2010
Messages : 45
Points : 16
Points : 16
Par défaut UML: association n-aire avec 2 classes déjà associées

Bonjour,

Je crée un diagramme de classes où une partie doit modéliser cela : un établissement universitaire (par exemple : faculté ou école) est lié à un ou plusieurs diplomes, ces diplomes là ont des années spécifiques d'études, par exemple pour un Deug on aura la 1ère et la 2ème année, pour une licence on aura la 1ère année... et j'ai besoin de lier chaque établissement à chacun de ses diplomes pour chaque année, pour pouvoir afficher des informations de cette manière :

* établissment 1 -> année 1 DEUG : informations ....
année 2 DEUG : informations ...
année 1 licence professionnelle : informations ...

* établissment 2 -> année 1 licence fondamentale : informations ...

* établissment 3 -> année 1 licence professionnelle : informations ...

vous allez mieux comprendre en regardant les classes que j'ai créées (sachant que des établissement différents peuvent avoir des diplomes en commun)


alors j'ai créé 2 classes :
Etablissement(id_E, nom_E)[0..n]----[1..n]Diplome(id_D, nom_D, année_D)

l'attribut année_D désigne par exemple année 1 pour DEUG ou aussi année 2 pour DEUG ou encore année 1 pour licence...

jusqu'ici tous va bien, le problème c'est que je souhaite aussi stocker pour chaque candidat (étudiant) qui a étudié dans un ou plusieurs établissements et a eu un ou plusieurs diplomes des informations sur chaque année, par exemple : s'il a un DEUG et une licence de deux établissements différents, je dois pouvoir dire cela en précisant des informations sur sa 1ère année du DEUG, sur sa 2ème année du DEUG et sur sa 1ère année de licence, alors je comprend que je dois lier ce candidat aux 2 classes Etablissement et Diplome en même temps mais donc quoi faire? est ce qu'il est possilbe de laisser le lien déjà créé avant et ajouter une relation n-aires entre les 3 classes Candidat, Etablissement et Diplome ? par ce que je pense que dans mon cas, j'ai besoin de garder la 1ère relation (etablissement-diplome) pour le stockage. Sinon, avez vous des propositions pour m'éclairer?

Merci d'avance
dark_meteor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 16h50   #2
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 126
Points : 5 126
Bonjour,

Une solution pourrait être de transformer en une classe (appelons-la ETABL_DIPL) l’association des classes ETABLISSEMENT et DIPLOME, à partir de relations de composition. La classe ETABL_DIPL peut être dotée d’attributs, notamment l’attribut Année. Il suffirait ensuite d’établir une association entre les classes ETABL_DIPL et CANDIDAT, et (pour la production d’une base de données SQL) de rendre identifiants les attributs qui vont bien (EtablissementId, DiplomeId, Année) :


Un diagramme logique dérivé :

__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/12/2011, 23h24   #3
Futur Membre du Club
 
dark meteor
Inscription : janvier 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : dark meteor

Informations forums :
Inscription : janvier 2010
Messages : 45
Points : 16
Points : 16
Bonjour,

C'est exactement ce qui me fallait, merci infiniment pour votre aide
dark_meteor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 12h57   #4
ego
Rédacteur
 
Homme
Inscription : juillet 2004
Messages : 1 785
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 43
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : juillet 2004
Messages : 1 785
Points : 2 513
Points : 2 513
Envoyer un message via ICQ à ego
je me permet d'intervenir même si ce thread est résolu.
D'un point de vue métier, il me parait essentiel de ne jamais avoir de classe/entité portant un "double nom" du genre Etablissemet_Diplome. Ces classes, si elles doivent exister doivent porter un nom qui a du sens pour le métier décrit et il est important d'essayer de trouver un nom porteur d'une réelle sémantique........ça peut parfois être difficile je le reconnais.

Pour revenir à ton problème, je me demande si la modélisation suivante n'est pas plus juste ?
La classe Cursus (mais il faudrait voir si le nom est juste) correspond à "DEUG" ou "MAITRISE". Le Diplôme, est-ce le bon terme ?, correspond à DEUG 1e année, DEUG 2e année,...
Une Personne (ou Candidat si le terme est mieux pour toi) peut être "Diplômé" pour un Diplôme dans un Etablissement donnée. Une règle en plus du modèle ci-dessous est que l'Etablissement d'un Diplomé donne nécessairement le Diplome délivré.
Images attachées
Type de fichier : png diplome.PNG (13,4 Ko, 6 affichages)
__________________
http://ego.developpez.com
ego est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h26.


 
 
 
 
Partenaires

Hébergement Web