View
27
Download
8
Category
Preview:
Citation preview
Chapitre III – Conception et implémentation
32
III.1 Introduction
Dans ce chapitre, nous présentons les différentes étapes réalisées durant l’implémentation
de notre application, nous commençons à décrire la conception UML utilise, puis la création de
la base de données par WampServer, ensuite nous définissons les fonctionnalités de notre
application et enfin nous discutons les résultats obtenus.
III.2 Conception UML
III.2.1 Définition
"UML (Unified Modeling Language ) est un langage standard de l'industrie de la
modélisation avec un riche notation graphique, et ensemble complet de diagrammes et des
éléments. Un outil complet de modélisation UML Enterprise Architect comme est le moyen idéal
pour prendre le contrôle de logiciel ou projet d'entreprise maintenant! "
III.2.2 Diagramme de classes
Le diagramme de classes est un schéma utilisé en génie logiciel pour présenter
les classes et les interfaces des systèmes ainsi que les différentes relations entre celles-ci.
Ce diagramme fait partie de la partie statique d'UML car il fait abstraction des aspects temporels
et dynamiques.
Une classe décrit les responsabilités, le comportement et le type d'un ensemble d'objets.
Les éléments de cet ensemble sont les instances de la classe. (Figure III.1)
Une classe est un ensemble de fonctions et de données (attributs) qui sont liées ensemble
par un champ sémantique. Les classes sont utilisées dans la programmation orientée objet. Elles
permettent de modéliser un programme et ainsi de découper une tâche complexe en plusieurs
petits travaux simples.
Les classes peuvent être liées entre elles grâce au mécanisme d'héritage qui permet de
mettre en évidence des relations de parenté. D'autres relations sont possibles entre des classes,
chacune de ces relations est représentée par un arc spécifique dans le diagramme de classes.
Chapitre III – Conception et implémentation
33
Elles sont finalement instanciées pour créer des objets (une classe est un moule à objet :
elle décrit les caractéristiques des objets, les objets contiennent leurs valeurs propres pour
chacune de ces caractéristiques lorsqu'ils sont instanciés).
Figure III.1-représentation de la classe el les différentes relations
Nom d’association
Héritage
Agrégation faible
Agrégation forte
Nom de classe
Attributs
Méthodes () ;
Les relations entre 2 classes
Nom d’association
Nom d’association
Chapitre III – Conception et implémentation
34
III.2.3 Diagramme de classes représente l’ordonnancement des
interventions chirurgicales
ORDONNER
1 ,1
FAIREDANS
1 ,1
BLOC OPERATOIRE
#N°bloc
#Ouvert () ;
#Fermé () ;
ORDONNANCEMENT
+N°ord-Cmax-Type
-Ajouter () ;-Modifier () ;-Supprimer () ;-Afficher () ;
LIT SE REVEILLE
+N°lit
#Occuper () ;
#Libre () ;
SALLE D’OPERATION
+N°salle
#Occuper () ;
#Libre () ;
PATIENT
+N°patient-Nom-Prénom-Age-Maladie
-Ajouter () ;-Modifier () ;-Supprimer () ;-Afficher () ;
INTERVENTION
+N°intervention-Type -Date+Durée-Temps de réveille
-Ajouter () ;-Modifier () ;-Supprimer () ;-Afficher () ;
1 ,N 1 ,1
0,N
1 ,1 1 ,N
1 ,N
OPERER
APRES
III.3 Outils utilises
III.3.1 NetBeans IDE 7.0.1
Est un environnement de développement intégré
source par Sun en juin 2000 sous licence CDDL et GPLv2 (
Distribution License). En plus de Java, NetBeans
autres langages(Python , C, C++, JavaScript
les caractéristiques d'un IDE moderne (
éditeur graphique d'interfaces et de pages Web).
Conçu en Java, NetBeans est disponible sous
NetBeans constitue par ailleurs une plate forme qui permet le développement
d'applications spécifiques (bibliothèque
forme.L'IDE Netbeans s'enrichit à l'aide de greffons.
III.3.2 WampServer (anciennement
Est une plateforme de développement Web de type
fonctionner localement (sans se connecter à un serveur externe) des scripts
n'est pas en soi un logiciel, mais un environnement comprenant deux serveurs
(Apache et MySQL), un interpréteur de script (PHP), ainsi que
l'administration Web des bases MySQL.
MYSQL Est un système de gestion de base de données
partie des logiciels de gestion de base de données
prénom de la fille du cocréateur Michael Widenius, My. SQL f
Language, le langage de requête utilisé.
Chapitre III – Conception et implémentation
NetBeans IDE 7.0.1
environnement de développement intégré (EDI), placé en
ous licence CDDL et GPLv2 (Common Development and
). En plus de Java, NetBeans permet également de supporter
JavaScript, XML, Ruby, PHP et HTML). Il comprend toutes
IDE moderne (éditeur en couleur, projets multi- langage
éditeur graphique d'interfaces et de pages Web).
Conçu en Java, NetBeans est disponible sous Windows, Linux, Mac OS X….ect
NetBeans constitue par ailleurs une plate forme qui permet le développement
d'applications spécifiques (bibliothèque Swing (Java)). L'IDENetBeans s'appuie sur cette plate
forme.L'IDE Netbeans s'enrichit à l'aide de greffons.
(anciennement WAMP5)
Est une plateforme de développement Web de type WAMP, permettant de
fonctionner localement (sans se connecter à un serveur externe) des scripts PHP. WampServer
n'est pas en soi un logiciel, mais un environnement comprenant deux serveurs
), un interpréteur de script (PHP), ainsi que phpMy
l'administration Web des bases MySQL.
système de gestion de base de données relationnelle (SGBDR) Il fait
base de données les plus utilisés au monde Son nom vient du
prénom de la fille du cocréateur Michael Widenius, My. SQL fait allusion au Structured Query
utilisé.
Conception et implémentation
35
(EDI), placé en open
Common Development and
permet également de supporter Différents
). Il comprend toutes
langage, refactoring,
….ect
NetBeans constitue par ailleurs une plate forme qui permet le développement
s'appuie sur cette plate
, permettant de faire
. WampServer
n'est pas en soi un logiciel, mais un environnement comprenant deux serveurs
phpMyAdmin pour
(SGBDR) Il fait
Son nom vient du
Structured Query
Chapitre III – Conception et implémentation
36
III.4 Spécification du logiciel
Dans l’architecture de notre logiciel on a deux(02) modules, le premier est la création de
BDD qui est faite l’année passée, nous avons fait le deuxième module.
Notre application stocke et afficher les donnes dans la base de données grâce a la
connexion entre Mysql et java Netbeans.
Aussi permet de manipuler ces données avec des opérations (ajouter, supprimer,
modifier, rechercher et imprimer).
Enfin elle permet d’ordonne les interventions par deux stratégies (FIFO ou DESCENTE) et
de calculer Cmax de chaque salle et de bloc.
Figure III.2-représentation de la classe el les différentes relations
III.4.1 Base de données
Les bases de données (abrégées BDD) permettent de stocker et de structurer des
données. Le principal intérêt est de pouvoir accéder facilement et rapidement aux données, via
un système de gestion de base de données (SGBD), un logiciel permettant de manipuler les
données. Les instructions de manipulation sont envoyées grâce au langage SQL.
Création
BDDBDD
Solution initiale
FIFO
Optimiser par la
Descente
DonnéesBloc Intervention
date N°bloc
Chapitre III – Conception et implémentation
37
III.4.2 Création de notre Base de données
Apres avoir créer une base de donnes sous nom «ordonnancement », nous avons créer les 6
tables suivantes montrées dans le tableau ( III.1) avec leurs caractéristiques :
Figure III.3–les tables de la base de données «ordonnancement »
Tableau III.1-les tables avec leurs attributs dans la base de données
III.4.3 Ordonnancement et Optimisation
Nous avons ordonnancé les patients qui nécessitent les interventions par jour selon trois
cas, le premier cas c’est le cas initial en utilisant la procédure FIFO, par la suite nous avons opté
à optimiser ce cas initial en utilisant la méthode de Descente.
Les tables Les attributs
Bloc_operatoire N_bloc.
Intervention N_intr, Type,Date,Durée,Temps de réveille.
Lit N_lit,N_bloc.
Ordonnancement N_ord,type,Cmax,date d’intervention
Patient N_patient,Nom,Prenom,Age,maladie.
Salle_operation N_salle,N_bloc.
Chapitre III – Conception et implémentation
38
Pseudo code de la descente
nb=0;
nbs=0;
S0=solution initial;
CmaxS0=Cmax_initial;
Faire
Chercher S’ le voisin de S0;
Calculer CmaxS’ ;
Si (CmaxS’<CmaxS0) alors
S0 = S’, CmaxS0=CmaxS’ ; Incrémenter nb ;
Sinon //le cas où CmaxS’>=CmaxS0 Incrémenter nbs ;
Tantque ((nb< nombre d’itr avec amélioration) et (nbs< nombre d’itr sans amélioration))
Sortir par S0 comme solution finale.
III.4.4 Bibliothèque java utilise
Chapitre III – Conception et implémentation
39
III.4.5 Les classes :
III.4.6 Connexion entre MySQL et Netbeans :
III.5 Déroulement de l’application
III.5.1 Lancement de l’application
Autorisation d’accès
Apres avoir lancé l’application, Une fenêtre apparaitra qui demande de saisir le
pseudonyme et le mot de passe puis cliquer sur le bouton « Entrée » afin d’accédée a l’accueil de
application.
Chapitre III – Conception et implémentation
40
Figure III.4– Autorisation d’accès
Cliquer le bouton « Aide » Pour plus d’information et le message suivant apprêtera :
Figure III.5-message d’information
Si le mot de passe ou/et le pseudonyme est incorrecte(s), un message d’erreur apprêtera
(accès refuse).comme montre la figure suivante :
Figure III.6- message d’accès refuse
Chapitre III – Conception et implémentation
41
Accueil
Figure III.7-présente l’accueil de l’application.
La commande « Ajouter»
Accueil Interventions.
Remplir toutes les caisses puis cliquer sur le bouton « Ajouter », une boite de dialogue
apprêtera, demande de confirmer oui/non la commande
Figure III.8-présente le tableau des lits avec.
Chapitre III – Conception et implémentation
42
Figure III.9-confirmer (oui/non) la demande d’ajout.
La commande « Supprimer »
Accueil Blocs opératoires.
Sélectionner la ligne de bloc opératoire ou saisir le numéro de ce dernier dans la caisse puis
cliquer sur le bouton « supp ».
Figure III.10–la liste des blocs opératoires et la demande de suppression.
Une boite de dialogue apprêtera, demande de confirmer oui/non la commande de
suppression.
Figure III.11-confirmer (oui/non) la demande de suppression.
Chapitre III – Conception et implémentation
43
La commande Modifier
Accueil Lits de réveille.
Sélectionner la ligne de lit puis modifier la/les donnée(s) dans la/les caisse(s) qui
correspond puis cliquer sur le bouton « Ajouter ».
Figure III.12-présente le tableau des lits et la modification.
Une boite de dialogue apprêtera, demande de confirmer oui/non la commande de
modification.
Figure III.13-confirmer (oui/non) la demande de modification.
La commande Rechercher
Accueil Patients.
Saisir le numéro de patient recherche dans le champ de recherche puis taper entrée en
clavier ; la résultat de recherche apprêtera dans chaque caisse.
Chapitre III – Conception et implémentation
44
Figure III.14-présente le tableau des patients et la recherche.
Si ce dernier n’existe pas dans la table des patients, le message d’information apprêtera.
Comme suit :
Figure III.15- message informe que le numéro recherché n’existe pas.
La commande « Imprimer »
Accueil Patients Fichier imprimer.
Figure III.16-montre le contenu de Fichier dans la barre de menu.
Pour imprimer la liste des patients, cliquer sur « Fichier » dans la barre de menu puis sur
imprimer, la fenêtre suivant apprêtera :
Chapitre III – Conception et implémentation
45
Figure III.17-la fenêtre d’impression.
Ordonnancement
Accueil Ordonnancement.
Apres choisir la stratégie d’ordonnancement (FIFo/DESCENTE), entrée la date
d’intervention, le nombre d’itération (juste dans le choix « DESCENTE ») puis appuyer sur
« résultat » afin d’afficher l’ordonnancement des interventions, Cmax salle1 et salle 2, ainsi
Cmax bloc et afficher aussi les interventions ordonnées dans chaque des 2 salles.
1) Ordonnancement Fifo
Figure III.18-montre l’ordonnancement avec la stratégie « FIFO »
2) Ordonnancement DESCENTE
Nous avons utilise l’algorithme de descente de base avec les paramètres suivants :
Chapitre III – Conception et implémentation
46
Un voisinage simple (permutation entre deux valeurs)
L’ordonnancement FIFO comme solution initiale.
Le tableau suivant (tableau 1) montre les différents résultats obtenus par l’algorithme de
descente.
Figure III.19-montre l’ordonnancement avec la stratégie « DESCENTE »
Stratégie Nombre
d’itération
ordonnancement Cmaxs1 Cmaxs2 Cmax
bloc
FIFO / 1,2,3,4,5,7,8,9,10 14 18 26
Descente 10 2,3,5,7,8,4,1,9,10 18 14 24
20 1,9,4,3,8,7,10,5,2 17 15 26
50 7,3,9,10,1,5,8,2,4 14 18 24
100 2,9,10,4,1,8,3,5,7 14 18 24
200 5,4,9,8,1,7,2,10,3 16 16 24
Tableau III.2-un exemple d’ordonnancement par les Stratégies FIFO et DESCENTE
Chapitre III – Conception et implémentation
47
Figure III.20-montre la représentation graphique du tableau III.2
Discussion
On remarque que les ordonnancements obtenus sont divers dans tous les cas (solution
FIFO et les itérations de la Descente), ainsi que la valeur de Cmax bloc de la stratégie de
DESCENTE est plus optimale que celui de la stratégie FIFO. Mais pour les différentes
itérations, la valeur de Cmax bloc reste stable (voir tableau1). La figure (19) montre que la
variation de Cmaxs1 et Cmaxs2 est petite. Le meilleur résultat obtenu par la Descente est de
l’itération (200).
III.6 Conclusion
Dans ce chapitre nous avons présente la conception de notre diagramme de classes,
aussi nous avons décrit chacun de langage utilise java Netbeans et Wampserver, ainsi Mysql.
Nous avons présente notre base de données et les différents tables ainsi leurs
caractéristiques et enfin nous avons présente notre application qui a l’objectif d’ordonner les
interventions selon deux stratégies (FIFO, Descente) afin de minimiser le cout total des heures
dans les salles opératoires.
010203040506070
10 20 50 100 200
variation de Cmaxs en fonction de nombre d'iteration
Cmaxs1 Cmaxs2 Cmax bloc
Recommended