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

 > 

Modélisation et implémentation d'un système d'aide à  la décision pour le diagnostic de la fievre thyphoàŻde

( Télécharger le fichier original )
par Josué MISSWAY
ISC-Kinshasa - Licence 2015
  

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

[1]

REPUBLIQUE DEMOCRATIQUE DU CONGO

MINISTERE DE L'ENSEIGNEMENT SUPERIEUR ET INSTITUT SUPERIEUR DE COMMERCE DE UNIVERSITAIRE

KINSHASA

«I.S.C/KIN»

SECTION: SCIENCES COMMERCIALES, FINANCIERES
ET INFORMATIQUE DE GESTION
DEPARTEMENT D'INFORMATIQUE
CYCLE DE LICENCE
B.P.16596
KINSHASA-GOMBE

MODELISATION ET IMPLEMENTATION D'UN
SYSTÈME D'AIDE A LA DECISION POUR LE
DIAGNOSTIC DE LA FIEVRE TYPHOÏDE

MISSWAY KINDIA Josué

Travail de fin d'études présenté et défendu en

vue de l'obtention de titre de licencié en
informatique de gestion.

Option: Conception des Systèmes d'Information

Directeur: Professeur MUSANGU LUKA Rapporteur: Assistant KABAMBA MBIKAY

Année académique : 2014-2015

[2]

IN MEMORIAM

A mon père Anicet MISSWAY KINDIA pour son amour et surtout son souci qu'il avait de me faire un vrai homme utile à la société.

Ma reconnaissance à son égard se voudra grande et profonde.

[3]

EPIGRAPHE

« La preuve de la valeur d'un système informatique est son existence. »

Alan Jay Perlis

[4]

DEDICACE

A ma mère,

Et à mes frères et soeurs

MISSWAY KINDIA Josué

[5]

REMERCIEMENTS

Ce travail qui sanctionne la fin de notre cycle de licence est le résultat abattu avec le concert de quiconque. C'est pourquoi la reconnaissance nous oblige de pouvoir remercier sincèrement tous ceux ou toutes celles qui ont apporté leur pierre à cet édifice.

Aussi voudrons-nous avant toute chose, exprimer notre profonde gratitude au Professeur MUSANGU LUKA, qui nonobstant ses multiples occupations n'a pas hésité d'assurer la direction de ce travail. Ses riches conseils, sa disponibilité, ses remarques et critiques constructifs nous ont été d'une grande utilité. Qu'il veuille bien accepter nos vifs et sincères remerciements.

Nous tenons ensuite à remercier de tout coeur notre rapporteur, le doctorant Hervé KABAMBA MBIKAYI, pour les encouragements e conseils pratiques.

Nos remerciements vont aussi droit à tous les membres du corps académique.

Nous pensons également à notre oncle Alexis TURI, notre beau-frère Guylain IKAVU ainsi que sa fille Guyslaine, la famille TOKO, et à tous nos oncles, tantes, cousins, cousines, grands-parents, neveux et nièces dont le soutien moral, matériel et financier nous ont été inestimables. Qu'ils trouvent tous ici l'expression sincère de notre gratitude.

Nous tenons aussi à exprimer notre reconnaissance aux messieurs et demoiselles : Paul OLEKO, Délux LUKUSA, Hervé MUYEMBE, Olivier NIAMADJOMI, Jethro FUABONGO, Grace NSELE, Jonathan MPOYI, Meilleur NSANGANI, Steve NANGO, Placide GABIE, Grace MALULU, Glodi BIMA, Serge MFUNYI, Hester WEDJOLO, Ruth NGEYITALA, Sharonne MBOMBO, Sarah FUTI, Parfait LUBAMBA, Phillip KASUKUMA, Reagan MBUYA, Michel BINDA, Hardy MUPU, Fabrice KAMULETE, Harvey FAYA, Eben MAMBUVE, Jabin MUZIR, Sylvain PITAMA, Paul NGANGU, Merveille MUDE, Gustave MUTHI, Félicien TUTU, Reagan IKIE et Albert BOMBO. Qu'ils trouvent dans ces lignes l'expression de notre grande et profonde reconnaissance.

Enfin, que tous ceux ou toutes celles qui ont contribué directement ou indirectement à notre devenir et dont les noms ne sont pas expressément cités daignent croire ici en l'expression de notre grande reconnaissance.

[6]

Liste de tableaux

Tableau 1 : Dénombrement des taches 30

Tableau 2 : Planning 30

Tableau 3 : Diagramme de Gantt 37

Tableau 4 : Estimation de durée et cout. 37

Tableau 5 : Calendrier d'exécution du projet 38

Tableau 6 : Acteurs et cas d'utilisation recensés. 41

Tableau 7 : Description du C.U « S'authentifier » 45

Tableau 8 : Description du C.U « consulter malade » 46

Tableau 9 : Description du C.U « gérer utilisateurs » 47

Tableau 10 : Dictionnaire de données. 58

Tableau 11 : Liste des classes 59

Tableau 12 : Multiplicités 60

Tableau 13 : Représentation des associations simples 61

Tableau 14 : Diagramme de classe. 61

[7]

Liste de figures

Figure 1 : Structure d'un système expert

Figure 2 : Caractéristique de l'approche itérative

Figure 3 : processus de développement 2TUP

Figure 4 : Branche gauche de Y

Figure 5 : Diagramme de C.U Consultation

Figure 6 : Diagramme de C.U gérer utilisateur

Figure 7 : DCU global

Figure 8 : Diagramme de séquence « s'authentifier »

Figure 9 : Diagramme de séquence « consulter malade »

Figure 10 : Diagramme de séquence « gérer utilisateurs »

Figure 11: Situation de la capture des besoins techniques dans 2TUP

Figure 12: Architecture simple tiers

Figure 13: Architecture client-serveur

Figure 14:architecture 3 tiers

Figure 15:Branche gauche du cycle en Y

Figure 16 : Diagramme d'activités s'authentifier

Figure 17: Modèle bayésien

Figure 18:Diagramme de déploiement

Figure 19 : Fenêtre d'authentification

Figure 20 : Fenêtre d'enregistrement du patient

Figure 21: fenêtre du diagnostic

[8]

CHAPITRE I : INTRODUCTION 1.1. Mise en contexte

Depuis plusieurs décennies et cela de par le monde, les entreprises, les institutions aussi bien commerciales que sanitaires, bref les hommes éprouvent les besoins du progrès social; pour y parvenir, ils visent à minimiser les coûts et maximiser les revenus. Le diagnostic rapide de maladies devient un aspect non négligeable à la rentabilité et à l'émergence du secteur sanitaire et surtout il est une étape très cruciale dans la thérapie de maladies, de surcroît la réduction de la pauvreté.

La bonne prise de décision rapide et optimale grâce à l'outil informatique avec la pluralité d'avantages qu'il offre est un facteur de développement harmonieux dans l'atteinte de tous les objectifs assignés par l'institution.

Compte tenu du fait que les NTIC ont une influence très considérables sur la productivité et le profit, à l'issue de cette étude, nous tacherons de modéliser et mettre en oeuvre un système expert qui assistera le corps médical à diagnostiquer rapidement la maladie du patient afin d'assurer la bonne prise en charge de ce dernier.

1.2. Problématique

Aujourd'hui la fièvre typhoïde parait un fléau qui touche beaucoup plus des pays sous-développés. La République démocratique du Congo n'est pas en reste, en ce sens que la majeure partie de la population n'a pas accès à l'eau potable et aux soins de santé.

Face à cette situation précaire, il a été constaté qu'à l'absence de médecins considérés comme experts dans certaines formations médicales, le diagnostic de cette maladie combien mortelle dévient de plus en plus difficile.

Or, nous sommes sans ignorés que le diagnostic est l'un des éléments non négligeables dans la décision médicale car il est généralement le préalable d'une meilleure prise en charge du patient. Les médecins qui en assurent font parfois face à des multiples problèmes d'ordre familial, personnel, que professionnel qui peuvent surement entraver leur prise de décision ou d'influer négativement sur la décision prise. Raison pour laquelle, la mise au point d'un système expert de diagnostic de la fièvre typhoïde pourrait résoudre effectivement ce problème.

Cette problématique se résume autour des questions ci-après :

[9]

V' Quelle est la quintessence ou le bien fondé du système expert de diagnostic de la fièvre typhoïde ?

V' Est-il vrai que cet outil pouvait être un début de solution dans l'amélioration de la prise en charge de la fièvre typhoïde ?

V' Quels sont les aspects techniques, économiques et sociaux à donner au futur système ?

1.3. Hypothèse

De tout ce qui précède, à l'issue de cette étude, nous pensons mettre à la disposition du médecin un outil d'aide à la décision grâce à un modèle probabiliste notamment le réseau bayésien à partir d'un ordinateur pouvant aider le personnel médical dans le diagnostic de la fièvre typhoïde en vue d'assurer au mieux la prise en charge de patients.

1.4. Choix et intérêt du sujet

Le choix de notre sujet sur la modélisation et l'implémentation d'un système d'aide à la décision pour le diagnostic de la fièvre typhoïde s'avère très judicieux d'autant plus que la situation sanitaire en ROC est très précaire, nous avons voulu à travers ce sujet apporter notre contribution dans la réduction de ce fléau en y apportant une solution informatique.

Quant à son intérêt, il est triple :

V' Sur le plan économique, c'est outil s'avère être un véritable moteur de développement car il permettra au médecin dans un temps record de diagnostiquer plus d'un patient ; d'où un gain en temps, or le temps est un grand facteur d'émergence.

V' Sur le plan scientifique, il est un outil de recherche pour toute personne intéressée au domaine de conception des systèmes d'information et plus précisément l'intelligence artificielle.

V' Enfin sur le plan personnel, c'est une façon pour nous de pouvoir contribuer à la réduction de la fièvre typhoïde qui touche beaucoup des congolais

1.5. Délimitation du travail

Ce travail visant contribuer à résoudre un problème réellement constaté dans un contexte purement congolais, puis qu'il est ici question du diagnostic de la fièvre typhoïde il ne s'avère pas indispensable qu'il

[10]

soit délimité dans l'espace, ni dans le temps car le diagnostic est effectif partout et il est un processus continu.

1.6. Méthode et techniques utilisées

a. Méthode

La méthode se définit comme étant l'ensemble de règles et de disciplines qui organisent le mouvement d'ensemble de la connaissance, c'est-à-dire les relations entre l'objet de la recherche et le chercheur, entre les informations concrètes rassemblées à l'aide des techniques et le niveau de la théorie et des concepts.1

Ainsi pour la conception de l'application qui sera développée nous avons opté pour la méthode UP construit sur UML ; un processus itératif et incrémental.

En ce qui concerne la méthode de conduite du projet nous avons opté pour la méthode PERT.

b. Techniques

La technique est l'ensemble de procédés ou de moyens pratiques pouvant aider à concrétiser les principes fixés par la méthode2.Bref, elle permet la collecte des informations.

Afin de recueillir toutes les informations utiles de notre recherche nous avons recouru aux techniques ci-après :

y' Technique d'interview : elle nous a permis de poser des questions aux personnes concernées de notre étude en vue de récolter les données nécessaires pour celle-ci.

y' Technique d'observation : elle nous a aidé de voir à l'oeil nu la façon dont se déroule le processus de diagnostic des maladies.

y' Technique documentaire : elle nous a permis de consulter tous les ouvrages nécessaires pour notre étude.

1.7. Difficultés rencontrées

A titre de rappel, ce travail aborde le diagnostic qui est évidemment un domaine sanitaire, tout au long de sa recherche nous avons heurtés plusieurs difficultés dans la récolte de données auprès des

1MUKUNA, B., Essai méthodologique sur la rédaction d'un travail scientifique, éd. CRIGED, Janvier 2006, ISC/Kinshasa, p.28

2BINDUNGWA, M., Comment élaborer un travail de fin de cycle ? Contenu et étapes, ed. Médiaspaul, Kinshasa 2008.

[11]

experts du domaine, la première difficulté est liée à l'inadéquation due au jargon médical, la seconde c'est dans la mise en application du réseau bayésien dans ce diagnostic.

1.8. Canevas du travail

Le présent travail est divisé en sept chapitres de valeurs non négligeables.

Au premier chapitre nous allons présenter l'introduction générale de notre travail.

Au deuxième chapitre intitulé les approches théoriques. Nous aborderons les généralités sur l'intelligence artificielle, le système expert, le langage de modélisation ainsi que les concepts liés au sujet.

Le chapitre troisième s'articulera sur la spécification des besoins et études de faisabilité. Dans cette partie, nous allons décrire les besoins fonctionnels et non fonctionnels du système en plus l'étude de faisabilité de notre projet.

Le quatrième chapitre qui constitue un de noeuds essentiels de notre travail sera synonyme de l'élaboration de notre système. Ici nous allons faire la modélisation statique et dynamique du système.

Le chapitre cinquième développera la construction de notre système. Il nous aidera à construire et implémenter le modèle de la base de connaissances.

Le sixième chapitre et avant dernier chapitre gravitera autour de la transition. Ici, il sera question de mettre l'outil à la disposition des utilisateurs finaux.

Enfin, le septième chapitre marquera la conclusion de ce travail.

[12]

CHAPITRE II : APPROCHES THEORIQUES

Dans ce chapitre, il est question d'aborder les généralités sur l'intelligence artificielle, objet de la première section, le système expert qui est une branche de l'intelligence artificielle, objet de la deuxième section, le processus unifié objet de la troisième section, le langage UML comme objet de la quatrième section et enfin le diagnostic comme objet de la cinquième section.

2.1. Généralités sur l'intelligence artificielle 2.1.1. Définition

L'intelligence artificielle étant un concept a par conséquent plusieurs définitions :

A en croire LAROUSSE, elle se définit comme étant un ensemble de théories et de techniques mises en oeuvre pour réaliser des machines dont le fonctionnement s'apparente à celui d'un cerveau humain.

D'après BUCHANAN3, l'intelligence artificielle est définie comme le domaine informatique qui effectue les traitements symboliques et qui emploie des méthodes non algorithmiques.

RICH pour sa part soutient que l'intelligence artificielle est le domaine qui étudie comment faire exécuter par ordinateur des tâches pour lesquelles l'homme est encore toujours meilleur4.

Nous pouvons encore définir l'intelligence artificielle selon quatre approches suivantes5 :

Systèmes qui pensent comme les humains

L'intelligence artificielle est l'automatisation des activités que nous lions au processus de pensée comme la prise de décision, la résolution des problèmes, apprentissage,...(Bellman, 1978)

Systèmes qui pensent rationnellement

C'est l'étude des facultés mentales à l'aide de l'usage des modèles computationnels. (Charniak et McDermott, 1985).

3 R. Lindsay, B. Buchanan, E.Feignbaum., Application of artificial intelligence to organic

chemistri : the dendra project, Mc Graw-hill 1980.

4RICH, E., Intelligence artificielle, Ed. Masson, paris 1987.

5 KUTANGILA, D., Intelligence artificielle et systèmes experts approfondis, L1 Info, ISC-KIN, 2013-2014.

[13]

Systèmes qui agissent comme les humains

Elle est l'art de développer des machines avec capacités pour réaliser des fonctions qui, quand elles sont réalisées par des personnes, exigent de l'intelligence. (Kurzweil,1990).

Systèmes qui agissent rationnellement

Selon Nilson, l'intelligence artificielle est en rapport avec la conduite intelligente des automates.

2.1.2. Branches de l'intelligence artificielle

L'intelligence artificielle a plusieurs branches parmi lesquelles :

Les systèmes experts : un système expert est un système de traitement qui émule l'habilité de prendre de décisions comme un spécialiste humain

La robotique : Larousse définit la robotique comme étant une science et technique de conception et construction des robots. Il est à signaler que présentement dans les usines il ya des robots industriels qui ont fait leur apparition.

La parole : malgré l'évolution technologique, l'humanité est encore loin de produire un logiciel capable de reconnaitre les paroles d'un quelconque locuteur et cela essentiellement d'autant plus que la compréhension d'un mot, d'une phrase requiert beaucoup d'information extra-langagière.

Le langage naturel

Les systèmes artificiels neuronaux : durant les années 80 surgissent un nouveau développement dans la programmation des paradigmes les systèmes neuronaux

artificiels basé sur la manière dont le cerveau traite
l'information. Ce paradigme est parfois appelé connexionisme, d'autant plus qu'il modélise les solutions aux problèmes en entrainant des neurones simulés, connectés à un réseau de travail.

La compréhension

La vision artificielle

[14]

2.1.3. Avantages de l'IA

L'intelligence artificielle offre plusieurs avantages notamment :

La limitation d'erreurs

L'homme est dispensé de certains travaux pénibles La pérennité des connaissances

Les machines sont exemptes à la fatigue

2.2. Le système expert

2.2.1. Introduction

Le système expert est l'un des domaines de l'intelligence artificielle relatif à la conception des systèmes d'aide à la décision à base de connaissances.

Il est de surcroit un programme informatique intelligent, capable d'agir comme expert dans un domaine. Aujourd'hui, de par le monde, les industries utilisent beaucoup des systèmes experts pour assurer la maintenance, la réparation des machines complexes.

2.2.2. Définition

Il y a plusieurs façons de définir le système expert. Le professeur Edward Feigenbaum de l'Université de Stamford, pionnier en technologie des systèmes experts, le définit comme étant un programme de traitement intelligent qui utilise des connaissances et les procédures d'inférence pour résoudre des problèmes tellement difficiles qu'ils exigent une expérience significative pour leur solution.

Un système expert est un système d'aide à la décision basé sur un moteur d'inférence et une base de connaissances. Il est la transcription logicielle de la réflexion d'un expert dans un domaine donné. Néanmoins, il reste un outil d'aide à la décision et loin de prétendre remplacer l'intelligence humaine.

Il est aussi important de signaler que les termes systèmes experts ou systèmes à base de connaissances ou système expert basé sur la connaissance s'utilisent comme synonymes.

[15]

2.2.3. Les acteurs

La mise en oeuvre d'un système expert est un processus d'ingénierie de connaissances qui impliquent plusieurs personnes notamment :

? Expert

Un expert ou un spécialiste est une personne qui a une parfaite connaissance dans un domaine, due à une longue durée de travail. Il est considéré comme le socle même du développement d'un système expert. De ce fait, il doit être disponible lors de la phase d'extraction de ses connaissances car c'est lui qui a le monopole de savoir et de savoir-faire de son domaine d'expertise. C'est l'expert qui fournit les connaissances nécessaires liées au problème.

? Le cogniticien

Autrement appelé Ingénieur des connaissances, c'est une personne ayant des bonnes bases en informatiques et généralement ingénieur en intelligence artificielle. Il est chargé d'extraire les connaissances auprès de l'expert. A ce titre, il établit un dialogue avec l'expert pour obtenir ses connaissances, il le codifie de façon explicite dans la base de connaissances sous formes des règles.

? Les managers : sont des personnes pour qui on développe le système.

2.2.4. Architecture d'un système expert

La structure ou l'architecture d'un système expert se présente dans la figure ci-dessous :

[16]

Utilisateur

Base de faits

Base de connaissances

Moteur d'inférence

Base de règles

Figure 1 : Structure d'un système expert 2.2.5. Composants d'un système expert

Selon son architecture simple présentée ci-dessus, nous distinguons trois composants de base d'un système expert notamment :

? La base de connaissances ? La base de faits

? Le moteur d'inférence

2.2.5.1. La base de connaissances

Elle contient la connaissance qui permet au mécanisme d'inférence de tirer de conclusions ; celles-ci sont de réponses du système à la consultation spéciale de l'utilisateur.

2.2.5.2. La base de faits

Elle contient tout ce que le système expert sait sur le cas étudié. La base de faits est ainsi variable au cours de l'exécution et est vidée lorsque l'exécution se termine.

Les faits sont des connaissances factuelles et les règles constituent des connaissances opératoires.

[17]

2.2.5.3. Le moteur d'inférence

Autrement dit mécanisme d'inférence, il contrôle l'exécution des règles. Il décide sur quelles règles exécuter et quand. Il permet d'inférer des connaissances nouvelles à partir de la base de connaissances du système.

Il est le coeur du système, et qui contient un algorithme de résolution dont la fonction consiste à effectuer des déductions en partant des faits initiaux et en s'appuyant sur les règles contenues dans la BR, dans le but final de produire (c'est-à-dire de déduire) de nouveaux faits. Il peut fonctionner en chaînage avant, chaînage arrière ou chaînage mixte6.

? Chaînage avant : le principe du chaînage avant est simple, il requiert l'accès aux prémices afin de déclencher les règles d'inférences adéquates définies par les mérules. L'application de règles donne des résultats, ceux-ci sont évalués afin de savoir si l'on accédé à une solution finale potentielle. Si c'est le cas, on arrêté et cette solution est proposée. Si c'est le cas, la solution est proposée à l'utilisateur. S'il la valide, la solution est enregistrée dans la base de faits comme solution, sinon comme simple résultat et on continue dans le cas suivant.

? Chaînage arrière : le principe du chaînage arrière est plus compliqué, il s'agit dans ce cas de partir d'un effet ou d'une solution et de tenter de remonter la chaîne afin de déterminer les causes d'un effet (fait). La procédure est à partir d'un effet, de déterminer, grâce aux métarules, les règles d'inférence qui aurait pu être à l'origine de ce fait et de déterminer les paramètres les plus probables. A partir de là, on analyse les paramètres : Si le paramètre est un fait enregistré dans la base de fait, c'est qu'il est le résultat d'une règle. La procédure précédemment décrite est donc relancée. Si le paramètre n'est pas un fait de la base de fait, on en reste là.

? Chaînage mixte :il utilise une combinaison de ces deux approches chaînage avant et chaînage arrière.

6 MUJINGA, S., Conception et réalisation d'un système expert de diagnostic du cancer de la peau, mémoire, Unikin, 2013.

[18]

2.2.6. Les apports des systèmes experts

Les motivations pour une entreprise de réaliser un système expert sont regroupées en trois catégories :

? La gestion de l'expertise

? L'augmentation de la capacité de l'expert ? La diffusion des connaissances

2. 2. 6.1. La gestion de l'expertise

Le rôle d'une entreprise est de prendre en charge l'intelligence qu'elle utilise qui naturellement est distribuée, de la formaliser et de la sauvegarder. En effet, les experts sont des hommes rares, très chers et difficiles à remplacer.

D'où l'impérieuse nécessité pour une entreprise de s'approprier de la technique des systèmes experts et de conserver ainsi l'expertise sous une forme aussi claire et accessible à tous. Le système expert dévient alors un moyen de formation.

2.2.6. 2. L'augmentation de la capacité de l'expert

Un système peut donc assister un spécialiste du fait que sa connaissance provient de plusieurs experts. D'autres parts, l'expert étant un homme, il peut donc être sujet à la fatigue, à l'oubli, etc. alors que le système expert est insensible à de telles considérations. On peut ainsi au moyen d'un système expert, trouver plus rapidement une solution à un problème en donnant accès aux connaissances des autres experts du domaine.

2.2.6.3. La diffusion de l'information

Les experts étant des hommes, il est souvent nécessaires pour une entreprise que leur expertise soit diffusée à des nombreux services afin de décentraliser les prises de décisions et d'ainsi accroitre la rapidité et l'homogénéité. Ainsi, la diffusion permet aux utilisateurs de disposer à tout moment de l'expertise.

[19]

2.2.7. Avantages des systèmes experts

Les systèmes experts présentent plusieurs avantages que nous

citons :

> Danger réduit : les systèmes peuvent être utilisés dans des environnements qui pourraient être dangereux pour un humain.

> Permanence : l'expérience est permanente.

> Grande disponibilité : l'expérience est disponible pour tout matériel de traitement adéquat.

> Explication : le système expert peut expliquer clairement et en détail le raisonnement qui conduit à une conclusion, cela augmente la confiance que la décision prise était correcte.

> Enseignement intelligent : un système expert peut agir comme un enseignant intelligent en laissant que l'étudiant exécute.

> Réponse rapide : u système expert peut répondre plus rapidement qu'un spécialiste humain.

2.2.8. Inconvénients du système expert

Le système expert présente deux inconvénients majeurs :

> Le chômage du moment où il peut à lui seul réaliser ce qui pourrait se faire un groupe de personnes.

> Le système s'appuie à des connaissances même si il ne plus utilisable.

2.3. Le processus unifie (UP)

Le processus unifié est un processus de développement moderne, itératif, efficace sur des projets informatiques de toutes tailles. Très complet, il couvre l'ensemble des activités, depuis la conception du projet jusqu'à la livraison de la solution.

Intégrant une organisation de projet type, une méthodologie utilisant UML et un ensemble de bonnes pratiques cohérentes entre elles, il permet de circonvenir aux problèmes récurrents que rencontrent nombre de réalisations : dérive des coûts et des délais, qualité insuffisante, réponse incomplète aux attentes des utilisateurs.

[20]

Un point d'excellence de cette démarche est son adaptabilité : UP peut se décliner en fonction de l'ampleur d'un projet, de l'expérience de l'équipe qui l'assume, de la nature de la solution à construire.

2.3.1. Les Principes d'UP

Le processus de développement UP, associé à UML, met en oeuvre les principes suivants :

· processus guidé par les cas d'utilisation,

· processus itératif et incrémental,

· processus centré sur l'architecture,

· processus orienté par la réduction des risques.

Ces principes sont à la base du processus unifié décrit par les auteurs d'UML.

a) Processus guidé par les cas d'utilisation

L'orientation forte donnée ici par UP est de montrer que le système à construire se définit d'abord avec les utilisateurs. Les cas d'utilisation permettent d'exprimer les interactions du système avec les utilisateurs, donc de capturer les besoins.

b) Processus itératif et incrémental

Ce type de démarche étant relativement connu dans l'approche objet, il paraît naturel qu'UP préconise l'utilisation du principe de développement par itérations successives. Concrètement, la réalisation de maquette et prototype constitue la réponse pratique à ce principe. Le développement progressif, par incrément, est aussi recommandé en s'appuyant sur la décomposition du système en cas d'utilisation.

Les avantages du développement itératif se caractérisent comme

suit :

· Les risques sont évalués et traités au fur et à mesure des itérations ;

· Les premières itérations permettent d'avoir un feed-back des utilisateurs ;

· Les tests et l'intégration se font de manière continue,

· Les avancées sont évaluées au fur et à mesure de

l'implémentation.

[21]

Figure 2 : Caractéristiques de l'approche itérative

c) Processus centré sur l'architecture

Les auteurs d'UP mettent en avant la préoccupation de l'architecture du système dès le début des travaux d'analyse et de conception. Il est important de définir le plus tôt possible, même à grandes mailles, l'architecture type qui sera retenue pour le développement, l'implémentation et ensuite le déploiement du système. Le vecteur des cas d'utilisation peut aussi être utilisé pour la description de l'architecture.

d) Processus orienté par la réduction des risques

L'analyse des risques doit être présente à tous les stades de développement d'un système. Il est important de bien évaluer les risques des développements afin d'aider à la bonne prise de décision. Du fait de l'application du processus itératif, UP contribue à la diminution des risques au fur et à mesure du déroulement des itérations successives.

2.3.2. Les phases du processus unifie et les activités

Les phases d'un processus de développement sont des états de celui-ci à un instant t. Le cycle de développement du Processus Unifié organise les tâches et les itérations en quatre phases7 :

? Inception ou (commencement) : Cette phase correspond à l'initialisation du projet où l'on mène une étude d'opportunité et de faisabilité du système à construire. Une évaluation des risques est aussi réalisée dès cette phase.

7ROQUES, P. et VALLEE, F., UML 2 en action de l'analyse des besoins à la conception, Ed. EYROLLES, Paris, 2005,

[22]

En outre, une identification des principaux cas d'utilisation accompagnée d'une description générale est modélisée dans un diagramme de cas d'utilisation afin de définir le périmètre du projet.

? Élaboration : Cette phase reprend les résultats de la phase

d'inception et élargit l'appréciation de la faisabilité sur la quasi-totalité des cas d'utilisation. Ces cas d'utilisation se retrouvent dans le diagramme des cas d'utilisation qui est ainsi complété.

Cette phase a aussi pour but d'analyser le domaine technique du système à développer afin d'aboutir à une architecture stable. Ainsi, toutes les exigences non recensées dans les cas d'utilisation, comme par exemple les exigences de performances du système, seront prises en compte dans la conception et l'élaboration de l'architecture.

? Construction : Cette phase correspond à la production d'une première version du produit. Elle est donc fortement centrée sur les activités de conception, d'implémentation et de test.

En effet, les composants et fonctionnalités non implémentés dans la phase précédente le sont ici.

? Transition :Après les opérations de test menées dans la phase précédente, il s'agit dans cette phase de livrer le produit pour une exploitation réelle. C'est ainsi que toutes les actions liées au déploiement sont traitées dans cette phase. De plus, des « bêta tests » sont effectués pour valider le nouveau système auprès des utilisateurs.

2.3.3. Activités du processus

Les activités représentent les actions à effectuer au cours d'une phase : une phase passe par l'ensemble des activités. Le temps passé par activité est fonction des phases.

Nous nous limiterons donc à ne donner qu'une brève explication de chaque activité.

Expression des besoins

UP propose d'appréhender l'expression des besoins en se fondant sur une bonne compréhension du domaine concerné pour le système à développer et une modélisation des procédures du système existant.

Ainsi, UP distingue deux types de besoins :

? les besoins fonctionnels qui conduisent à l'élaboration des cas

d'utilisation,

? les besoins non fonctionnels (techniques) qui aboutissent à la
rédaction d'une matrice des exigences.

[23]

Analyse

L'analyse permet une formalisation du système à développer en réponse à l'expression des besoins formulée par les utilisateurs. L'analyse se concrétise par l'élaboration de tous les diagrammes donnant une représentation du système tant statique (diagramme de classe principalement), que dynamique (diagramme des cas d'utilisation, de séquence, d'activité, d'état-transition...).

Conception

La conception prend en compte les choix d'architecture technique retenus pour le développement et l'exploitation du système. La conception permet d'étendre la représentation des diagrammes effectuée au niveau de l'analyse en y intégrant les aspects techniques plus proches des préoccupations physiques.

Implémentation

Cette phase correspond à la production du logiciel sous forme de composants, de bibliothèques ou de fichiers.

Test

Il permet de vérifier :

? La bonne implémentation de toutes les exigences (fonctionnelles et techniques),

? Le fonctionnement correct des interactions entre les objets,

? La bonne intégration de tous les composants dans le logiciel.

2.3.4. Adaptation du processus unifié

Il existe plusieurs processus de développement qui implémente UP dont les plus connues sont :

? RUP : Rational Unified Process

? XP : eXtreme Programming

? 2TUP : Two Tracks Unified Process,

Dans le cadre de notre étude, nous allons utiliser le 2TUP, tout développement peut être décomposé et traités en parallèle selon un axe fonctionnel et un axe technique. Nous pouvons ainsi suivre les évolutions liées aux changements des besoins fonctionnels et aux changements des besoins techniques8.

8ROQUES, P et VALLEE F, op.cit P14.

[24]

La schématisation du processus de développement correspond alors à un Y. Les deux perspectives se rejoignant lors de la phase de conception préliminaire.

Figure 3 : Processus de développement 2TUP

La branche fonctionnelle contient : la capture des besoins et de leurs analyses. Les résultats de l'analyse sont indépendantes des technologies utilisés.

La branche technique contient : la capture des besoins techniques et de la conception générique.

L'architecture technique construit le squelette du système informatique indépendamment des besoins fonctionnels.

Les deux branches sont ensuite fusionnées en une seule branche qui prend en charge la conception préliminaire (cartographie des composants à développer), conception détaillée (comment réaliser chaque composant), codage (production des composants), tests et étapes de validation des fonctions développées.

2.4. Généralités sur le langage UML

UML (Unified Modeling Language) est un langage formel et normalisé en termes de modélisation objet. Son indépendance par rapport aux langages de programmation, aux domaines de l'application et aux processus, son caractère polyvalent et sa souplesse ont fait de lui un langage universel. En plus UML est essentiellement un support de communication, qui facilite la représentation et la compréhension de

[25]

solution objet. Sa notation graphique permet d'exprimer visuellement une solution objet, ce qui facilite la comparaison et l'évaluation des solutions. L'aspect de sa notation, limite l'ambigüité et les incompréhensions.

UML fournit un moyen astucieux permettant de représenter diverses projections d'une même représentation grâce aux vues.

Une vue est constituée d'un ou plusieurs diagrammes. On distingue deux types de vues:

La vue statique, permettant de représenter le système physiquement :

Diagrammes de classes: représentent des collections d'éléments de modélisation statiques (classes, paquetages...), qui montrent la structure d'un modèle.

Diagrammes d'objets: ces diagrammes montrent des objets (instances classes dans un état particulier) et des liens (relations sémantiques) entre objets.

Diagrammes de composants: permettent de décrire l'architecture physique statique d'une application en termes de modules : fichiers sources, librairie exécutables, etc.

Diagrammes de déploiement: montrent la disposition physique du matériel qui compose le système et la répartition des composants sur ce matériel.

La vue dynamique, montrant le fonctionnement du système :

Diagrammes de collaboration: montrent des interactions entre objet (instances de classes et acteurs).

Diagrammes de cas d'utilisation: identifient les utilisateurs du système (acteurs) et leurs interactions avec le système.

Diagrammes de séquence: permettent de représenter des collaborations eu objets selon un point de vue temporel, on y met l'accent sur la chronologie (envois de messages).

Diagrammes d'états-transitions: permettent de décrire les changements d'états d'un objet ou d'un composant, en réponse aux interactions avec d'autres objets/composants ou avec des acteurs.

Diagrammes d'activités: (une variante des diagrammes d'états-transitions) servent à représenter graphiquement le comportement d'une méthode ou déroulement d'un cas d'utilisation.

[26]

2.5. Le diagnostic de la fièvre typhoïde 2.5.1. Le diagnostic

Le diagnostic n'est rien d'autre que l'identification d'une maladie par ses symptômes. Il permet de reconnaitre une maladie pour en assurer la prise en charge appropriée. Le diagnostic est l'élément essentiel de la décision médicale qui relève de la compétence du médecin.

Ce concept remonte aux origines de la médecine. La rationalité de la démarche diagnostique s'est enrichie au cours des deux derniers siècles des apports de la science. Le schéma selon lequel le diagnostic est issu du recueil et de la hiérarchisation des symptômes et des signes cliniques, confirmé et précisé par les examens complémentaire doit être gardé en mémoire comme un principe fondamental.

L'élaboration du diagnostic bénéficie de nombreuses innovations. Elles concernent les moyens techniques disponibles (biologie, imagerie) et les nouvelles méthodes pour tirer parti des données (statistiques, algorithme).

Le développement des moyens de diagnostic impose des nouvelles responsabilités aux médecins : renouvellement des connaissances, exigeant une formation continue et efficace, bon usage des moyens disponibles imposant l'évaluation des pratiques professionnelles. La mise en oeuvre du diagnostic doit tenir compte de l'évolution de la société.

2.5.2. La fièvre typhoïde

La fièvre typhoïde (du grec tuphos, torpeur) ou typhus abdominal est une maladie infectieuse décrite en 1818 par Pierre Bretonneau, causée par une bactérie de la famille Entérobactérie, du genre des salmonelles, et dont les espèces responsables sont: Salmonella enterica - typhi ou paratyphi A, B, C -. Salmonella enterica typhi est

encore appelée bacille d'Eberth. C'est une maladie bactérienne
transmissible strictement humaine. Elle est provoquée par des salmonelles que l'on trouve dans le lait, la nourriture ou l'eau contaminé.

La faisabilité opérationnelle s'intéresse plus aux besoins non fonctionnels car elle décrit toutes les contraintes possibles notamment

[27]

CHAPITRE III : SPECIFICATIONS DES BESOINS ET ETUDES DE FAISABILITE

Ce chapitre va s'atteler autour des besoins fonctionnels et non fonctionnels du projet et enfin les faisabilités nécessaires pour la matérialisation du projet. Il sied de signaler que c'est la phase cruciale du développement 2TUP dans la mesure où elle aidera à identifier les acteurs et exprimer les besoins sous formes de cas d'utilisation.

3.1. Narration

Avec les enjeux de la mondialisation qu'assiste l'humanité tout entière, les scientifiques mettent au point plusieurs outils pour faciliter l'homme dans l'exercice de ses fonctions. Le diagnostic de maladies n'est pas du reste, motif pour lequel nous pensons mettre à la disposition du personnel soignant un système expert pouvant l'assister dans le diagnostic de maladies notamment la fièvre typhoïde.

En ce qui concerne le système qui sera implémenté, à l'arrivée du patient, il est directement reçu par un médecin pour consultation afin de lui soumettre toutes ses plaintes et signes vitaux qu'il présente. Le médecin pour sa part va interroger le système bien entendu dans l'interface de diagnostic. Après quoi, il sera déclenché un message pour signaler la présence de la fièvre typhoïde, en cas d'éventualité, le patient sera soumis à un examen clinique pour ainsi confirmer la présence ou non de la typhoïde.

3.2. Etudes de faisabilité

3.2.1. Faisabilité fonctionnelle

Cette partie très importante listera toutes les fonctionnalités de notre application. Elle s'attardera sur les exigences fonctionnelles de tous les différents acteurs dans le cas d'utilisations que nous évoquerons plus tard.

3.2.2. Faisabilité opérationnelle

[28]

ergonomiques, techniques et esthétiques auxquelles est soumis le système pour sa réalisation et son bon fonctionnement9.

Dans le cadre de notre système expert, nous avons pu relever des besoins ci-après :

La fiabilité : les données de l'application doivent être fiables ; Robustesse : l'application réagira mieux même si l'on s'écarte aux conditions normales d'utilisation ;

Convivialité de l'interface graphique : l'interface sera à même de mettre chaque utilisateur à l'aise par la beauté de son interface graphique ;

La disponibilité : l'application s'utilisera par tout utilisateur de la boite.

L'intégrité : l'application sera sécurisé contre toute modification ;

L'intégrité : elle tiendra compte de l'évolution.

3.3. Choix de la méthode d'ordonnancement

Le modèle d'ordonnancement présente plusieurs avantages :

La facilitation de l'établissement du planning prévisionnel de réalisation du projet ;

La spécification de l'ordre d'exécution des différentes tâches ;

La minimisation de la durée d'exécution des travaux ;

La facilitation de la construction du diagramme de GANNT pour un bon suivi du projet.

Il existe par ailleurs plusieurs méthodes d'ordonnancement pour élaborer le planning prévisionnel des projets notamment la méthode PERT, de potentiel mettra (MPM). Mais dans le cadre de ce projet, nous optons pour la méthode PERT.

9HEDIDAR , A., Conception et réalisation d'une application mobile m-banking, mémoire, Université Virtuelle de Tunis, 2011-2012.

[29]

3.3.1. Présentation de la méthode PERT

Le bon ordonnancement des taches élémentaires concourant à la réalisation d'un ensemble complexe a été, de tout temps, un souci majeur pour les responsables d'entreprise.

Un nouvel outil est intervenu à l'occasion de la réalisation par les spécialistes en recherche opérationnelle de la Marine US et le célèbre cabinet de conseil BOOZALLEN&HAMILTON. Il s'agissait de mettre au point une méthode de planification susceptible de s'assurer de l'achèvement d'un modèle, nécessitant de très nombreux sous-traitants, à une date précise10.

Le nom P.E.R.T (Program Evaluation Review Technic) a été attribué à ce nouvel outil de travail. P.E.R.T peut-être traduite par « méthode critique d'évaluation et de contrôle de projet »11.

S'agissant du principe de cette méthode, les taches sont représentées par les arcs. La valeur de chaque arc sera la durée de la tâche.

3.3.2. Identification et dénombrement des tâches

Le tableau suivant comprend toutes les tâches identifiées pour la réalisation de ce projet ainsi que les contraintes de réalisation de chaque tâche.

10MVIBUDULU, J.A., Note de cours de théorie des graphes, L2 Info, ISC, 2014-2015. 11 Idem.

[30]

Tableau 1 : Dénombrement des taches

Tâches

LIBELLE

TACHES
ANTERIEURES

A

Expression de besoins

 

B

Analyse de besoins

A

C

Etude de faisabilité

B

D

Elaboration du système

C

E

Construction du système

D

F

Déploiement

E

G

Test de l'application et production du guide d'utilisation.

E, F

H

Formation du personnel

G

I

Livraison de l'application

H

3.3.3. Planning d'exécution des taches et estimations de durées.

Tableau 2 : Planning

TACHES

Libelle

TACHES
ANTERIEURE

S

DUREE
/JOUR

S

NBRE COUT /$

PERS.

A

Expression de besoins

 

7

200

B

Analyse de besoins

A

19

320

C

Etude de faisabilité

B

23

350

D

Elaboration du systèmez

C

24

450

E

Construction du système

D

13

2550

F

Déploiement

E

7

1200

G

Test de l'application et

production du guide
d'utilisation.

e,f

16

2 50

H

Formation du personnel

G

31

1500

I

Livraison de l'application

H

13

2000

[31]

3.3.4. Etablissement des liens d'antériorité

C'est ce qu'évoque le tableau précédent. 3.3.5. Détermination du niveau des graphes

Nx est le nombre d'étape maximal

Nx-1 = [10J = R9

Nx-2 = [9J = R8

Nx-3 = [8J = R7

Nx-4 = [7J = R6

Nx-5 = [6J = R5

Nx-6 = [5J = R4

Nx-7 = [4J = R3

Nx-8 = [3J = R2

Nx-9 = [2J = R1

Nx-10 = [1J = R0

N0 N1 N2 N3 N4 N5 N6 N7 N8 N9

93

93

G

109 109

F

7

16

8

7

0

1

0

A

7 19

2 3

7 7

B

26 26

C

23

49

4

49 D

24

73

5

73 E

13

86

6

86

0

31

H

140

140

0

9

13

7'

153 153

i

86 93

[32]

3.3.6 Elaboration du graphe

[33]

3.3.7. Détermination des dates au plus tôt et au plus tard Date au plus tôt (Dto) :

La date au plus tôt (dto) est la date la plus rapprochée à laquelle il est possible de réaliser une étape. Elle se calcule par la formule suivante :

dto(x)=Max{dto(y)+d(i)}.

dto(x) est considéré comme 2e étape, dto(y) est considéré comme 1èreétape et i comme une tâche.

Calcul

Dto(1) =0

Dto(2)= Dto(1) +d(a)=0+7=7 Dto(3)= Dto(2) +d(b)=7+19=26 Dto(4)= Dto(3) +d(c)=26+23=49 Dto(5)= Dto(4) +d(d)=49+24=73 Dto(6)= Dto(5) +d(e)= 73+13=86

Dto(7)= MaxDto(5) +d(e)=Max 86 +7 = 93 (qui est la valeur maximum) Dto(6) +d(f') 86+0

Dto(8)= Dto(7) +d(g)=93+16=109 Dto(9)= Dto(8) +d(h)=109+31=140 Dto(10)= Dto(9) +d(i)=140+13=153 Date au plus tard (Dta) :

C'est la date à laquelle il faut impérativement démarrer la tâche x si on veut terminer absolument le projet dans sa durée minimale.

Sa formule est : dta(y)=Min dta(x)-d(i). Calcul:

Dta(10)=153

Dta(9) = Dta(10)-d(i)=153-13=140

[34]

Dta(8) = Dta(9)-d(h)=140-31=109

Dta(7) = Dta(8)-d(g)=109-16=93

Dta(6) = Dta(7)-d(f)=93-7=86

Dta(6) = Dta(7)-d(f')=93-0=93

Dta(5) = Max Dta(6)-d(f)=Max 86-13=73

Dta(4) = Dta(5)-d(d)=73-24=49

Dta(3) = Dta(4)-d(c)=49-23=26

Dta(2) = Dta(3)-d(b)=24-19=7

Dta(1) = Dta(2)-d(a)=7-7=0

3.3.8. Détermination des marges

Marge libre : elle est le délai de la mise en route de la tâche (i) sans compromettre la dto de l'étape (y). elle se calcule par la formule :

ML(i)= Dto(y)-d(i),

Sur base de cette formule que nous allons chercher les marges libre de nos tâches.

Calcul :

ML(a)=dto(2)-dto(1)-d(a)=7-0-7=0 tâche critique ML(b)=dto(3)-dto(2)-d(b)=26-7-19=0 tâche critique ML(c)=dto(4)-dto(3)-d(c)=49-26-23=0 tâche critique ML(d)=dto(5)-dto(4)-d(d)=73-49-24=0 tâche critique ML(e)=dto(6)-dto(5)-d(e)=86-73-13=0 tâche critique ML(f)=dto(7)-dto(6)-d(f)=93-86-7=0 tâche critique ML (f')=dto(7)-dto(6)-d(f')=93-86-0=7 tâche non critique ML(g)=dto(8)-dto(7)-d(g)= 109-93-16=0 tâche critique ML(h)=dto(9)-dto(8)-d(h)=140-109-31=0 tâche critique

Le chemin critique est celui qui relie toute les tâches dont la marge totale (mt) est nul c'est-à-dire a, b, c, d,e,f, g, h, i.

[35]

ML(i)=dto(10)-dto(9)-d(i)=153-140-13=0 tâche critique

Pour que nous puisons déterminer les chemins critiques, lesquelles sont les chemins que nous allons suivre, il nous faut utiliser cette formule (dta-dto).

Marge Totale: on appelle marge totale, notée MT(i) le délai disposé pour la mise en route de la tâche (i) sans modifier la dta de l'étape (y) (x) étant le sommet initial de la tâche (i) et y son sommet terminal.

Sa Formule est :

MT(i)= dta(y)-dto(x)-d(i).

dta(y) est le sommet terminal, dto(x) est le sommet initial.

Calcul:

MT(a)=dta(2)-dto(1)-d(a)=7-0-7=0 MT(b)=dta(3)-dto(2)-d(b)=26-7-19=0 MT(c)=dta(4)-dto(2)-d(c)=49-26-23=0 MT(d)=dta(5)-dto(3)-d(d)=73-49-24=0 MT(e)=dta(7)-dto(4)-d(e)=86-73-13=0 MT(f)=dta(6)-dto(5)-d(f)=93-86-7=0 MT(f')=dta(7)-dto(6)-d(f')=93-93-0=0 MT(g)=dta(8)-dto(7)-d(g)=109-93-16=0 MT (h)=dta(9)-dto(8)-d(h)=140-109-31=0 MT(i)=dta(10)-dto(9)-d(i)=153-140-13=0 NB: - Sidto et dta c'est à dire si dto=dta alors l'étape est critique

- Lorsque la ML(i) est égale MT(i) alors la tâche est critique.

3.3.9 Détermination du chemin critique

93

93

G

109 109

F

7

16

8

7

0

0 A 7 7

B

26 26

C 49 49 D 73

73 E

86

86

31

H

1

7 19

2 3

23

4

24

5

13

6

140

140

9

13

153 153

i

[36]

[37]

3.4. Diagramme de GANTT

Ce diagramme nous permet de déterminer les différentes taches à réaliser et leurs durées, à définir les relations d'antériorité entre ces taches, de les représenter par un trait parallèle en pointillé à la tache planifiée par la progression réelle du travail.

Tableau 3 : Diagramme de Gantt

 

JA NVIER

FEVRIER

MARS

AVRIL

MAI

JUIN

 

12 15 18

06

10

25

01

15

25

07

14

30

05

15

31

01

13

25

A

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

B

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

C

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

D

 
 
 
 
 
 
 
 
 
 
 
 
 
 

E

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

F

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

G

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

H

 
 
 
 
 
 
 
 
 
 
 
 
 
 

I

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3.4.1. Faisabilité financière

Tableau 4 : Estimation de durée et cout.

TACHES

Libelle

TACHES
ANTERI
EURES

DUREE
/JOUR

S

NBRE COUT /$PERS.

A

Expression des besoins

 

7

200

B

Analyse de besoins

A

19

320

C

Etude de faisabilité

B

23

350

D

Elaboration du système

C

24

450

E

Construction du système

D

13

2550

F

Déploiement

E

7

1200

G

Test de l'application

e,f

16

2 50

H

Formation du personnel

G

31

1500

I

Livraison de l'application

H

13

2000

a) La durée d'exécution du projet est de 153 jours qui est dta(10) et dto(10) ;

b) Le coût total du projet : 8820$

[38]

3.4.2. Calendrier d'exécution du projet

Comme en témoigne bien le tableau ci-dessous qui présente le planning de réalisation de notre projet, la durée de réalisation de notre projet est de 153 jours à dater du 12 Janvier au 13 Juin 2015.

Tableau 5 : Calendrier d'exécution du projet

Date début exécution

TACHES

Date fin d'exécution

Le 12 Janvier 2015

A

Le 18 Janvier 2015

Le 18 Janvier 2015

B

Le 06 Février 2015

Le 06 Février 2015

C

Le 01 Mars 2015

Le 01 Mars 2015

D

Le 25 Mars 2015

Le 25 Mars 2015

E

Le 07 Avril 2015

Le 07 Avril 2015

F

Le 14 Avril 2015

Le 14 Avril 2015

G

Le 30 Avril 2015

Le 30 Avril 2015

H

Le 31 Mai 2015

le 31 Mai 2015

I

Le 13 Juin 2015

3.5. Modélisation fonctionnelle

3.5.1. Capture de besoins fonctionnels

Comme le montre la figure ci-dessous, la capture des besoins fonctionnels est la première étape de la branche gauche du cycle en Y.

Elle formalise et détaille ce qui a été ébauché au cours de l'étude préliminaire. Elle est complétée au niveau de la branche droite du Y par la capture des besoins techniques et prépare l'étape suivante de la branche gauche : l'analyse.12

12PASCAL R., UML 2 modéliser une application Web, 4ème Ed. Eyrolles, Paris 2006.

[39]

a. Identification des acteurs

Un acteur représente un rôle joué par une entité externe (utilisateur humain, dispositif matériel ou autre système) qui interagit directement avec le système étudié.

Un acteur peut consulter et/ou modifier directement l'état du système, en émettant et/ou en recevant des messages susceptibles d'être porteurs de données13.

Selon le professeur MVIBUDULU, les acteurs sont des classificateurs qui représentent des rôles au travers d'une certaine utilisation (cas) et non pas des personnes physiques.14

Acteur

Il existe en UML deux types d'acteurs qui sont :

Acteur principal : celui pour qui le cas d'utilisation produit la plus-value métier. En conséquence, l'acteur principal est la plupart du temps (mais pas forcément, comme dans le cas précité des traitements batch) le déclencheur du cas d'utilisation.

13PASCAL, R., UML 2 par la pratique étude de cas et exercices corrigés, 5ème Ed. Eyrolles, Paris, 2008.

14MVIBUDULU, J. A., Cours de conception des systèmes d'information, L2 Info, ISC-KIN, 2014-2015.

[40]

Acteurs secondaires : Sont des autres participants du cas d'utilisation. Les acteurs secondaires sont typiquement sollicités à leur tour par le système pour obtenir des informations complémentaires.

Les acteurs ci-dessous ont été identifiés pour notre système :

Utilisateur il peut être médecin ou tout personnel du corps soignant.

Cogniticien

Administrateur : c'est généralement un informaticien. Il aura comme tache la gestion de tous les utilisateurs.

b. Identification de cas d'utilisation

Un cas d'utilisation en anglais « use case »représente un ensemble de séquences d'interactions entre le système et ses acteurs.

Il est tout de même, l'expression d'un service réalisé de bout en bout, avec un déclenchement, un déroulement et une fin, pour l'acteur qui l'initie. On peut donc le considérer comme une abstraction de plusieurs chemins d'exécution d'une utilisation du système.

Il sied de rappeler que le diagramme de cas d'utilisation est représenté par une ellipse à l'intérieur duquel un verbe à l'infinitif.

Cas d'utilisation

Nous présentons dans le tableau ci-dessous les différents acteurs et les cas d'utilisation de notre système.

[41]

Tableau 6 : Acteurs et cas d'utilisation recensés.

Acteurs

Cas d'utilisation

Médecin

Etre consulté

Ajouter patient

Supprimer

Identifier maladie

Modifier

Identifier

Administrateur

Gérer utilisateurs

Ajouter utilisateur

Supprimer utilisateur

Les relations entre acteurs et cas d'utilisation

Il est parfois intéressant d'utiliser des liens entre cas (sans passer par un acteur), UML en fournit de deux types : la relation utilise (include) et la relation étend (ex-tend).

Inclusion de cas (include) : La relation d'inclusion (include) est employée quand deux cas d'utilisation ont en commun une même fonctionnalité et que l'on souhaite factoriser celle-ci en créant un sous cas, ou cas intermédiaire, afin de marquer les différences d'utilisation.

Extension de cas (extend) : Schématiquement, nous dirons qu'il y a extension d'un cas d'utilisation quand un cas est globalement similaire à un autre, tout en effectuant un peu plus de travail (voire un travail plus spécifique). Cette notion à utiliser avec discernement permet d'identifier des cas particuliers (comme des procédures à suivre en cas d'incident) dès le début ou lorsque l'attitude face à un utilisateur spécifique du système doit être spécialisée ou adaptée. Il s'agit grosso modo d'une variation du cas d'utilisation normale.

Généralisation :

[42]

3.5.1.1. Diagramme de cas d'utilisation

Le diagramme de cas d'utilisation sert à identifier les utilisations du nouveau système. Autrement dit, il spécifie la façon dont le système sera utilisé15. Il est en essence un résumé du tableau des événements.

Ainsi, pour la compréhension de notre système, nous représentons les différents acteurs et cas d'utilisations dans les diagrammes de cas d'utilisation ci-dessous :

a. Cas d'utilisation pour la consultation

Figure 4 : Diagramme de C.U consultation

15JACKSON, SATZINGER ET BURD., Analyse et conception de systèmes d'information, 2ème éd. Goulet, Paris, 2003.

[43]

b. Cas d'utilisation pour la gestion des utilisateurs

Figure 5 : Diagramme de C.U gérer utilisateur Diagramme de cas d'utilisation globale

Tout ceci peut être représenté dans le diagramme global ci-dessous :

[44]

Figure 6 : DCU globale.

3.5.1.1.1. Description de cas d'utilisation

Il s'agit ici de faire la description textuelle de chaque cas d'utilisation i.e. associer à chaque cas d'utilisation un nom, un objectif, les acteurs qui y participent, les pré-conditions et des scénarii.

[45]

a. Cas d'utilisation « S'authentifier ))

Tableau 7 : Description du C.U « S'authentifier ))

Sommaire d'identification

Titre : s'authentifier

But : permet à chaque acteur muni d'un compte valide de se connecter au système.

Acteurs : Utilisateurs, administrateur, cogniticien.

Enchainement

Pré conditions :

Post-Condition

Introduire login et mot de passe

l'utilisateur est connecté au

système

Scénario nominal

Ja: L'acteur se connecte au système moyennant son login et son mot de passe.

1b : l'utilisateur annule l'authentification.

2: L'acteur saisit le login et le mot de passe.

Scenario alternatif

1a : le système affiche l'interface de connexion.

1b : le système ferme l'authentification du système.

2 : - si le compte et le mot de passe saisis sont valides, l'acteur accède au système et l'interface principale s'affiche

- Dans le cas contraire, l'accès est refusé et le message J s'affiche.

[46]

b. Cas d'utilisation « consulter malade » Tableau 8 : Description du C.U « consulter malade »

Sommaire d'identification

Titre : But : Acteur

consulter malade.

diagnostiquer la maladie du patient. Médecin

Enchainements

Pré conditions :

Post-Condition

l'acteur s'authentifie au système

consultation effectuée.

Scénario nominal

1: L'acteur se connecte au système moyennant son login et son mot de passe.

Jb : l'utilisateur annule l'authentification.

2: L'acteur saisit le login et le mot de passe

3 : le système affiche l'interface

4 : l'acteur enregistre les informations en rapport avec le malade

5 : le système affiche le formulaire de recensement des plaintes

6 : l'utilisateur rempli le formulaire puis valide.

7 : le système renvoie le résultat du diagnostic puis prescrit le
médicament.

Scenario alternatif

Ja : le système affiche l'interface de connexion.

Jb : le système ferme l'authentification du système.

2 : - si le compte et le mot de passe saisis sont valides, l'acteur accède au système et l'interface principale s'affiche

- Dans le cas contraire, l'accès est refusé et le message 1 s'affiche.

[47]

c. Cas d'utilisation « gérer utilisateurs »

Tableau 9 : Description du C.U « gérer utilisateurs »

Sommaire d'identification

Titre But

Acteur.

gérer utilisateurs

il assure la gestion de tout utilisateur du système. A ce titre, il l'ajoute, le modifie ou le supprime.

Administrateur

Pré conditions :

Post-Condition

Introduire login et mot de passe

l'utilisateur est ajouté, supprimé ou modifié

Scénario nominal

1a: L'acteur se connecte au système moyennant son login et son mot de passe.

1b : l'utilisateur annule l'authentification.

2: L'acteur saisit le login et le mot de passe.

3 : le système affiche le formulaire de gestion des utilisateurs.

4 : l'administrateur fait l'opération correspondante puis valide

5 : le système enregistre les opérations effectuées.

Scenario alternatif

1a : le système affiche l'interface de connexion.

1b : le système ferme l'authentification du système.

2 : - si le compte et le mot de passe saisis sont valides, l'acteur accède au système et l'interface principale s'affiche

- Dans le cas contraire, l'accès est refusé et le message 1 s'affiche.

3.5.1.2. Diagramme de séquence

Un diagramme de séquence illustre la série d'interactions qui se déroulent entre les objets durant le flux des événements pour un scénario ou un cas d'utilisation. Il comprend quatre symboles de base :

1. Le symbole d'acteur représenté par un bonhomme stylisé ;

2. Le symbole d'objet, qui correspond à un rectangle avec un nom souligné ;

3. Le symbole de ligne, représenté par une ligne pointillé ou un rectangle vertical étroit et

4. Le symbole de message, désigné par une flèche directionnelle avec un descripteur de message.

[48]

Ainsi donc, dans les lignes qui suivent nous représentons les différentes interactions de notre système dans les diagrammes de séquence ci-dessous.

a. Diagramme de séquence « s'authentifier »

Figure 7 : Diagramme de séquence « s'authentifier »

[49]

b. Diagramme de séquence « consulter malade »

Figure 8 : Diagramme de séquence « consulter malade »

[50]

c. Diagramme de séquence « gérer utilisateurs »

Figure 9 : Diagramme de séquence « gérer utilisateurs »

[51]

3.5.2. Capture des besoins techniques

A ce stade, il sied de s'intéresser à la branche droite du cycle en Y qui est « la capture des besoins techniques »en couvrant avec celle des besoins fonctionnels les contraintes qui ne traitent pas la description applicative.

Nous choisissons lors de cette phase l'environnement de travail ainsi que l'architecture globale utilisée pour notre système.

Figure 10 : Situation de la capture des besoins techniques dans 2TUP

I. Architectures Client/serveur

L'expression des besoins techniques implique également le choix d'architecture. Ce choix est crucial puisqu'il intervient dans l'évolutivité du système, le temps de développement, le coût et les performances.

1.1 Architecture simple tiers

La conception de l'application est élaborée de manière à fonctionner sur un ordinateur unique. En fait, tous les services fournis par l'application résident sur la même machine et sont inclus dans l'application.

[52]

Toutes les fonctionnalités sont donc comprises dans une seule couche logicielle.

Figure 11 : Architecture simple tiers. 1.2 . Architecture client/serveur

C'est une architecture 2-tiers appelée aussi architecture client lourd/serveur. Elle est assez simple dans sa mise en oeuvre. Ce type d'architecture est constitué uniquement de deux parties : le «client lourd» demandeur de service d'une part et le «serveur de données» qui fournit le service d'autre part.

Nous aurons donc la base de données qui sera délocalisée sur un serveur dédié appelé le serveur de données qui fournira les données à exploiter.

Figure 12 : client-serveur

1.3 . Architecture trois tiers

Cette architecture physique est assez semblable à l'architecture client/serveur, mais en plus des « clients» et du serveur de données évoquées plus haut, un serveur d'application intervient comme un troisième tiers. En effet, les machines clientes, également appelées «clients légers» ne contiennent que l'interface de l'application de manière qu'elles déchargées de tout traitement.

[53]

En effet, le traitement est ainsi assuré par le serveur d'application, qui sert de liaison entre l'interface applicative et les données localisées au niveau du serveur de données.

Figure 13 : Architecture 3 tiers.

Pour ce qui est de notre système, nous avons opté pour l'architecture client-serveur un-tiers.

2. Choix du langage de développement

Pour le développement de notre système d'aide à la décision, nous optons pour le langage de programmation Visual C#.

2.1. Présentation de Visual C#

Le C# est un langage de programmation orienté objet à typage fort, créé par la société Microsoft, et notamment un de ses employés du nom d'Anders Hejlsberg, le créateur du langage Delphi pour la société Borland.

Il a été créé afin que la plate-forme Microsoft.NET soit dotée d'un langage lui permettant d'utiliser toutes ses capacités. Il est très proche du Java dont il reprend la syntaxe générale ainsi que les concepts (la syntaxe reste cependant relativement semblable à celle de langages C et C++). Un ajout notable au C# est la possibilité de surcharge des opérateurs inspirés du C++. Néanmoins, l'implémentation de la redéfinition est plus proche de celle du Pascal objet. Sa plate-forme d'exécution est Microsoft.NET.

[54]

3. Choix du SGBD

Pour le développement opérationnel de notre système nous portons notre choix sur le SGBD Microsoft SQL Serveur dans sa version 2008. Ce choix se justifie sur le fait que Microsoft SQL serveur est un SGBD de type relationnel

[55]

CHAPITRE IV : ELABORATION DU SYSTEME

Tout au long de ce chapitre, il sera question de pouvoir entamer la conception du système en présentant d'abord la vue statique à travers le diagramme de classe comme objet de la première section, puis la vue dynamique au moyen du diagramme d'activités comme objet de la seconde section.

4.1. Développement du modèle statique

Le développement du modèle statique constitue la deuxième activité de l'étape d'analyse. Comme le montre la figure ci-dessous, elle se situe sur la branche gauche du cycle en Y16. Il permet de décrire les entités concernées par l'automatisation. Ce système comprend plusieurs diagrammes; pour notre cas, nous allons nous attarder sur le diagramme de classe.

Figure 14 : Branche gauche du cycle en Y.

16ROQUES,P., VALLEE, F., UML 2 en action, 4ème Ed. Eyrolles, Paris 2007.

[56]

4.1.1. Diagramme de classe

Le diagramme de classes est le point central dans un développement orienté objet. En analyse, il a pour objectif de décrire la structure des entités manipulées par les utilisateurs.

En conception, le diagramme de classes représente la structure d'un code orienté objet ou, à un niveau de détail plus important, les modules du langage de développement.

Il exprime d'une manière générale la structure statique du système en termes de classe et de relations entre ces classes. Le diagramme de classes met en oeuvre des classes, contenant des attributs et des opérations, et reliées par des associations ou des généralisations.

a. Formalisme

Classe A

Attribut Attribut : Attribut

Méthodes

classe B

Attribut Attribut : Attribut

Méthodes

Association

b. Concepts

Etant le socle même d'UML, ci-dessous les différents concepts liés à cette notion de classe :

? Classe : elle représente la description abstraite d'un ensemble d'objets possédant les mêmes caractéristiques. On peut parler également de type.

? Attributs : il s'agit de données, dont les valeurs représentent l'état de l'objet.

? Méthode : ces sont des opérations applicables aux objets.

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

[57]

4.1.1.1. Règle de gestion

Une règle de gestion décrit une condition d'exécutions d'une action. Les règles de gestion ci-dessous ont été recensées pour le développement de notre système:

- Administrateur gère un ou plusieurs utilisateurs.

- Un utilisateur est géré par un et un seul administrateur

- Le médecin assure un ou plusieurs diagnostics.

- Un diagnostic est assuré par un et un seul médecin

- Diagnostic concerne un ou plusieurs patients.

- Un patient est concerné à un et un seul diagnostic.

4.1.1.2. Identification de classes

Les classes ci-dessous ont été recensées pour la présentation de notre diagramme de classe :

? Administrateur

? Médecin

? Utilisateur

? Diagnostic

? Patient

4.1.1.3. Dictionnaire de données

Nous présentons dans le tableau ci-dessous, les différentes classes recensées sur base de la règle de gestion ci-dessus, ses attributs et les structurer en taille et en type.

[58]

Tableau 10 : Dictionnaire de données.

Attribut

Libellé

Type

Taille

1

id_util

Identifiant de

l'utilisateur

Chaine de caractère

8

Nom_utilis

Nom de l'utilisateur

Chaine de caractère

30

Pseudo_ut

Pseudo de l'utilisateur

Chaine de caractère

10

Mot_pass

Le mot de passe de l'utilisateur

Chaine de caractère

9

2

Matricule_med

Matricule du médecin

Chaine de caractère

5

Nom_med

Nom du médecin

Chaine de caractère

30

Spécialité_med

Spécialité du médecin

Chaine de caractère

25

Nationalite_me d

nationalité du médecin

Chaine de caractère

15

Téléphone_me d

Téléphone du médecin

Chaine de caractère

 

3

Id_admin

Identification de

l'administrateur

Chaine de caractère

5

Nom adm

Nom de l'administrateur

Chaine de caractère

30

Pseudo_Admin

Pseudo de

l'administrateur

Chaine de caractère

30

MotPasse_adm in

Mot de passe de

l'administrateur

Chaine de caractère

10

4

Numéro_diagn

Numéro du diagnostic

Chaine de caractère

10

Signes_vitaux

Signes vitaux

Chaine de caractère

300

Date_diagn

Date du diagnostic

Date

 

Observation

Observation

Chaine de caractère

40

5

CodeMal

Code malade

Chaine de caractère

8

NomMal

Nom du malade

Chaine de caractère

30

Sexe

Sexe du malade

Chaine de caractère

1

AgeMal

Age du malade

Chaine de caractère

10

Pouls

Pouls

Chaine de caractère

10

TensionArt

Tension artérielle

Chaine de caractère

10

Temperature

Température

Chaine de caractère

10

[59]

4.1.1.4. Présentation des classes

Nous présentons dans le tableau ci-dessus les différentes classes identifiées ainsi que leurs attributs et méthodes.

Tableau 11 : Liste des classes

Nom de la classe

Attribut

Méthodes

1

Utilisateur

id_util

Avoir_accès Afficher() Supprimer ()

Nom_utilis

Pseudo_ut

Mot_pass

2

Médecin

Matricule_med

Consulter() Prescrire()

Nom_med

Spécialité_med

Nationalite_med

Téléphone_med

3

Administrateur

Id_admin

Avoir_accès() Modifier ()

Nom adm

Pseudo_Admin

MotPasse_admin

4

Diagnostic

Numéro_diagn

Afficher () Ajouter ()

Rechercher ()

Signes_vitaux

Date_diagn

Observation

5

Patient

CodeMal

Payer_consultation() Faire_examen

NomMal

Sexe

AgeMal

Pouls

TensionArt

Temperature

[60]

4.1.1.5. Association et Multiplicité

a. Association

Une association représente une relation sémantique durable entre deux classes. Le modèle de données d'UML comprend trois associations génériques principales :

Généralisation, association, dépendance à partir de ces trois associations de base, nous représentons ainsi les différents types d'association qui décrivent les dépendances entre les classe déjà citées.

Association simple : les associations simples sont des liaisons logiques entre entités.

a. Les cardinalités/Multiplicité

Le nombre d'association qui surviennent entre des éléments spécifiques. Par exemple, un client peut passer plusieurs commandes et un employé travaille dans un service.

Il sied toutefois de rappeler qu'à l'approche orienté objet, on parle de multiplicité.

Le tableau ci-dessous illustre d'ailleurs les différentes multiplicités : Tableau 12 : Multiplicités

Multiplicités

Désignation

1

Un et un seul

0...1

Zéro ou un

N

Entier naturel

m...n

De m à n (deux entiers naturels)

0...*

De 0 à plusieurs

1...*

De 1 à plusieurs

Tableau 14 : Diagramme de classe.

[61]

Nous représentons les différentes multiplicités de notre système dans le tableau suivant :

Tableau 13 : Représentation des associations simples

Désignation

Classes participantes

Cardinalités

1

Gérer

Administrateur-Utilisateurs

1..*-1

2

Ajouter

Administrateur-Médecin

1..* -1

3

Assurer

Diagnostic-Médecin

1..*-1

4

Créer

Administrateur-Médecin

1-1..*

5

Concerner

Diagnostic-Patient

1..*-1

Diagramme de classe

[62]

4.1.2. Règle de passage d'un diagramme de classe vers un modèle relationnel.

Le passage d'un diagramme de classe vers un modèle relationnel est rendu possible suivant un certain nombre des règles. Parmi ces règles nous avons :

y' Toute classe du diagramme devient une table dans laquelle les attributs deviennent les colonnes et choisir un attribut pour la clé

y' Association 1.. : on ajoute un attribut de type clé étrangère dans la relation fils de l'association. l'attribut porte le nom de la clé primaire de la relation père de l'association.

y' Association plusieurs vers plusieurs (*..*) : la classe association devient une relation. La clé primaire de cette relation est la concaténation des identifiants des classes connectées à l'association.

y' Association 1..1 : il faut ajouter un attribut de type clé étrangère dans la relation dérivée de la classe ayant la multiplicité minimale égale à un. L'attribut porte le nom de la clé primaire de la relation dérivée de la classe connecté à l'association. Si les deux multiplicités minimales sont à un, il est préférable de fusionner les deux classes en une seules.

4.2. Développement du modèle dynamique

Le développement du modèle dynamique constitue la troisième activité de l'étape d'analyse. Elle se situe sur la branche gauche du cycle en Y. Il s'agit d'une activité itérative, fortement couplée avec l'activité de modélisation statique, décrite au chapitre précédent.

Le modèle dynamique montre les comportements du système et l'évolution des objets dans le temps. Dans la même perspective, son but c'est de trouver les relations temporelles et évènementielles entre les objets.17

17MVIBUDULU, J.A Opcit P30.

[63]

4.2.1. Diagramme d'activités

Diagramme de flux de travaux qui décrit les activités des utilisateurs et leur séquence de déroulement.

Le diagramme d'activité permet de représenter le déclenchement d'évènements en fonction des états du système et de modéliser des comportements parallélisables. Il donne une vision des activités propres à une opération ou à un cas d'utilisation.

Il sied toutefois de rappeler qu'une activité est une opération d'une certaine durée qui peut être interrompue.

[64]

4.2.1.1. Diagramme d'activité « s'authentifier »

Figure n° 16 : Diagramme d'activité s'authentifier

[65]

4.2.1.4. Diagramme d'activités « Consultation »

Figure n°17 : Diagramme d'activité « consulter malade »

[66]

CHAPITRE V : CONSTRUCTION DU NOUVEAU SYSTEME

Le développement de ce chapitre sera centré sur la modélisation de la base de connaissances qui fera l'objet de la première section, implémentation de la base de connaissances objet de la deuxième section et enfin la codification comme objet de la troisième et dernière section.

5.1. Construction de la base de faits

Nous décrivons dans les lignes suivantes les différents symptômes

(faits) :

F1 : Patient a une fièvre en plateau ;

F2 : patient a une asthénie physique ;

F3 : patient a un pouls élevé ;

F4 : patient a de l'anorexie ;

F5 : patient a une rate grossie inconstante ;

F6 : patient a de maux de tête intense ;

F7 : Patient a des douleurs abdominales ;

F8 : patient est dans la septicémie.

5.2. Construction de la base de connaissances.

Il existe plusieurs modèles ou mécanismes de représentation des connaissances d'un expert. Citons à titre d'exemple, les règles de production, les objets, les réseaux sémantiques, les graphes conceptuels, la logique avec le calcul de prédicats, la logique floue, les réseaux bayésiens.

Dans le langage informatique, nous appellerons :

V' Clinique ou symptômes : Fait

V' Méthode de diagnostic : règle de production V' Ensemble de méthodes ; base de règles

Pour ce qui nous concerne, puisqu'il s'agit d'une décision médicale, nous utilisons dans le cadre de notre diagnostic les modèles probabilistes notamment le réseau bayésiens (RB) du fait que dans le

[67]

raisonnement de médecin plusieurs symptômes identiques peuvent aboutir à des maladies différentes.

Le raisonnement médical part d'un examen clinique cognitif qui est un ensemble de données interrogatoires. En effet, à partir des symptômes observés(les signes cliniques), le médecin identifie les facteurs prédisposant et sur la base desquels plusieurs hypothèses sont établies.

5.2.1. Les réseaux bayésiens

Un réseau bayésien est en informatique et en statistique un modèle graphique probabiliste qui aide à gérer l'incertitude. Graphiquement, un réseau bayésiens est une succession acyclique de noeuds, qui représentent des états incertains de variables, reliées par des flèches qui sont les relations de cause à effet entre les variables.

A chaque variable est associée une table contenant les probabilités d'un nombre fini d'états mutuellement exclusifs. Si un noeud ne possède pas de flèche entrante, alors la table contiendra des probabilités non conditionnelles. Si par contre, il en reçoit, il devient le noeud enfant d'un ou plusieurs parents, et la table associée à ce noeud contiendra des probabilités conditionnelles dépendantes des variables des noeuds parents.

Intuitivement, ils sont à la fois :

? des modèles de représentation des connaissances ;

? des « machines à calculer » les probabilités conditionnelles ;

? une base pour des Système d'aide à la décision.

En ce qui concerne notre diagnostic, il sera question de décrire les relations causales entre variables d'intérêt par un graphe. Dans ce graphe, les relations de cause à effet entre les variables ne sont pas déterministes, mais probabilistes. Ainsi, l'observation d'une cause ou de plusieurs causes n'entraîne pas systématiquement l'effet ou les effets qui en dépendent, mais modifie seulement la probabilité de les observer.

L'intérêt particulier des réseaux bayésiens est de tenir compte simultanément de connaissances a priori d'experts (dans le graphe) et de l'expérience contenue dans les données.

[68]

5.2.2. Construction et présentation du modèle

Il existe trois méthodes de construction des réseaux bayésiens18 que nous citons :

Automatique : elle est faite par application d'un algorithme d`apprentissage à une base de données.

Manuel : à l'aide d'expert humain en l'occurrence les médecins, les spécialistes en ingénierie de connaissances interrogent les experts et ajoutent les noeuds, les liens, et les probabilités conditionnelles au réseau sur la base de connaissances recueillie.

Hybride : dans cette approche, la structure du réseau est décrite avec l'aide des experts humains et les probabilités sont obtenues à partir d'une base de données.

En ce qui nous concerne, puisqu'il s'agit d'un diagnostic différentiel, le modèle a été construit suivant une méthode manuelle, ce qui nous a permis d'entrer en contact avec les experts du domaine notamment les médecins généralistes dont : Dr Christian MPAMU et Jean-Jacques MUYEMBE Fils où nous étions appelés à acquérir toutes les connaissances en termes de symptômes et signes possibles de la maladie ainsi que ses différentes probabilités.Nous même avons joué le rôle d'ingénieur de connaissances, ce qui nous a d'abord aidé à représenter ces différentes connaissances par un graphe causal et pour cela nous avons fait appel au logiciel de réseau bayésien Netica.

Nous présentons ci-dessous notre modèle bayésien pour la

représentation de notre base de connaissances

18Patrick, N., Pierre-Henri, V., Philipp, L., Anna, B., Réseaux bayésiens, Ed.

Eyrolles, Paris,2002.

[69]

Figure 18: Modèle bayésien construit sur Netica.

[70]

Le modèle ci-haut présenté nous aide à représenter des connaissances qualitatives et quantitatives exprimant l'incertitude pour le diagnostic de la fièvre typhoïde. Chaque noeud du modèle est soumis à une certaine probabilité dans la table, lesquelles probabilités nous ont été donné par les experts du domaine que nous avons cités plus haut. Ces différentes probabilités doivent ainsi être évaluées.

5.1.3. Inférence du modèle bayésien

L'inférence consiste à calculer la probabilité d'un ou plusieurs noeuds du réseau bayésien conditionnellement à un ensemble d'observation. Cette partie permet d'évaluer, tirer ou contrôler les probabilités de la distribution de probabilités postérieures. Elle sert à fournir le résultat final du diagnostic par l'utilisation d'un algorithme.

Il existe plusieurs algorithmes pour la mise en oeuvre du réseau bayésien dans le cadre du diagnostic et plus particulièrement le diagnostic médical, par exemple, la logique floue, l'algorithme K2, IC, IC*, PC, MWST, pour ne citer que ceux-ci.

Pour ce qui nous concerne, nous appliquons l'algorithme Pearl.

Algorithme Pearl

Il passe par deux étapes :

1. étapes de propagation : son principe est simple, il fonctionne comme suit :

a. initialisation des probabilités des variables du réseau.

b. Faire passer le message ð entre les variables du réseau appelées autrement paramètres.

c. Chaque variable reçoit le message ð doit avoir envoyé le message qui porte la probabilité du parent.

d. A la réception du message ð, les récepteurs des messages des niveaux supérieurs mettent à jour leurs probabilités puis ils recalculent le message ð pour obtenir la probabilité actuelle par la formule suivante :

( ) ( ) ( )

e. le premier niveau calcule sa probabilité par la formule :

( ) ( )

[71]

f. pour les valeurs du dernier niveau il n'y a pas de message à envoyer, ils mettent à jour ses probabilités à la lumière du message reçu.

2. Etape de recherche

Le point d'arrêt de l'étape de propagation représente le point de départ pour l'étape de recherche qui fournira le résultat final du diagnostic. Au dernier niveau on a le résultat du diagnostic ayant la probabilité sachant les observations.

( ( ))

Où M=maladie, e= évidence.

Dans notre cas, le réseau bayésien est sans circuit, ce qui nous a permis d'utiliser l'algorithme d'inférence de Pearl. Avec cet algorithme il est possible d'inférer la valeur n'importe quelle variable du graphe. Ce qui donne des probabilités d'utilisation plus adaptée.

5.2. Implémentation du modèle

Pour implémenter notre base de connaissance construit au modèle bayésien, nous allons stockerles différents noeuds sous forme d'arborescence, et cela avec le langage XML.

5.2.1. Le langage XML

L'Extensible Markup Language (XML, (< langage à balise extensible » en français) est un langage informatique de balisage générique qui dérive du SGML. Cette syntaxe est dite (< extensible » car elle permet de définir différents espaces noms, c'est-à-dire des langages avec chacun leur vocabulaire et leur grammaire, comme XHTML, XSLT, RSS, SVG... Elle est reconnaissable par son usage des chevrons (< >) encadrant les balises.

L'objectif initial est de faciliter l'échange automatisé de contenus

complexes (arbres, texte riche...) entre systèmes
d'informationshétérogènes (interopérabilité). Avec ses outils et langages associés, une application XML respecte généralement certains principes :

? la structure d'un document XML est définie et validable par un schéma;

[72]

? un document XML est entièrement transformable dans un autre document XML.

5.2.2. Présentation des arborescences des noeuds du modèle

<?xml version="1.0"encoding="iso-8859-1"?> <thyphoide>

<fievre>

<plateau>

<probabilite>0.75</probabilite> <etat1>oui</etat1> <etat2>non</etat2>

<pouls_eleve><probabilite>0.30</probabilite>

<etat1>oui</etat1>

<etat2>non</etat2>

</pouls_eleve>

<plus_15_jours>

<insomnie><probabilite> 0.25</probabilite>

<etat1>oui</etat1>

<etat2>non</etat2> </insomnie>

<maux_de_tete>

<probabilite>0.60 </probabilite> <etat1>oui</etat1> <etat2>non</etat2> </maux_de_tete>

<rate_grossie>

<probabilite>0.50</probabilite>

[73]

<etat1>oui</etat1> <etat2>non</etat2>

<inconstant><probabilite>0.40</probabilite> <etat1>oui</etat1> <etat2>non</etat2> </inconstant>

<constant><probabilite>0</probabilite> <etat1>oui</etat1> <etat2>non</etat2>

</rate_grossie>

<asthenie><probabilite>0.50</probabilite>

<etat1>oui</etat1> <etat2>non</etat2> </asthenie>

</plus_15_jours>

</plateau>

<sans_plateau>

<probabilite>0.10</probabilite> <etat1>oui</etat1> <etat2>non</etat2>

<moins_15_jours><probabilite></probabilite> <etat1>oui</etat1> <etat2>oui</etat2> <anorexie>

<probabilite>0.05</probabilite> <etat1>oui</etat1>

[74]

<etat2>non</etat2> </anorexie>

<asthenie>

<probabilite>0.75</probabilite> <etat1>oui</etat1>

<etat2>non</etat2> </asthenie>

<maux_de_tete>

<probabilite>0.75</probabilite> <etat1>oui</etat1> <etat2>non</etat2>

</maux_de_tete> </sans_plateau>

<douleur_abdominale>

<probabilite>0.75</probabilite> <etat1>oui</etat1> <etat2>non</etat2>

</douleur_abdominale>

</fievre>

</thyphoide>

</?xml>

5.2.3. Quelques codes sources de l'application en C#

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

[75]

using System.Data.SqlClient;

namespace FORM_MAJ_MALADE

{

public partial class Form5 : Form

{

private string INSERTSQL = "INSERT INTO [Patient] ([CodMal]

,[NomMal],[SexMal],[AgeMal],[Pouls],[TensArt],[Temperature]) "+

" VALUES (@CodMal
,@NomMal,@SexMal,@AgeMal,@Pouls,@TensArt,@Temperature)";

private string UPDATESQL = "UPDATE [Patient] SET
[NomMal]=@NomMal,[SexMal]=@SexMal,[AgeMal]=@AgeMal,[Pouls]=@P

ouls,[TensArt]=@TensArt,[Temperature]=@Temperature WHERE

[CodMal]=@CodMal ";

private string DELETESQL = "DELETE FROM [Patient] WHERE

[CodMal]=@CodMal";

private string SELECTSQL = "SELECT [CodMal]

,[NomMal],[SexMal],[AgeMal],[Pouls],[TensArt],[Temperature]FROM

[Patient]";

private string CONDITION = "WHERE CodMal=@CodMal";

private SqlConnection ConnexionBD= new SqlConnection("Data

Source=.;Initial Catalog=BDDSAD;Integrated Security=True");

public Form5()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e) {

if (txtCodeMalade.Text != "") {

using (SqlCommand cmd =new SqlCommand(INSERTSQL)){ cmd.Connection = ConnexionBD;

cmd.Parameters.AddWithValue("@CodMal", txtCodeMalade.Text);

cmd.Parameters.AddWithValue("@NomMal", txtNomMalade.Text);

cmd.Parameters.AddWithValue("@SexMal", cboSexeMalade.Text);

cmd.Parameters.AddWithValue("@AgeMal", txtAgeMalade.Text);

cmd.Parameters.AddWithValue("@Pouls", txtPoulsMalade.Text);

cmd.Parameters.AddWithValue("@TensArt", txtTempArtMalade.Text);

MessageBox.Show("Malade Modifie", "Information",

MessageBoxButtons.OK, MessageBoxIcon.Information);

[76]

cmd.Parameters.AddWithValue("@Temperature", txtTemperatureMalade.Text);

if (cmd.ExecuteNonQuery() != 0) {

MessageBox.Show("Malade Enregistré", "Information",
MessageBoxButtons.OK, MessageBoxIcon.Information);

clean();

}

}

}

else {

MessageBox.Show("Veuillez introduire le Code du Malade", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

}

}

private void button2_Click(object sender, EventArgs e)

{

if (txtCodeMalade.Text != "")

{

using (SqlCommand cmd = new SqlCommand(UPDATESQL))

{

cmd.Connection = ConnexionBD;

cmd.Parameters.AddWithValue("@CodMal",

txtCodeMalade.Text);

cmd.Parameters.AddWithValue("@NomMal",

txtNomMalade.Text);

cmd.Parameters.AddWithValue("@SexMal",

cboSexeMalade.Text);

cmd.Parameters.AddWithValue("@AgeMal",

txtAgeMalade.Text);

cmd.Parameters.AddWithValue("@Pouls",

txtPoulsMalade.Text);

cmd.Parameters.AddWithValue("@TensArt",

txtTempArtMalade.Text);

cmd.Parameters.AddWithValue("@Temperature",

txtTemperatureMalade.Text);

if (cmd.ExecuteNonQuery() != 0)

{

I

[77]

clean();

I

I

I else

{

MessageBox.Show("Veuillez introduire le Code du Malade", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

I

I

private void button3_Click(object sender, EventArgs e) {

if (txtCodeMalade.Text != "")

{

using (SqlCommand cmd = new SqlCommand(DELETESQL))

{

cmd.Connection = ConnexionBD;

cmd.Parameters.AddWithValue("@CodMal",txtCodeMalade.Text);

if (cmd.ExecuteNonQuery() != 0)

{

MessageBox.Show("Malade Supprimé", "Information",

MessageBoxButtons.OK, MessageBoxIcon.Information);

clean();

I

I

I

else

{

MessageBox.Show("Veuillez introduire le Code du Malade", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

I

I

private void button4_Click(object sender, EventArgs e) {

this.Hide();

[78]

private void btnRechercher_Click(object sender, EventArgs e) {

if (txtCodeMalade.Text != "")

{

using (SqlCommand cmd =new SqlCommand(SELECTSQL + CONDITION)){

cmd.Connection = ConnexionBD;

cmd.Parameters.AddWithValue("@CodMal", txtCodeMalade.Text);

SqlDataReader Rs = cmd.ExecuteReader(); if (Rs.Read()) {

txtNomMalade.Text = Rs.GetString(1); cboSexeMalade.Text = Rs.GetString(2); txtAgeMalade.Text = Rs.GetString(3); txtPoulsMalade.Text = Rs.GetString(4); txtTempArtMalade.Text = Rs.GetString(5); txtTemperatureMalade.Text = Rs.GetString(6);

}else{

MessageBox.Show("Malade non Trouvé", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

}

else

{

MessageBox.Show("Veuillez introduire le Code du Malade", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }

}

private void textBox1_TextChanged(object sender, EventArgs e) {

}

private void label7_Click(object sender, EventArgs e) {

}

private void clean() {

txtCodeMalade.Text = "";

[79]

txtNomMalade.Text = "";

cboSexeMalade.Text = "";

txtAgeMalade.Text = "";

txtPoulsMalade.Text = "";

txtTempArtMalade.Text = "";

txtTemperatureMalade.Text = "";

I

private void Form5_Load(object sender, EventArgs e)

{

try {

ConnexionBD.Open();

I

catch (Exception ex) {

MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK,

MessageBoxIcon.Error);

I

I

I

I

[80]

CHAPITRE VI : TRANSITION

Ce chapitre sera tourné sur le déploiement de l'application, ses différentes interfaces.

La phase de transition permet de faire passer le système informatique des mains des développeurs à celles des utilisateurs finaux.

6.1. Diagramme de déploiement

En UML, un diagramme de déploiement est une vue statique qui sert à représenter l'utilisation de l'infrastructure physique par le système et la manière dont les composants du système sont répartis ainsi que leurs relations entre eux. Les éléments utilisés par un diagramme de déploiement sont principalement les noeuds, les composants, les associations et les artefacts.

Figure n°19 : Diagramme de déploiement.

[81]

6.2. Présentation des quelques interfaces de l'application

Nous présentons ici quelques interfaces de notre application :

a. Interface d'authentification.

C'est une fenêtre qui permet aux utilisateurs de pouvoir se connecter au système afin d'explorer toutes les options possibles de l'application.

Figure n°20 : Fenêtre d'authentification.

b. Fenêtre d'enregistrement de patients

Elle permettre au médecin d'enregistrer l'identité du malade qui sera évidemment consulté.

[82]

Figure n°20 : Fenêtre d'enregistrement du patient. c. Fenêtre de diagnostic

C'est cette fenêtre qui permet au médecin de diagnostic les patients sur base de ses symptômes que ces derniers répondront par vrai ou faux aux questions du médecin.

Figure n°22: Fenêtre du diagnostic.

[83]

CHAPITRE VII : CONCLUSION GENERALE

Nous voici arrivé au terme de ce travail qui a porté sur la modélisation et l'implémentation d'un système d'aide à la décision pour le diagnostic de la fièvre typhoïde. A travers cette étude, notre souci majeur était de chercher comment mettre au point un outil pouvant aider les médecins à pouvoir décider à travers des différents symptômes du diagnostic différentiel de la fièvre typhoïde afin de prendre des mesures sévères pour une bonne prise en charge de patients atteints par cette maladie.

Pour y parvenir, nous avons porté notre choix sur un des modèles graphiques probabilistes notamment le réseau bayésiens, ce qui nous a permis de pouvoir introduire les différents symptômes de la maladie. Lesquels symptômes ont été soumis à une certaine probabilité. Cette méthode probabiliste nous a aidé à gérer l'incertitude dans le diagnostic.

Dans le souci de mener à bien cette étude, nous sommes allés d'une démarche très méthodique, en commençant par une conception de notre application et cela avec le recours de la méthode UP par une adaptation 2TUP ainsi que le langage UML ce qui nous a permis d'avoir déjà une esquisse de l'application qui a été mise au point.

Comme signalé plus haut, pour ce qui est du modèle de notre base des connaissances, nous avons appliqué les modèlesbayésiens dans sa méthode de construction manuelle.Ce choix se justifie car comme d'aucuns pouvaient bien le constater que dans un diagnostic, à partir des symptômes observés(les signes cliniques), le médecin identifie les facteurs prédisposant et sur la base desquels plusieurs hypothèses sont établies.

Le développement ou la mise en oeuvre de ce système a fait recours à plusieurs outils ou technologies notamment le langage de modélisation bayésien Netica qui nous a aidé de construire la base de connaissance, le langage de programmation C#, les documents XML pour présenter les différents noeuds que propose le modèle sous formes d'arborescences, enfin en ce qui concerne la partie opérationnelle de l'application nous avons utilisé le SGBD Microsoft SQL Serveur 2008, un SGBD de type relationnel.

[84]

BIBLIOGRAPHIE

I. Ouvrages

1. BINDUNGWA, M., Comment élaborer un travail de fin de cycle ? Contenu et étapes, éd. Médiaspaul, Kinshasa 2008.

2. JACKSON, SATZINGER et BURD., Analyse et conception de systèmes d'information, 2ème

éd. Goulet, Paris, 2003.

3. LERAY, P et GALLINARI, P., Architecture neuro bayésien par le traitement spatioètemprel d'alarme, application au diagnostic dans le réseau téléphonique, 1977.

4. MUKUNA, B., Essai méthodologique sur la rédaction d'un travail scientifique, éd. CRIGED, Janvier 2006,

ISC/Kinshasa, p.28

5. PATRICK, N., PIERRE-HENRI, V., PHILIPP, L., ANNA, B., Réseaux bayésiens, Ed. Eyrolles, Paris, 2002.

6. R. LINDSAY, B. BUCHANAN, E.FEIGNBAUM., Application of artificial intelligence toorganic chemistri : the dendra project, Mc Graw-hill 1980.

7. RICH, E., Intelligence artificielle, Ed. Masson, paris 1987.

8. ROQUES, P. et VALLEE, F., UML 2 en action de l'analyse des besoins à la conception, Ed. EYROLLES, Paris, 2005,

9. ROQUES,P., VALLEE, F., UML 2 en action, 4ème Ed. Eyrolles, Paris 2007.

10. PASCAL, R., UML 2 par la pratique étude de cas et exercices
corrigés
, 5èmeEd. Eyrolles, Paris, 2008.

[85]

II. Notes de cours

1. KUTANGILA, D., Intelligence artificielle et systèmes experts approfondis, L1 Info, ISC-KIN, 2013-2014.

2. MVIBUDULU, J.A., Note de cours de théorie des graphes, L2 Info, ISC, 2014-2015.

3. MVIBUDULU, J. A., Cours de conception des systèmes d'information, L2 Info, ISC-KIN, 2014-2015.

III. Mémoires et Thèses

1. HEDIDAR , A., Conception et réalisation d'une application mobile m-banking, mémoire, Université Virtuelle de Tunis, 2011-2012.

2. DJEBBAR, A., « une modélisation de la base de cas par un réseau bayésien ; application à l'aide du diagnostic médical », Thèse de magister, Université d'Annaba, 2006.

3. MUJINGA, S., Conception et réalisation d'un système expert pour le diagnostic du cancer de la peau, Faculté des sciences, Unikin, 2014.

[86]

Table des matières

IN MEMORIAM i

EPIGRAPHE ii

DEDICACE iii

REMERCIEMENTS iv

Liste de tableaux v

Liste de figures vi

Chapitre I : INTRODUCTION 1

1.1. Mise en contexte 8

1.2. Problématique 8

1.2.1. Objectif de la recherche Erreur ! Signet non défini.

1.2.2. Questions de la recherche Erreur ! Signet non défini.

1.3. Choix et intérêt du sujet Erreur ! Signet non défini.

1.4. Délimitation du travail 9

1.5. Méthode et techniques utilisées 10

a. Méthode 10

b. Techniques 10

1.6. Difficultés rencontrées 10

1.7. Canevas du travail 11

CHAPITRE II : APPROCHES THEORIQUES 12

2.1. Généralités sur l'intelligence artificielle 12

2.1.1. Définition 12

2.1.2. Branches de l'intelligence artificielle 13

2.1.3. Avantages de l'IA 14

2.2. Le système expert 14

2.2.1. Introduction 14

2.2.2. Définition 14

2.2.3. Les acteurs 15

2.2.4. Architecture d'un système expert 15

2.2.5. Composants d'un système expert 16

[87]

2.2.6. Les apports des systèmes experts 18

2.2.7. Avantages des systèmes experts 19

2.2.8. Inconvénients du système expert 19

2.3. Le processus unifie (UP) 19

2.3.1. Les Principes d'UP 20

2.3.2. Les phases du processus unifie et les activités 21

2.3.3. Activités du processus 22

Expression des besoins 22

Analyse 23

Conception 23

Implémentation 23

Test 23

2.3.4. Adaptation du processus unifié 23

2.4. Généralités sur le langage UML 24

2.5. Le diagnostic de la fièvre typhoïde 26

2.5.1. Le diagnostic 26

2.5.2. La fièvre typhoïde 26

CHAPITRE III : SPECIFICATIONS DES BESOINS ET ETUDES DE FAISABILITE

27

3.1. Narration 27

3.2. Etudes de faisabilité 27

3.2.1. Faisabilité fonctionnelle 27

3.2.2. Faisabilité opérationnelle 27

3.3. Choix de la méthode d'ordonnancement 28

3.3.1. Présentation de la méthode PERT 29

3.3.2. Identification et dénombrement des tâches 29

3.3.3. Planning d'exécution des taches et estimations de durées. 30

3.3.4. Etablissement des liens d'antériorité 31

3.3.5. Détermination du niveau des graphes 31

3.3.6 Elaboration du graphe 32

3.3.7. Détermination des dates au plus tôt et au plus tard 33

[88]

3.3.8. Détermination des marges 34

3.3.9 Détermination du chemin critique 35

3.4. Diagramme de GANNT 37

3.4.1. Faisabilité financière 37

3.4.2. Calendrier d'exécution du projet 38

3.5. Modélisation fonctionnelle 38

3.5.1. Capture de besoins fonctionnels 38

a. Identification des acteurs 39

b. Identification de cas d'utilisation 40

Les relations entre acteurs et cas d'utilisation 41

3.5.1.1. Diagramme de cas d'utilisation 42

a. Cas d'utilisation pour la consultation 42

b. Cas d'utilisation pour la gestion des utilisateurs 43

Diagramme de cas d'utilisation globale 43

3.5.1.1.1. Description de cas d'utilisation 44

a. Cas d'utilisation « S'authentifier » 45

b. Cas d'utilisation « consulter malade » 46

c. Cas d'utilisation « gérer utilisateurs » 47

3.5.1.2. Diagramme de séquence 47

a. Diagramme de séquence « s'authentifier » 48

b. Diagramme de séquence « consulter malade » 49

c. Diagramme de séquence « gérer utilisateurs » 50

3.5.2. Capture des besoins techniques 50

1. Architectures Client/serveur 51

2. Choix du langage de développement 53

2.1. Présentation de Visual C# 53

3. Choix du SGBD 54

CHAPITRE IV : ELABORATION DU SYSTEME 55

4.1. Développement du modèle statique 55

4.1.1. Diagramme de classe 56

a. Formalisme 56

[89]

b. Concepts 56

4.1.1.1. Règle de gestion 57

4.1.1.2. Identification de classes 57

4.1.1.3. Dictionnaire de données 57

4.1.1.4. Présentation des classes 59

4.1.1.5. Association et Multiplicité 60

a. Association 60

Diagramme de classe 61

4.1.2. Règle de passage d'un diagramme de classe vers un modèle

relationnel. 62

4.2. Développement du modèle dynamique 62

4.2.1. Diagramme d'activités 63

4.2.1.1. Diagramme d'activité « s'authentifier » 64

4.2.1.4. Diagramme d'activités « Consultation » 65

CHAPITRE V : CONSTRUCTION DU NOUVEAU SYSTEME 66

5.1. Modélisation de la base de connaissances. 66

5.1.1. Les réseaux bayésiens 67

5.1.2. Construction et présentation du modèle 68

5.1.3. Inférence du modèle bayésien 70

Algorithme Pearl 70

5.2. Implémentation du modèle 71

5.2.1. Le langage XML 71

5.2.2. Présentation des arborescences des noeuds du modèle 72

5.2.3. Quelques codes sources de l'application en C# 74

CHAPITRE VI : TRANSITION 80

6.1. Diagramme de déploiement 80

6.2. Présentation des quelques interfaces de l'application 81

a. Interface d'authentification. 81

b. Fenêtre d'enregistrement de patients 81

c. Fenêtre de diagnostic 82

CHAPITRE VII : CONCLUSION GENERALE 83

[90]

BIBLIOGRAPHIE 84

I. Ouvrages 84

II. Notes de cours 85

III. Mémoires et Thèses 85

Table de matières 82






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 faut répondre au mal par la rectitude, au bien par le bien."   Confucius