MLD_OO 3.07 KB
Newer Older
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
1
2
3
Type ClasseEspece: <
  nomClasse:string
>
Gaetan Carabetta's avatar
add uml  
Gaetan Carabetta committed
4

Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
5
tClasseEspece de ClasseEspece (#nomClasse)
Gaetan Carabetta's avatar
add uml  
Gaetan Carabetta committed
6

Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
7
8
9
10
11
12
Assistant(
  #idAssistant: entier,
  nom:string,
  prenom: string,
  ddn: date,
  adresse:string,
13
  numero:string,
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
14
)
Gaetan Carabetta's avatar
Gaetan Carabetta committed
15
avec {(nom,prenom,ddn) key, (adresse,numero) NOT NULL, 0100000000 < numero < 0799999999}
Gaetan Carabetta's avatar
add uml  
Gaetan Carabetta committed
16

Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
17
18
19
20
21
22
Veterinaire(
  #idVeterinaire: entier,
  nom:string,
  prenom: string,
  ddn: date,
  adresse:string,
23
  numero:string,
Gaetan Carabetta's avatar
Gaetan Carabetta committed
24
  specialite =>o ClasseEspece
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
25
)
Gaetan Carabetta's avatar
Gaetan Carabetta committed
26
avec {(nom,prenom,ddn) key, (adresse,numero) NOT NULL, 0100000000 < numero < 0799999999, specialite NOT NULL}
Gaetan Carabetta's avatar
add uml  
Gaetan Carabetta committed
27

Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
28
29
Type Espece: <
  espece:string,
Gaetan Carabetta's avatar
Gaetan Carabetta committed
30
  Classe =>o ClasseEspece
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
31
>
Gaetan Carabetta's avatar
Gaetan Carabetta committed
32
tEspece de Espece(#espece) avec Classe NOT NULL
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
33
34
Type RefEspece : <refEspece =>o tEspece>
Type ListeRefEspece : collection de <RefEspece>
Gaetan Carabetta's avatar
Gaetan Carabetta committed
35

Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
36
37
38
39
40
41
Type Medicament:<
  nomMolec: string,
  description: string,
  especes: ListeRefEspece,
  =espece_autoriser(string):boolean
>
Gaetan Carabetta's avatar
add uml  
Gaetan Carabetta committed
42

Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
43
44
tMedicament de Medicament(#nomMolec) avec (description) NOT NULL,
{ la methode espece_autoriser() qui renvois vrai si l'animal peut prendre le médicament }
Gaetan Carabetta's avatar
add uml  
Gaetan Carabetta committed
45
46


Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
47
Type Posologie: <
Gaetan Carabetta's avatar
Gaetan Carabetta committed
48
  nomMolec =>o Medicament,
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
49
50
51
52
53
54
55
56
57
58
59
60
61
  debut:date,
  duree:entier,
  nbJours:entier
>

Type ListePosologie : collection de <Posologie>


Type Traitement : <
  idVeterinaire=>Veterinaire(idVeterinaire),
  l_posologie:ListePosologie
>

Gaetan Carabetta's avatar
Gaetan Carabetta committed
62
tTraitement de Traitement (#idTraitement) avec (idVeterinaire) NOT NULL
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
63

Gaetan Carabetta's avatar
Gaetan Carabetta committed
64
Type RefTraitement : <refTraitement =>o tTraitement>
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
65
66
67
68
69
70
71
Type ListeRefTraitement : collection de <RefTraitement>

Type Animal : <
  nom: string,
  poids: float,
  taille: float,
  naissance: date,
Gaetan Carabetta's avatar
Gaetan Carabetta committed
72
  espece =>o Espece,
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
73
74
75
  l_Traitements:ListeRefTraitement
>

Gaetan Carabetta's avatar
Gaetan Carabetta committed
76
tAnimal de Animal avec (nom,poids,taille,espece) NOT NULL, poids>0, taille>0
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
77
78
79
80
81
82
83
84
85
86

Type RefAnimal : <refAnimal =>o tAnimal>
Type ListeRefAnimal : collection de <RefAnimal>

Client(
  #idClient:entier,
  nom:string,
  prenom: string,
  ddn: date,
  adresse:string,
87
  numero: string,
Osvaldo Valdivia Salas's avatar
Osvaldo Valdivia Salas committed
88
89
  animaux:ListeRefAnimal
)
Gaetan Carabetta's avatar
Gaetan Carabetta committed
90
avec {(nom, prenom, ddn) key, (adresse,numero) NOT NULL, 0100000000 < numero < 0799999999}
Gaetan Carabetta's avatar
add uml  
Gaetan Carabetta committed
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117


#### Contraintes
<nomClasse NOT NULL> AND Projection(ClasseEspece, nomClasse) = Projection(Espece, nomClasse)
Projection(Veterinaire, nom,prenom,DDN) = Projection(Traitement, nomVeto, prenomVeto,DDNVeto)
Dans la classe Client: <(nom,prenom,DDN) NOT NULL> AND Projection(Client, nom,prenom,DDN)=Projection(Animal,clientNom,clientPrenom,ClientDDN)
<nomEspece NOT NULL> AND Projection(Espece,nomEspece)=Projection(Animal,nomEspece)
Projection(Médicament,nomMolec)=Projection(EspeceMédicament,nomMolec) AND Projection(Espece,nomEspece)=Projection(EspeceMédicament, nomEspece)
Projection(Médicament,nomMolec)=Projection(Posologie,nomMolec) AND Projection(Traitement,nomAnimal,poids,taille)=Projection(Posologie,nomAnimal,poids,taille)

#### Vues
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),
	)
)