Commit a5876cb8 authored by Gaetan Carabetta's avatar Gaetan Carabetta
Browse files

Update MLD and MCD

parent a26aba2f
......@@ -16,14 +16,14 @@ class Personne <<Abstract>> {
numero de telephone : int
}
note left of Personne
Le numéro de téléphone est
Le numéro de téléphone est
composé de 10 chiffres.
(nom, prenom, DDN) {key}
endnote
class Client
class Personnel <<Abstract>>
class Veterinaire
class Veterinaire
class Assistant
class Classe_espece {
......@@ -43,7 +43,7 @@ class Animal {
taille : float
naissance : date
}
note left of Animal
note left of Animal
date de naissance peut etre NULL
poids>0
taille>0
......@@ -71,7 +71,7 @@ endnote
class Medicament {
nomMolec : string {key}
description : string
espece_autoriser() : bool
espece_autoriser() : bool
}
note bottom of Medicament
Si l'animal peut prendre
......@@ -86,15 +86,17 @@ Personne <|-- Client
Personnel <|-- Veterinaire
Personnel <|-- Assistant
' Hesitation sur le choix de l'association
Traitement "0..*" -- "1" Animal : prescrit à >
' Composition entre vétérinaire et traitement
Veterinaire *-- "0..*" Traitement : prescrit >
Veterinaire .. N1
N1 .. Traitement
Animal "1..*" -- "1" Client : possede <
Traitement "0..*" -- "1" Animal : prescrit à >
Traitement "1" -- "1..*" Medicament : liste >
Traitement "1..*" -- "1..*" Medicament : liste >
(Traitement, Medicament) .. Posologie
Personnel "1..*" -- "1" Classe_espece : spécialisé >
......@@ -102,7 +104,7 @@ Personnel "1..*" -- "1" Classe_espece : spécialisé >
Classe_espece *-- "1..*" Espece : appartient <
Espece "1..*" -- "1..*" Medicament : peut prendre >
Espece-- "1..*" Animal : appartient <
' Composition ou association ?
Espece *-- "1..*" Animal : appartient <
@enduml
......@@ -8,9 +8,9 @@ Client(#nom: string, #prenom: string, #ddn: date, adresse: string, numero: int)
Assistant(#nom: string, #prenom: string, #ddn: date, adresse: string, numero: int) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
Veterinaire(#nom: string, #prenom: string, #ddn: date, adresse: string, numero: int) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
PersonnelClasseEspece(#nomClasse=>ClasseEspece,
#nomVeto=>Veterinaire(nom), #prenomVeto=>Veterinaire(prenom), #ddnVeto=>Veterinaire(ddn),
#nomAssis=>Assistant(nom), #prenomAssis=>Assistant(prenom), #ddnAssis=>Assistant(ddn))
PersonnelClasseEspece(#nomClasse=>ClasseEspece,
#nomVeto=>Veterinaire(nom), #prenomVeto=>Veterinaire(prenom), #ddnVeto=>Veterinaire(ddn),
#nomAssis=>Assistant(nom), #prenomAssis=>Assistant(prenom), #ddnAssis=>Assistant(ddn))
avec { ( (nomVeto, prenomVeto, ddnVeto) NULL AND (nomAssis, prenomAssis, ddnAssis) NOT NULL) OR
(nomVeto, prenomVeto, ddnVeto) NOT NULL AND (nomAssis, prenomAssis, ddnAssis) NULL)
) }
......@@ -20,14 +20,29 @@ ClasseEspece(#nomClasse: string) avec {nomClasse = {Mammifères, Reptiles, Oisea
Espece(#nomEspece: string, nomClasse=>ClasseEspece)
Animal(#nom: string, #poids: float, #taille: float, naissance: date,
clientNom=>Client(nom), clientPrenom=>Client(prenom), clientDDN=>Client(DDN),
especeNom=>Espece(nom)) avec {poids > 0, taille > 0; naissace = (NULL OR date); (nom, poids, taille) KEY}
clientNom=>Client(nom), clientPrenom=>Client(prenom), clientDDN=>Client(DDN),
#especeNom=>Espece(nom)) avec {poids > 0, taille > 0; naissace = (NULL OR date); (nom, poids, taille) KEY}
// Solution 1
Traitement(#idTraitement: int,
nomAnimal=>Animal(nom), poids=>Animal(poids), taille=>Animal(taille),
#nomVeto=>Veterinaire(nom), #prenomVeto=>Veterinaire(prenom), #DDNVeto=>Veterinaire(DDN)) avec {idTraitement > 0}
// Solution 2
TraitementAnimal(#idTraitement=>Traitement, #nomAnimal=>Animal(nom), #poids=>Animal(poids), #taille=>Animal(taille))
Traitement(#idTraitement: int,
#nomVeto=>Veterinaire(nom), #prenomVeto=>Veterinaire(prenom), #DDNVeto=>Veterinaire(DDN)) avec {idTraitement > 0}
Traitement(#idTraitement: int,
nomAnimal=>Animal(nom), poids=>Animal(poids), taille=>Animal(taille),
nomVeto=>Veterinaire(nom), prenomVeto=>Veterinaire(prenom), DDNVeto=>Veterinaire(DDN)) avec {idTraitement > 0}
Medicament(#nomMolec: string, description: string)
avec la methode espece_autoriser() qui renvois vrai si l'animal peut prendre le médicament
EspeceMedicament(#nomEspece=>Espece, #nomMolec=>Medicament)
Posologie(#idTraitement=>Traitement(idTraitement), #nomMolec=>Medicament(nomMolec),
debut: date, duree: int, nbJourna: int) avec {debut > 0, duree > 0, nbJourna > 0}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment