4.2. Conception des classes
C'est une collection d'éléments de modèle
statique, tels que des classes, des interfaces et leurs relations,
connectés entre eux comme un graphe.
Il représente la description statique du système
en intégrant dans chaque classe la partie dédiée aux
données et celle consacrée aux traitements. C'est le diagramme
pivot de l'ensemble de la modélisation d'un système.
ü Identification des classes :
Une classe est une description d'un groupe d'objets partageant
un ensemble commun de propriétés (les attributs), de
comportements (les opérations) et de relations avec d'autres objets (les
associations et les agrégations).
ü Une classe contient :
Des attributs (ou champs, ou variables d'instances) : Les
attributs d'une classe décrivent la structure de ses instances (les
objets).
Des méthodes (ou opérations de la classe) : Les
méthodes décrivent les opérations qui sont applicables aux
instances de la classe.
ü Une agrégation :
Est une association correspondant à une relation qui
lorsqu'elle est lue dans un sens signifie "est une partie de" et lorsqu'elle
est lue dans l'autre sens elle signifie "est composé de".
v Diagrammes de classes
Figure 23. Conception des classes
v Diagrammes d'activité
Le diagramme d'activités permet de décrire un
flot de contrôle entre opérations. Il s'agit de décrire des
enchaînements de fonctionnalités. Il complète donc les cas
d'utilisation au niveau de l'analyse des besoins.
ï Les actions sont
représentées par des rectangles aux coins
arrondis.
ï Les transitions entre les
actions sont représentées par des
flèches.
ï Le diagramme comprend un
point de départ et
un ou plusieurs points
d'arrivée.
ï Un événement
peut accompagner la transition du point de départ seulement.
Diagramme d'activité d'identification
Figure 24. Diagramme d'activité
d'authentification
v Diagramme d'activité « gestion des
rendez-vous»
Figure 25. Diagramme d'activité
gestion des rendez-vous
v Diagramme d'activité «gestion des
fiches patient »
Figure 26. Diagramme d'activité
gestion du fiche patient
v Diagramme d'activité« gestion des
consultations et dossiers médicaux»
Figure 27. Diagramme d'activité
gestion et suivie du dossier médical
4.3. Conception des schémas logiques et
physique des données
Cette partie consiste à transformer les objets
du modèle de classes en relations. Une relation comporte un nom (qui
correspondra au nom de la table dans SQL Serveur), des attributs (qui
correspondent aux propriétés conceptuelles ou organisationnelles
et correspondent au niveau physique aux champs de la table).
Durant la phase d'analyse, on a suivi comme processus
de démarche orienté objet le processus de l'UML (Unified
Modeling Langage) comme langage de modélisation.
Puisque nous allons implémenter notre base de
données avec SQL serveur 2005, nous avons besoin de traduire certains
objets pour qu'ils soient compatibles à un environnement relationnel.
Pour cela et pour traduire notre modèle on peut procéder aux
règles suivantes :
REGLE N°1 : Toute classe
d'entités du diagramme entité/association est
représentée par une relation dans le
schéma relationnel équivalent. La clé de cette relation
est l'identifiant de la classe d'entités correspondante.
Exemple :
Avec la transformation donc :
PATIENT ( NUM_FIC_PAT, CIN_PAT,
DAT_FIV_PAT, NOM_PAT, .......CODE_APCI )
REGLE N°2 : Toute classe d'association
est transformée en relation. La clé de cette
relation est composée de tous les identifiants des entités
participantes.
Exemple :
Au niveau implémentation on aura une relation de plus
dont la clé est composée des deux clés des objets
participants à cette relation. On aura donc :
MEDICAMENT ( CODE_MEDT, NOM_MEDT, DOSA_MEDT,
PRESENTATION )
ORDONNANCE ( NUM_ORDO, DAT_ORDO )
PRESCRIPTION (CODE_MEDT , NUM_ORDO ,
NBR_FOIS_MEDT, QUANT_MEDT, FORM_MEDT )
REGLE N°3 (optimisation) : Toute classe
d'associations reliée à une classe d'entités avec une
cardinalité de type 0,1 ou 1,1 peut être
fusionnée avec la classe d'entités. Dans ce cas on déplace
les attributs de la classe d'associations vers ceux de la relation traduisant
la classe d'entités.
REGLE N°4 Le modèle relationnel
de base ne supporte pas le concept d'héritage.
L'héritage permet d'exprimer des
propriétés communes à plusieurs classes.
Comment exprimer l'héritage
?
Classe mère : CERTIFICAT
Classe filles : CERTIFICAT_MED, CERTIFICAT_APT.
Toutefois, trois solutions existent pour implémenter un
héritage.
* Solution 1 : Traduire la
classe fille et mère par une seule relation correspond à la
classe fille et Les attributs doivent être peu nombreux dans la classe
mère
Exemple :
CERTIFICAT_MED ( NUM_CERT, COM_CERT, DAT_NAIS_PAT,
NBR_JR_REP, DAT_REP_PAT ).
CERTIFICAT_APT ( NUM_CERT, COM_CERT, DAT_NAIS_PAT,
NBR_JR_REP, DAT_REP_PAT, CIN_PAT, ETAT_SAN_PAT, DAT_CERT_APT,
PROF_PAT).
*Solution 2 : Traduire la
classe fille et mère par une seule relation
correspondant à la classe mère en ajoutant un
attribut indiquant le sous-type .Les attributs doivent
être peu nombreux dans la classe fille
Certains attributs seront non renseignés dans la
relation
Exemple :
CERTIFICAT ( NUM_CERT, COM_CERT, TYPE, DAT_NAIS_PAT,
NBR_JR_REP, CIN_PAT, DAT_REP_PAT, CIN_PAT, ETAT_SAN_PAT, DAT_CERT_APT,
PROF_PAT ).
*Solution 3 :
- La classe mère correspond à
une première relation
- La classe fille correspond à une seconde relation
-Les attributs de la classe fille sont répartis dans
les 2 relations
-L'identité de l'objet est préservée en
utilisant le même identifiant dans les 2 relations (et la même
valeur d'identifiant pour les 2 filles)
Exemple :
CERTIFICAT ( NUM_CERT, COM_CERT, DAT_NAIS_PAT ).
CERTIFICAT_MED ( NUM_CERT, NBR_JR_REP, DAT_REP_PAT
).
CERTIFICAT_APT ( NUM_CERT, COM_CERT, DAT_NAIS_PAT,
NBR_JR_REP, DAT_REP_PAT, CIN_PAT, ETAT_SAN_PAT, DAT_CERT_APT,
PROF_PAT).
CERTIFICAT_APT ( NUM_CERT, CIN_PAT, ETAT_SAN_PAT,
DAT_CERT_APT, PROF_PAT).
4.3.1. Construction des schémas logique
des données brutes
CERTIFICAT ( NUM_CERT, COM_CERT,
DAT_NAIS_PAT, NBR_JR_REP#, CIN_PAT# ).
PATIENT ( NUM_FIC_PAT, CIN_PAT,
DAT_FIC_PAT, NOM_PAT, PREN_PAT, DAT_NAIS_PAT, PROF_PAT, ADRE_PAT, TEL_PAT,
SEX_PAT, CODE_APCI, NUM_MAT_PAT#, NUM_ANT#, NUM_RDV# ).
EXAMEN ( NUM_EXAM, DESC_EXAM,
TAILE_PAT#, RES_EXAM_COMP# ).
ORDONNANCE ( NUM_ORDO, DAT_ORDO )
MEDICAMENT ( CODE_MEDT, NOM_MEDT,
DOSA_MEDT, PRESENTATION )
PRESCRIPTION ( NUM_ORDO,
CODE_MEDT, NBR_FOIS_MEDT, QUAN_MEDT, FORM_MEDT ).
RDV (NUM_RDV, PRESENCE, DAT_RDV,
HEUR_RDV, MIN_RDV, NUM_FIC_PAT#)
CONSULTATION ( NUM_CONS, NUM_FIC_PAT,
DAT_CONS, MOTI_CONS, DIAG_CONS, NUM_ORDO#, NUM_MVT#, NUM_FIC_PAT#,
NUM_ACTE#, NUM_APCI#, NUM_CERT#, NUM_LETT_CONF# ).
TYPE_MOUVEMENT ( TYPE_MVT,
NUM_DEPEN#, TEL_PAT#, NUM_RECET# ).
DEPENSES ( NUM_DEPEN, ANN_DEPEN,
MOIS_DEPEN, MOTIF_DEPEN, MONT_DEPEN ).
IMPAYES ( TEL_PAT, MONT_APS_PAT,
DAT_IMP, MONT_PAT ) .
RECETTES ( NUM_RECET, DAT_RECET,
TARI_CONS, MODE_PAI_CONS )
|