Sujet :
Diagrammes de Classes
-
administration de base de données
Bonjour à tous,
après avoir longuement pataugé dans merise, j'ai a peine sorti la tête de l'eau que je me retrouve noyé dans uml sous le poids de concepts flous et de cours qui se contredisent l'un l'autre...
je suis supposée créer un projet personnel de base de données, j'ai choisi de créer une bd listant tout mon materiel de bricolage et les travaux que j'ai à faire (taches).
chaque tache nécessite du materiel.
une partie du materiel est "renouvelable" (les consommables: vis, forets,etc...), il est ajouté à une liste de course dès que sa quantité stockée tombe à zero, le materiel non renouvelable (outillage, materiel spécialisé etc...) n'est ajouté au stock que si une tache en a besoin, soit en l'achetant, soit en le fabriquant.
la fabrication de materiel vient s'ajouter à la liste de taches.
voila le fonctionnement global, le cours nous a fait créer le mcd de nos projets persos selon la methode merise dans un premier temps, puis nous a demandé de le modéliser avec uml.
après des jours d'incompréhension et d'arrachage de cheveux, le prof a fini par nous expliquer que la partie uml devait concerner le programme servant à administrer la base de données (a priori en php)
autant le diagramme de cas d'utilisations est parfait pour décrire le programme en question mais je bloque sur le diagramme de classe;
j'ai commencé à recréer mon mcd en lui ajoutant des fonctionnalités du programme d'administration (constructeurs, contraintes etc..) avant de me rendre compte qu'en procédant comme ça j'allais recréer une base de données au lieu d'administrer celle que j'ai créé via mon mcd.
donc ma question est: mais qu'est-ce que je suis censé f**tre de ce &!#?%* de diagramme de classes?
je suppose que le but est de générer un script php formulant les requêtes sql permettant de manipuler les tables mais je ne vois vraiment pas comment représenter ça sous forme de classes sans reprendre ce qui est déja couvert par mon mcd.
j'ai envoyé un mail à mon prof mais sa réponse que je n'aurais pas avant plusieurs jours ne répondra probablement pas à ma question et j'ai déja pas mal de retard.
voila mon mcd (je vais probablement enlever l'entité domaine et l'ajouter sous forme d'attribut à l'entité taches):

mon diagramme de cas d'utilisation:

et l'ébauche de diagramme de classe que j'ai laissé tomber:

merci beaucoup d'avance à ceux qui prendront la peine de lire mon pavé et me filer un coup de main!
-
Bonjour,
J'avoue ne pas bien comprendre ce que l'on attend de vous...
Tout d'abord, concernant votre MCD, je n'ai pas analysé la justesse de sa conception, mais j'ai un doute sur les types "SOURCE_MATERIEL", "PRIORITE" et "NOM_DOMAINE" que vous avez utilisés... Ils correspondent à quoi dans votre SGBD ?
Concernant le diagramme de classe UML, il peut facilement être déduit en l'état du MCD en adaptant juste le formalisme : votre démarrage n'était pas si mal et il est normal que les rubriques de la future BD soient reprises.
Quant aux méthodes associées à chaque classe, c'est là que les choses ne sont pas claires du tout...
En attendant, voici ce que donne votre MCD en E/A et en UML avec uniquement la reprise des rubriques (traduction temps-réel proposée automatiquement par Looping) :

Bon courage !
-

Envoyé par
Paprick
J'avoue ne pas bien comprendre ce que l'on attend de vous...
moi non plus!

Envoyé par
Paprick
j'ai un doute sur les types "SOURCE_MATERIEL", "PRIORITE" et "NOM_DOMAINE" que vous avez utilisés... Ils correspondent à quoi dans votre SGBD ?
-- source_materiel est une énumeration (achat, fabrication, stock). lorsque l'utilisateur ajoute un n-uplet à materiel, il précise d'ou va venir le matériel. (je pense la mettre par défaut à stock puis si le programme de gestion voit qu'il n'y a pas ce qu'il faut en stock, selon la valeur du booléen "renouvelable" soit il demandera à l'utilisateur de choisir entre achat et fabrication, soit il mettra la valeur à achat.
- priorité est une énumeration indiquant le niveau de priorité de la tache
- domaine correspond à la catégorie de travaux/materiel (plomberie, électricité etc), c'est un reliquat des précédentes versions de mon modèle, je vais probablement le supprimer

Envoyé par
Paprick
Concernant le diagramme de classe UML, il peut facilement être déduit en l'état du MCD en adaptant juste le formalisme
c'est justement le problème, ce que je dois décrire avec uml est uniquement le programme d'administration de la base de données (qui elle, est crée avec le script sql issu du mcd) donc je suppose que le diagramme de classes ne doit modéliser que le fonctionnement de ce programme. (c'est en tout cas ce que j'ai compris)
-
bonsoir Aperikub,
Pour que le modèle soit un peu plus réaliste, il faudrait tenir compte des notions suivantes :
MATERIEL
Un équipement et des consommables sont deux types de matériel bien distincts, il est intéressant de les distinguer en utilisant l'héritage.
Pour les consommables, il faut prévoir l'unité de mesure de la quantité : les peintures s'achètent au litre, les clous en sachets de 50 ou de 100, les vis en sachets de 12 ou 20, le fil électrique au mètre etc. Une quantité seule ne veut rien dire.
TRAVAIL ou PROJET
Une tâche doit s'inscrire dans le cadre d'un projet ou d'un travail, chaque travail comporte un certain nombre de tâches.
Par exemple, le travail "entretenir les volets de la maison" comporte les taches "déposer les huisseries", "poncer la vieille peinture", "dépoussiérer", "laquer", "décalaminer la huisserie", "repeindre la huisserie"...
TACHE
Chaque tâche peut requérir du matériel de type consommable et/ou équipement pour une certaine quantité (2 litres d'enduit, une visseuse-dévisseuse, un pinceau...)
Les tâches d'un même travail s'organisent selon une certaine séquence : il faut commencer par démonter les volets avant de les poncer.
D'où la nécessité d'une association réflexive sur la tâche pour piloter les prédécesseurs et successeurs.
Ce qui donne un MCD ressemblant à ceci :
Pièce jointe 584674
Ou le diagramme de classe :
Pièce jointe 584675
-
bonsoir,

Envoyé par
escartefigue
Pour que le modèle soit un peu plus réaliste, il faudrait tenir compte des notions suivantes :
MATERIEL
Un équipement et des consommables sont deux types de matériel bien distincts, il est intéressant de les distinguer en utilisant l'héritage.
c'est ce que j'avais fait, mais le prof m'a conseillé de simplifier en n'utilisant qu'une entité materiel.
je précis au passage que c'est une U.E de bases de donnée pour débutant visant à donner quelques notions aux étudiants, qui pourront suivre d'autres U.E plus poussées si ils le désirent (ce ne sera clairement pas mon cas!!)
les sujets sont survolés (une semaine sur uml et fini on n'en parle plus!)
le maitre mot est la simplicité, le timing est très très serré, je délaisse les autres cours car je passe 90% de mon temps de travail sur les BDD et je ne peux pas me permettre de m'éterniser d'avantage sur mon mcd, l'important pour l'instant est que je comprenne chaque chapitre, je peaufinerai le modèle plus tard.

Envoyé par
escartefigue
Pour les consommables, il faut prévoir l'unité de mesure de la quantité : les peintures s'achètent au litre, les clous en sachets de 50 ou de 100, les vis en sachets de 12 ou 20, le fil électrique au mètre etc. Une quantité seule ne veut rien dire.
bien vu, je modifierai si j'ai le temps mais je pense rendre la variable quantité facultative ou alors fonctionner par "paquets" (je ne vais pas compter le nombre de vis nécessaires pour chaque taches d'autant que j'en perds, j'en casse etc..)

Envoyé par
escartefigue
TRAVAIL ou PROJET
Une tâche doit s'inscrire dans le cadre d'un projet ou d'un travail, chaque travail comporte un certain nombre de tâches.
Par exemple, le travail "entretenir les volets de la maison" comporte les taches "déposer les huisseries", "poncer la vieille peinture", "dépoussiérer", "laquer", "décalaminer la huisserie", "repeindre la huisserie"...
c'est plus ou moins à ça que servait l'entité domaine mais je suis loin d’être aussi organisé et ma façon de travailler est plus proche de mcgyver que du compagnonnage
donc simplicité: entretenir les volets = couper un morceau d'une vieille table de jardin, y mettre des charnières, et mettre ça à la place des anciens volets tombés en lambeaux!
ce que je cherche à comprendre la, c'est comment représenter sous forme de diagramme de classes un programme d'administration (le coté utilisateur) qui interagisse avec la bd créée a partir du mcd.
est-ce que je crée des classes comme celles que je créerais dans un programme java (le programme d'administration sera en php mais ne l'ayant pas encore vu, le java me parle plus) du genre une classe AjouterTache avec des attributs String pour le nom et la description, une méthode Input qui demande une valeur a l'utilisateur et une autre méthode qui envoi la requête sql ?
merci beaucoup d'avance et merci pour les modèles, je vais me pencher dessus mais la il faut vraiment que j'avance sur uml
-

Envoyé par
aperikub
je précis au passage que c'est une U.E de bases de donnée pour débutant visant à donner quelques notions aux étudiants, qui pourront suivre d'autres U.E plus poussées si ils le désirent (ce ne sera clairement pas mon cas!!)
les sujets sont survolés (une semaine sur uml et fini on n'en parle plus!)
OK pour ça, je donne des pistes d'améliorations mais il faut bien sûr faire avec les contraintes de plannning.
Cela étant, ça ne prend pas beaucoup plus de temps de faire un MCD cohérent qu'un autre qui l'est moins, surtout quand il ne reste plus qu'à copier/coller la solution trouvée sur "developpez.net" 

Envoyé par
aperikub
ce que je cherche à comprendre la, c'est comment représenter sous forme de diagramme de classes un programme d'administration (le coté utilisateur) qui interagisse avec la bd créée a partir du mcd. l
Là par contre il y a confusion : la modélisation des données est quasiment sans rapport avec les traitements et donc les programmes...
-
-
Discussions similaires
-
Réponses: 5
Dernier message: 12/01/2010, 17h37
-
Réponses: 3
Dernier message: 30/11/2009, 09h08
-
Réponses: 4
Dernier message: 28/01/2009, 16h48
-
Réponses: 3
Dernier message: 26/07/2007, 12h14


Partager