IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

comment intrepreter les cardinalité en UML et C#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    40
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 40
    Par défaut comment intrepreter les cardinalité en UML et C#
    Bonjour,
    dans le cadre d'une pfe je travaille sur une application de gestion de note sous UML et c#.
    j'ai fai l'analyse avec UMl et j'ai extrait mes classes :
    Ma question est la suivante : comment on represente les cardinalité pour les classe de UML et comment on les representes en mcd pour Mysql et par programmation en c#

    Merci de votre aide

  2. #2
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Bonjour
    Franchement, avec un minimum de recherche sur n'importe quel moteur, tu devrais trouver de la doc répondant à cette question. (Je me demande même s'il n'y aurait pas de tuto ou des cours/doc sur dvp.com)

  3. #3
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    40
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 40
    Par défaut
    Bonjour,

    En fait, je chereche un cas réel qui commence par l'analyse en umL passant à SGBD et en finissant par la programmation de classes

    Merci encore.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    Au niveau des classes... ta pas une petite idée ?

    d'un coté (objet A) tu as la clé sous forme d'une propriété, et éventuellement la référence vers l'objet ciblé par ta Foreign Key soit l'objet B !
    du coté de cet objet B, si l'arité était de type 1-n, tu y aura une collection d'objets A possèdant une clé vers cet objet B...

    Ah tiens, j'ai comme une impression de déjà vu... ah mais vi mais c'est bien sure... on dirais bien que c'est ce que modélise Entity Framework.

    Petite question quand même... t'a déjà fait un peu de Merise ou ta vu que UML ?
    Sans vouloir troller et relancer le sempiternel combat Merise vs UML, le fait est que voir de l'uml c'est bien, mais son abstraction aux base de données n'est pas induit, et encore moins innée.

    Grossièrement, on va faire simple, pour convertir des arités entre un modèle conceptuel de donnée (qui ressemble à ton diagrammes de classes uml) et un modèle physique de données (qui est celui manipulé par le workshop de mysql si tu veux la concevoir par schéma interposé)
    on fait quelques transformations au niveaux des clés... problématique, dans la mesure où tu utilise MySQL, tu devra gérer toi même l'intégrité structurelle de ta DB vu que MySQL ne gère pas les Foreign Key convenablement, et surtout pas nativement.

    Typiquement ton objet A recoit une clé, et ton objet B aussi, pourquoi pas une clé numérique... que ton objet au niveau du code C# n'est pas obligé d'exposer hein mais doit possèder pour savoir à quoi il correspond dans la base de données.
    Ensuite dans la DB, si l'arité entre A - B est de type 1-n a savoir que un objet A a un objet B unique qui lui correspond, mais qu'un objet B a en relation inverse N objets A, alors on met ce qu'on appel une clé étrangère Foreign Key dans A avec pour valeur la clé de l'objet B.
    Dans ton modèle C# en plus ou en remplacement de cette clé tu peux mettre une référence vers B.
    Dans ton modèle C# tjs je te suggère de mettre une collection d'objet A qui seront les objets A dépendant de ce B.

    pour les arité de type 1-1 ba tu met la foreign key ou tu veux et logiciellement parlant, tu la met des deux cotés sous forme soit d'une clé, soit d'une référence.

    pour les arités n-n alors là, tu est OBLIGE de passé par une table subsidiaire avec comme clé primaire les 2 clé étrangères de 2 objets A et B.
    cette table n'a pas lieu d'être représentée par un objet en C# puisqu'elle sert juste à éffectuer la liaison entre tes entités A et B et vu que tu va avoir des 2 coté des collections de A dans B et des collections de B dans A... cette table n'a qu'une représentation interne.

    Tu notera qu'il n'y a pas une grande différence entre un diagramme de classes avec arités et un MCD (modèle conceptuel de données) simplement dans les logiciels couramment utilisés, le sens des arités n'est généralement pas le même... selon qu'on fait de l'uml ou un mcd.

    les bons logiciels d'uml te permettent de sortir du code en fonction de ton diagramme de données, avec les bonnes propriétés et surtout le bon type, entité ou collection en fonction des liaisons... et permettent pour les meilleurs de générer la base de données associée vers les SGBDR les plus courants, ou à défaut les scripts SQL de génération des tables qu'il suffit après de modifier légèrement selon les spécificité de chaque SGBD.

  5. #5
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    40
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 40
    Par défaut
    Bonjour cinemania,
    Merci de vos explications qui sont trés interessant
    D'abord ce je vient de comprendre c'est qu'il n'y a pas une grande difference entre UML et le MCD de merise.Donc le probleme de la BDD est facile à gérer puique déjà j'ai travaillé avec la transformation de MCD en BDD.
    Mais encore j'ai des flous concernant la representation de classe en orienté objet.
    Si tu peux me dire comment on peut coder en c# par exemple 2 classes Auteur (idAuteur, nom,prenom) et Livre (idLivrennomLivre,datePublication) sachant qu'un auteur pourra avoir plusieurs livres.

    Merci encore infiniment.

Discussions similaires

  1. Comment dessiner les cardinalités avec visio 11?
    Par jijidiscover dans le forum Visio
    Réponses: 1
    Dernier message: 21/10/2010, 01h55
  2. [OpenOffice][Base de données] comment creer les cardinalite des relations entre les tables
    Par aya2103 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 23/08/2010, 13h36
  3. comment creer les cardinalite des relations entre les tables
    Par aya2103 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 23/08/2010, 12h28
  4. Comment paramétrer les cardinalités des associations UML
    Par khaldoune_inf dans le forum Diagrammes de Classes
    Réponses: 4
    Dernier message: 14/05/2008, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo