MCD_OO.uml 2.18 KB
Newer Older
Gaetan Carabetta's avatar
Gaetan Carabetta committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
@startuml
hide circle
hide empty members
skinparam linetype ortho

note "On suppose qu'un traitement\n n'est prescrit que par un\n seul veterinaire." as N1
note "On suppose qu'un médicament\n correspond à une molécule" as N2
note "Tous les héritages sont exclusifs" as NGeneral1
note "Tous les attributs sont NOT NULL par défaut" as NGeneral2

class Personne <<Abstract>> {
	nom : string
	prenom : string
	date de naissance : date
	adresse : string
	numero de telephone : int
}
note left of Personne
	Le numéro de téléphone est
	composé de 10 chiffres.
	(nom, prenom, DDN) {key}
endnote

class Client
class Personnel <<Abstract>> {
	specialité : string 
}
note left of Personnel
	La valeur de spécialité doit
	correspondre à une des valeurs
	de nomClasse de la ClasseEspece
endnote

class Veterinaire
class Assistant

class Classe_espece {
	nomClasse : string {key}
}

class Espece {
	nomEspece : string {key}
}

class Animal {
	nom : string
	poids : float
	taille : float
	naissance : date
}
note left of Animal
	date de naissance peut etre NULL
	poids>0
	taille>0
endnote

class Traitement

class Posologie {
	debut : date
	duree : int
	nbJournalier : int
}
note right of Posologie
	duree > 0
	nbJournalier > 0
endnote

class Medicament {
	nomMolec : string {key}
	description : string
	espece_autoriser() : bool
}
note bottom of Medicament
	Si l'animal peut prendre
	le médicament, espece_autoriser()
	renvoit vrai. Faux sinon.
endnote
Medicament .. N2

Personne <|-- Personnel
Personne <|-- Client

Personnel <|-- Veterinaire
Personnel <|-- Assistant

' Association
Traitement "0..*" <-- "1" Animal : prescrit à >

' Association
Veterinaire "1" -- "0..*" Traitement : prescrit >
Veterinaire .. N1
N1 .. Traitement

' Association
Animal "1..*" <-- "1" Client : possede <

' Association et groupe d'association
99
Traitement "0..*" --> "1..*" Medicament : liste >
Gaetan Carabetta's avatar
Gaetan Carabetta committed
100 101 102 103 104 105 106 107 108 109 110 111 112 113
(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 <

Espece "1..*" <-- "1..*" Medicament : peut prendre >

' Association
Espece -- "1..*" Animal : appartient <

@enduml