Commit 215552d2 authored by Gaetan Carabetta's avatar Gaetan Carabetta

Application de la correction

parent c8a08ad3
MCD.png

83.9 KB | W: | H:

MCD.png

78.4 KB | W: | H:

MCD.png
MCD.png
MCD.png
MCD.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -37,9 +37,6 @@ class Assistant
class Classe_espece {
nomClasse : string {key}
}
note right of Classe_espece
{Mammiferes, Reptiles, Oiseaux, Autres}
endnote
class Espece {
nomEspece : string {key}
......@@ -55,7 +52,6 @@ note left of Animal
date de naissance peut etre NULL
poids>0
taille>0
(nom, poids, taille) {key}
endnote
class Traitement
......@@ -100,18 +96,18 @@ N1 .. Traitement
Animal "1..*" -- "1" Client : possede <
' Association et groupe d'association
Traitement "1..*" -- "1..*" Medicament : liste >
Traitement "0..*" -- "1..*" Medicament : liste >
(Traitement, Medicament) .. Posologie
' Association modéliser dans un attribut de Personnel
' Personnel "1..*" -- "1" Classe_espece : spécialisé >
' Composition class_espece et espece
Classe_espece *-- "1..*" Espece : appartient <
Classe_espece -- "1..*" Espece : appartient <
Espece "1..*" -- "1..*" Medicament : peut prendre >
' Composition
Espece *-- "1..*" Animal : appartient <
' Association
Espece -- "1..*" Animal : appartient <
@enduml
......@@ -4,20 +4,20 @@ Tous les héritages sont exclusifs
#### Relationnel
Client(#nom: string, #prenom: string, #ddn: date, adresse: string, numero: int) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
Assistant(#nom: string, #prenom: string, #ddn: date, adresse: string, numero: int, specialite=>ClasseEspece(nomClasse)) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
Veterinaire(#nom: string, #prenom: string, #ddn: date, adresse: string, numero: int, specialite=>ClasseEspece(nomClasse)) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
Client(#idClient:int, nom: string, prenom: string, ddn: date, adresse: string, numero: int) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
Assistant(#idAssistant: int, nom: string, prenom: string, ddn: date, adresse: string, numero: int, specialite=>ClasseEspece(nomClasse)) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
Veterinaire(#idVeterinaire: int, nom: string, prenom: string, ddn: date, adresse: string, numero: int, specialite=>ClasseEspece(nomClasse)) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
ClasseEspece(#nomClasse: string) avec {nomClasse = {Mammifères, Reptiles, Oiseaux ou Autres } }
ClasseEspece(#nomClasse: string)
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}
Animal(#idAnimal: int, nom: string, poids: float, taille: float, naissance: date,
idClient=>Client(idClient), especeNom=>Espece(nom))
avec {poids > 0, taille > 0; naissace = (NULL OR date)}
Traitement(#nomAnimal=>Animal(nom), #poids=>Animal(poids), #taille=>Animal(taille),
#nomVeto=>Veterinaire(nom), #prenomVeto=>Veterinaire(prenom), #DDNVeto=>Veterinaire(DDN))
Traitement(#idTraitement: int, idAnimal=>Animal(idAnimal),
idVeterinaire=>Veterinaire(idVeterinaire))
Medicament(#nomMolec: string, description: string)
avec { la methode espece_autoriser() qui renvois
......@@ -25,8 +25,8 @@ Medicament(#nomMolec: string, description: string)
EspeceMedicament(#nomEspece=>Espece, #nomMolec=>Medicament)
Posologie(#nomAnimal=>Traitement(nomAnimal), #poids=>Traitement(poids), #taille=>Traitement(taille),
#nomMolec=>Medicament(nomMolec), #debut: date, duree: int, nbJourna: int)
Posologie(#idAnimal=>Animal(idAnimal), #nomMolec=>Medicament(nomMolec),
#debut: date, duree: int, nbJourna: int)
avec {debut > 0, duree > 0, nbJourna > 0; debut {local key}}
#### Contraintes
......@@ -38,5 +38,19 @@ Projection(Médicament,nomMolec)=Projection(EspeceMédicament,nomMolec) AND Proj
Projection(Médicament,nomMolec)=Projection(Posologie,nomMolec) AND Projection(Traitement,nomAnimal,poids,taille)=Projection(Posologie,nomAnimal,poids,taille)
#### Vues
vPersonne(Union(Projection(Client, nom, prenom, ddn, adresse, numero), Projection(Personnel, nom, prenom, ddn, adresse, numero)))
vPersonnel(Union(Projection(Assistant, nom, prenom, ddn, adresse, numero, specialite), Projection(Veterinaire, nom, prenom, ddn, adresse, numero, specialite)))
vPersonnel(
Union(
Projection(Assistant, nom, prenom, ddn, adresse, numero, specialite),
Projection(Veterinaire, nom, prenom, ddn, adresse, numero, specialite)
)
)
vPersonne(
Union(
Union(
Projection(Veterinaire, nom, prenom, ddn, adresse, numero, specialite)
Projection(Assistant, nom, prenom, ddn, adresse, numero)
),
Projection(Client, nom, prenom, ddn, adresse, numero),
)
)
Markdown is supported
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