chap3 conception et implementation

16
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.

Upload: michel-martiz

Post on 12-Aug-2015

27 views

Category:

Education


8 download

TRANSCRIPT

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