Projet de fin d’études – Gestion de résidanat
• Modifier un résident
sd ModifierResident
Admin
Fenetre: Controller: Modele:
FenModification ControlModification ModelModification
InfosResident()
ModifierInfos()
Enregistrer()
EnregistrerResident(resident)
EnregistrerResident(int): int
AfficherProfil()
Profil
Figure 11: Diagramme de séquence de la modification d’un résident
HANAE CHRITA 29
Projet de fin d’études – Gestion de résidanat
• Générer les Statiques
sd GénéreSatatistiques
Admin
fenetre: FenStat Control: model: ModelStat
ControlStat
choisirCritere()
ChoisirCritere(critere)
GenerationStat(critere): Stat
stat()
AfficherStat()
Fermer()
Figure 12: Diagramme de séquence de la génération des statistiques
HANAE CHRITA 30
Projet de fin d’études – Gestion de résidanat
c. Le diagramme des classes
Ici, on va élaborer une version du diagramme de classes appelée aussi modèle du domaine. Ce
modèle doit définir les classes qui modélisent les entités ou concepts présents dans le domaine. Il
doit être indépendant des utilisateurs et de l’interface graphique, et ne contient que les classes
entités.
class Logical View
Statistique
Cursus
PersonelServ ice Critères
Génére
Compte 1..* - AnneeUniv: int
Appartient - CIN: String - faculte: String - Resultat: String
- login: String - Nom: String - nationalite: String
- mdp: String 1
- Prenom: String - niveau: String
Imprime - sexe: String
- situation: String 1..*
EtatSortie - specialite: String
1..* - type: String
- libelle: String
Congé Niv eau
Gère
- Annee: Date Avoir - libelle: String
- dateD: Date
- dateF: Date 1..*
- jours_consommés: int Résident
- nbJours: int
- reliquat: int - adresse: String Avoir
1..* - CIN: String
Avoir possède 1..* - CNE: String
1..* - dateEntree: Date
- dateNaiss: Date Stage
TypeCongé - email: String
- dateD: Date
- emailUniv: String effectue TypeStage
- libelle: String - dateF: Date Avoir
- lieuNaiss: String
- Plafond: int 1..* - decision: String
- nom: String - libelle: int
- duree: int 1..*
- nom_arabe: String
- lieu: String
- photo: String
Avoir - prenom: String
TypeRes Appartient
- prenom_arabe: String
- sexe: String
- libelle: String Avoir - situation: String
1 - tele: int
Serv iceHospitalier
Appartient 1
Avoir Avoir
- libelle: String
1 - libelleArabe: String
1
1
Nationalité
Spécialité 1
- libelle: String Bac
- libelle: String
FacultéRés
- serie: int - libelle_arabe: String
- type: String - libelle: String
1..*
Composé
Discipline
- Libelle: int
Figure 13: Le diagramme des classes de l'application "Gestion de résidanat"
HANAE CHRITA 31
Projet de fin d’études – Gestion de résidanat
2. La base de données
La figure suivante représente les tables de la base de données de l’application avec les clés
primaires, mais sans les clés secondaires, car je vais les créer manuellement à partir de ce diagramme :
class DDL
Statistique
«column»
Compte *PK statistiqueID: Integer
Stage «column» «PK»
login: VARCHAR(50) + PK_Statistique(Integer)
«column» mdp: VARCHAR(50)
dateD: Date *PK compteID: Integer
dateF: Date
decision: VARCHAR(50) «PK»
TypeStage
duree: INTEGER + PK_Compte(Integer) 1..* EtatSortie
lieu: VARCHAR(50) 1
«column»
*PK stageID: INTEGER «column»
libelle: VARCHAR(50)
PersonelServ ice libelle: VARCHAR(50)
*PK typeStageID: Integer
1..* «PK» *PK etatSortieID: Integer
+ PK_Stage(INTEGER) «column»
«PK»
+ PK_TypeStage(Integer) Nom: VARCHAR(50) «PK»
Prenom: VARCHAR(50) 1..* + PK_EtatSortie(Integer)
*PK personelServiceID: Integer
1..*
«PK»
+ PK_PersonelService(Integer)
Résident
Discipline
1..*
«column»
Spécialité «column»
Niv eau adresse: VARCHAR(50)
CIN: VARCHAR(50) *PK disciplineID: INTEGER
1..* «column» Libelle: VARCHAR(50)
«column» CNE: VARCHAR(50)
libelle: varchar(50)
libelle: VARCHAR(50) dateEntree: Date
1 libelle_arabe: varchar(50) 1..* «PK»
*PK niveauID: Integer dateNaiss: Date
*PK spécialitéID: Integer + PK_Discipline(INTEGER)
email: VARCHAR(50)
«PK» emailUniv: VARCHAR(50) 1 «PK»
+ PK_Niveau(Integer) lieuNaiss: VARCHAR(50)
+ PK_Spécialité(Integer)
nom: VARCHAR(50)
1..* Cursus nom_arabe: VARCHAR(50)
prenom: VARCHAR(50) Serv iceHospitalier
«column» prenom_arabe: VARCHAR(50)
AnneeUniv: DATE sexe: VARCHAR(50) «column»
RESULTAT: VARCHAR(50) 1 situation: VARCHAR(50) libelle: VARCHAR(50)
*PK cursusID: Integer tele: INTEGER 1 *PK serviceHospitalierID: Integer
*PK résidentID: Integer
«PK» photo: VARCHAR(50) «PK»
+ PK_Cursus() + PK_ServiceHospitalier(Integer)
«PK»
+ PK_Résident(Integer)
Congé TypeRes
«column» «column»
TypeCongé Annee: Date 1
1..* libelle: VARCHAR(50)
dateD: Date 1 *PK typeResID: Integer
«column» 1..* dateF: Date
libelle: VARCHAR(50) jours_consommés: int Nationalité «PK»
*PK typeCongéID: Integer nbJours: int 1 1 + PK_TypeRes(Integer)
Plafond: INTEGER reliquat: int «column»
*PK congéID: Integer Bac FacultéRés libelle: VARCHAR(50)
«PK»
+ PK_TypeCongé(Integer) *PK nationalitéID: Integer
«PK» «column» «column»
+ PK_Congé(Integer) type: VARCHAR(50) libelle: VARCHAR(50) «PK»
*PK bacID: Integer *PK faculteResID: INTEGER + PK_Nationalité(Integer)
«PK» «PK»
+ PK_Bac(Integer) + PK_FacultéRés(INTEGER)
Figure 14: les tables de la base de données
HANAE CHRITA 32
Projet de fin d’études – Gestion de résidanat
Le code généré à partir de ce diagramme à l’aide de l’AGL « ENTREPRISE ARCHITECT » est
le suivant : Je vais juste montrer l’exemple de la table « Résident »
DROP TABLE IF EXISTS Resident;
CREATE TABLE Resident
(
`residentID` Integer NOT NULL,
`adresse` VARCHAR(50) NOT NULL,
`CIN` VARCHAR(50) NOT NULL,
`CNE` VARCHAR(50) NOT NULL,
`dateEntree` Date ,
`dateNaiss` Date ,
`email` VARCHAR(50) NOT NULL,
`lieuNaiss` VARCHAR(50) NOT NULL,
`nom` VARCHAR(50) NULL,
`nom_arabe` VARCHAR(50) NOT NULL,
`prenom` VARCHAR(50) NOT NULL,
`prenom_arabe` VARCHAR(50) NOT NULL,
`sexe` VARCHAR(50) NOT NULL,
`situation` VARCHAR(50) NOT NULL,
`photo` VARCHAR(50) NOT NULL,
`tele` Integer NOT NULL,
CONSTRAINT `PK_Résident` PRIMARY KEY (`résidentID`)
) ;
• Après l’ajout des clés secondaires :
➢ conge(congeID, residentID, typeconID, dateDebut, dateFin, dateReprise,
joursConsomes, nbJours, reliquat, annee)
➢ typeConge(typeCongeID, libelle)
➢ resident(residentID, typeResID, faculteID, nationaliteID, bacID, specialiteID,
serviceHospID, niveauID, cin, cne, dateEntree, dateNaiss, email, emailUniv, lieuNaiss,
adresse, sexe, nom, nomArabe, prenom, prenomArabe, situation, tele)
➢ typeRes(typeResID, libelle)
➢ nationalite(nationaliteID, libelle)
➢ faculteRes(faculteID, libelle)
➢ bacRes(bacID, typeBac)
➢ niveau(niveauId, libelle)
HANAE CHRITA 33
Projet de fin d’études – Gestion de résidanat
➢ cursus(cursusID, residentID, niveauID, anneeUniv, etatRes)
➢ stage(stageID, residentID, typeStageID, niveauID, dateDebut, dateFin, duree, lieu,
decision)
➢ typeStage (typeStageID, libelle)
➢ personelService (personelID, compteID, cin, nom, prenom)
➢ compte (compteID, login, pwd)
➢ specialite (specialiteID, libelle)
➢ discipline (disciplineID, specialiteID, libelle)
➢ serviceHospitalier (serviceID, libelle, libelleArabe)
• Le code :
alter table conge add constraint fk_resident_conge foreign key(residentID) references
resident(residentID);
alter table conge add constraint fk_type_con foreign key(typeConID) references
typeConge(typeConID);
alter table resident add constraint fk_type_res foreign key(typeResID) references
typeres(typeResID);
alter table resident add constraint fk_fac_res foreign key(faculteID) references
faculteres(faculteID);
alter table resident add constraint fk_natio_res foreign key(nationaliteID) references
nationalite(nationaliteID);
alter table resident add constraint fk_bac_res foreign key(bacID) references bacres(bacID);
alter table resident add constraint fk_spec_res foreign key(specialiteID) references specialite
(specialiteID);
alter table resident add constraint fk_service_res foreign key(serviceHospID) references
servicehospitalier(serviceHospID);
HANAE CHRITA 34