WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et réalisation d?un site web dynamique pour la prise de rendez-vous médicale en ligne

( Télécharger le fichier original )
par Eskandar Kouicem + Azza Dridi + Med Nadir Boukelal
Université de Constantine 2 - Licence en informatique 2016
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Algérienne Démocratique et Populaire

Ministère de l'Enseignement Supérieur et de la Recherche Scientifique

Université Constantine 2 - AbdelHamidMehri

Faculté des Nouvelles Technologies de l'Information et de la Communication

Département des Technologies des Logiciels et Systèmes d'Information

Projet de fin d'études pour l'obtention du diplôme de

Licence en Informatique

Option : Systèmes d'Information

Thème

Conception etréalisationd'un siteweb

dynamiquepourlaprisederendez-vousmédicaleenligne

Dirigé par : Réalisé par :

M. Hichem Talbi Dridi Azza

BoukellelMed.Nadir

Kouicem Eskandar

- Session Juin 2016 -

REMERCIEMENTS

Nous nous devons de remercier ALLAH le tout puissant pour toute la volonté et le courage qu'il nous a données pour l'achèvement de ce travail.

Nous tenons à remercier notre jury Dr. Zarour Karim, qui a bien daigné siéger la soutenance de notre mémoire.

Aussi nous exprimons nos très sincères remerciements à notre encadreur Dr. TalbiHichem pour son soutien, ses conseils judicieux et sa grande bien vaillance durant l'élaboration de ce travail.

A la fin nos remerciements les plus sincères à toutes les personnes qui ont contribué de près ou de loin à l'élaboration de ce mémoire ainsi qu'à la réussite de cette formidable année universitaire.

Merci à tous.

Dédicaces

Au nom du dieu le clément et le miséricordieux louange à ALLAH le tout puissant.

Je dédie ce modeste travail en signe de respect, reconnaissance et de remerciement :

A mes chers parents

Ma maman : qui a oeuvré pour ma réussite, de par son amour, son soutien, tous les sacrifices consentis et ses précieux conseils, pour toute son assistance et sa présence dans ma vie, reçois à travers ce travail aussi modeste soit-il, l'expression de mes sentiments et de mon éternelle gratitude.

Mon papa : (ÑÍãå Çááå)Puisse Dieu faire en sorte que ce travail porte son fruit ; Merci pour les valeurs nobles, l'éducation et le soutient permanent venu de toi.

A mes chers frères

Abdelhamid, seif Eddineet hamza qui n'ont cessé d'être pour moi des exemples de persévérance, de courage et de générosité.

A mes chers ami(e)s et cousin(e)s

Oussama, Yacob, Lokmen, Fares, Mimi, Med_lamine, Akram,Khalil,Amir, Habib, Zaki, Abdesslam, Yazid etSofiane

Aussi à ma chère nièce Ellina et sans oublier ma chère Zeyneb.

A les meilleures des Trinômes

Kouicem Eskandar et Boukellel Nadir

Et enfin à tous ceux et celles qui sont chers

AZZA

Dédicaces

Au nom du dieu le clément et le miséricordieux louange à ALLAH le tout puissant.

Je dédie ce modeste travail en signe de respect, reconnaissance et de remerciement :

A mes chers parents

Ma maman : qui a oeuvré pour ma réussite, de par son amour, son soutien, tous les sacrifices consentis et ses précieux conseils, pour toute son assistance et sa présence dans ma vie, reçois à travers ce travail aussi modeste soit-il, l'expression de mes sentiments et de mon éternelle gratitude.

Mon papa : (ÑÍãå Çááå)Puisse Dieu faire en sorte que ce travail porte son fruit ; Merci pour les valeurs nobles, l'éducation et le soutient permanent venu de toi.

A mes chers frères et soeurs

KarimHouda et Moufidaqui n'ont cessé d'être pour moi des exemples de persévérance, de courage et de générosité.

A mes chers ami(e)s et cousin(e)s

Hamoudi, Akram, Amir, abdelaziz, Tarek, Zaki, Amer, Nabil, Habib, Kahlil,Abdesslam, Yamin, Khawla et Soraya

Aussi à mes chers neveux Wassim et Yahia.

A les meilleures des Trinômes

Kouicem Eskandar et Dridi Azza

Et enfin à tous ceux et celles qui sont chers

Med Nadir

Dédicaces

Au nom du dieu le clément et le miséricordieux louange à ALLAH le tout puissant.

Je dédie ce modeste travail en signe de respect, reconnaissance et de remerciement :

A mes chers parents

Ma maman : qui a oeuvré pour ma réussite, de par son amour, son soutien, tous les sacrifices consentis et ses précieux conseils, pour toute son assistance et sa présence dans ma vie, reçois à travers ce travail aussi modeste soit-il, l'expression de mes sentiments et de mon éternelle gratitude.

Mon papa : qui peut être fier et trouver ici le résultat de longues années de sacrifices et de privations pour m'aider à avancer dans la vie. Puisse Dieu faire en sorte que ce travail porte son fruit ; Merci pour les valeurs nobles, l'éducation et le soutient permanent venu de toi.

A mes chères frère et soeur

Amine et Lamisqui n'ont cessé d'être pour moi des exemples de persévérance, de courage et de générosité.

A mes chers ami(e)s et cousin(e)s

Abderahmane, Abdessetar, Wail,Khaled, Amine,Med_lamine, Akram, Amir, Khalil ,Habib, Zaki, Abdesslam, Sofiane , Khaoula et Soraya.

A les meilleures des Trinômes

Dridi Azza et BoukellelMed.Nadir

Et enfin à tous ceux et celles qui sont chers

Eskandar

Sommaire

Introduction générale : 1

Chapitre 1 : Etat de l'art 3

Introduction 3

1 Web 3

1.1 Introduction 3

1.2 L'évolution du web 4

1.3 Les sites statiques et dynamiques  5

1.3.1 Site statique 5

1.3.2 Site dynamique 5

2 Architecture Client-serveur 6

2.1 Présentation de l'architecture d'un système client/serveur 6

2.2 Avantages de l'architecture client/serveur 6

2.3 Fonctionnement d'un système client/serveur 7

2.4 Les différentes architectures client/serveur 7

2.4.1 L'architecture 2 tiers 7

2.4.2 L'architecture 3 tiers 8

2.4.3 L'architecture n-tiers 9

3 Le langage UML 9

3.1 Définition d'UML 9

3.1.1 Points fort d'UML 10

3.1.2 Points faibles d'UML  11

3.2 Les diagrammes 11

3.2.1 Définition d'un diagramme 11

3.2.2 Les différents types de diagrammes 11

4 Le choix de la méthode 15

4.1 Le processus unifié 15

4.1.1 Définition du processus unifié 15

4.1.2 Les caractéristiques du processus unifié 15

4.1.3 Cycle de vie du processus unifié 17

4.1.4 Les activités 18

4.1.5 Les phases 19

Conclusion : 20

Chapitre 2 :Etude préliminaire et spécification des besoins 21

Introduction 21

1 Etude préliminaire 21

1.1 Présentation générale du projet 21

1.2 Grands choix techniques 22

1.3 Grands choix fonctionnels 22

1.4 Grands besoins opérationnels 23

1.5 Description du contexte du système 23

1.5.1 Identification des acteurs 23

1.5.2 Identification des messages 24

1.6 Réalisation du diagramme de contexte dynamique 27

2 Elaboration du diagramme de cas d'utilisation 28

3 Description et représentation des scénarios 29

3.1.1 Définition du mot scénario 29

3.1.2 Elaboration des fiches descriptives 29

4 Représentation des diagrammes d'activité 33

5 Élaboration de diagramme de séquence 38

6 Diagramme de classes 44

6.1 Identification et description de classes 44

6.2 Élaboration de diagramme de classes 45

6.3 Règles de passage de l'orienté objets au relationnel 45

7 Schéma relationnelle 47

Conclusion 48

Chapitre 3 : Implémentation 49

Introduction 49

1 Ressources matérielles et logicielles utilisées 49

1.1 Ressources matérielles 49

1.2 Ressources logicielles 49

1.2.1 Le langage HTML et CSS 49

1.2.2 Le langage PHP 50

1.2.3 Le langage de requête SQL 50

1.2.4 JQUERY 50

1.2.5 WAMP 50

1.2.6 Dreamweaver 51

1.2.7 StarUML 51

1.2.8 Google maps 51

2 L'implémentation des données et des traitements 52

2.1 Code de recherche d'un médecin 52

2.2 Code de la prise de rendez-vous 54

2.3 Code de l'api google map 58

3 Présentation de l'utilisation et la manipulation du site à travers quelques interfaces 61

4 La structure des bases de données manipulées par l'application 67

Conclusion 69

Conclusion générale 70

Annexe: 71

liste des figures

Figure 1. 1 site web statique 5

Figure 1. 2 : site web dynamique 5

Figure 1. 3 : le fonctionnement d'un système client/serveur 7

Figure 1. 4 : les trois niveaux de l'application. 8

Figure 1. 5 : Itération d'UP 16

Figure 1. 6 : cycle de vie de UP 17

Figure 2. 1 : Diagramme de contexte dynamique. 3

Figure 2. 2: Diagramme de cas d'utilisation 28

Figure 2. 3:fiche descriptive « prendre RDV ». 29

Figure 2.4 : fiche descriptive « gérer RDV ». 30

Figure 2. 5 : fiche descriptive «s'inscrire ». 30

Figure 2. 6: fiche descriptive « annuler journée». 31

Figure 2. 7: fiche descriptive «valider compte médecin ». 31

Figure 2. 8:fiche descriptive « valider nouvelle spécialité pour médecin ». 32

Figure 2. 9:Diagramme d'activité « prendre RDV». 33

Figure 2. 10: Diagramme d'activité « gérer RDV». 34

Figure 2. 11: Diagramme d'activité « s'inscrire». 35

Figure 2. 12:Diagramme d'activité « annuler journée». 36

Figure 2. 13Diagramme d'activité « valider compte médecin». 36

Figure 2. 14:Diagramme d'activité « valider nouvelle spécialité pour médecin». 37

Figure 2. 15: Diagramme de séquence « Prendre RDV». 38

Figure 2. 16:Diagramme de séquence « gérer RDV». 39

Figure 2. 17:Diagramme de séquence « s'inscrire». 40

Figure 2. 18:Diagramme de séquence « annuler journée». 41

Figure 2. 19: valider comptes médecin 42

Figure 2. 20Diagramme de séquence « valider nouvelle spécialité pour médecin». 43

Figure 2. 21: diagramme de classes 45

Figure 3. 1 : interface : page d'accueil 3

Figure 3. 2 : interface: chercher un médecin 62

Figure 3. 3 : interface : résultat recherche 62

Figure 3. 4 : interface :inscription du médecin et configuration du son calendrier 63

Figure 3. 5 : interface :calendrier du médecin 64

Figure 3. 6 : interface: index médecin 65

Figure 3. 7 : interface: profil de gestionnaire 65

Figure 3. 8 : interface: valider un compte d'un médecin 66

Figure 3. 9 : description de la base de donné du site 67

Figure 3. 10 : table patient 67

Figure 3. 11 : la table médecin 67

Figure 3. 12 : table gestionnaire 67

Figure 3. 13 : table calendrier 68

Figure 3. 14 : table rendez_vous 68

Figure 3. 15 : la table spécialité 68

Figure 3. 16 : La table jour_férier 69

Figure 3. 17 : la table message 69

Figure 3. 18 : la table med_spec 69

1 Introduction générale :

Souvent aller chez le médecin est un exercice fastidieux ; il faut d'abord trouver le médecin pas trop loin de chez soi ou de son travail et si on a de la chance il faut encore faire preuve de patience dans la salle d'attente avant de pouvoir faire sa consultation.

Il arrive parfois qu'on cherche longtemps alors qu'un médecin se trouve à quelques pas de soi, dans d'autres cas, le  médecin est absent ou le cabinet a changé d'adresse sans qu'on le sache.

La gestion des rendez-vous médicaux est une vitalité indispensable dans le déroulement des activités normale d'un cabinet médicale. Notre travail consiste donc à la conception et l'implémentation d'un site web dynamique de gestion de la prise de rendez-vous qui prendra en compte toutes les contraintes qui peuvent survenir lorsqu'un patient établi des réservations.

A travers notre site, il est possible de prendre un rendez-vous selon les critères souhaités par le patient (lieux, temps et spécialité) ainsi aux médecins degérer leurs rendez-vous.

Le but de notre projet est de bien faciliter la tâche au patient et au médecin ainsi que le gain de temps et de distance.

Notre travail est présenté par trois chapitres :

Chapitre1 : dans ce chapitre on va parler des concepts de base qu'on a utilisée durant le développement de notre site (UML, l'approche de développement utilisée, etc.).

Chapitre2 :dans ce chapitre nous allons présenter le résultat de l'étude effectuée sur le système qui contient deux parties : Cahier de charge ainsi que les diagrammes obtenus par les différentes phases du processus de développement.

Chapitre3 :ce chapitre contient la partie pratique de notre projet dans lequel nous allons présenter :

- Les ressources matérielles et logicielles utilisées pour la réalisation du projet.

- L'implémentation des données et des traitements

- Présente brièvement l'utilisation et la manipulation du logiciel à travers quelques interfaces.

- Présente la structure des bases de données manipulées par l'application.

- En plus de ces chapitres notre mémoire doit contenir une conclusion générale et perspective.

2 Chapitre I

Etat de l'art

3 Introduction 

Dans ce chapitre, nous allons définir les notions clés jugées nécessaires pour notre étude. Ces notions sont : Web (un bref historique du web et la différence entre un site statique et un site dynamique) et Architecture Client / Serveur et ses types. Nous allons aussi présenter les concepts de base du langage de notation utilisé durant la modélisation de notre projet qui est UML ainsi que UP (Unifiesprocessus) comme processus de développement.

4 Web

5 Introduction [1]

Le World Wide Web, communément appelé le Web, parfois la Toile, littéralement la « toile d'araignée mondiale », est un système hypertexte public fonctionnant sur Internet et qui permet de consulter, avec un navigateur, des pages mises en ligne dans des sites. L'image de la toile vient des hyperliens qui lient les pages Web entre elles.

La page web permet à la fois l'affichage de textes, d'images et de formulaires de saisie mais peut également appeler et afficher différents autres types de documents numériques: son, vidéo, application...

Le concept du World Wide Web a été créé à partir de 1989 au CERN (centre Européen des recherches nucléaires) par Tim Berner-Lee, puis développé par lui-même et Robert Cailliaud en 1990 dans le but de concevoir un système permettant de naviguer simplement d'un espace à un autre d'internet à l'aide de liens hypertextes et grâce à un navigateur.

En 1993, un navigateur Web graphique, nommé Mosaic, reposant sur les principes de la toile tels qu'ils ont été formulés par l'équipe de CERN de Tim Berner-Lee, notamment le http est développé par Eric Bina et Marc Andersen au NCSA.

NCSA Mosaicétablit les bases de l'interface graphique des navigateurs modernes et cause un accroissement exponentiel de la popularité du web.

5.1 L'évolution du web [2]

Le web est sans nul doute une technologie majeure du 21ème siècle. Et si sa nature, sa structure et son utilisation ont évolué au cours du temps, force est de constater que cette évolution a également profondément modifié nos pratiques commerciales et sociales.

Le web1.0, (1991-1999) encore appelé web traditionnel, est avant tout un web statique, centré sur la distribution d'informations. Il se caractérise par des sites orientés produits, qui sollicitent peu l'intervention des utilisateurs. Les premiers sites d'e-commerce datent de cette époque. Le coût des programmes et logiciels propriétaires est énorme et l'explosion de la bulle dot.com, en 2000, remet en question cette approche de la toile.

Le web2.0, (2000-2009) ou web social, change totalement de perspective. Il privilégie la dimension de partage et d'échange d'informations et de contenus (textes, vidéos, images ou autres). Il voit l'émergence des réseaux sociaux, des Smartphones et des blogs. Le web se démocratise et se dynamise. L'avis du consommateur est sollicité en permanence et il prend goût à cette socialisation virtuelle. Toutefois, la prolifération de contenus de qualité inégale engendre une « infobésité » difficile à contrôler.

Le web3.0, (2010-xx) aussi nommé web sémantique, vise à organiser la masse d'informations disponibles en fonction du contexte et des besoins de chaque utilisateur, en tenant compte de sa localisation, de ses préférences, etc. C'est un web qui tente de donner sens aux données. C'est aussi un web plus portable et qui fait de plus en plus le lien entre monde réel et monde virtuel. Il répond aux besoins d'utilisateurs mobiles, toujours connectés à travers une multitude de supports et d'applications malines !!ou ludiques.

Le web4.0, (2020 ?-xx) évoqué par certains comme le web intelligent, effraie autant qu'il fascine, puisqu'il vise à immerger l'individu dans un environnement (web) de plus en plus prégnant. Il pousse à son paroxysme la voie de la personnalisation ouverte par le web 3.0 mais il pose par la même occasion de nombreuses questions quant à la protection de la vie privée, au contrôle des données.

5.2 Les sites statiques et dynamiques [1]

5.2.1 Site statique

Figure 1. 1 site web statique [1]

Les pages du site ne sont pas modifiables par des utilisateurs. Le site est donc rempli et mis à jour par l'administrateur qui le fait depuis son poste de travail. Une fois le site mis à jour sur l'ordinateur de l'administrateur, celui-ci devra être envoyé sur le site via FTP. Le site est dit statique car les pages HTML qui le composent sont toujours identiques entre deux visites sans mise à jour. Le serveur donc n'a pas besoin de éléments de Scripting.

figure1. 1:site web statique [1]

5.2.2 Site dynamique

Figure 1. 2 : site web dynamique [2]

Les pages du site qui le composent peuvent être modifiables par les visiteurs. De plus, entre deux visites sur un même site, le contenu de la page peut être différent sans action de l'administrateur du site Internet. Les grandes applications de ce type de site sont : les forums, les Wiki (Wikipédia étant le plus grand représentant du genre) et tous les sites communautaires (Facebook, Twitter, hi5, etc.). Le serveur qui fait fonctionner le site utilise une technologie de Scripting (comme PHP, Ruby, Python ou Perl) ainsi qu'une base de données comme MySQL.

6 Architecture Client-serveur

6.1 Présentation de l'architecture d'un système client/serveur [3]

De nombreuses applications fonctionnent selon un environnement client/serveur, cela signifie que des machines clientes (des machines faisant partie du réseau) contactent un serveur, une machine généralement très puissante en termes de capacités d'entrée-sortie, qui leur fournit des services. Ces services sont des programmes fournissant des données telles que l'heure, des fichiers, une connexion, etc. Les services sont exploités par des programmes, appelés programmes clients, s'exécutant sur les machines clientes. On parle ainsi de client (client FTP, client de messagerie, etc.) lorsque l'on désigne un programme tournant sur une machine cliente, capable de traiter des informations qu'il récupère auprès d'un serveur (dans le cas du client FTP il s'agit de fichiers, tandis que pour le client de messagerie il s'agit de courrier électronique).

6.2 Avantages de l'architecture client/serveur

Le modèle client/serveur est particulièrement recommandé pour des réseaux nécessitant un grand niveau de fiabilité, ses principaux atouts sont :

Des ressources centralisées : étant donné que le serveur est au centre du réseau, il peut gérer des ressources communes à tous les utilisateurs, comme par exemple une base de données centralisée, afin d'éviter les problèmes de redondance et de contradiction

Une meilleure sécurité : car le nombre de points d'entrée permettant l'accès aux données est moins important

Une administration au niveau serveur : les clients ayant peu d'importance dans ce modèle, ils ont moins besoin d'être administrés

Un réseau évolutif : grâce à cette architecture il est possible de supprimer ou rajouter des clients sans perturber le fonctionnement du réseau et sans modification majeure. Inconvénients du modèle client/serveur

L'architecture client/serveur a tout de même quelques lacunes parmi lesquelles :un coût élevé dû à la technicité du serveur, un maillon faible : le serveur est le seul maillon faibledu réseau client/serveur, étant donné que tout le réseau est architecturé autour de lui ! Heureusement, le serveur a une grande tolérance aux pannes (notamment grâce au système RAID).

6.3 Fonctionnement d'un système client/serveur :

Client

Client

Serveur

Un système client/serveur fonctionne selon le schéma suivant :

Figure 1. 3 : le fonctionnement d'un système client/serveur

Le client émet une requête vers le serveur grâce à son adresse IP et le port, qui désigne un service particulier du serveur.Le serveur reçoit la demande et répond à l'aide de l'adressede la machine cliente et son port.

6.4 Les différentes architectures client/serveur [4]

6.4.1 L'architecture 2 tiers

Dans une architecture deux tiers, encore appelée client-serveur de première génération ouclient-serveur de données, le poste client se contente de déléguer la gestion des données àun service spécialisé. Le cas typique de cette architecture est une application de gestionfonctionnant sous Windows ou Linux et exploitant un SGBD centralisé.

Ce type d'application permet de tirer parti de la puissance des ordinateurs déployés enréseau pour fournir à l'utilisateur une interface riche, tout en garantissant la cohérencedes données, qui restent gérées de façon centralisée.

La gestion des données est prise en charge par un SGBD centralisé, s'exécutant le plussouvent sur un serveur dédié. Ce dernier est interrogé en utilisant un langage de requête qui, le plus souvent, est SQL. Le dialogue entre client et serveur se résume donc à l'envoide requêtes et au retour des données correspondant aux requêtes

6.4.2 L'architecture 3 tiers

Les limites de l'architecture deux tiers proviennent en grande partie de la nature du client utilisé :

· le frontal est complexe et non standard (même s'il s'agit presque toujours d'un PC sous Windows).

· le middleware entre client et serveur n'est pas standard (dépend de la plate-forme, du SGBD ...).

La solution résiderait donc dans l'utilisation d'un poste client simple communicant avecle serveur par le biais d'un protocole standard.

Dans ce but, l'architecture trois tiers applique les principes suivants :les données sont toujours gérées de façon centralisée, la présentation est toujours prise en charge par le poste client et la logique applicative est prise en charge par un serveur intermédiaire.

Cette architecture trois tiers, également appelée client-serveur de deuxième génération ouclient-serveur distribué sépare l'application en 3 niveaux de services distincts, conformes au principe précédent :

· Premier niveau : l'affichage et les traitements locaux (contrôles de saisie, mise en forme de données...) sont pris en charge par le poste client.

· Deuxième niveau : les traitements applicatifs globaux sont pris en charge par le service applicatif.

· Troisième niveau : les services de base de données sont pris en charge par un SGBD.

Figure 1. 4 : les trois niveaux de l'application. [5]

6.4.3 L'architecture n-tiers

L'architecture n-tiers a été pensée pour pallier aux limites des architectures trois tiers et concevoir des applications puissantes et simples à maintenir. Ce type d'architecture permet de distribuer plus librement la logique applicative, ce qui facilite la répartition de la charge entre tous les niveaux.

Cette évolution des architectures trois tiers met en oeuvre une approche objet pour offrir une plus grande souplesse d'implémentation et faciliter la réutilisation des développements.

Cette architecture est basée sur l'utilisation de composants "métier'', spécialisés et indépendants, introduits par les concepts orientés objets (langages de programmation et middleware). Elle permet de tirer pleinement partie de la notion de composants métiers réutilisables.

Ces composants rendent un service si possible générique et clairement identifié. Ils sont capables de communiquer entre eux et peuvent donc coopérer en étant implantés sur des machines distinctes.

7 Le langage UML

7.1 Définition d'UML [6][7]

C'est un langage de modélisation graphique à base de pictogrammes, conçu pourreprésenter, spécifier les artefacts de systèmes logiciels, de plus il est destiné àcomprendre et décrire des besoins spécifiés et documentés des systèmes, esquissé desarchitectures logicielles, concevoir des solutions et communiquer des points de vue,comme il peut être appliqué à toutes sortes de systèmes ne se limitant pas au domaineinformatique.

UML résulte de l'unification de techniques ayant fait leurs preuves pour l'analyse etla conception de grands logiciels et de systèmes complexes.

UML est une norme

Il est nécessaire qu'une méthode objet soit définie de manière rigoureuse et uniqueafin de lever les ambiguïtés. De nombreuses méthodes objet ont été définies, maisaucune n'a su s'imposer en raison du manque de standardisation. C'est pourquoil'ensemble des acteurs du monde informatique a fondé en 1989 l'OMG (ObjectManagementGroup), une organisation à but non lucratif, dont le but est de mettre aupoint des standards garantissant la compatibilité entre des applications programmées àl'aide de langages objet et fonctionnant sur des réseaux hétérogènes (de différentstypes).

A partir de 1997, UML est devenue une norme de l'OMG, ce qui lui a permis des'imposer en tant que langage de modélisation objet et être reconnue et utilisée par denombreuses entreprises.

UML est un langage de modélisation objet

UML comble une lacune importante des technologies objet, il permet d'exprimer,d'élaborer et de modéliser au sens de la théorie des langages, de ce fait il contient leséléments constitutifs de ce derniers : concepts, une syntaxe et une sémantique.

UML décrit un méta modèle

La puissance et l'intérêt d'UML est qu'il normalise la sémantique des concepts qu'ilvéhicule, il repose sur un méta modèle pour permettre à n'importe qui de déchiffrer sonintention de manière non équivoque, il est donc primordiale de s'accorder sur la sémantique des éléments de modélisation, bien avant de s'intéresser à la manière de lesprésenter.

7.1.1 Points fort d'UML [8]

Il permet ainsi :

· un gain de précision.

· un gage de stabilité.

· l'utilisation d'outils.

· Il cadre l'analyse et facilite la compréhension de représentations abstraites complexes. Son caractère polyvalent et sa souplesse en font un langage universel.

7.1.2 Points faibles d'UML [8]

· La mise en pratique d'UML nécessite un apprentissage et passe par une période d'adaptation.

· L'intégration d'UML dans un processus n'est pas triviale, et améliorer un processus est une tâche complexe et longue.

7.2 Les diagrammes[7]

7.2.1 Définition d'un diagramme

Un diagramme UML est une représentation graphique, qui s'intéresse à unaspect précis du modèle.

Chaque type de diagramme UML possède une structure et véhicule unesémantique précise.

7.2.2 Les différents types de diagrammes

Diagrammes structurels ou diagrammes statiques :

· Diagramme de classes :

Les diagrammes de classes expriment de manière générale la structure statiqued'un système, en termes de classes et de relations entre ses classes. Outre les classes, ilsreprésentent un ensemble d'interfaces et de paquetages, ainsi que leurs relations.

Les diagrammes de classes contiennent généralement les éléments suivant :

Les classes:Une classe est la description d'un ensemble d'objet qui partage lesmêmes attributs, les mêmes opérations, les mêmes relations et la même sémantique.

Une classe est symbolisée par un rectangle.

Attribut : Un attribut est une propriété nommée d'une classe qui décrit unensemble de valeurs que les instances de cette propriété peuvent prendre. Une classepeut ne pas avoir, comme elle peut avoir un ou plusieurs attributs.

Opération : Une opération est une abstraction de ce que peut réaliser un objet etqui est réalisable par tous les objets de la classe. Une classe peut ne pas avoir commeelle peut avoir plusieurs opérations.

Les relations d'association d'agrégation et de composition :

Une association : représente une relation sémantique durable entre deux classes.

Une agrégation : est un particulier d'association non symétrique exprimant une relationde contenance.

Une composition : est une agrégation plus forte.

· Diagramme d'objets :

Les diagrammes d'objets servent, d'une part à inventorier les objets (i.e lesinstances de classes) composant une application à un instant donné ainsi que lesrelations, d'autre part à donner une image statique des relations entre ces objets. Ilspeuvent également être mis en oeuvre pour tester la pertinence d'un diagramme declasses.

· Diagramme de composant :

Les diagrammes de composants servent à représenter la configuration logicielleainsi que les relations d'un système, on permettant également de représenter lesprogrammes, les sous programmes et les interrelations.

· Diagramme de déploiement :

Les diagrammes de déploiement représentent un ensemble de noeuds ainsi que leursrelations. On les utilise pour illustrer la vue de déploiement statique d'une architecture.
Les diagrammes de déploiement sont apparentés aux diagrammes de composant car un noeud englobe généralement un ou plusieurs composants.

· Diagramme de cas d'utilisation :

Les diagrammes de cas d'utilisation représentent un ensemble de cas d'utilisation,d'acteurs et leurs relations. Ils représentent la vue statique des cas d'utilisation d'unsystème et sont particulièrement importants dans l'organisation et la modélisation descomportements d'un système.

Les cas d'utilisation : Les cas d'utilisation décrivent, sous la forme d'actions etde réactions, le comportement, ou tout simplement ce que fait le système du point devue de l'utilisateur, encore appelé acteur. On recense, de la sorte, l'ensemble desfonctionnalités d'un système en examinant les besoins fonctionnels de chaque acteur.

Les acteurs : Un acteur représente un ensemble cohérent de rôles joués par lesutilisateurs des cas d'utilisation en interaction avec ces cas d'utilisation. En règlegénérale, un acteur représente un rôle qu'un homme, une machine ou même un autresystème joue avec le système. Il existe 4 grandes catégories d'acteurs :

Les acteurs principaux personnes qui utilisent lesfonctions principales du système.
Les acteurs secondaires personnes qui effectuent destâches administratives ou de maintenance.
Le matériel externe dispositifs matériels autres queles ordinateurs comme les périphériques.
Les autres systèmes avec lesquels lesystème interagit.

Les relations entre les cas d'utilisations: UML définit trois types de relationsstandardisées entre cas d'utilisation, détaillées ci-après :

Ø La relation d'inclusion: formalisée par le mot clé « include », le cas d'utilisation de base en incorpore explicitement un autre de façon obligatoire.

Ø La relation d'extension : formalisée par le mot clé « extend », le cas d'utilisation de base en incorpore explicitement un autre, de façon optionnelle.

Ø La relation de généralisation ou spécialisation : Les cas d'utilisation descendant hérite de la description de leur parent commun. Chacun entre eux peut néanmoins comprendre des interactions spécifiques supplémentaires.

Diagrammes comportementaux ou diagrammes dynamiques :

· Diagramme d'activité :

Le diagramme d'activité est attaché à une catégorie de classe et décrit ledéroulement des activités de cette catégorie. Le déroulement s'appelle "flot de contrôle». Il indique la part prise par chaque objet dans l'exécution d'un travail. Il sera enrichi parles conditions de Séquencement.

· Diagramme d'états-transitions :

Ils ont pour rôle de représenter les traitements (opérations) qui vont gérer ledomaine étudié. Ils définissent l'enchaînement des états de classe et font donc apparaître l'ordonnancement des travaux. Le diagramme d'états-transition est associé à une classepour laquelle on gère différents états : il permet de représenter tous les états possiblesainsi que les événements qui provoquent les changements d'état.

· Diagramme de séquence :

Un diagramme de séquence met en évidence le classement des messages par ordrechronologique. On forme un diagramme de séquence en plaçant d'abord les objets quiparticipent à l'interaction en haut du diagramme. Le long de l'axe des abscisses. Engénérale. On place l'objet qui débute l'interaction à gauche, puis on continue enprogressant vers la droite, les objets les plus subordonnés étant tout à fait à droite. Onplace ensuite les messages envoyés et reçus par ces objets le long de l'axe désordonné, par ordre chronologique, du haut vers le bas. Cela donne au lecteur uneindication visuelle claire du flot de contrôle dans le temps.

En générale, les diagrammes de séquence contiennent :

L'objet : est une manifestation concrète d'une abstraction à laquelle on peutappliquer un ensemble d'opérations et qui possède un état capable de mémoriser leseffets de ces opérations. On représente un objet en soulignant son nom.

Le lien: est une liaison sémantique entre objets, en générale, il s'agit d'uneinstance d'une association. Chaque fois qu'une classe est reliée à une autre par uneassociation, il peut y avoir un lien entre les instances des deux classes, et chaque fois qu'un lien existe entre deux objets, le premier objet peut envoyer un message audeuxième.

Le message : est la spécification d'une communication entre objets, quitransporte des informations et qui s'affiche dans le but de déclencher une activité. Laréception d'une instance de message peut être considérée comme une instance d'unévénement.

· Diagramme de collaboration :

Les diagrammes de collaboration (tout comme les diagrammes de séquence) sontdes cas particuliers de diagrammes d'interactions qui représentent une vue dynamiquedu système. Les diagrammes de collaboration présentent un ensemble de rôles jouéspar des objets dans un contexte particulier, ainsi que les liens entre ces objets.

8 Le choix de la méthode

Il existe plusieurs méthodes de développement logiciel construites sur UMLcomme la méthode : UP, RUP, TTUP, UP agile, XP, 2TUP .....

Parmi ses méthodes notre choix est porté sur la méthode UP (UnifiedProcess).

8.1 Le processus unifié[7]

8.1.1 Définition du processus unifié

Le processus unifié est un processus de développement logiciel itératif, centré surl'architecture, piloté par des cas d'utilisation et orienté vers la diminution des risques.C'est un patron de processus pouvant être adaptée à une large classe de systèmeslogiciels, à différents domaines d'application, à différents types d'entreprises, àdifférents niveaux de compétences et à différentes tailles de l'entreprise.

8.1.2 Les caractéristiques du processus unifié

· UP est itératif et incrémental :

Le projet est découpé en itérations ou étapes de courte durée qui permettent de mieux suivre l'avancement global. A la fin de chaque itération une partie exécutabledu système finale est produite, de façon incrémentale (par ajout).La figure 1.5 illustre l'itération d'UP.

Figure 1. 5 : Itération d'UP [7]

· UP est centré sur l'architecture :

Tout système complexe doit être décomposé en partie modulaire afin d'en faciliterla maintenance et l'évolution. Cette architecture (fonctionnelle, logique, matérielle, etc.)doit être modéliser en UML, et pas seulement documentée en texte.

· UP est guidé par les cas d'utilisation d'UML :

Le but principal d'un système d'informatique est de satisfaire les besoin de client.Le processus de développement sera donc axé sur l'utilisateur. Les cas d'utilisationpermettent d'illustrer ces besoins. Ils détectent puis décrivent les besoins fonctionnels etleur ensemble constitue le modèle de cas d'utilisation qui dicte les fonctionnalitéscomplètes du système.

· UP est piloté par les risques :

Les risques majeurs du projet doivent être identifiés au plus tôt mais surtout levés leplus rapidement. Les mesures à prendre dans ce cadre déterminent l'ordre des itérations

8.1.3 Cycle de vie du processus unifié[9]

L'objectif d'un processus unifié est de maîtriser la complexité des projetsinformatiques en diminuant les risques. UP est un ensemble de principes génériquesadapté en fonctions des spécificités des projets.

L'architecture bidirectionnelle:UP gère le processus de développement pardeux axes. (Figure 1.6).

L'axe vertical:représente les principaux enchaînements d'activités, quiregroupent les activités selon leur nature. Cette dimension rend compte l'aspect statiquedu processus qui s'exprime en termes de composants, de processus, d'activités,d'enchaînements, d'artefacts et de travailleurs.

L'axe horizontal:représente le temps et montre le déroulement du cycle de viedu processus; cette dimension rend compte de l'aspect dynamique du processus quis'exprime en terme de cycles, de phases, d'itérations et de jalons.

Figure 1. 6 : cycle de vie de UP

Pour mener efficacement un tel cycle, les développeurs ont besoins de toutes lesreprésentations du produit logiciel :

Ø Un modèle de cas d'utilisation.

Ø Un modèle d'analyse : détailler les cas d'utilisation.

Ø Un modèle de conception : définissant la structure statique du système sous forme de sous-systèmes, de classes et interfaces.

Ø Un modèle d'implémentation : intégrant les composants

Ø Un modèle de déploiement : définissant les noeuds physiques des ordinateurs

Ø Un modèle de test : décrivant les cas de test vérifiant les cas d'utilisation

Ø Une représentation de l'architecture.

8.1.4 Les activités

· Expression des besoins :

L'expression des besoins comme son nom l'indique, permet de définir les différentsbesoins :

Ø inventorier les besoins principaux et fournir une liste de leurs fonctions ;

Ø recenser les besoins fonctionnels (du point de vue de l'utilisateur) qui conduisent à l'élaboration des modèles de cas d'utilisation ;

Ø appréhender les besoins non fonctionnels (techniques) et livrer une liste des exigences.

Le modèle de cas d'utilisation présente le système du point de vue de l'utilisateur etreprésente sous forme de cas d'utilisation et d'acteur, les besoins du client

· Analyse :

L'objectif de l'analyse est d'accéder à une compréhension des besoins et desexigences du client. Il s'agit de livrer des spécifications pour permettre de choisir laconception de la solution.

Un modèle d'analyse livre une spécification complète des besoins issus des casd'utilisation et les structure sous une forme qui facilite la compréhension (scénarios), lapréparation (définition de l'architecture), la modification et la maintenance du futursystème. Il s'écrit dans le langage des développeurs et peut être considéré comme une première ébauche du modèle de conception.

· Conception :

La conception permet d'acquérir une compréhension approfondie des contraintesliées au langage de programmation, à l'utilisation des composants et au systèmed'exploitation. Elle détermine les principales interfaces et les transcrit à l'aide d'une notation commune.

Ø Elle constitue un point de départ à l'implémentation.

Ø Elle décompose le travail d'implémentation en sous-système.

Ø Elle crée une abstraction transparente de l'implémentation.

· Implémentation :

L'implémentation est le résultat de la conception pour implémenter le système sousformes de composants, c'est-à-dire, de code source, de scripts, de binaires, d'exécutableet d'autres éléments du même type.

Les objectifs principaux de l'implémentation sont de planifier les intégrations descomposants pour chaque itération, et de produire les classes et les sous-systèmes sousformes de codes sources.

· Test :

Les tests permettent de vérifier des résultats de l'implémentation en testant laconstruction. Pour mener à bien ces tests, il faut les planifier pour chaque itération, lesimplémenter en créant des cas de tests, effectuer ces tests et prendre en compte lerésultat de chacun.

8.1.5 Les phases

· Analyse des besoins :

L'analyse des besoins donne une vue du projet sous forme de produit fini. Cettephase porte essentiellement sur les besoins principaux (du point de vue de l'utilisateur),l'architecture générale du système, les risques majeurs, les délais et les coûts.

· Elaboration :

L'élaboration reprend les éléments de la phase d'analyse des besoins et les précisepour arriver à une spécification détaillée de la solution à mettre en oeuvre.

L'élaboration permet de préciser la plupart des cas d'utilisation, de concevoirl'architecture du système et surtout de déterminer l'architecture de référence.

· Construction :

La construction est le moment où l'on construit le produit. L'architecture deréférence se métamorphose en produit complet. Le produit contient tous les casd'utilisation que les chefs de projet, en accord avec les utilisateurs ont décidé de mettre au point pour cette version.

· Transition :

Le produit est en version bêta. Un groupe d'utilisateurs essaye le produit et détecteles anomalies et défauts. Cette phase suppose des activités comme la formation desutilisateurs clients, la mise en oeuvre d'un service d'assistance et la correction desanomalies constatées.

Tout simplement la phase de transition permet de faire passer le systèmeinformatique des mains des développeurs à celles des utilisateurs finaux.

9 Conclusion :

Ce chapitre a été consacré à la présentation générale du web, l'architecture client/serveur ainsi que le langage UMLet le processus unifié.Ces informations ont été reportées sous forme de trois parties principales :

La première partie concerne le web, la deuxième partie concerne l'architecture client/serveur et la troisième partie concerne le langage UML et le processus unifié.

Le chapitre suivant définit la conception de notre système.

10 Chapitre II

Etude préliminaire et spécification des besoins

11 Introduction

La réalisation d'un site web doit être impérativement précédée d'une méthodologie d'analyse et de conception qui a pour objectif de permettre de formaliser les étapes préliminaires du développement d'un site afin de rendre ce développement plus fidèle aux besoins du client. Après la présentation des différents concepts du web, l'architecture client/serveur, le langage de modélisation UML et le processus de développement UP, nous allons consacrer ce chapitre, à l'aide de ces derniers,à l'étude préliminaire et spécification des besoins de notre système d'information.

1 Etude préliminaire

L'étude préliminaire est la toute première étape du processus de développement. Elle permet de faire un premier repérage des besoins fonctionnels et opérationnels en utilisant principalement du texte ou des diagrammes très simples.

Dans cette phase nous allons donner une présentation générale de projet.Aussi nous allons définir les grands choix technique, et déterminer les besoins fonctionnels et opérationnels de notre projet.

Cette phase est résumée dans les points suivants : 

1.1 Présentation générale du projet 

L'objectif fondamental du site est de :

Ø permettre aux patientsde prendre des rendez-vous chez les médecins disponibles sur notre site.

Ø mettre à disposition des médecins la possibilitéde gérerleurtemps de travail en ligne.

Ø offrir un espace privé aux gestionnaires afin de gérer les médecins et leurs spécialitéspour prévenir toute déroute.

1.2 Grands choix techniques 

Pour le développement de notre projet on va utiliser les techniques suivantes :

Ø Le processus de développement à suivre : UP (UnifiedProcess).

Ø Le langage de modélisation : UML 2.0.

Ø L'architecture de système : Bases de données Client/serveur (MySQL).

Ø Langage de programmation : PHP, JAVA SCRIPT, HTML, CSS.

Ø Plate-forme disponible : PC, windows7, Dreamweaver.

1.3 Grands choix fonctionnels 

Le site sera implémenté pour but de réaliser les fonctionnalités suivantes :

Ø Le patient doit établir une connexion pour accéder à notre site web.

Ø Le patient doit s'authentifier pour accéder à son espace personnel.

Ø Le patient peut prendre un RDV après la recherche du médecin et s'il n'a pas de compte il doit s'inscrire.

Ø Le patient peut consulter ses RDV et les modifier ou les annuler.

Ø Le patient peut envoyer un message aux gestionnaires du site.

Ø Le médecin doit s'authentifier pour accéder à son espace personnel.

Ø Le médecin peut s'inscrire et avoir un compte personnel après le dépôt de l'agrément de sa spécialité.

Ø Le médecin peut ajouter plusieurs spécialités à son compte.

Ø Le médecin peut demander l'ajout d'une nouvelle spécialité dans le site.

Ø Le médecin peut modifier les informations concernant son compte, en modifiant le lieu où le temps de son travail.

Ø Le médecin peut annuler une journée en sélectionnant une date.

Ø Le médecin peut également consulter la liste de ses RDV et ajouter un RDVau profit d'un patient.

Ø Le médecin peut gérer les RDV ajouté par lui.

Ø Le médecin peut envoyer un message aux gestionnaires du site.

Ø Le gestionnaire doit s'authentifier pour accéder à son espace personnel.

Ø Le gestionnaire peut gérer les comptes des médecins en validant leurs comptes et leurs spécialités.

Ø Le gestionnaire peut valider la nouvelle spécialité demandée par un médecin.

Ø Le gestionnaire peut répondre aux messages des médecins et patients.

Ø L'administrateur doit se connecter à la base de données pour l'ajouter ou supprimer des gestionnaires(cela se fait manuellement).

1.4 Grands besoins opérationnels 

Pour maintenir une certaine fiabilité du site, chaque patient,médecin et gestionnaire doit avoir un E-mail et un mot de passe pour consulter son compte.

Pour pouvoir récupérer en cas de panne, un système d'archivage et journalisation doit être mis en place.

1.5 Description du contexte du système 

Dans cette partie, on va expliquer en général l'échange d'informations entre le site et ses différents utilisateurs.

On la résume en trois activités successives qui sont :

Ø L'identification des acteurs.

Ø L'identification des messages.

Ø Réalisation du diagramme de contexte dynamique.

1.5.1 Identification des acteurs 

Un acteur est l'abstraction d'un rôle joué par des entités externes du système(Utilisateur, dispositif matériel ou autre système) qui interagissent directement avec le système.

Un acteur peut consulter ou modifier directement l'état du système, en émettant ou en recevant des messages éventuellement porteurs de données.

Les acteurs existants dans notre système sont:

Ø le patient.

Ø le médecin.

Ø le gestionnaire.

Ø l'administrateur.

Ø API Google Map.

Ø Service SMS.

Le patient : c'est l'acteur essentiel de notre projet, le site web pour lui est l'endroit où il peut prendre des rendez-vous après l'authentification et le choix de son médecin comme il peut aussi gérer et consulter ses rendez-vous.

Le médecin :notre site web est consacré aussi aux médecins en effet il fait une bonne partie de la gestion de son cabinet en ligne.

Le gestionnaire : c'est la personne qui gère les médecins et leurs spécialités.

L'administrateur : responsable de l'ajout et la suppression des gestionnaires.

API Google map : est un service gratuit de cartographie en ligne. Le service a été créé par Google.

Service sms :Le service de messagerie SMS, permet de transmettre de courts messages textuels

1.5.2 Identification des messages

Message : c'est la spécification d'une communication unidirectionnelle entre objets qui peut transporter de l'information avec l'intention de déclencher une activité chez le récepteur.

A un haut niveau, le message est utilisé pour décrire les interactions entre les acteurs et le système.

Remarques : Les messages entre acteurs ne sont d'aucune utilité.

Messages du patient :

A. le patient effectue une opération de prise de RDV.

B. le système affiche le formulaire.

C. le patient remplit le formulaire.

D. le système affiche la liste des médecins.

E. le patient choisit son médecin.

F. le système affiche le calendrier du médecin.

G. le patient choisit la date et heure de son rendez-vous et valide.

H. le system demande l'authentification ou inscription s'il n'as pas un compte.

I. le patient s'authentifie.

J. le system affiche le formulaire d'inscription.

K. le patient remplit le formulaire et valide.

L. le système affiche l'espace de patient.

M. le patient choisit une opération de gestion de ses rendez-vous.

N. le système affiche la liste des rendez-vous.

O. le patient annule ou modifie ses rendez-vous.

P. le patient contact le gestionnaire en cas de problème.

Message du médecin :

Q. le médecin demande l'inscription.

R. le système affiche le formulaire.

S. le médecin remplit le formulaire et valide.

T. le système affiche le formulaire d'authentification.

U. le médecin s'authentifie.

V. le système affiche l'espace privé du médecin.

W. le médecin effectue les opérations dans son compte (modifier compte, gérer spécialité, annuler la journée, consulter les rendez-vous et gérer les rendez-vous).

X. le médecin demande la modification du compte.

Y. le système affiche le formulaire de modification.

Z. le médecin modifie et valide.

AA. le médecin demande la gestion de ses spécialités.

BB. le médecin ajoute ou supprime une spécialité.

CC. le médecin demande d'annuler une journée.

DD. le système demande la date à annuler.

EE. le médecin choisit une date et valide.

FF. le médecin demande de consulter son calendrier.

GG. le système affiche le calendrier.

HH. le médecin peut réserver des rendez-vous.

II. le système affiche le calendrier du médecin.

JJ. le médecin choisit une date et heure du rendez-vous.

KK. le système affiche formulaire d'information du patient

LL. le médecin remplit le formulaire et valide.

MM. le médecin demande de consulter les rendez-vous pris par lui.

NN. Le système affiche les rendez-vous.

OO. le médecin peut gérer ses rendez-vous.

PP. le médecin contact le gestionnaire en cas de problème.

Messages du gestionnaire :

QQ. le gestionnaire s'authentifie.

RR. le système affiche l'espace du gestionnaire.

SS. le gestionnaire effectue les opérations dans son compte (valider compte médecin, valider nouvelle spécialité, valider une spécialité pour un médecin et répondre aux messages).

TT. le gestionnaire demande de valider les comptes des médecins en attente.

UU. le système affiche la liste des comptes en attente.

VV. le gestionnaire valide ou refuse un compte médecin.

WW. le gestionnaire demande de valider les nouvelles spécialités.

XX. le système afficher les spécialités à valider.

YY. le gestionnaire valide ou refuse l'ajout d'une spécialité.

ZZ. le gestionnaire demande de valider les spécialités pour les comptes médecins.

AAA. le système affiche les spécialités en attente pour chaque médecin.

BBB. le gestionnaire valide ou refuse la spécialité.

CCC. le gestionnaire demande de répondre aux messages.

DDD. le système affiche les messages.

EEE. le gestionnaire répond aux messages.

Messages du API Google map :

FFF. le système demande une position du patient ou du médecin.

GGG. l'API Google map envoie les coordonnées de la position.

Messages du service sms :

HHH. le système demande l'envoie des sms aux patients.

III. le système de sms envoie les messages aux patients.

1.6 Réalisation du diagramme de contexte dynamique 

A partir des informations obtenues lors des deux précédentes étapes, nous allons modéliser le contexte de notre application.

Figure 2. 1: Diagramme de contexte dynamique.

2 Elaboration du diagramme de cas d'utilisation 

Figure 2. 2: Diagramme de cas d'utilisation

3 Description et représentation des scénarios

Dans cette section on va définir le mot scénarios et élaborer les fiches descriptives.

3.1.1 Définition du mot scénario 

Un scénario décrit une exécution particulière d'un cas d'utilisation du début à la fin.

Il correspond à un enchainement d'actions du cas d'utilisation, se terminant par une fin normale ou non (exception ou erreur).

En général, il n'est pas possible de décrire tous les scénarios d'un cas d'utilisation. Il faudra choisir les principaux scénarios nominaux (ceux qui sont fréquents) et quelques scénarios d'exception.

3.1.2 Elaboration des fiches descriptives

Nom du CU :

Prendre RDV

Acteur :

Patient

Type :

Primaire

Objectif :

Permet au patient de prendre un rendez-vous.

Précondition:

/

Scénario nominal :

1. Le patient recherche un médecin (par nom ou par spécialité)

2. Le système affiche la liste des médecins.

3. Le patient choisit un médecin.

4. Le système affiche le calendrier du médecin.

5. Le patient choisit une date de rendez-vous.

6. Le système affiche un formulaire de choix d'authentification ou d'inscription.

7. le patient choisit de s'authentifier ou de s'inscrire pour valider le RDV.

8. le system valide.

Alternative :

6.asession déjà ouverte. Allez à 8.

Exception :

Annulation

Figure 2. 3:fiche descriptive « prendre RDV ».

Nom du CU :

Gérer RDV

Acteur :

Patient

Type :

Primaire

Objectif :

Permet au patient de modifier ou d'annuler un rendez-vous déjà pris

Précondition:

Authentification

Scénario nominal :

1. le système affiche lesdétails des rendez-vous.

2. le patient choisit de modifier ou d'annuler un rendez-vous.

3. le système affiche le calendrier

4. le patient choisit la nouvelle date

5. le système demande une confirmation

6. le patient confirme

7. le système valide la modification

Alternative :

2a. le patient choisit l'annulation du RDV

1 le patient supprime le RDV.

2 le système demande confirmation.

3le patient valide la suppression.

4 le système valide la suppression.

Exception :

Annulation

Figure 2.4 : fiche descriptive « gérer RDV ».

CU :

S'inscrire médecin

Type :

Primaire

Acteur :

Médecin, Système de géolocalisation

Objectif :

Permet au médecin de créer un compte au système

Déroulement :

1. Le système affiche le formulaire de l'inscription.

2. le médecin remplit le formulaire.

3. Le médecin se localise

4. Le médecin valide le formulaire

5. le système vérifie les champs du formulaire.

6. le système affiche la configuration du calendrier

7. le médecin choisit ses configurations et valide.

8. le système vérifie les champs du formulaire de la configuration.

9. Le système enregistre le compte et le met en attente.

Alternative :

5a. formulaire mal remplit, aller à 2

8a. formulaire mal remplit, aller à 7

Exception :

Annulation

Figure 2. 5 : fiche descriptive «s'inscrire ».

CU :

Annuler journée

Type :

Primaire

Acteur :

Médecin, Service de SMS

Objectif :

Permet au médecin d'annuler une journée de travail

Précondition :

Authentification

Déroulement :

1. Le système affiche le champ d'une date

2. Le médecin saisit unedate et valide.

3. le système vérifie la date et demande la confirmation.

4. le médecin confirme l'annulation.

5. Le système demande au service de SMSd'envoyer des messages d'annulation aux patients concernés.

6. Le service de SMS envoie des messages d'annulation des RDV aux patients.

7. le système bloque la journée sélectionnée

8. le système enregistre et supprime les RDV concernés.

Alternative :

3.a date saisit invalide, aller à 2.

5.a Le médecin n'a aucun RDV dans ce jour, allez à 7.

Exception :

Annulation

Figure 2. 6: fiche descriptive « annuler journée».

Nom du CU :

Valider compte médecin

Acteur :

Gestionnaire

Type :

Secondaire

Objectif :

Permet au gestionnaire de valider un compte d'un médecin inscrit

Précondition :

Authentification

Scénario nominal :

1. le système affiche les nouveaux comptes

2. le gestionnaire choisit de valider ou de refuser le compte.

3. le système demande la confirmation.

4. le gestionnaire confirme.

5. le système enregistre.

Alternative :

4.a refuser compte :notifier le demandeur et supprimer le compte.

Exception :

Annulation

Figure 2. 7: fiche descriptive «valider compte médecin ».

Nom du CU :

Valider nouvelle spécialitépour médecin

Acteur :

Gestionnaire

Type :

Secondaire

Objectif :

Permet au gestionnaire de valider une spécialité ajoutée pour un médecin

Précondition:

Authentification

Scénario nominal :

1. le système affiche les nouvelles spécialités ajoutées aux médecins.

2. le gestionnaire choisit de valider ou de refuser la spécialité.

3. le système demande la confirmation.

4. le gestionnaire confirme.

5. le système enregistre.

Alternative :

4.a le gestionnaire refuse la spécialité :notifier le médecin et supprimer la demande.

Exception :

Annulation

Figure 2. 8:fiche descriptive « valider nouvelle spécialité pour médecin ».

N .B : Tous les fiches descriptives associées aux autres cas sont présentés dans l'annexe.

4 Représentation des diagrammes d'activité 

Dans cette étape nous allons présenter le diagramme d'activité de chaque cas d'utilisation :

· Diagramme d'activité de prendre RDV :

Figure 2. 9:Diagramme d'activité « prendre RDV».

· Diagramme d'activité degérer RDV :

Figure 2. 10: Diagramme d'activité « gérer RDV».

· Diagramme d'activité de s'inscrire :

Figure 2. 11: Diagramme d'activité « s'inscrire».

· Diagramme d'activité d'annuler journée :

Figure 2. 12:Diagramme d'activité « annuler journée».

Ø Diagramme d'activité de valider compte médecin :

Figure 2. 13Diagramme d'activité « valider compte médecin».

· Diagramme d'activité de Valider nouvelle spécialité pour médecin :

Figure 2. 14:Diagramme d'activité « valider nouvelle spécialité pour médecin».

N .B : Tous les DAC associées aux autres cas sont présentés dans l'annexe.

5 Élaboration de diagramme de séquence

Après qu'on a vu le diagramme d'activité nous allons voir maintenant le diagramme de séquence pour chaque cas d'utilisation.

· Diagramme de séquencedeprendre RDV :

Figure 2. 15: Diagramme de séquence « Prendre RDV».

· Diagramme de séquencedegérer RDV :

Figure 2. 16:Diagramme de séquence « gérer RDV».

· Diagramme de séquencedes'inscrire :

Figure 2. 17:Diagramme de séquence « s'inscrire».

· Diagramme de séquenced'annuler journée :

Figure 2. 18:Diagramme de séquence « annuler journée».

· Diagramme de séquencedevalider comptes médecin :

Figure 2. 19: valider comptes médecin

· valider nouvelle spécialité pour médecins :

Figure 2. 20Diagramme de séquence « valider nouvelle spécialité pour médecin».

N .B : Tous les DSE associées aux autres cas sont présentés dans l'annexe.

6 Diagramme de classes

6.1 Identification et description de classes 

6.2 Élaboration de diagramme de classes

La figure suivante représente le diagramme de classes :

Figure 2. 21: diagramme de classes

6.3 Règles de passage de l'orienté objets au relationnel [10]

Le passage depuis le modèle objets DCL vers le modèle relationnel est fait dans l'objectifd'implémenter la BD sur un SGBD relationnel. Ces derniers étant jusqu'à ce jours les plus utilisés pour implémenter les BD vu que les SGBDOO n'ont pas encore occupé complètement le marchédu logiciel.
Pour passer d'une représentation OO en DCL vers le modèle relationnel, on procède comme suit :

Toute classe donnera une table avec identifiant à clé et attributs

Dans une association 1 --- * :

· Chaque classe devient une table, les attributs de la classe deviennent des attributs de la table et l'identifiant de classe devient la clé de la table.

· L'association est remplacé par une référence qui place l'identifiant de la classe à l'extrémitédu 1 dans la table de la classe à l'extrémité du plusieurs * (ce sera une clé étrangère).

Dans une association * --- * :

· Chaque classe devient une table, les attributs de la classe deviennent des attributs de la table et l'identifiant de classe devient la clé de la table.

· L'association (qui peut être une classe association) est remplacée par une table qui a comme clé la concaténation des identifiants des classes participantes. Dans le cas de classeassociation, les attributs sont rajoutés dans la nouvelle table.

Dans une association 1--1 :

Il y a différentes façons de d'implémenter selon les perspectives d'utilisation du concepteur :

Ø Règle1 :

Fusionner les deux classes dans une seule table, en gardant bien-sûr la table la plus importante sémantiquement.

Ø Règle 2 :

Garder les deux classes et les implémenter en deux tables. Sélectionner par la suite une table pour référencer l'autre par une clé étrangère. Ce qui revient à garder le sens de l'association qui est le plus important dans la conception (navigabilité).

Ø L'héritage

L'implémentation de l'héritage demande un peu plus de considération pour choisir l'une des 03 règles de passage.

Ø Règle1:

Conceptuellement parlant la classe mère est plus importante que les classesfilles qui ne portent pas beaucoup de spécificité informationnelle. Dans ce cas il faut garder la classe mère et l'implémenter par une table. Les classes filles, elles sont dégénérées et remplacées dans la table (classe mère) par un attribut.

Ø Règle 2 :

Conceptuellement parlant, Les classes filles sont plus importantes que la classe générique et sont porteuses d'information. La classe mère est dégénérée au profit des classes filles. Tous les attributs et opérations de la classe mère sont reportés au niveau des classes filles.

Ø Règle 3 :

Les classes mère et filles sont tout aussi importante et doivent être gardé, l'héritage est alorsremplacé par une association 1 --1..* qui sera ensuite implémentée. Il faut assurer une identificationpour chaque classe

Le passage du modèle conceptuel de classe de l'O.O représenté par le DCL d'UML vers le modèle logique relationnel représenté à par une structure de tables, n'est pas du tout un passage direct. C'est une remonétisation qui nécessite de faire des choix dictés par la sémantique et la perspective d'utilisation des informations. Ce choix est celui du concepteur de l'application

Remarque

Il est conseillé de signaler sur un DCL une classe qui ne doit pas être implémentée par le stéréotype <<Abstract>>

7 Schéma relationnelle

Concernant les règles de passage de l'héritage nous avons choisi de garder les classes filles (patient, médecin, gestionnaire) car ce sont les classes les plus importantes portants les opérations et les informations.  

patient(id_pat, email_pat , pass_pat, nom_pat, prenom_pat, date_naissance_pat, num_tel_pat, sexe_pat).

medecin(id_med,email_med , mot_de_passe_med, nom_med, prenom_med, date_de_naissance_med, num_tel_pat, sexe_pat, adresse_med, latitude_med, longitude_med, valide_med).

gestionnaire(id_gest, email_gest , mot_de_pass, nom_gest, prenom_gest, date_naissance_gest, sexe_gest, num_tel_gest).

specialite(id_spec, nom_specialite, valide_spec).

calendrier(id_cal, id_med , jour_d, jour_f, heur_d, heur_f, temps_c).

med_spec(id_med_spec, id_med , id_spec, valide, agrement).

rendez_vous(id_rdv, id_med , id_pat, heur_rdv).

jour_ferier(id_j, id_med , date_f).

message(id_mes, id_eme , type, question, reponse).

Note d'implémentation :

Les classesassociatives « prendre rendez-vous », « possède » et « contact »ont été implémentéesdans notre schémapar les relations« rendez_vous », « med_spec » et « message ».

L'attribut id_eme dans la table message remplace id_med et id_pat selon l'atribut type (type d'émetteur de message).

8 Conclusion 

Dans ce chapitre on s'est concentré sur les aspects analytique et conceptuel de notre système. La phase conceptuelle est une étape fondamentale pour la réalisation de n'importe quel projet. Pour cela on a défini le cas d'utilisation puis, sa traduction vers les fiches descriptivespour la construction des diagrammes de séquence et d'activité.

Enfin on a défini le diagramme de classes afin d'élaborer les tables de la base de données utilisée.

Et grâces à ces derniers, les choses sont plus claires et l'implémentation de notre application est devenue plus facile.

Dans le prochain chapitre, nous allons présenter l'implémentation de notre système.

9 CHAPITRE iii

Implémenation

10 Introduction

Après l'analyse approfondit et la conception général de notre projet, nous avons programmé au maximum à base de notre conception via des outils dans un environnement adéquat.

Ce chapitre a pour objectif majeur de présenter le produit final. C'est la phase de réalisation de ce site web dynamique. Ce chapitre est composé de quatre parties : la première partie présente les ressources matérielles et logicielles utilisées pour la réalisation du projet alors que la seconde partie concerne l'implémentation des données et des traitements ,la troisième partie consiste à présenter brièvement l'utilisation et la manipulation du logiciel à travers quelques interfaces , et finalement on a présenté la structure de la base de données manipulées par l'application.

1 Ressources matérielles et logicielles utilisées 

1.1 Ressources matérielles

Pour développer ce sitenous avons utilisé une machines, configurées comme suit :

Acer E1-571 :

Ø Mémoire vive: 4 Go.

Ø Disque dur: 500 Go.

Ø Processeur: Intel (R) Core (TM) i5-3230M 2.60 GHz.

Ø Type de système: Windows 7 édition intégrale.

1.2 Ressources logicielles

Lors du développement de ce site, nous avons utilisé, les outils logiciels et les langages de programmations suivants:

1.2.1 Le langage HTML et CSS[11][12]

HTML (HypertextMarkupLanguage): est, après une traduction littérale de l'anglais, un langage hypertexte a balises (ou marqueurs). Cela veut dire que l'on va gérer la façon dont un texte va s'afficher au sein du navigateur. Ainsi, on peut voir dans tout code source HTML en comparaison d'un éditeur de texte, des différences marquantes, comme des balises dans une page Web.

CSS (Cascading Style Sheets) : est un langage déclaratif simple pour mettre en forme des pages HTML ou des documents XML. Le langage CSS permet de préciser les caractéristiques visuelles et sonores de présentation d'une page Web.

1.2.2 Le langage PHP [13]

(HypertextPreprocessor) : langage de programmation contenu dans des pages Web et exécuter sur les serveurs, ils renvoient directement le résultat vers le client qui ne peut jamais voir le code source. Permet de créer des pages Web dynamiques.

1.2.3 Le langage de requête SQL [14]

Un serveur de bases de données stocké les données dans des tables séparées plutôt que de tout rassembler dans une table. Les tables sont reliées par des relations définies, qui rendent possible la combinaison des données entre plusieurs tables durant une requête. Le SQL dans « » signifie `StructuredQueryLangage' : le langage standard pour traitement de bases de données.

1.2.4 JQUERY[15]

Est un Framework développer en JavaScript qui permet notamment de manipuler aisément la DOM, d'utiliser AJAX, de créer des animations... La vocation première de ce Framework est de gagner du temps dans le développement des applications.

1.2.5 WAMP [16]

WampServer (anciennement WAMP5) est une plateforme de développement Web de type wamp, permettant de faire 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 (Apache et MySQL), un interpréteur de script (PHP), ainsi que phpmyadmin pour l'administration Web des bases MySQL.

Il dispose d'une interface d'administration permettant de gérer et d'administrer ses serveurs au travers d'un trayicon (icône près de l'horloge de windows).

1.2.6 Dreamweaver[17]

Dreamweaver fut l'un des premiers éditeurs html de type « tel affichage, tel résultat », mais également l'un des premiers à intégrer un gestionnaire de site,ces innovations l'imposèrent rapidement comme l'un des principaux éditeurs de site web, aussi bien utilisable par le néophyte que par le professionnel.

1.2.7 StarUML[18] 

StarUML est un logiciel de modélisation UML, cédé comme  open source par son éditeur, à la fin de son exploitation commerciale, sous une licence modifiée de GNU GPL.

L'objectif de la reprise de ce projet était de se substituer à des solutions commerciales comme IBMRationalRose ouBorlandTogether.

StarUML gère la plupart des diagrammes spécifiés dans la norme UML 2.0.

1.2.8 Google maps[19]

C'est un service qui permet, à partir de l'échelle d'un pays, de zoomer jusqu'à l'échelle d'une rue. Des prises de vue fixes montrant les détails de certaines rues sont également accessibles grâce à une passerelle vers Google Street View.

Deux types de vue sont disponibles dans Google Maps : une vue en plan classique, avec nom des rues, quartier, villes et une vue en image satellite, qui couvre aujourd'hui le monde entier. Ce service n'est plus en version bêta depuis le 12 septembre 2007, et a été ajouté aux liens de la page d'accueil de Google.

2 L'implémentation des données et des traitements

On va prendre quelques exemples de code source de quelques fonctionnalités de notre site :

2.1 Code de recherche d'un médecin

<?php

session_start();// ouverture de la session

header('Content-type: text/html; charset=UTF-8');

$cnx = mysql_connect( "localhost", "root", "" ) ; //connexion au serveur

$db = mysql_select_db( "dawi.dz" ) ; // selection de la base de donnée

mysql_query("SET NAMES 'utf8'"); //format des caractères des résultats desrequêtes

$mon_tableau = array();

$tabd=array();

$tabr=array();

$table_af=array();

$lat=doubleval($_POST['Latitude1']);

$long=doubleval($_POST['Longitude1']);

$sel=$_POST['nom'];

if ($sel==='nom'){ // la recherche par nom

$pse=$_POST['nom_med'];

$req="select * from medecin where valide_med = 1 AND nom_med='".$pse."' or nom_med LIKE '%".$pse."%' or prenom_med='".$pse."' or prenom_med LIKE '%".$pse."%'" ;

$res =mysql_query($req);

while($resultat =mysql_fetch_assoc($res)){

$mon_tableau[] = $resultat['id_med'];

}}else { // la recherche par spécialité

$specialite=$_POST['select'];

$req="select * from specialite where nom_specialite='".$specialite."'";

$res = mysql_fetch_array(mysql_query($req));

$spece=$res['id_spec'];

$re="select * from med_spec where id_spec='".$spece."'";

$resss = mysql_query($re);

while($resultat =mysql_fetch_assoc($resss)){

$mon_tableau[] = $resultat['id_med'];

} }

for($i=0;$i<sizeof($mon_tableau);$i++) {

$don= ucfirst($mon_tableau[$i]);

$reqq= "select * from medecin where id_med='".$don."' and valide_med= 1";

$ress = mysql_fetch_array(mysql_query($reqq));

$id_med = stripslashes($ress['id_med']);

$latb=$ress['latitude_med'];

$longb = $ress['longitude_med'];

$dis= sqrt(pow($longb - $long,2)+pow($latb - $lat,2)); // le calcule de la distance entre le patient et les médecins

$tabd[$id_med]=array($dis);

}

asort($tabd); // le tri des distances

foreach($tabd as $key => $value){

$tabr[]=$key; }?>

2.2 Code de la prise de rendez-vous

<?php

$req="select * from calendrier whereid_med='".$id_med."'"; // récupération des informations concernant le temps de travail de médecin choisit

$res = mysql_fetch_array(mysql_query($req));

$jd=$res['jour_d'];

$jf=$res['jour_f'];

$hd=$res['heur_d'];

$hf=$res['heur_f'];

$tc=$res['temps_c'];

$semaine=array('samedi','dimanche','lundi','mardi','mercredi', 'jeudi', 'vendredi');

$jdi=0;

for($i=0;$i<sizeof($semaine);$i++){

if ($semaine[$i]===$jd){

$jdi=$i;

} }

$jfi=0;

for($i=0;$i<sizeof($semaine);$i++){

if ($semaine[$i]===$jf){

$jfi=$i;

} }

$jourt=array();

$z=0;

for($i=$jdi;$i<=$jfi;$i++){

$jourt[$z]=$semaine[$i];

$z+=1; }

$parsedhd = date_parse($hd);

$hds = $parsedhd['hour'] * 3600 + $parsedhd['minute'] * 60 + $parsedhd['second'];

$parsedhf = date_parse($hf);

$hfs = $parsedhf['hour'] * 3600 + $parsedhf['minute'] * 60 + $parsedhf['second'];

$debut_mois = date("m");

$debut_jour = date("d")+1;

$debut_annee =date("Y");

$fin_mois = $debut_mois +1;

$fin_jour = $debut_jour ;

$fin_annee = $debut_annee;

$debut_date = mktime(0, 0, 0, $debut_mois, $debut_jour, $debut_annee);

$fin_date = mktime(0, 0, 0, $fin_mois, $fin_jour, $fin_annee);

?>

<h1>Calendrier du médecin</h1> // code d'affichage du calendrier de médecin

<thead>

<tr>

<?php

for($i = $debut_date; $i<= $fin_date; $i+=86400)

{ ?>

<th scope="col" data-tablesaw-sortable-col data-tablesaw-sortable-default-col data-tablesaw-priority="3" style= " color : white ; background-color : #3391E7"><?php echo strftime("%A %d %B %Y",$i); ?></th>

<?php } ?></tr>

<?php

for($j = $hds; $j <= $hfs; $j+=$tc*60)

{

echo "<tr>" ;

$col=1;

for($i = $debut_date; $i<= $fin_date; $i+=86400)

{$bo=false;

for($l=0;$l<sizeof($tab_f);$l++){

$jf=$tab_f[$l];

$df=date("Y-m-d",$i);

if($df===$jf){

$bo=true;}}

$bool=false;

$jour=strftime("%A",$i);

for($k=0;$k<sizeof($jourt);$k++){

if($jour===$jourt[$k]){

$bool=true;}}

if($bo===false){

if($bool===true){

$dd=date("Y-m-d",$i);

$hh= date("H:i:s",$j);

$dh=$dd." ".$hh;

$dhs = strtotime($dh);

$dhss=date('Y-m-d H:i:s', $dhs);

$bol=false;

for($m=0;$m<sizeof($mon_tableau);$m++)

{ $don= $mon_tableau[$m];

$dons = strtotime($don);

$donss=date('Y-m-d H:i:s', $dons);

if($donss===$dhss){

$bol=true;}}

if($bol===false){

if($col===1){ // temps disponible

echo "<td><input type='radio' name='inscrit' value='$dhss' required/> $hh</td> ";

$col=0;} else {

echo "<td style= 'color : white ; background-color : #C0C0C0'><input type='radio' name='inscrit' value='$dhss' required/> $hh</td> " ;

$col=1;}}else {// temps réservé en orange

echo "<td style= ' color : white ; background-color : #FFA500'>reservé</td>";

if($col===1){

$col=0;}else{

$col=1 }} }else{ // jour annulé ou hors de travail en rouge

echo "<td style= 'background-color : #FF6347'></td>";}}else{

echo "<td style= ' background-color : #FF6347'></td>";}} </tr>

<?php } ?>

</tbody>

</table>

2.3 Code de l'api googlemap

<scriptsrc="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>

<script>// Code de l'api googlemap qui récupère les coordonnés d'un point choisi

var x=36.2432373;

var y=6.5654465;

var center = new google.maps.LatLng(x,y);

var map;

function initialize() {

// Create the map.

varmapOptions = {

zoom: 15,

center: center,

mapTypeId: google.maps.MapTypeId.TERRAIN

};

map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

google.maps.event.addListener(map, 'click', function(event) {

z= event.latLng;

placeMarker(z);

});

}

google.maps.event.addDomListener(window, 'load', initialize);

google.maps.event.addListener(map, 'click', function(event) {

placeMarker(event.latLng);

});

var marker;

functionplaceMarker(location) {

if(marker){ //on vérifie si le marqueur existe

marker.setPosition(location); //on change sa position

}else{

marker = new google.maps.Marker({ //on créé le marqueur

position: location,

map: map

});

}

document.getElementById("latitude").value=location.lat();

document.getElementById("Longitude").value=location.lng();}

</script>

<script type="text/javascript">// Code de l'api googlemap qui récupère les coordonnés d'une ville choisie

vargeocoder;

function initialize() {

geocoder = new google.maps.Geocoder();

}

functioncodeAddress() {

var address = document.getElementById("address").value;

geocoder.geocode( { 'address': address},

function(results, status)

{

if (status == google.maps.GeocoderStatus.OK)

{

document.getElementById("Latitude").value=results[0].geometry.location.lat();

document.getElementById("Longitude").value=results[0].geometry.location.lng();

document.getElementById("Latitude1").value=results[0].geometry.location.lat();

document.getElementById("Longitude1").value=results[0].geometry.location.lng();

}}) ; }

</script>

<script>//Code de l'api googlemap qui récupère les coordonnés de la position actuelle

functiongetLocation() {

if (navigator.geolocation) {

navigator.geolocation.getCurrentPosition(showPosition);

} else {

x.innerHTML = "Geolocation non supporter sur ce navigateur.";

}}

functionshowPosition(position) {

document.getElementById("address").value = "";

document.getElementById("Latitude").value = position.coords.latitude;

document.getElementById("Longitude").value = position.coords.longitude;

document.getElementById("Latitude1").value = position.coords.latitude;

document.getElementById("Longitude1").value = position.coords.longitude;}

</script>

3 Présentationde l'utilisation et la manipulation du site à travers quelques interfaces

Nous allons faire une présentation de quelques interfaces qui sont intégrés à notre site.

· Page d'accueil : la page d'accueil offre la possibilité de visualiser les différents services de notre site web comme elle est présentée dans la figure si dessous :

Figure 3. 1 : interface : page d'accueil

· Chercher un médecin: elle permet aux patients de chercher un médecin pour prendre un rendez-vous :

Figure 3. 2 : interface: chercher un médecin

Résultat de la recherche : affiche les médecins qui correspondent à la recherche classés selon la distance :

Figure 3. 3 : interface : résultat recherche

· Inscription médecin : permet au médecin de s'inscrire à notre site.

· Configuration du temps de travail: permet au médecin de choisir son temps de travail comme le montre la figure suivante :

Figure 3. 4 :interface :inscription du médecin et configuration du son calendrier

· Calendrier du médecin : affiche au patient le calendrieret les détails du médecin :

Figure 3. 5 : interface :calendrier du médecin

· Profil dumédecin : affiche les services et les fonctionnalités qu'un médecin peut effectuer sur son compte :

Figure 3. 6 : interface: index médecin

· Profil dugestionnaire : affiche les services et les fonctionnalités qu'un gestionnaire peut effectuer sur son compte :

Figure 3. 7 : interface: profil de gestionnaire

· Valider un compte d'un médecin :affiche les nouveaux comptes et permet au gestionnaire de les valider ou les refuser.

Figure 3. 8 : interface: valider un compte d'un médecin

4 La structure des bases de données manipulées par l'application

Nous avons choisis le nom dawi.dz comme nom de notre base de données qui contient 9 tables comme le montre la figure suivante :

Figure 3. 9 : description de la base de donné du site

· La table patient :

Figure 3. 10 : table patient

· La table médecin :

Figure 3. 11 : la table médecin

· La table gestionnaire :

Figure 3. 12 : table gestionnaire

· La table calendrier :

Figure 3. 13 : table calendrier

· La table rendez_vous :

Figure 3. 14 : table rendez_vous

· La table spécialité :

Figure 3. 15: la table spécialité

· La table jour_férier :

Figure 3. 16 : La table jour_férier

· La table message :

Figure 3. 17 : la table message

· La table med_spec :

Figure 3. 18 : la table med_spec

Conclusion
Dans ce chapitre, nous avons décrit brièvement le processus de réalisation de notre site en spécifiant les ressources matérielles et logicielles utilisées pour la réalisation du projet, l'implémentation des données et des traitements,l'utilisation et la manipulation du logiciel à travers quelques interfaces et la structure des bases de données manipulées par l'application.

En effet, nous avons achevé l'implémentation et les tests de tous les cas d'utilisation, tout en respectant la conception élaborée. En d'autres termes, nous détenons la version finale du siteoffre toutes les fonctions utiles et nécessaires au bon fonctionnement d'un site de prise de rendez-vous médicale en ligne.

5 Conclusion générale

Ce projet de fin d'étude consiste à réaliser un site web dynamique pour la prise derendez-vous médical en ligne.

Au cours de ce mémoire, nous avons présenté les différentes étapes de la conception et la réalisation de notre site.

Dans le but de satisfaire les utilisateurs nous avons commencé la conception en utilisant le langage de modélisation UML et le processus de développement UP pour ensuite faire la mise en oeuvre des bases de données à l'aide du SGBD MYSQL ,après nous avons entamé l'implémentation de toutes les requêtes SQL pour la manipulation des données et enfin la concrétisation de l'application sous langage de programmation PHP.

Ce projet a fait l'objet d'une expérience intéressante, qui nous a permis d'améliorer nos connaissances et nos compétences dans le domaine de la programmation. Nous avons appris à mieux manipuler les langages PHP, HTML, MYSQL et Java Script.

Finalement, on est arrivé à réaliser notre site avec une simple et attirante interface graphique qui est de nos jours, un atout important dans les sites web.

En effet, ce travail étant une oeuvre humaine, n'est pas un modèle unique et parfait, c'est pourquoi nous restons ouverts à tous les critiques et nous sommes prêts à recevoir toutes les suggestions et remarques tendant à améliorer d'avantage cette étude. Etant donné que tout travail informatique a été toujours l'oeuvre d'une équipe.

6 ANNEXE

1 Fiches descriptives associés aux différents cas d'utilisation :

· Fiche descriptive« authentification» :

Nom du CU :

Authentification

Acteur :

Patient, Médecin, gestionnaire.

Type :

Secondaire

Objectif :

Permet d'identifier l'utilisateur

Préconditions :

L'acteur est déjà inscrit

Scénario nominal :

1. le système affiche un formulaire d'authentification

2. l'acteur choisit le type de son compte (médecin, patient ou gestionnaire).

3. l'acteur saisit l'identificateur et le mot de passe

4. l'acteur valide l'authentification.

5. le système vérifie

6. le système affiche le profil de l'acteur

Alternative :

5.al'identificateur ou mot de passe incorrectes, et aller à 2.

2.al'acteur ne possède pas un compte, il doit s'inscrire

Exception :

Annulation

· Fiche descriptive« S'inscrire» :

Nom du CU :

S'inscrire

Acteur :

Patient

Type :

Secondaire

Objectif :

Permet au patient de s'inscrire au système

Préconditions :

/

Scénario nominal :

1. le système affiche un formulaire d'inscription

2. l'acteur remplit le formulaire

3. l'acteur valide les informations saisit

4. le système vérifie les informations

5. le système enregistre le compte

Alternative :

4.aformulaire mal remplit, aller à 2

Exception :

Annulation

· Fiche descriptive« Chercher médecin» :

Nom du CU :

Chercher médecin

Acteur :

Patient, système de géolocalisation

Type :

Secondaire

Objectif :

Permet au patient de rechercher un médecin

Préconditions :

/

Scénario nominal :

1. le système affiche le formulaire de recherche

2. le patient choisit sa position (automatique ou par ville)

3. le système de géolocalisation envoie les coordonnés de la position au système.

4. le patient cherche le médecin (par nom ou par spécialité)

5. le système affiche le résultat de la recherche par distance.

Alternative :

4.aAucun médecin à afficher, allé à 1.

Exception :

Annulation

· Fiche descriptive« modifier compte patient» :

CU :

Modifier compte patient

Type :

Primaire

Acteur :

patient

Objectif :

Permet au patient de modifier son compte

Précondition :

Authentification

Déroulement :

1. Le système affiche le formulaire de modification

2. Le patient modifie ses informations.

3. le patient valide la modification

4. le système vérifie les modifications.

5. le système enregistre les modifications

Alternative :

4. aformulaire mal remplis, aller à 2.

2.a le patient supprime son compte

1. le système demande la confirmation.

2. le patient confirme.

3. le système enregistre la suppression

Exception :

Annulation

· Fiche descriptive« contacter admin» :

Nom du CU :

Contacter admin

Acteur :

Patient, médecin

Type :

Primaire

Objectif :

Permet à l'acteur d'envoyer un message au gestionnaire

Pré-conditions :

authentification

Scénario nominal :

1. Le système affiche le formulaire de contact.

2. L'acteur écrit son message et l'envoie.

3. Le système demande la confirmation

4. L'acteur confirme.

5. Le système vérifie.

6. Le système enregistre le message.

Alternative :

3.a champ message vide aller à 1

Exception :

L'acteur possède un autre message sans réponse

Annulation

· Fiche descriptive« Demande d'ajout nouvelle spécialité» :

CU :

Demande d'ajout nouvelle spécialité

Type :

Secondaire

Acteur :

Médecin, gestionnaire

Objectif :

Permet au médecin de demander au gestionnaire d'ajouter une nouvelle spécialité

Précondition :

/

Déroulement :

1. Le médecin saisis la spécialité et valide

2. Le système met la spécialité en attente

3. Le système ajoute la spécialité après validation du gestionnaire

Alternative

/

Exception

Annulation

· Fiche descriptive« modifier compte» :

CU :

Modifier compte

Type :

Primaire

Acteur :

Médecin

Objectif :

Permet au médecin de modifier son compte

Précondition :

Authentification

Déroulement :

1. Le système affiche le formulaire de modification

2. Le médecin modifie ses informations.

3. le médecin valide la modification

4. le système vérifie les modifications.

5. le système enregistre les modifications

Alternative :

4. aformulaire mal remplis, aller à 2.

Exception :

Annulation

· Fiche descriptive« Gérer spécialité » :

Nom du CU :

Gérer spécialité

Acteur :

Médecin

Type :

primaire

Objectif :

Permet au médecin d'ajouter ou supprimer une spécialité.

Pré-conditions :

Authentification, compte validé

Scénario nominal :

1. le système affiche les spécialités du médecin.

2. le médecin choisit d'ajouter ou supprimer une spécialité.

3. le médecin choisit la spécialité qui veut ajouter et valide.

4. le système met la spécialité en attente

Alternative :

3.a le médecin choisit de supprimer la spécialité.

1. le système demande la confirmation.

2. le médecin confirme.

3. le système enregistre.

Exception :

Annulation

· Fiche descriptive« consulter RDV» :

CU :

consulter RDV

Type :

Primaire

Acteur :

Médecin

Objectif :

Permet au médecin de voir ses RDV sur son calendrier

Précondition :

Authentification

Déroulement

1. le médecin demande de consulter son calendrier

2. Le système affiche le calendrier du médecin avec les noms des patients

Alternative :

/

Exception :

Annulation

· Fiche descriptive« Prendre RDV patient» :

Nom du CU :

Prendre RDV patient

Acteur :

médecin

Type :

secondaire

Objectif :

Permet au médecin de prendre un RDV au profit d'un patient

Précondition :

Authentification

Scénario nominal :

1. Le système affiche le calendrier du médecin.

2. Le médecin choisit une date et une heure.

3. Le système affiche le formulaire du patient

4. Le médecin remplit et valide le formulaire

5. Le système vérifie le formulaire

6. Le système enregistre le rendez-vous.

Alternative :

5.a formulaire mal rempli aller à 3

Exception :

Annulation

· Fiche descriptive« Gérer RDV patient» :

Nom du CU :

Gérer RDV patient

Acteur :

médecin

Type :

Primaire

Objectif :

Permet au médecin de modifier ou d'annuler un rendez-vous déjà pris

Précondition :

Authentification

Scénario nominal :

8. le système affiche les détails des rendez-vous.

9. le médecin choisit de modifier ou d'annuler un rendez-vous.

10. le système affiche le calendrier

11. le médecin choisit la nouvelle date

12. le système demande une confirmation

13. le médecin confirme

14. le système valide la modification

Alternative :

2a. le médecin choisit l'annulation du RDV

1 le médecin supprime le RDV.

2 le système demande confirmation.

3 le médecin valide la suppression.

4 le système valide la suppression.

Exception :

Annulation

· Fiche descriptive« Valider nouvelle spécialité » :

Nom du CU :

Valider nouvelle spécialité

Acteur :

Gestionnaire

Type :

secondaire

Objectif :

Permet au gestionnaire de valider une nouvelle spécialité proposée par un médecin

Pré-conditions :

authentification

Scénario nominal :

1. le système affiche la liste des spécialités pour les valider ou supprimer.

2. gestionnaire valide la spécialité.

3. le système demande la confirmation

4. le gestionnaire confirme.

5. le système enregistre.

Alternative :

2.a le gestionnaire refuse la spécialité.

1. le système demande confirmation

2. le gestionnaire confirme la suppression.

3. le système enregistre.

Exception :

Aucune nouvelle spécialité

Annulation

· Fiche descriptive« Répondre aux messages» :

Nom du CU :

Répondre aux messages

Acteur :

gestionnaire

Type :

Primaire

Objectif :

Permet au gestionnaire de répondre à un message

Précondition :

authentification

Scénario nominal :

1. Le système affiche les messages.

2. Le gestionnaire écrit la réponse d'un message et l'envoie.

3. Le système vérifie.

4. Le système enregistre la réponse.

Alternative :

3.a champ message vide aller à 1

Exception :

Annulation

2 Diagrammes d'activités associées aux différents cas d'utilisation :

· Diagramme d'activité « authentification» :

· Diagramme d'activité « S'inscrire» :

· Diagramme d'activité « Chercher médecin» :

· Diagramme d'activité « modifier compte patient» :

· Diagramme d'activité « contacter admin» :

· Diagramme d'activité « Demande d'ajout nouvelle spécialité» :

· Diagramme d'activité « Modifier compte» :

· Diagramme d'activité « Gérer spécialité» :

· Diagramme d'activité « consulter RDV» :

· Diagramme d'activité « Prendre RDV patient» :

· Diagramme d'activité« Gérer RDV patient» :

· Diagramme d'activité« valider nouvelle spécialité» :

· Diagramme d'activité« répondre aux messages» :

3 Diagrammes de séquences associées aux différents cas d'utilisation :

· Diagramme séquences « authentification» :

· Diagramme séquences « S'inscrire» :

· Diagramme séquences « modifier compte patient» :

· Diagramme séquences « modifier compte patient» :

· Diagramme séquences « contacter admît» :

· Diagramme séquences « Demande d'ajout nouvelle spécialité» :

· Diagramme séquences « modifier compte» :

· Diagramme séquences « Gérer spécialité» :

· Diagramme séquences « consulter RDV» :

· Diagramme séquences « Prendre RDV patient» :

· Diagramme séquences « gérer RDV patient» :

· Diagramme séquences « Valider nouvelle spécialité» :

· Diagramme séquences « Répondre aux messages» :

les références

[1] : Conception et réalisation d'un site web dynamique pour un magazine en ligne boukerzazahananesaouchi rima promotion 2011_2012 de l'université de Constantine.

[2] : Du web 1.0 au web 4.0 - le blog de C-Marketing.

[3] : www.commentcamarche.net/contents/222-environnement-client-serveur. Le 22/04/2014.

[4] : http://www.memoireonline.com/05/12/5812/m_La-realisation-dune-application-decontrle-total-des-processus-dun-ordinateur-distant6.html Le 23/04/2014.

[5] : http://mproof.blogspot.com/2011/03/larchitecture-client-serveur.html.

[6] :GrandyBooch, le guide d'utilisation en UML, édition 2002.

[7] : Pascal Roques, les cahiers du programmeur UML, Eyrolles 2003.

[8] :S.Grain, UML2.

[9] : Michel lai, penser objet avec UML et java.

[10] : Cours UPD L3 SI 2015/2016.

[11] : http://fr.wikipedia.org/wiki/Hypertext_Markup_Language.

[12] : http://www.jsand.net/definition_css.wju.

[13] : http://dictionnaire.phpmyvisites.net/definition-PHP-4899.htm.

[14] : http://www.futura-sciences.com/magazines/high-tech/infos/dico/d/internet-mysql-4640/.

[15] : http://fr.wikipedia.org/wiki/JQuery

[16] : https://fr.wikipedia.org/wiki/WampServer

[17] : https://fr.wikipedia.org/wiki/Adobe_Dreamweaver

[18] : https://fr.wikipedia.org/wiki/StarUML

[19] : https://fr.wikipedia.org/wiki/Google_Maps






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Il existe une chose plus puissante que toutes les armées du monde, c'est une idée dont l'heure est venue"   Victor Hugo