Chapitre III – Conception et implémentation
32
III.1 Introduction
Dans ce chapitre, nous présentons les différentes étapes...
Chapitre III – Conception et implémentation
33
Elles sont finalement instanciées pour créer des objets (une classe est un ...
Chapitre III – Conception et implémentation
34
III.2.3 Diagramme de classes représente l’ordonnancement des
interventions ...
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...
Chapitre III – Conception et implémentation
36
III.4 Spécification du logiciel
Dans l’architecture de notre logiciel on a ...
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 don...
Chapitre III – Conception et implémentation
38
Pseudo code de la descente
nb=0;
nbs=0;
S0=solution initial;
CmaxS0=Cmax_in...
Chapitre III – Conception et implémentation
39
III.4.5 Les classes :
III.4.6 Connexion entre MySQL et Netbeans :
III.5 Dér...
Chapitre III – Conception et implémentation
40
Figure III.4– Autorisation d’accès
Cliquer le bouton « Aide » Pour plus d’i...
Chapitre III – Conception et implémentation
41
Accueil
Figure III.7-présente l’accueil de l’application.
La commande « Ajo...
Chapitre III – Conception et implémentation
42
Figure III.9-confirmer (oui/non) la demande d’ajout.
La commande « Supprime...
Chapitre III – Conception et implémentation
43
La commande Modifier
Accueil  Lits de réveille.
Sélectionner la ligne...
Chapitre III – Conception et implémentation
44
Figure III.14-présente le tableau des patients et la recherche.
Si ce derni...
Chapitre III – Conception et implémentation
45
Figure III.17-la fenêtre d’impression.
Ordonnancement
Accueil  Ordonn...
Chapitre III – Conception et implémentation
46
Un voisinage simple (permutation entre deux valeurs)
L’ordonnancement FIFO ...
Chapitre III – Conception et implémentation
47
Figure III.20-montre la représentation graphique du tableau III.2
Discussio...
Prochain SlideShare
Chargement dans…5
×

chap3 conception et implementation

229 vues

Publié le

le chapitre 3 du memoire de fin d'etude licence l.m.d ordonnancement des interventions chirurgicals par l'algorithme de décente

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
229
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
20
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

chap3 conception et implementation

  1. 1. 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.
  2. 2. 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
  3. 3. Chapitre III – Conception et implémentation 34 III.2.3 Diagramme de classes représente l’ordonnancement des interventions chirurgicales ORDONNER 1 ,1 FAIRE DANS 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
  4. 4. 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
  5. 5. 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 BDD BDD Solution initiale FIFO Optimiser par la Descente Données Bloc Intervention date N°bloc
  6. 6. 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.
  7. 7. 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
  8. 8. 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.
  9. 9. 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
  10. 10. 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.
  11. 11. 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.
  12. 12. 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.
  13. 13. 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 :
  14. 14. 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 :
  15. 15. 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
  16. 16. 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. 0 10 20 30 40 50 60 70 10 20 50 100 200 variation de Cmaxs en fonction de nombre d'iteration Cmaxs1 Cmaxs2 Cmax bloc

×