M Lettre Feuille Feuilles [631295]
M Lettre Feuille Feuilles
Elabor é par
par Tuteur
Contrôle qual
Approuvé
ee 9 71 Vacarov V.
Carcea L.
Ciorbă D. UTM FCIM
FI-141 UTM 526.2.821 ME
ME Mod Feuille No. document Signature Date
Système de gestion des patients d ans
une dentisterie Istrati D.
Table de s matières
INTRODUCTION ………………………….. ………………………….. ………………………….. ………………………….. ……………………….. 11
1 LES TECHNOLOGIES UT ILISEES ………………………….. ………………………….. ………………………….. ……………………….. 13
1.1 LE LANGAGE PHP ………………………….. ………………………….. ………………………….. ………………………….. ………. 13
1.2 LE FRAMEWORK SYMFONY ………………………….. ………………………….. ………………………….. ………………………. 14
1.3 LE MODELE -VUE-CONTROLEUR (MVC) ………………………….. ………………………….. ………………………….. ……… 15
1.4 LE TEMPLATE TWIG ………………………….. ………………………….. ………………………….. ………………………….. ……. 17
1.5 DOCKER ………………………….. ………………………….. ………………………….. ………………………….. ……………………. 17
1.6 DOCTRINE (ORM) ………………………….. ………………………….. ………………………….. ………………………….. ………. 18
1.7 MYSQL ………………………….. ………………………….. ………………………….. ………………………….. ……………………. 19
1.8 LE LANGAGE JAVASCRIPT ………………………….. ………………………….. ………………………….. ………………………… 19
1.9 HTML ………………………….. ………………………….. ………………………….. ………………………….. ………………………… 21
1.10 CSS ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. . 21
1.11 BOOTSTRAP ………………………….. ………………………….. ………………………….. ………………………….. ……………….. 22
1.12 VUEJS ………………………….. ………………………….. ………………………….. ………………………….. ………………………. 23
2 CONCEPTION ET LA MIS E EN ŒUVRE DE L’APPL ICATION ………………………….. ………………………….. …………… 26
2.1 DESCRIPTION DES SPECI FICATIONS ET DES BES OINS. ………………………….. ………………………….. …………………. 26
2.2 MODELE DES CAS D ’UTILISATION ………………………….. ………………………….. ………………………….. ………………. 28
2.3 CONSTRUCTION DES DIAG RAMMES DE CAS D’UTILISATION : REDACTION DES SPECI FICATIONS DANS LES
CONTEXTES … ………………………….. ………………………….. ………………………….. ………………………….. …………………………. 28
2.4 MODELE DU DOM AINE ………………………….. ………………………….. ………………………….. ………………………….. …. 33
2.5 CREATION DES DIAGRAMM ES DE SEQUENCE SYSTE ME (SSD). ………………………….. ………………………….. ……. 34
2.6 MODELISATION DU COMPO RTEMENT DANS LES DIA GRAMMES D ’ETATS TRANSITIONS ET D’ACTIVITES ……38
2.7 LES DIAGRAMMES DES CO MPOSANTS ET DEPLOIEM ENT ………………………….. ………………………….. …………….. 44
3 DESCRIPTION DES FONC TIONNALITÉS DE L’APP LICATION ………………………….. ………………………….. ………… 46
3.1 LA PAGE D ’ACCUEIL ………………………….. ………………………….. ………………………….. ………………………….. ……. 46
3.2 INTERFACE D ’AUTHENTIFICATION ………………………….. ………………………….. ………………………….. ……………… 47
3.3 INTERFACE D ’ENREGISTREMENT DE L’UTILISATEUR ………………………….. ………………………….. …………………. 50
3.4 GESTION DES UTILISATE URS ………………………….. ………………………….. ………………………….. ……………………… 51
3.5 LE PROFIL D ’UTILISATEUR ………………………….. ………………………….. ………………………….. ………………………… 53
3.6 CREATION DES ENREGIST REMENTS POUR LES PAT IENTS ………………………….. ………………………….. …………….. 54
3.7 LA LISTE DES ENREGIST REMENTS ………………………….. ………………………….. ………………………….. ………………. 55
10
4 ARGUMENTATION ÉCONOMIQUE DU PROJE T ………………………….. ………………………….. ………………………….. …. 56
4.1 DESCRIPTION DU PROJET ………………………….. ………………………….. ………………………….. ………………………….. 56
4.2 L’ANALYSE S.W.O.T ………………………….. ………………………….. ………………………….. ………………………….. ….. 56
4.3 PLANIFICATION CALENDR IER DU PROJET ………………………….. ………………………….. ………………………….. …….. 58
4.4 CALCUL ECONOMIQUE DU PROJET ………………………….. ………………………….. ………………………….. ……………… 59
4.5 CALCUL SALAIRES ………………………….. ………………………….. ………………………….. ………………………….. ………. 60
4.6 LES DEPENSES INDIRECT ES ………………………….. ………………………….. ………………………….. ……………………….. 62
4.7 CALCUL DU FOND D ’AMORTISSEMENT ………………………….. ………………………….. ………………………….. ……….. 62
4.8 PRIX DE COUT ………………………….. ………………………….. ………………………….. ………………………….. …………….. 63
4.9 RESULTATS FINANCIERS ………………………….. ………………………….. ………………………….. ………………………….. . 64
4.10 STRATEGIES DE MARKETI NG POUR PROMOUVOIR U N LOGICIEL SUR L ’INTERNET ………………………….. ……….. 64
4.11 CONCLUSION SUR LA PAR TIE ECONOMIQUE ………………………….. ………………………….. ………………………….. …. 65
CONCLUSIONS ………………………….. ………………………….. ………………………….. ………………………….. …………………………. 66
BIBLIOGRAPHIES ………………………….. ………………………….. ………………………….. ………………………….. …………………….. 67
ANNEXE A ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. …… 69
ANNEXE B ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. …… 70
ANNEXE C ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. …… 71
Feuille
Mod Feuille Nr. Document Signature Date
UTM 526.2.821 ME
ME
ANNOTATION
De nos jours, les technologies se trouvent dans un avancement continu. Il est trop difficile
aujourd'hui d'imagine la vie sans les technologies informatiques, elles sont partout. L'Internet est devenu
un joueur primordial dans le monde d'affaire, en donnant, de plusieurs années plus que simplement
l'opportunité de chercher d'information ou distraction. Aujourd'hui c'est un service qui joue un rôle
important dans le domaine bancaire, touristique, alimentaire, commercial et bien sur médicine .
La thèse “ Système de gestion des patients dans une dentisterie ” a comme but de faciliter et
ordonner le travail de dentiste, mais aussi et d’informer les patients avec de données avec caractère
personnelle. L’application est composée de plusieurs parties comme : administration, le module destiné
pour les employées de la dentisterie et bien sur la partie pour les clients. L’administration prévoit la
gestion de tous les utilisateurs du système, attribution des rôles et des statues. Cette partie inclue et les
fonctionnements de tous les autres parties de système. La deu xième partie permet la visualisation, la
création, la modification, l’effacement, l’actualisation et la distribution des patients d’un dentiste a l’autre.
Le module destine aux patients permet des fonctionnalités comme : la visualisation de description des
investigations qui ont été écrite par les dentistes, visualisation des résultats d’analyses, le plan de
traitement et aussi de communication directement sur la plateforme avec les dentistes. Dans le processus
de développement ils ont été utilisé des techn ologies modernes pour créer un système qui offre de la
fiabilité, rapidité, sécurité et stabilité pour l’utilisateur.
La thèse est composée du : introduction, quatre chapitres, conclusions, annexe s et référence .
Dans le premier chapitre il s sont décrétées les technologies utilisées . Le deuxième chapitre représente la
projection du système en utilisant le langage de modélisation UML. Ici sont décrites en détails les
diagrammes de cas d’utilisation, de domaine, d’ activité , de séquence, de déploiement et de co mposants.
Le troisième chapitre représente les résultats obtenus et le mode d’utilisation du système après
l’effectuation du d’application. Dans le dernier chapitre il est décrite l’analyse du point de vue
économique , en commençant avec le plan calendrier pour le développeur . Aussi, en utilisant les formules
et les calculs économiques , il été déterminé l’efficacité économique du projet.
L’élaboration du ce projet est orienté pour résoudre un problème quotidien, en utilisant des
technologies de dernier génération qui offre de performance, simplicité et la possibilité d’extension dans
l’avenir.
ADNOTARE
În zilele noastre tehnologiile au avansat atât de mul t încât este prezentă peste tot în viața noastră
și nu există aproape niciun loc de pe glob unde să nu fi pătruns acest trend important al ultimelor două
secole. Internetul a devenit un jucator din ce in ce mai important pe piata afacerilor mondiale, oferi nd, de
multi ani, mai mult decat simpla oportunitate de a cauta informatii si de a te distra. Astazi, acest serviciu
joaca un rol major in domeniul bancar, turistic, alimentar, comercial si, desigur, al medicinii.
Lucrarea cu titlul ”Sistem de gestionare a pacientilor intr -o clinica stomatologica” are ca scop
usurarea si ordonarea lucrului medicilor dentisti, dar si informarea pacientilor cu date cu caracter
personal. Ideea acestei aplicații este de a monitoriza starea tuturor pacientii. Aplicatia este com pusa din
mai multe parti precum : partea de administrare, modulul destinat dentistilor si receptionistilor si partea
modul destinat pacientilor. Partea de administrare pesupune gestiunea tuturor utilizatorilor de sistem,
atribuirea de roluri si statuturi. Aceasta parte include si celelate parti ale sistemului.
A doua parte permite vizualizarea, crearea, modificarea, stergerea, actualizarea si distribuirea
pacientilor si informatiilor pacientilor de la un dentist la altul. Modulul destinat pacientilor este pentru
vizualizarea investigatiilor, rezultatelor analizelor, planului de tratament dar la fel si pentru convorbiri cu
dentistii prin chat chiar direct de pe platforma. În procesul de dezvoltare a acestui sistem s -au utilizat
ultimile tehnologii web, pentr u a crea un sistem informațional ce oferă fiabilitate, rapiditate și stabilitate
utilizatorilor.
Teza este compusă din : introducere, patru capitole, concluzie, anexe și referințe. Primul capitol
cuprinde generalități teoretice a instrumentelor utilizate p entru implementarea sistemului. Capitolul II
reprezintă proiectarea sistemului utilizînd limbajul vizual de modelare UML. Sunt descrise succint
diagramele de Use C ase, de clasă, de activitate, de stare, de deployment și de componente. Capitolul III
reprezi ntă rezultatele obținute și modul de utilizare a acestui sistem în urma aplicării tehnologiilor
respective. Ultimul capitol cuprinde o analiză din punct de vedere economic a proiectului, începînd cu
planul calendaristic pentru programator ce a contribuit l a dezvoltarea acestui sistem. De asemenea, cu
ajutorul formulelor și calculelor economice, s -a determinat eficiența economică a proiectului.
În esență, elaborarea acestui proiect de licență este orientat pentru a rezolva o problemă
cotidiană, utilizînd în același timp ultimile tehnologii ce oferă performanță, simplitate în utilizare, cît și
posibilitatea de extindere a funcționalului pe viitor.
ANNOTATION
Nowadays technology has advanced so much that it is everywhere in our lives and there is hardly
any place in the world which was not touched by this major trend of the last two centuries. The Internet
has become an increasingly important player in the global business market, offering for many years more
than the mere opportunity to look for information a nd fun. Today, this service plays a significant role in
banking, touristic domain, food industry, shopping and, of course, medicine.
The paper entitled "Patient Management System in a Dental Clinic" aims to ease and direct
dentists’ work, at the same time informing patients with personal data. The idea of this application is to
monitor the status of all patients. The application consists of several parts, such as: the management part,
the module for the dentists and receptionists, and the module for patien ts. The management part operates
all the system users, assigning roles and statuses. This part includes the other parts of the system.
The second part allows you to envision, create, modify, delete, update and distribute patients and
the information about them from one dentist to another. The module for patients is designed to visualize
investigations, the results of analysis and treatment plan, giving the possibility to chat with dentists
directly on the platform. In the development of this system we used the latest web technologies in order to
create an information system that offers reliability, speed and stability for users.
The present paper consists of introduction, four chapters, conclusion, appendices and references.
The first chapter includes gener al theories about tools used for the creation of the system. Chapter II
represents the way this system was designed, using visual modeling language UML. It shortly describes
the diagrams of use case, class, activity, status, deployment and components. Chap ter III presents the
results and the way this system works using the respective technologies. The last chapter includes an
economic analysis of the project, starting with the schedule plan for the programmer who developed the
system. Moreover, using formul as and economic calculations, the economic efficiency of the project was
determined.
Essentially, the development of this license project is aimed to solve an everyday problem, using
the latest technology that provides performance and ease of use, as well as the possibility of extending the
functionalities for the future.
11
INTRODUCTION
Actuellement, les applications Web sont en plein évolution. Depuis les premiers sites en HTML
statique jusqu’aux applications dynamiques de ces dernières années, en passant p ar les multiples
technologies de sites Web dynamiques les architectures applicatives. Aujourd’hui, les informations seront
présentées de façon différente selon l’interaction avec le visiteur. C’est en général le cas des sites vitrines
qui présentent des vi trines classées selon un critère. Le travail du Web développer est alors de concevoir
une programmation qui permettra de présenter telle ou telle information selon la requête de l’internaute.
De jour à jour, les technologies Web ont permis aux développeurs de réalisé le Web plus utile et plus
captivant, et la majorité des services qui étaient auparavant une partie de la plateforme Desktop ont
commencé de migrer dans le domaine Web. Le motif est simple : grâce à Internet, les applications Web
sont accessible s de partout dans le monde, à n'importe quel moment et avec un minimum d'équipement.
Il y a de nombreux avantages d’application Web :
– Peut être utilisée par différents types gadget (ordinateurs, laptops, tablettes, smartphones)
– Il n'est plus nécessaire d'i nstaller un logiciel sur chaque ordinateur
– Est placée sur un serveur et les utilisateurs y accèdent par un simple navigateur
– Pour mettre à jour l'application, il suffit de modifier l'application sur le serveur et tous les
postes accèdent instantanément à l a nouvelle version.
– Accessibilité de partout dans le monde
– Un accès rapide et sécurise
– Fonctionne sur tous les systèmes d’exploitation
Aujourd'hui l'informatique est partout, une vraie épidémie ! Que ce soit dans les magasins, les
bars, les distributeurs , en passant par les stations -services, l'école, les bibliothèques, les aéroports, ou au
travail, plus rien ne fonctionne sans elle. Donc il faut profiter de tout ça, et d’utiliser l’informatique pour
résoudre des problèmes quotidiens.
Le système crée pour la thèse de licence a le nom « Dental Manager » et vient de résoudre le
problème de la gestion des patients dans une dentisterie.
L’application Web c’est une plateforme très facile à utiliser qui permet d’effectuer différent
actions comme : voir, créer, modifier ou supprimer différent types de donnes comme par exemple : les
utilisateur ou d’info d’utilisateur. Encore une cote très importante de l’application et quelle créer un
environnement sécurisé pour les simples utilisateurs, les administrateurs du si te et les travailleurs de la
dentisterie. Un autre point fort et que les patients sont redressés chez le dentiste convenable, informer et
connaisse quoi faire. Les informations sont toujours actualisées et les patients peuvent voir ses resultats
en ligne. Encore, le système a une messagerie et si les patients ont besoin de demandé quelque chose ou
en cas d’urgence, il peu faire ça sur directement sur la platforme.
12
La formation du projet est structurée dans quelques modules : trois formant la partie plus
importante du contenu, et quatre périphériques. La partie centrale porte sur les méthodes, outils et
techniques pour la modélisation, la conception et la programmation du ce projet. Les compétences liées à
UML et aux technologies Symphony et VueJS qui sont la cible principale. Le reste de la formation
consiste en quatre modules couvrant les technologies nécessaires au développement, au déploiement et à
l’exploitation d’applications réparties.
Ce mémoire comprend 4 chapitres ou se décrit toute l'activité pour l'analyse et création de ce
projet. Le premier chapitre comprend des généralités théoriques et l'analyse des solutions déjà existantes
pour le but et les objectifs de ce projet. Le deuxième chapitre présente le concept architectural de
développement de l' application et aussi la mise en œuvre elle -même. Ils ont décrit en détail les
diagrammes de cas d'utilisation, de classe, d'activité, d'état, de composantes et déploiement. Le troisième
chapitre décrit les résultats obtenus après l'application de ces techn ologies et leur explication comparative.
Le dernier chapitre reflète l'analyse économique de ce projet, à partir du plan de calendrier.
Généralement, le développement de ce projet démontre encore une fois que les technologies
informatiques seront en pic du monde, avec les application Web on peut créer des applications très utiles
pour la vie quotidienne. Les objectifs de ce projet ont été achevé avec du succès, et les potentiels clients
pourraient obtenir dans un avenir proche une version commerciale du pro jet.
13
1 LES TECHNOLOGIES UTI LISEES
Avec l’émergence du WEB2.0 et de ses nouveaux standards l’HTML5 et le CSS3, les sites web
deviennent de plus en plus complexes et évolutifs pour répondre aux attentes des utilisateurs, ce qui
entraine une vraie course à la modernité. En effet, plusieurs études ont démontré que ce qui définit de nos
jours un « bon site web » selon les utilisateurs se résume à sa rapidité et sa manière d’interagir avec ses
utilisateurs. Un des moyens le plus répandus pour améliorer un site Web et le rendre plus dynamique
consiste à y ajouter du JavaScript.
Pour développer les web services et l’application web j’ai utilisé les plus nouvelles et les plus
innovatrices langages : PHP et JavaScript et les Framework : Symfony et respectivement Vu eJS.
1.1 Le langage PHP
Hypertext Preprocessor, plus connu sous son sigle PHP (acronyme récursif), PHP est un langage
de programmation libre, principalement utilisé pour produire des pages Web dynamiques via un serveur
HTTP, mais pouvant également fonctionner comme n’importe quel langage interprété de façon locale.
PHP est un langage impératif orienté objet.PHP a permis de créer un grand nombre de sites web célèbres,
comme Facebook, Wikipédia. Il est considéré comme une des bases de la création de sites web di ts
dynamiques mais également des applications web.
PHP appartient à la grande famille des descendants du C, dont la syntaxe est très proche. En
particulier, sa syntaxe et sa construction ressemblent à celles des langages Java et Perl, à ceci près que du
code PHP peut facilement être mélangé avec du code HTML au sein d'un fichier PHP.
Dans une utilisation destinée à l'internet, l'exécution du code PHP se déroule ainsi : lorsqu'un visiteur
demande à consulter une page de site web, son navigateur envoie une re quête au serveur HTTP
correspondant. Si la page est identifiée comme un script PHP (généralement grâce à l’extension .php), le
serveur appelle l'interprète PHP qui va traiter et générer le code final de la page (constitué généralement
d'HTML ou de XHTML, m ais aussi souvent de feuilles de style en cascade et de JS). Ce contenu est
renvoyé au serveur HTTP, qui l'envoie finalement au client.
Figure 1.1 Le fonctionnement des script PHP comme réponse à une requête interprétée par le client
14
Une étape supplémen taire est souvent ajoutée : celle du dialogue entre PHP et la base de
données. Classiquement, PHP ouvre une connexion au serveur de SGBD voulu, lui transmet des requêtes
et en récupère le résultat, avant de fermer la connexion. [14]
L'utilisation de PHP en tant que générateur de pages Web dynamiques est la plus répandue, mais
il peut aussi être utilisé comme langage de programmation ou de script en ligne de commande sans
utiliser de serveur HTTP ni de navigateur. Il permet alors d'utiliser de nombreuses fon ctions du langage C
et plusieurs autres sans nécessiter de compilation à chaque changement du code source. [1]
PHP possède un grand nombre de fonctions permettant des opérations sur le système de fichiers,
exécuter des commandes dans le terminal, la gestio n des bases de données, des fonctions de tri et
hachage, le traitement de chaînes de caractères, la génération et la modification d'images, des algorithmes
de compression.
1.2 Le framework Symfony
Symfony est un ensemble de composants PHP ainsi qu'un f ramework MVC libre écrit en PHP. Il
fournit des fonctions n’alités modulables et adaptables qui permettent de faciliter et d’accélérer le
développement d'un site web. Premièrement, un framework est à un développeur ce qu'une boîte à outils
est à un bricole ur. Les frameworks permettent de réduire les temps de développement des applications en
répondant de façon efficace aux problèmes rencontrés le plus souvent par les développeurs. (CRUD,
arborescence, normes, sécurités, etc.).
Symfony utilise des bundles p our ajouter, retirer, modifier des fonctionnalités sur vos projets. Le
kernel lui même de Symfony est un bundle ! Les bundles sont utilisables sur tout vos projets, il existe des
bundles pour à peu près tout, vous n'avez pas à réinventer la roue, il existe des bundles qui servent de
CMS, des bundles pour faire des blogs, des forums, des systèmes de paiement en ligne, etc.
Les formulaires sont aussi très simples à mettre en place grâce à Symfony, il vous suffit
d'indiquer l'objet pour lequel vous souhaitez c réer ce formulaire et Symfony est capable de générer les
champs en fonction des informations dont il dispose.
Utilisations
Symfony est utilisé par Askeet et beaucoup d'autres applications, dont Delicious et les vingt
millions d'utilisateurs de Yahoo! Bookm arks. En 2009, Dailymotion a porté son code sur Symfony et a
continué la transition.
Les projets les plus connus utilisant Symfony sont eZPublish , Drupal depuis la version 8
(utilisation de composants Symfony), phpBB, Laravel, Joomla!, Composer, Magento, Piwik. [23]
15
Fonctionnalités
– Une séparation du code en trois couches, selon le modèle MVC, pour une plus grande
maintenabilité et évolutivité ;
– Une architecture extensible permettant créations et utilisations de plugins
– Des performances optimisées et un s ystème de cache afin d'assurer des temps de réponse optimaux ;
– Le support d'AJAX ;
– Symfony fournit une interface en ligne de commande pour améliorer la productivité en créant un
code de base modifiable à volonté ;
– Une gestion des URL parlante, permetta nt à une page d'avoir une URL distincte de sa position dans
l'arborescence ;
– Un système de configuration en cascade utilisant pleinement le langage YAML ;
– Un générateur de back -office et un lanceur de module (scaffolding) ;
– L'internationalisati on native ;
Avantages
– Le framework Symfony est très modulaire et il est possible d 'en choisir uniquement certains
morceaux.
– Symfony a été conçu pour s'intégrer facilement avec un ORM tel que Doctrine permettant de
faciliter la persistance d'objets en ba se de données.
– Gestion multi -langues simplifiée
– Système intégré d'améliorations des performances
– Existence de nombreux Bundles/pluggins tel que Sonata
– Forte capacité d'évolution
– Communauté toujours plus grande (plus de 300 000 développeurs dans 120 pay s)
– Contrairement à d'autres solutions le Labs de R&D à l'origine de la solution continue de distribuer
de nouvelle s versions : sensiolabs.
1.3 Le Modèle -vue-contrôleur (MVC)
Modèle -vue-contrôleur ou MVC est un motif d'architecture logicielle destiné aux interfaces
graphiques lancé en 1978 et très populaire pour les applications web. Le motif est composé de trois types
de modules ayant trois responsabilités différentes : les modèles, les vues et les contrôleurs.
– Un modèle contient les données à afficher.
– Une vue contient la présentation de l'interface graphique.
– Un contrôleur contient la logique concernant les actions effectuées par l'utilisateur.
16
Ce motif est utilisé par de nombreux frameworks pour applications web tels que Ruby on Rails, Django,
ASP.NET MVC, Spring, Struts, Symfony, Apache Tapestry ou Angular Js.
Figure 1.2 Le fonctionnement du Modèle -vue-contrôleur
Modèle
Élément qui contient les données ainsi que de la logique en rapport avec les données : validation,
lecture et enregistrement. Il peut, dans sa forme la plus simple, contenir uniquement un simple texte, voire
des données beaucoup plus compliquées. Le modèle représente l'univers dans lequel s'inscrit l'application.
Par exemple pour une application de banque, le modèle représente d es comptes, des clients, ainsi que les
opérations telles que dépôt et retraits, et vérifie que les retraits ne dépassent pas la limite de crédit. Le
modèle est indépendant de la vue et du contrôleur et ne s'en sert pas.
Vue
Partie visible d'une interface g raphique. La vue se sert du modèle, et peut être un diagramme, un
formulaire, des boutons, etc. Une vue contient des éléments visuels ainsi que la logique nécessaire pour
afficher les données provenant du modèle. Dans une application web une vue contient d es balises HTML.
Contrôleur
Module qui traite les actions de l'utilisateur, modifie les données du modèle et de la vue.
Les trois éléments sont indépendants les uns des autres, le modèle ne se sert ni de la vue ni du
contrôleur, il peut cependant leur envo yer des messages. Il y a deux liens entre la vue et le modèle :
premièrement la vue lit les données du modèle et deuxièmement reçoit des messages provenant du
modèle3. Dans la mesure où une vue est associée à un modèle et un modèle est indépendant, un même
modèle peut être utilisé par plusieurs vues.
17
1.4 Le template Twig
Les templates vont nous permettre de séparer le code PHP du code HTML/XML/Text, etc.
Seulement, pour faire du HTML de présentation, on a toujours besoin d'un peu de code dynamique : fai re
une boucle pour afficher toutes les annonces de notre plateforme, créer des conditions pour afficher un
menu différent pour les utilisateurs authentifiés ou non, etc. Pour faciliter ce code dynamique dans les
templates, le moteur de templates Twig offre son pseudo -langage à lui. Ce n'est pas du PHP, mais c'est
plus adapté et voici pourquoi :
– La syntaxe est plus concise et plus claire. Rappelez -vous, pour afficher une variable, { { mavar }}
suffit, alors qu'en PHP il faudrait faire<?php echo $mavar; ?>.
– Il y a quelques fonctionnalités en plus, comme l'héritage de templates (nous le verrons). Cela
serait bien entendu possible en PHP, mais il faudrait coder soi -même le système et cela ne serait
pas aussi esthétique.
– Il sécurise vos variables automatique ment : plus besoin de se soucier dehtmlentities(),
addslashes() ou que sais -je encore.
Pour ceux qui se posent la question de la rapidité : aucune inquiétude ! Oui, il faut transformer le
langage Twig en PHP avant de l'exécuter pour, finalement, afficher n otre contenu. Mais Twig ne le fait
que la première fois et met en cache du code PHP simple afin que, dès la deuxième exécution de votre
page, ce soit en fait aussi rapide que du PHP simple.
En effet, pourquoi se limiter à nos pages HTML ? Les templates peu vent (et doivent) être utilisés
partout. Quand on enverra des e -mails, leurs contenus seront placés dans un template. Il existe bien sûr un
moyen de récupérer le contenu d'un template sans l'afficher immédiatement. Ainsi, en récupérant le
contenu du templa te dans une variable quelconque, on pourra le passer à la fonction mail de notre choix.
Mais il en va de même pour un flux RSS par exemple ! Si l'on sait afficher une liste des news de
notre site en HTML grâce au templateliste_news.html.twig, alors on saur a afficher un fichier RSS en
gardant le même contrôleur, mais en utilisant le templateliste_news.rss.twigà la place.
1.5 Docker
Docker est un logiciel libre qui automatise le déploiement d'applications dans des conteneurs
logiciels. Selon la firme de re cherche sur l'industrie 451 Research, « Docker est un outil qui peut
empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur
n'importe quel serveur Linux ». Ceci permet d’étendre flexibilité et la portabilité d’ex écution d'une
application, que ce soit sur la machine locale, un cloud privé ou public, une machine nue.
Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau
fournissant une solution de virtualisation qui exécute les proces sus de façon isolée. Docker utilise LXC,
18
cgroups, et le noyau Linux lui -même. Contrairement aux machines virtuelles traditionnelles, un conteneur
Docker n'inclut pas de système d'exploitation, s'appuyant sur les fonctionnalités du système d’exploitation
fournies par l'infrastructure sous -jacente.
La technologie de conteneur de Docker peut être utilisée pour étendre des systèmes distribués de
façon à ce qu'ils s'exécutent de manière autonome depuis une seule machine physique ou une seule
instance par nœud. C ela permet aux nœuds d'être déployés au fur et à mesure que les ressources sont
disponibles, offrant un déploiement transparent et similaire aux PaaS pour des systèmes comme Apache
Cassandra, Riak ou d'autres systèmes distribués. [4]
1.6 Doctrine (ORM)
Doctrine est un ORM (couche d'abstraction à la base de données) pour PHP. Il s'agit d'un logiciel
libre sous licence GNU LGPL.
Doctrine est l'ORM par défaut du framework Symfony (depuis la version 1.3 de ce framework).
Cependant son utilisation dans le cad re d'un projet développé avec Symfony est optionnelle. De plus, il
peut être utilisé avec de nombreux autres frameworks tels que Zend Framework, CodeIgniter, FLOW3 ou
encore Lithium.
Pour comprendre où se situe Doctrine ORM il faut savoir que Doctrine se c ompose de deux
grandes parties :
– Doctrine ORM
– Doctrine DBAL
Doctrine "ORM" (Mapping Objet -Relationnel ou Object Relational Mapping) se base sur
Doctrine "DBAL" (Couche d'abstraction de base de données ou DataBase Abstraction Layer) qui
également s'appuie s ur PDO (PHP Data Objects). Notez que PDO est activé par défaut depuis la version
PHP 5.1 et ne fait pas partie de Doctrine. [11]
ORM fournit la persistance transparente des objets PHP. C'est l'interface qui permet de faire le
lien ou "mapping" entre nos ob jets et les éléments de la base de données (que gère DBAL).
ORM
Si par DBAL retourne dans votre base de donnée une table "Article" avec 3 champs: "ID",
"Titre" et "Contenu" et que toute votre application utilise un objet "Post" avec les attributs "ID", "Ti tle" et
"Content" (leur équivalent en anglais), et bien ORM permettra très facilement de faire correspondre
chaque attribut de votre objet au champ correspondant dans votre table physique via un fichier de
"mapping" (format YAML, XML ou annotations dans un fichier PHP). Ainsi un enregistrement
correspondra à une instance (et vice et versa) et une table correspond à une classe (ou entité). [12]
19
1.7 MySQL
MySQL est un serveur de bases de données relationnelles SQL développé dans un souci de
performances él evées en lecture, ce qui signifie qu'il est davantage orienté vers le service de données déjà
en place que vers celui de mises à jour fréquentes et fortement sécurisées. Il est multi -thread et multi –
utilisateur. [5]
C’est un logiciel libre, open source, dé veloppé sous double licence selon qu'il est distribué avec
un produit libre ou avec un produit propriétaire. Dans ce dernier cas, la licence est payante, sinon c'est la
licence publique générale GNU (GPL) qui s'applique. Un logiciel qui intègre du code MyS QL ou intègre
MySQL lors de son installation devra donc être libre ou acquérir une licence payante. Cependant, si la
base de données est séparée du logiciel propriétaire qui ne fait qu'utiliser des API tierces (par exemple en
C# ou php), alors il n'y a pas besoin d'acquérir une licence payante MySQL. Ce type de licence double est
utilisé par d'autres produits comme le framework de développement de logiciels Qt. [2]
1.8 Le langage JavaScript
Le JavaScript est un langage de script incorporé dans un document HTML. Historiquement il
s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui
permet d'apporter des améliorations au langage HTML en permettant d'exécuter des commandes du côté
client, c'est -à-dire au niveau du navigateur et non du serveur web. JavaScript est un langage basé sur
l’événementielle, par exemple quand une action intervient tel qu’un clic sur un bouton ou la réception
d’une requête, un événement est créé par le navigateur et peut être intercepté pa r JavaScript. Avec ce
système les développeurs peuvent donc modifier le contenu de leurs pages en fonction des actions de
leurs utilisateurs. JavaScript est langage qui existe depuis longtemps, mais a connu une révolution ces
dernières années notamment ave c une technologie appelée le moteur V8. [13]
Le JavaScript, le langage de scripts
Le JavaScript est majoritairement utilisé sur Internet, conjointement avec les pages Web HTML.
Le JavaScript s'inclut directement dans la page Web (ou dans un fichier externe ) et permet de dynamiser
une page HTML, en ajoutant des interactions avec l'utilisateur, des animations, de l'aide à la navigation,
comme par exemple :
– Afficher/masquer du texte ;
– Faire défiler des images ;
– Créer un diaporama avec un aperçu « en gran d » des images ;
– Créer des infobulles.
20
Le JavaScript est un langage dit client -side, c ’est-à-dire que les scripts sont exécutés par le
navigateur chez l'internaute (le client). Cela diffère des langages de scripts dits server -side qui sont
exécutés par l e serveur Web. C'est le cas des langages comme le PHP. [6]
C’est important, car la finalité des scripts client -side et server -side n'est pas la même. Un script
server -side va s'occuper de « créer » la page Web qui sera envoyée au navigateur. Ce dernier va alors
afficher la page puis exécuter les scripts client -side tel que le JavaScript. Voici un schéma reprenant ce
fonctionnement :
Figure 1.3 JavaScript est un langage dit client -side, c'est à dire interprét é par le client
(le navigateur)
Les modules No de.JS
Créer une application Web sur NodeJS peut s’avérer difficile si on ne connait pas les modules
qui pourront nous simplifier la vie. Les modules sont des packages JavaScript chargeables qui fournissent
une fonctionnalité spécifique à notre application. Un module est habituellement installé à l'aide de l'outil
en ligne de commande npm. Néanmoins, certains modules (le module http par exemple) sont intégrés au
package Node.js principal.
Lorsque les modules sont installés, ils sont stockés dans le répertoir e node_modules à la racine
de la structure de répertoires de notre application. Chaque module du répertoire node_modules conserve
son propre répertoire node_modules qui comporte tous les modules dont il dépend. Cette structure se
répète pour chaque module, tout au long de la chaîne de dépendance. Ainsi, chaque module installé est
doté de ses propres exigences de version pour les modules dont il dépend, ce qui peut néanmoins résulter
en une structure de répertoires assez volumineuse. [3]
Lors du déploiement du répertoire node_modules dans notre application, la taille du déploiement
est accrue comparée à l'utilisation du fichier package.json ou npm-shrinkwrap.json . Néanmoins, ce type
de déploiement garantit que la version des modules utilisés en production est la même que ceux utilisés en
développement.
21
Utilisation du fichier package.json
Le fichier package.json permet de spécifier les dépendances de niveau supérieur requises par
notre application afin que la plateforme d'hébergement puisse installer les dépen dances, plutôt que de
nous oblige à inclure le dossier node_packages dans le déploiement. Une fois que l'application a été
déployée, la commande npm install permet d'analyser le fichier package.json et d'installer toutes les
dépendances répertoriées.
Au co urs du développement, vous pouvons utiliser les paramètres –save, –save-dev ou –save-
optional lors de l'installation de modules afin d'ajouter automatiquement une entrée pour le module à
notre fichier package.json .
Un problème potentiel avec le fichier package.json est qu'il n'indique la version que pour les
dépendances de niveau supérieur. Chaque module installé peut spécifier ou non la version des modules
dont il dépend. Ainsi, il est possible que vous obteniez une chaîne de dépendance différente de ce lle
utilisée en développement.
1.9 HTML
Le langage HTML est un langage informatique qui permet de créer et structurer des pagesWeb.
Toutes les pages Web sont faites de code HTML, le langage hypertexte. Toutefois, ces pages HTML sont
souvent générées en tout o u partie automatiquement. Si le langage HTML permet d'afficher des pages
d'une grande variété de contenus, de mise en forme ou d'animations, il a également la qualité de pouvoir
être écrit avec un simple éditeur de texte, ce qui évite l'achat d'une applica tion spécifique.
L'un de ses inconvénients est que l'affiche est dépendant du terminal, notamment, de la taille de
l'écran, du navigateur, du niveau de zoom, des polices de caractères disponibles, etc. Ceci nécessite donc
de tester les pages avec différen ts terminaux. Pour éviter les mauvaises surprises, il faut respecter les
standards du Web. [15]
Le langage de balisage HTML permet de structurer un document et de le mettre en forme.
Cependant, ce langage utilisé intensément par les sites internet tend à devenir exclusivement un langage
de structuration en se rapprochant du format XML, laissant la mise en forme aux feuilles de styles en
cascade (CSS), et les animations au JavaScript .
1.10 CSS
Les feuilles de styles (en anglais "Cascading Style Sheets", abrégé CSS) est un langage qui
permet de gérer la présentation d'une page Web. Le langage CSS est une recommandation du World Wide
Web Consortium (W3C), au même titre que HTML ou XML. Les styles permettent de définir des règles
appliquées à un ou plusieurs docum ents HTML. Ces règles portent sur le positionnement des éléments,
22
l'alignement, les polices de caractères, les couleurs, les marges et espacements, les bordures, les images
de fond, etc. Le but de CSS est séparer la structure d'un document HTML et sa prése ntation. En effet,
avec HTML, on peut définir à la fois la structure (le contenu et la hiérarchie entre les différentes parties
d'un document) et la présentation. Mais cela pose quelques problèmes. Avec le couple HTML/CSS, on
peut créer des pages web où la structure du document se trouve dans le fichier HTML tandis que la
présentation se situe dans un fichier CSS. Avec CSS on peut par exemple définir un ensemble de règles
stylistiques communes à toutes les pages d'un site internet. Cela facilite ainsi la mo dification de la
présentation d'un site entier. CSS permet aussi de définir des règles différentes pour chaque support
d'affichage (un navigateur classique, une télévision, un support mobile, un lecteur braille…). CSS permet
aussi d'améliorer l'accessibi lité des documents web. De plus, CSS ajoute des fonctionnalités nouvelles par
rapport à HTML au point de vue du style. En effet, HTML permet une gestion assez sommaire du style
des documents. [16]
1.11 Le Framework Bootstrap
Bootstrap est un Framework* we b qui facilite la création de sites internet et d’applications web.
Il contient des modèles HTML et CSS qui permettent de créer rapidement des formulaires, des boutons,
des outils de navigation et d’autres éléments dynamiques.
D’où vient Bootstrap
Boostrap a été développé par l’équipe de Twitter, suite à des problèmes d’incohérences de design
entre chaque page. Les créateurs de Twitter ont alors décidé d’homogénéiser le design de leur réseau
social grâce à un Framework. Conscients du potentiel de Boostrap, les deux fondateurs ont partagé, en
2011, leur Framework en open source. C’est maintenant toute une communauté qui met à jour le
Framework sur GITHUB. La dernière version, 3.0, est maintenant responsive donc utilisable sur
n’importe quel appareil mobile. [17]
Fonctionnement
La modularité de Bootstrap consiste en une série de feuilles de styles LESS qui implémentent
différents composants du toolkit. Une feuille de style principale (bootstrap.less) englobe les feuilles de
style des composants. Les développeur s peuvent alors sélectionner les composants dont ils ont besoin en
modifiant cette feuille principale. L'utilisation de LESS permet la manipulation de variables, de fonctions,
d'opérateurs, sélecteurs.
Depuis la version 2, Bootstrap dispose d'une option su pplémentaire de « personnalisation ». Le
système de grille et le style adaptatif sont standardisés sur une grille de 940 pixels de large, que les
développeurs peuvent adapter. Ces définitions sont déclinées en quatre variations qui peuvent être
23
utilisées d ans différents formats et supports : téléphones (portrait et paysage), tablette et PC (haute et
basse résolution). Ces déclinaisons adaptent automatiquement l'affichage de la page. [20]
Les avantages de Bootstrap
– Le gain de temps grâce aux éléments HTML/CS S prédéfinis. Plus besoin de passer des heures à
faire des tableaux, le Framework contient tout ce qu’il vous faut. Vous aurez aussi accès à des
éléments JavaScript vous permettant de faire apparaitre des messages d’erreurs ou des pop -up très
facilement.
– Complétement responsive, du coup vous n’avez pas besoin de faire une version spéciale de votre
site internet dédiée aux smartphones et tablettes.
– Facile d’utilisation avec une documentation où il suffit de copier / coller du code HTML pour
rendre une page b ien plus que présentable.
– Boostrap compte une communauté active importante. Il réunit près de 600 contributeurs qui en font
l’un des projets les plus populaires de GitHub. [21]
1.12 Le Framework VueJS
Vue.js est un framework JavaScript progressif open -source permettant de créer des interfaces
utilisateur. L’intégration dans des projets utilisant d'autres bibliothèques JavaScript est facilitée avec Vue
car elle est conçue pour être progressivement adoptée. Vue peut également fonctionner comme une
structure d'application Web capable d'alimenter des applications d’une page avancée. Vue.js est un
framework front -end JavaScript populaire qui a été conçu pour organiser et simplifier le développement
Web.
Le projet vise à rendre plus accessibles les idées dans le développement de l'interface utilisateur
Web (composants, interface utilisateur déclarative, rechargement à chaud, débogage temporel, etc.). Il
tente d'être moins opiniâtre et donc plus facile à prendre en main pour les développeurs.
Il comporte une archit ecture progressivement adoptable. La bibliothèque principale se concentre
sur le rendu déclaratif et la composition des composants, et peut être intégrée dans des pages existantes.
Les fonctionnalités avancées requises pour les applications complexes telle s que le routage, la gestion
d'état et l'outillage de construction sont proposées via des bibliothèques et des packages de support
maintenus officiellement.
Les principales caractéristiques du VueJS
Modèles
Vue utilise une syntaxe de modèle basée sur HTM L qui vous permet de lier de manière
déclarative le DOM rendu aux données de l'instance Vue sous -jacente. Tous les modèles Vue sont des
documents HTML valides qui peuvent être analysés par des navigateurs conformes aux spécifications et
24
par des analyseurs HTML. Sous le capot, Vue compile les modèles dans des fonctions de rendu DOM
virtuelles. Combiné avec le système de réactivité, Vue est capable de comprendre intelligemment le
nombre minimal de composants à réafficher et d'appliquer la quantité minimale de manipulation DOM
lorsque l'état de l'application change.
Dans Vue, vous pouvez utiliser la syntaxe du modèle ou choisir d'écrire directement les fonctions
de rendu à l'aide de JSX. Pour ce faire, il suffit de remplacer l'option template par une fonction d e rendu.
Les fonctions de rendu ouvrent des possibilités pour de puissants motifs basés sur des composants – par
exemple, le nouveau système de transition est maintenant entièrement basé sur des composants, en
utilisant les fonctions de rendu en interne. [22]
Réactivité
L'une des caractéristiques les plus distinctives de Vue est le système de réactivité discret. Les
modèles sont simplement des objets JavaScript simples . Lorsque vous les modifiez, la vue est mise à
jour. Il rend la gestion d'état très simple et intuitive. Vue fournit un ré -rendu optimisé dès la sortie de la
boîte sans que vous ayez à faire quoi que ce soit. Chaque composant conserve une trace de ses
dépendances réactives lors de son rendu, de sorte que le système sait exactement quand effectuer un
nouveau rendu et les composants à restituer.
Composants
Les composants sont l'une des fonctionnalités les plus puissantes de Vue. Dans une grande
application, il est nécessaire de diviser l'ensemble de l'application en petits composants autonomes et
souvent réutilisables pour rendre le développement gérable. Les composants étendent les éléments HTML
de bas e pour encapsuler le code réutilisable. À un niveau élevé, les composants sont des éléments
personnalisés auxquels le compilateur Vue associe le comportement. Dans Vue, un composant est
essentiellement une instance de Vue avec des options prédéfinies.
Tran sitions
Vue fournit une variété de façons d'appliquer des effets de transition lorsque des éléments sont
insérés, mis à jour ou supprimés du DOM . Cela incl ut des outils pour :
– Appliquer automatiquement des classes pour les transitions CSS et les animations
– Intégrer des bibliothèques d'animation CSS tierces, telles que Animate.css
– Utiliser JavaScript pour manipuler directement le DOM pendant les crochets de transition
– Intégrer des bibliothèques d'animation JavaScript tierces, telles que Velocity.js
Lorsqu'un élément enveloppé dans un composant de transition est inséré ou supprimé, voici ce
qui se passe :
25
– Vue reniflera automatiquement si l'élément cible a des transitions CSS ou des animations
appliquées. Si c'est le cas, les classes de transition CSS seront ajoutées / supprimées aux horaires
appropriés.
– Si le composant de transition fournit des hooks JavaScript, ces hooks seront appelés à des horaires
appropriés.
– Si aucune transition / animation CS S n'est détectée et qu'aucun hook JavaScript n'est fourni, les
opérations DOM d'insertion et / ou de suppression seront exécutées immédiatement au prochain
frame.
Ce langage permet de demander des opérations d' algèbre relationnelle telles que l'intersection, la
sélection et la jointure .
26
2 CONCEPTION ET LA MISE EN ŒUVRE DE L’APPLICATION
Le Langage de Modélisation Unifié, de l'anglais Unified Modeling Language (UML), est un
langage de modélisation graphique à base de pictogrammes conçu pour fournir une méthode normalisée
pour visualiser la conception d'un système. Il est couramment utilisé en développement logiciel et en
conception orientée objet.
L'UML est le résultat de la fusion de précédents langages de modélisation objet : Booch, OMT,
OOSE. Principalement issu des travaux de Grady Booch, James Rumbaugh et Ivar Jacobson, UML est à
présent un standard adopté par l'Object Management Group (OMG).
Utilisation
UML est utilisé pour spécifier, visualiser, modifier et construire les documents nécessaires au
bon développement d'un logiciel orienté objet. UML offre un sta ndard de modélisation, pour représenter
l'architecture logicielle. Les différents éléments représentables sont :
– Activité d'un objet/logiciel
– Acteurs
– Processus
– Schéma de base de données
– Composants logiciels
– Réutilisation de composants
Grâce aux outils de m odélisation UML, il est également possible de générer automatiquement
tout ou partie du code d'une application logicielle, par exemple en langage Java, à partir des divers
documents réalisés. [18]
2.1 Description des spécifications et des besoins
Les spécific ations et les besoins du système doivent être clairement exposés dans les cas
d’utilisation qui suit en dessous.
En fait, il faut s’axer ainsi sur les opérations nécessaires, les fonctionnalités et l’interaction des
composantes du système que sur les techn ologies, les exigences particulaires, les intérêts, les autres points
ouverts, la sécurité, la performance du fonctionnement du système.
Donc, on a élucidé ces particularités de la façon suivante :
Acteurs primaires : l’administrateur, le prothésiste, les dentistes spécialisés (le thérapeute, le
chirurgien, le paradontiste, l’orthodontiste) et le système.
Parties Prenantes et Intérêts :
– L’administrateur du système :
27
Gestion des utilisateurs du système (visualisation, création, modification, effacement,
attribution de rôle, changer le statut).
Peut visualiser toutes les informations et peut faire toutes les options qui ont les autres
utilisateurs.
– Le prothésiste :
Faire des consultations pour les patients.
A accès aux toutes les informations des patients.
Faire le plan de traitement
Distribué les patient chez les dentistes spécialisés.
Introduit le plan de traitement dans le système et modifie les donn ées des patients.
– Les dentistes spécialisés :
Voire le plan de traitement prescrit par le prothésiste.
Faire le traitement.
Ajouter les modifications sur les patients dans le syst ème.
– Le réceptionniste :
Faire des enregistrements pour les nouveaux patients.
Donne acc ès aux patients au système.
Annuler l’enregistrement des patients.
– Le patient :
Voir ses donnée s personales.
Faire l’enregistrement et l’authentification.
Voir ses résultats et le plan de traitement.
– Le système :
Veut maintenir la présence Web de la façon de faire le point aux objectifs Business, veut
garantir la sécurité, la maintenance et l’inté grité du serveur
Exigences Particulières :
– Connexion à l’internet
– Conformité aux protocoles
Technologie et Liste des Données Variables :
– Moniteur
– Souri
– Clavier
– D’autres dispositifs
28
Fréquence d'apparition :
– Presque continue
Points Ouverts :
– Maintena nce du site
– Personnalisation du site
2.2 Modèle des cas d’utilisation . Rédaction des spécifications dans le contexte
Un cas d’utilisation est un document narratif qui décrit la séquence d’évènements dans laquelle
un acteur (un agent externe) utilise un systèm e pour accomplir un processus.
Cas d’utilisation (use case) : Décrit un ensemble de séquences dans lequel chacune des
séquences représente l’interaction des acteurs avec le système lui -même. Représente les fonctions du
système visibles par les acteurs.
Acteur : Ensemble de rôles interprétés par les utilisateurs du système lorsque ceux -ci
interagissent avec le système à travers les cas d’utilisation. Il s’agit d’une entité externe au système qui
interagit avec celui -ci.
Parties prenantes et intérêts : Liste des personnes qui sont impliqués dans le cas d’utilisation et
ce qu’ils souhaitent.
Pré conditions : Conditions qui doivent être vraies avant le début du scénario
Garanties en cas de succès (post conditions) : Conditions qui doivent être vraies lorsque le cas
d’utilisation se termine avec succès. [19]
En format étendu, un cas d’utilisation est constitué de plusieurs éléments :
– Nom du cas d’utilisation
– Système
– Acteurs
– Parties prenantes
– Pré conditions
– Garanties en cas de succès (post conditions)
– Une descripti on du scénario principal
– Une description des scénarios alternatifs
2.3 Construction des diagrammes de Cas d’utilisation
Le diagramme de contexte permet de visualiser les cas d’utilisation primaires d’un système. Ceci
permet de voir rapidement les principa les fonctions d’un système.
29
Plus particulièrement, le diagramme de contexte définit :
– Les limites du système modélisé.
– Les principaux acteurs du modèle.
– Les cas d’utilisation primaires.
Figure 2.1 Le diagramme de cas d'utilisation
30
Description en détail s de chaque cas d'utilisation
Use Case 1. Gérer les utilisateurs
– Le système va offrir la possibilité de gérer les utilisateurs. Les actions suivantes vont être
disponibles : visualisation, création, modification ou effacement.
– Le système va offrir de confi gurer et attribuer des rôles aux utilisateurs.
– La gestion sera disponible seulement aux utilisateurs avec des droits d'accès élèves.
Use Case 1. Gérer les utilisateurs
CONSTRAINTS
Pre-condition. Etre authentifie comme administrateur.
Post-condition . L’administrateur a fait des changements sur quelqu’un utilisateur
SCENARIOS
Basic Path . La consultation
1. L’utilisateur fait l’authentification.
2. L’utilisateur demande la page avec l’affichage de toutes les utilisateurs.
3. Le système affiche les utilis ateurs.
4. L’administrateur selecte un utilisateur.
5. Le système affiche les données du patient selecte.
6. L’administrateur modifie les données voulues et fait la demande de les enregistre.
7. Le système enregistre les modifications.
Alternate . Scenari o alternatif a
1. L’authentification n’est pas valide.
Alternate . Scenario alternatif b
2. L’utilisateur n'a pas le rôle de administrateur.
Use Case 2. Consulter les patients et distribue les patients chez le dentiste spécialisé
– Le système va off rir au prothésiste des différents formulaires pour faire le plan de traitement.
– En complétant les formulaire le prothésiste peut distribue ces formulaires chez autre dentiste.
Use Case 2. Consulter les patients et distribue les patients chez le dentiste spécialisé
CONSTRAINTS
Pre-condition. Le patient doit exister dans le système.
Post-condition. Le prothésiste a effectué la consultation.
SCENARIOS
Basic Path . La consultation
1. Le prothésiste demande les symptômes.
2. Le patient explique ses symp tômes.
3. Le prothésiste fait des conclusions sur les symptômes et propose des investigations.
4. Le prothésiste introduit les symptômes et les investigations duquel le patient a besoin dans
le système.
5. Le système enregistre les données.
6. Le prothésiste explique en détails les investigations au patient.
7. Le prothésiste distribue l’information du patient chez un dentiste spécialisé.
31
Use Case 3. Faire le traitement
– Le système va contenir des formulaires spéciaux pour chaque type de dentiste (le thérapeute, le
chiru rgien, le parodontiste ou l’orthodontiste).
– Chaque type de dentiste et notifié quand le prothésiste distribue chez lui quelqu’un patient.
– Voire les informations qui le prothésiste a introduit.
Use Case 3. Faire le traitement
CONSTRAINTS
Pre-condition Il doit exister l’enregistrement du patient.
Post-condition Le traitement a été effectué
SCENARIOS
Basic Path . Scenario de base
1. Le patient dit les données personnelles.
2. Le dentiste fait les investigations nécessaires.
3. Le dentiste introduit l es données dans le système.
4. Le système modifie et ajoute d’information du patient.
5. Le système enregistre les résultats d’investigations.
6. Le patient reçoit les résultats d’investigations.
7. Le dentiste informe le patient du traitement,
8. Le patient selecte les détails du traitement.
9. Le dentiste effectué le traitement.
Alternate . Scenario alternatif a
7. Le traitement n'est pas convenable pour le patient et il refuse le traitement.
Use Case 4. Enregistrer les patients
– Tous les utilisateurs qui ont accès au système peuvent faire l’enregistrement de nouveau patient. Par
default une fois que l’utilisateur fait l’enregistrement il devient patient.
Use Case 4. Enregistrer les patients
CONSTRAINTS
Pre-condition. Dentiste ou heure et dates disponibles
Pre-cond ition. Dentiste ou heure et dates convenables pour le patient.
Post-condition. L’enregistrement a été aider dans le système.
SCENARIOS
Basic Path . Scenario de base
1. Le patient s'adresse chez le réceptionniste.
2. Le réceptionniste cherche un denti ste avec la spécialisation voulu par le patient dans la liste
afficher par le système.
3. Le réceptionniste trouve et propose un dentiste pour le patient.
4. Le réceptionniste informe le patient dès l'heures et des dates disponibles.
5. Le patient trouve l'heure et la date convenable.
6. Le réceptionniste demande les données personnelles du patient.
7. Le patient dit les données personnelles.
8. Le réceptionniste effectue l’enregistrement et ajoute l’enregistrement dans l’horaire du
dentiste.
32
Use Case 4. Enregistrer les patients
CONSTRAINTS
Alternate . Scenario alterna tif b
5. Le patient n'a pas trouvé une heure et date convenable pour faire l’enregistrement.
Alternate . Scenario alternatif a
3. Il n'y a pas des dentistes libres.
Use Case 5. Annuler les enregistrements des patients
– Le système va offrir d’annuler les enregistrements s’il y a la nécessité.
Use Case 5. Annuler les enregistrements des patients
CONSTRAINTS
Pre-condition. Il existe l’enregistrement du patient.
Post-condition. L’enregistrement a été annuler et supprimer dans le système.
SCE NARIOS
Basic Path . Annuler la programmation
1. Le patient s'adresse chez le réceptionniste.
2. Le réceptionniste demande les données personnelles du patient.
3. Le patient dit ses données personnelles.
4. Le réceptionniste introduit les données dans le système.
5. Le système affiche la programmation du patient.
6. Le réceptionniste donne la commande de supprimer l’enregistrement.
7. Le système demande la confirmation de supprimer l’enregistrement.
8. Le réceptionniste confirme la co mmande de supprimer l’enregistrement.
9. Le système supprime l’enregistrement du patient.
Use Case 6. Authentification
– Le système va exiger aux utilisateurs de s'authentifier en ordre de commencer le travail.
– Chaque utilisateur aura accès au système et sera capable d'effectuer des opérations selon leur rôle et
les permissions associées à ce rôle.
Use Case 6. Authentification
CONSTRAINTS
Post-condition. L’authentification a été réalisé avec succès.
SCENARIOS
Basic Path . Basic Path
1. Quelqu’un entre sur la page d’authentification.
2. Le système donne la page d’authentification.
3. L’utilisateur enregistre ses données pour l’authentification.
4. Le système authentifie l’utilisateur.
Alternate . Scenario alternatif a
4. Les données d’utilisateur ne sont pas valide.
5 Le système montre quel champs ne sont pas valide.
33
Use Case 7. Visualiser et ajouter de l’information aux patients
– Chaque utilisateur aura accès au ajout et visualisation de l’information du patient selon leur rôle et
les permissions associée s à ce rôle.
Use Case 7. Visualiser et ajouter de l’information aux patients
CONSTRAINTS
Post-condition. L'information du patient a été vue ou modifie.
Post-condition. La carte médicale a été complété.
SCENARIOS
Basic Path . Basic Path
1. Le patient s'adresse chez le réceptionniste.
2. Le réceptionniste demande les donnes personnelles du patient.
3. Le patient dit ses données personnelles.
4. Le réceptionniste introduit les données dans le système.
5. Le système crée une nouvelle carte médicale.
6. Le dentist e voit les données personnelles du client.
7. Après les investigations nécessaires le dentiste introduit les résultats dans le système.
8. Le système aide d'information dans la carte médicale du patient.
Alternate . Scenario alternatif a
5. Le système affic he et aide d'information dans la carte médicale du patient.
6. Le dentiste voit les données personnelles du client.
7. Apres les investigations nécessaires le dentiste introduit les résultats dans le système.
8. Le système aide d'information dans la car te médicale du patient.
2.4 Modèle du Domaine
Le modèle du domaine est une représentation visuelle d’une classe ou des objets dans situations
réelles d’un certain domaine. Un système conceptuel se réalise sans des artéfacts du système, des
responsabilit és ou des méthodes.
Les classes conceptuelles des modèles du domaine contiennent :
– Des symboles (mots, images)
– Intension (la définition)
– Extension (un set des exemples)
Pour créer un modèle du domaine il faut utiliser des listes avec des catégories o u le scenario de
base. Il y a aussi la conception des classes descriptives qui contient une information générale qui ne se
réfère pas à l’exemple concret du l’issue. L’architecture logique du système est une organisation des
classes dans des paquets, sous -systèmes, couches (groupage des classes).
Le modèle du domaine pour mon système consiste des classes conceptuelles décrites en
dessous :
– Appointement contient les informations d’enregistrement. Un enregistrement peut être aider,
supprimer ou modifier. Les enregistrements sont distribués dans les horaires des différents dentistes.
34
La liste des enregistrements se trouve dans la classe Schedule qui représente l’horaire du dentiste.
MedicalHistory décrit l’état de santé et l’historique du patient.
– La classe Pe rson est la classe de base pour les classe Employée et Patient. De l’employé généralise
les classes Receptionist, Administrateur et Dentist. Ces classes contiennent l’information des tous
les employeurs et les patients.
– Le patient dispose de Consultation e t de Treatment. Ces classes contiennent la description du
traitement, les symptômes et les prix, les investigations proposer et leurs résultats.
Figure 2.2 Modèle du Domaine
2.5 Création des diagrammes de séquence système (SSD)
Un objet interagit pour implémenter un comportement. On peut décrire cette interaction de deux
manières complémentaires : l’une est centrée sur des objets individuels (diagramme d’états -transitions) et
l’autre sur une collection d’objets qui coopèrent (diagrammes d’interaction).
Les classes découvertes au moment de l’analyse ne sont parfois pas assez détaillées pour pouvoir
être implémentées par des développeurs. UML propose de partir des classeurs découverts au moment de
35
l’analyse et de les décomposer en éléments suffisamment fin s pour permettre leur implémentation. Les
classeurs ainsi décomposés s’appellent des classeurs structurés.
Un classeur structuré est donc la description de la structure d’implémentation interne d’une
classe. Graphiquement, un classeur structuré se représen te par un rectangle en trait plein comprenant deux
compartiments. Le compartiment supérieur contient le nom du classeur et le compartiment inférieur
montre les parties internes reliées par des connecteurs. Lorsque l’on crée l’instance d’un classeur
structu ré, on crée également une instance de ses ports, de ses parties et de ses connecteurs.
UML propose principalement deux diagrammes pour illustrer une interaction : le diagramme de
communication et celui de séquence. Une même interaction peut être présentée aussi bien par l’un que par
l’autre.
Un diagramme d’interaction se représente par un rectangle contenant, dans le coin supérieur
gauche, un pentagone accompagné du mot -clef sd lorsqu’il s’agit d’un diagramme de séquence et com
lorsqu’il s’agit d’un diagram me de communication. Le mot clé est suivi du nom de l’interaction. Dans le
pentagone, on peut aussi faire suivre le nom par la liste des lignes de vie impliquées, précédée par le mot
clé lifelines :. Enfin, des attributs peuvent être indiqués dans la parti e supérieure du rectangle contenant le
diagramme. La syntaxe de ces attributs est la même que celle des attributs d’une classe.
Une illustration de tels diagrammes est présentée en dessous. Ces sont les interactions
principales du système.
SSD pour le cas d’utilisation « Enregistrer les patients »
Figure 2.3 SSD pour le cas d’utilisation « Enregistrement »
36
Le patient accède à l’option pour s’enregistrai. Le système annonce de ça le réceptionniste. Le
réceptionniste accède à la page avec l’horaire des dent istes. Le système affiche l’horaire des dentistes et
réceptionniste annonce de ça le patient. Le patient trouve un temps convenable et fait la demande
d’enregistrement. Le système ajout un enregistrement dans la base de données.
SSD pour le cas d’utilis ation « Annuler l’enregistrement »
Figure 2.4 SSD pour le cas d’utilisation « Annuler l’enregistrement »
Le patient ou peut être le dentiste accède à l’option d’annuler l’enregistrement. Il selecte son
enregistrement. Le système fait un appel a la class e Appointement donne à l’utilisateur l’enregistrement
selecte. On confirme l’effacement de l’enregistrement est après ça le système supprime aussi
l’enregistrement aussi du l’horaire du dentiste.
SSD pour le cas d’utilisation « Consulter le patient »
Figure 2.5 SSD pour le cas d’utilisation « Consulter le patient »
37
Le patient fait une demande de consultation. Le dentiste demande les symptômes, d’après les
symptômes il propose des investigations. Si le patient accepte les investigations propose, alors le dentiste
fait la description des symptômes et les introduisent dans le système. Au final, le système imprime le
résultat et l’information devienne accessible pour le patient et aussi pour le dentiste.
SSD pour le cas d’utilisation « Faire le traitement »
Figure 2.6 SSD pour le cas d’utilisation « Faire le traitement »
Le patient s’adresse chez le dentiste. Le dentiste fait un appel au système pour donner lui la liste
des patients. Le système donne lui la liste. Le dentiste après les investigations eff ectuer aide la description
des investigations dans le système. Le système automatiquement modifie les données de l’instance
MedicalHistory. Medical History devient accessible pour tous. Le patient selecte une option de traitement
qui a été proposé par le m édecin. Le dentiste enregistre et ces données aussi dans le système. Le dentiste
exécute le traitement et les enregistre. Une fois qu’il son sauvez dans le système, les résultats sont aussi
accessibles pour le patient.
Dans la Figure 2.6 il est représenté le diagramme de séquence pour le cas d’utilisation “Ajouter
de l’information aux patients”. On peut voir comme le patient fait une demande pour lui donnai
accessibilité au système. Le réceptionniste demande les données personnelles en vérifiant le statut d u
patient dans le système. S’il n’existe pas le patient alors le réceptionniste fait une nouvelle carte médicale,
le système crée la carte en ouvrant le formulaire de la carte. En introduisant et en confirmant les données,
elles sont enregistrées dans le s ystème. Si non, le système affiche la liste des cartes médicales de toutes
les patients, le réceptionniste trouve la celle de patient.
38
SSD pour le cas d’utilisation « Ajouter de l’information aux patients »
Figure 2. 7 SSD pour le cas d’utilisation « Ajou ter de l’information aux patients »
Le système affiche la carte du patient et on peut ajouter des données en visualisant les précédant
procédure, résultats ou investigations déjà réalise et sauvez dans le système. En finale le patient peuvent
selecte là l es options de traitement, le dentiste en les voir peuvent faire le traitement et bien sûr après ça
ajoute de l’information dans le système.
2.6 Modélisation du comportement dans les diagrammes d’états -transitions et d’activités.
Le diagramme d'activité est un diagramme comportemental d' UML , permettant de représenter le
déclenchement d'é vénements en fonction des états du système et de modéliser des comportements
parallélisables ( multi -threads ou multi -processus).
Un diagramme d'activité permet de modéliser un processus interactif, global ou partiel pour un
système donné ( logiciel , système d'information ). Il est recommandable pour exprimer une dimension
temporelle sur une partie du modèle, à partir de diagrammes de classes ou de cas d'utilisation , par
exemple.
Le diagramme d'activités est une représentation proche de l'organigramme ; la description d'un
cas d'utilisation par u n diagramme d'activités correspond à sa traduction algorithmique. Une activité est
l'exécution d'une partie du cas d'utilisation, elle est représentée par un rectangle aux bords arrondis.
39
Le diagramme d'activité est sémantiquement proche des diagrammes de communication ou
d'état-transitions , ces derniers offrant une vision microscopique des objets du système. Le diagramme
d'activité présente une vision macroscopique et temporelle du système modélisé : action, action structure,
historique, fusion, décision, joint et fork.
Un diagramme états -transit ions est un schéma utilisé en génie logiciel pour représenter des
automates déterministes. Il fait partie du modèle UML et s'inspire principalement du formalisme des
statecharts et rappelle les grafcets des automates. S'ils ne permettent pa s de comprendre globalement le
fonctionnement du système, ils sont directement transposables en algorithme . Tous les automates d'un
système s'exécutent parallèlement et peuvent donc ch anger d'état de façon indépendante.
En plus des états de départ (au moins un) et d'arrivée (nombre quelconque), une transition peut
comporter les éléments facultatifs suivants : un évènement , une condition de garde , une liste des actions .
En dessous, on a représenté une suite des diagrammes d’activité et d’états – transitions pour le
système.
Le diagramme d`activité pour l`enregistrement des patients
Figure 2. 8 Le diagramme d`activité pour l`enregistrement des patients
Le patient fait une demande pou r lui le programmer, en s’adressant chez le réceptionniste. Le
réceptionniste cherche dans le système un dentiste avec spécialisation nécessaires. Si on ne trouve pas un
même dentiste l’activité se termine si on trouve, le réceptionniste selecte le dentist e. Le système affiche
l’horaire du dentiste et après ça le réceptionniste informe le patient de l’horaire. S’il y a une heure
convenable pour lui, il accepte il fait l’enregistrement en introduisant les données personnelles dans le
40
système et en sélectant l’heure et jour convenable pour le patient, sinon on peut voir l’horaire d‘un autre
dentiste.
Le diagramme d`activité pour « Ajouter de l’information aux patients »
Figure 2.9 Le diagramme d`activité pour « Ajouter de l’information aux patients »
Le patient s’adresse chez le réceptionniste. Celui -ci demande les données personnelles et les
introduise dans le système. On vérifie le statut, si c’est un patient qui déjà existe dans le système, on n’a
pas besoin de faire une nouvelle carte médicale et on fait seulement les modifications nécessaires en
sauvegardant les donnes, sinon on crée une nouvelle carte médicale et le dentiste fait les investigations
nécessaires en introduisant tous les dans le système.
Le diagramme d`activité pour la consultation des patients
Figure 2.8 Le diagramme d`activité pour la consultation des patients
41
Le patient s’adresse au dentiste. Le dentiste en commencent l’investigation demande les
symptômes. Les symptômes sont enregistrés dans le système, le dentiste fait des co nclusions en posant le
diagnostic du patient et aussi l’introduise dans le système. Le système sauvegarde les données introduites
et toutes les investigations et les résultats deviennent accessible pour tous.
Le diagramme d`activité pour l’annulation de l ’enregistrement
Figure 2.8 Le diagramme d`activité pour l’annulation de l’enregistrement
Le patient fait une demande pour annuler l’enregistrement. Le réceptionniste demande et
introduit les données personnelles de patient. S’il existe l’enregistrement du patient le système va afficher
l’enregistrement de ce patient, sinon on demande de nouveau les données de patient pour ne faire pas
quelqu’un erreur mécanique. Le réceptionniste fait la demande de supprimer l’enregistrement. Le système
bien sûr demande la confirmation pour n’efface pas des données par l’erreur. En confirmant l’option de
supprimer l’enregistrement, le système efface l’enregistrement et aussi l’horaire de dentiste devient libre
en heure d’où a été supprimé l’enregistrement.
42
Le diagramme d`activité pour l`effectuation de traitement
Figure 2.9 Le diagramme d`activité l`effectuation de traitement
Le processus du traitement commence avec les investigations faites par le dentiste, en demandant
le patient les symptômes et d’autres informatio ns. Toutes les réponses sont introduites dans le système et
ils deviennent accessibles pour tous. Le médicine informe d’après le traitement, si le patient refuse de
faire un même traitement l’activité se termine ici, sinon le dentiste fait le traitement en enregistre toutes
les données.
Les diagrammes d’état
Les diagrammes d’états -transitions d’UML décrivent le comportement interne d’un objet à l’aide
d’un automate à états finis. Ils présentent les séquences possibles d’états et d’actions qu’une instanc e de
classe peut traiter au cours de son cycle de vie en réaction à des événements discrets (de type signaux,
invocations de méthode) en temps que les diagrammes d’activités permettent de mettre l’accent sur les
traitements. Ils sont donc particulièrement adaptés à la modélisation du cheminement de flots de contrôle
et de flots de données. Ils permettent ainsi de représenter graphiquement le comportement d’une méthode
ou le déroulement d’un cas d’utilisation. Le diagramme d'états -transitions est le seul dia gramme, de la
norme UML, à offrir une vision complète et non ambiguë de l'ensemble des comportements de l'élément
auquel il est attaché. En effet, un diagramme d'interaction n'offre qu'une vue partielle correspondant à un
scénario sans spécifier comment le s différents scénarii interagissent entre eux. La vision globale du
43
système n'apparaît pas sur ce type de diagrammes puisqu'ils ne s'intéressent qu'à un seul élément du
système indépendamment de son environnement.
Le d iagramme d’état pour l’objet de la cla sse Appointement (Registration)
Figure 2.10 Le diagramme d’état pour l’objet de la classe Appointement (Registration)
Dans ce diagramme est représenté les états possibles pour l’instance enregistrement d’un patient.
Les états possibles sont : réalisé, annulé, n’est pas réalisé et disponible. L’état initiale est bien sur
disponible de faire l’enregistrement pour le patient. S’il y a de dentiste disponible avec un horaire
convenable pour le patient alors l’état devienne réalisé , si non alors l’état est n ’est pas réalisé. Si elle est
réalisée alors après un temps le patient peut décider qu’il n’a pas besoin de ça et on annule
l’enregistrement qui a été fait, alors on passe à l’état annulé.
Diagramme d’état pour l’objet de la classe Patient
Figure 2.11 Le diagramme d’état pour l’objet de la classe Patient
44
Dans la precedente diagramme est représenté les états possibles pour l’objet de la classe Patient.
Les états possibles sont : consulté, investigué et traité. Les états initiaux sont : consulté et investig ué.
Consulté s’est en cas quand le patient est venu pour la première fois, et respectivement investigué s’il déjà
a été minimum une fois et il existe déjà quelques données sur lui. De l’état consulté on passe à l’état
investigué. Le dentiste fait les inves tigations nécessaires et traite le patient, alors l’état investigue se
transforme en état traité.
2.7 Diagrammes des composants et de déploiement
Les diagrammes de composants et les diagrammes de déploiement sont les deux derniers types
de vues statiqu es en UML. Les premiers décrivent le système modélisé sous forme de composants
réutilisables et mettent en évidence leurs relations de dépendance. Les seconds se rapprochent encore plus
de la réalité physique, puisqu’ils identifient les éléments matériels (PC, Modem, Station de travail,
Serveur, etc.), leur disposition physique (connexions) et la disposition des exécutables (représentés par
des composants) sur ces éléments matériels.
Un composant doit fournir un service bien précis. Les fonctionnalités qu’i l encapsule doivent
être cohérentes entre elles et génériques (par opposition à spécialisées) puisque sa vocation est d’être
réutilisable.
Un composant est une unité autonome représentée par un classeur structuré, stéréotypé
« component » , comportant une ou plusieurs interfaces requises ou offertes. Son comportement interne,
généralement réalisé par un ensemble de classes, est totalement masqué : seules ses interfaces sont
visibles. La seule contrainte pour pouvoir substituer un composant par un autre est de respecter les
interfaces requises et offertes.
Figure 2.12 Le diagramme des composants
45
Le diagramme des composants on peut voir les composants principaux du système et leur liaison
entre eux. Pour mon système le s principaux composants sont : la gest ion de patients, de consultation, de
traitement, d’enregistrement, d’horaire et de personnel de la clinique.
Figure 2.13 Le diagramme de déploiement
Le diagramme de déploiement inclue les appareils avec lesquelles nous pouvons accéder à notre
système : PC, les appareils de liaison : Router, Firewall et les components software avec lesquels le
system fonction : Server Application et Server pour le Base des Données.
46
3 DESCRIPTION DES FONC TIONNALITÉS DE L’APP LICATION
Le système d éveloppé a une interface graphique très simple à utiliser et avec un noyau
fonctionnel complexe qui est présent sur les browsers suivants : Chrome, Mozilla Firefox, Internet
Explorer et Safari. Un client fait une requête, et le serveur renvoie une réponse. Ce dernier doit avoir le
plus possible d’informations sur le client, car il est important qu’ils soient capables de travailler
indépendamment l’un de l’autre.
J’ai crée une interfac e graphique simple et utile qui permet de gér er les données dans une
mani ère efficace.
3.1 La page d’accueil
La page d’accueil représente le premier point d’accès dans l’application. Elle est composée du
menu principal.
Figure 3.1 La page d’accueil
Le menu est composé de plusieurs buttons qui redirecte au -dessous a l’informat ion. Ici on peut
voir les services et les descriptions des services principaux qui offre la dentisterie, l’horaire de la
dentisterie et quelque informations additionnelles. Plus en dessous il y a les photos des médecins de cette
dentisterie et leurs noms, encore il y a les rubriques avec les opinions et critiques des patients. Et au –
dessous de la page il y a aussi les données des contacts et la création d’un simple enregistrement au
dentiste. Alors, on peut faire l’enregistrement en étant comme un simple c lient non -autorise. Après qu’on
fait l’enregistrement les données sont analysées par le réceptionniste, en complétant plus en détails
47
l’enregistrement. Après le menu il y a le slogan de la dentisterie. En menu on voir encore de buttons :
Login et Registrat ion. Ce deux buttons fasse le directement chez les autres pages : la page
d’authentification et respectivement la page d’enregistrement d’utilisateur dans le système. Une fois que
l’utilisateur est authentifié le bouton de Login devient Logout.
3.2 Interface d ’authentication
Figure 3. 2 L’interface de Login dans le système
L’application propose une possibilité simple, traditionnelle de s’autorise. Sur cette page il y a
seulement la forme pour l’authentification avec deux imputes. On fait l’enregistrement d’a près l’email et
le mot de passe. L’authentification représente une des parties plus importantes du système car elle fait la
différence entre les utilisateurs. On fait l’authentification respectivement d’après le rôle de chaque
utilisateur. Apres l’ autorisa tion l’utilisateur sera capable d'effectuer des opérations selon leur rôle et les
permissions associées à ce rôle.
Du point de vue de développement j’ai utilisé le login avec la sécurité qui propose la page
officielle de Symfony. Si vous avez besoin d'un formulaire de connexion et que vous stockez des
utilisateurs dans une base de données alors FOSUserBundle c’est la meilleure méthode, qui vous aide à
créer votre objet utilisateur et vous donne de nombreuses routes et contrôleurs pour les tâches courantes
comme login, registration et mot de passe oublié.
Premièrement j’ai crée l’entité User qui implémente UserInterface avec les propriétés qui
possède un simple utilisateur de système. Apres ca il vous suffit d’informer le système de sécurité de
Symfony dans security.yaml.
providers:
user_provider:
entity:
48
class: App \Entity\User
property: email
firewalls:
main:
anonymous: ~
form_login:
login_path: login
check_path: login
username_parameter: authentication[email]
password_parameter: authentication[password]
Dans cet exemple, l'utilisateur saisira son email et son mot de passe via l'authentification de base
HTTP. Symfony recherchera une entité utilisateur correspondant au email d'utilisateur, puis vérifiera le
mot de passe.
Maintenant, lorsque le système de sécurité initie le processus d'authentification, il redirigera
l'utilisateur vers le formulaire de connexion . L'implémentation de ce formulaire de connexion est votre
travail. T out d'abord, j’ai cree un nouveau Authentication Controller.
/**
* Function which make authetication
*
* @Route(methods={"GET", "POST"},
* name="login",
* path="/login"
* )
*
* @param Request $request
* @param AuthenticationUtils $utils
*
* @return Response
*/
public function loginAction(
Request $request,
AuthenticationUtils $utils
): Response
{
$errors = $utils ->getLastAuthenticationError();
$user = $utils ->getLastUsername();
$form = $this ->handler ->post($request);
return $this->render('pages/authentication.html.twig', [
'form' => $form->createView(),
'errors' => $errors,
'user' => $user,
]);
}
Si vous obtenez une erreur indiquant que l'argument $authenticationUtils est manquant, c'est
probablement parce que les contrôleurs de l’application n e sont pas définis en tant que ser vices et
49
étiquetés avec la balise controller.service_arguments, comme dans la configurat ion par défaut de
services.yaml.
On a effectué la procédure similaire et pour logout :
logout:
path: /logout
target: /
En envoyant un utilisateur à /logout , Symfony désauthentifiera l'utilisateur actuel. Une fois que
l'utilisateur a été déconnecté, il sera redirigé vers n'importe quel chemin défini par le paramètre cible ci –
dessus ( dans mon exemple la page d'accueil).
Figure 3. 3 La validation du forme login
La validation de forme est l'une des thopiques les plus importantes. Toutes les formes du système
ont des validations. Les validations ont été effectué en deux façon : validation sur la forme entier et
validation sur chaque propriété s’il y a eu besoin. Dans l’image on peut voir une validation sur la forme
entière. On a introduit des données fausse pour l’authentification et la sécurité de Symfony a donné une
réponse que les l’utilisateur a introduit des données erroné et l’authentification n’est pas poss ible. On peut
répéter le processus en donnant des vraies données pour l’authentification. Ce type de validation est
effectué par Symfony.
Pour le deuxième type de validation par la propriété j’ai utilisé le plugin vee -validate. Vee –
validate est un plugin pour Vue.js qui vous permet de valider les champs de saisie et d'afficher les erreurs.
J’ai cherché cette solution car il est trop facile a utilisé. Ce mécanisme est facile à implémente r et
incorpore dans Symfony. On ne doit faire quelque chose de fantaisi e dans l’application – la plupart du
travail va dans le code HTML. Il est nécessaire seulement de spécifier pour chaque entrée quel genre de
validateurs doit être utilisé lorsque la valeur change. Les erreurs seront générées automatiquement. Le
plugin offr e de nombreuses validations hors de la boîte.
50
3.3 Interface d’enregistrement de l’utilisateur
Figure 3. 4 L’interface de Login dans le système
Une autre partie trop importante pour le système est l’enregistrement des utilisateurs dans le
système. Ici l’uti lisateur doit compléter plusieurs inputs : le nom, le prénom, le courriel électronique, le
mot de passe et confirmation du mot de passe et le nombre de téléphone. En complétant tous les inputs,
l’utilisateur doit appuyer sur le bouton Save. Si les donnes s ont validées par exemple si le courriel
électronique est unique, ça veut dire s’il n’existe pas déjà un autre utilisateur avec le même courriel
indique ou si le courriel ne contient pas les signes ‘@’ ou ‘.’ qui sont les signes sans lesquelles aucun
courri el électronique existe. Une fois que les données sont validé on passe au processus de sauvegarder
les données dans la base de données. Pour ça j’ai créé un service qui remplit l’instance User avec les
données introduites.
/**
* Creation de l’enre gistration pour l’utilisateur
*
* @param array $data
*
* @return void
*/
public function createRegistration( array $data): void
{
$user = new User();
$user->setFirstName($data['firstName']);
$user->setLastName($data['lastName']);
$user->setEmail($data['email']);
$user->setPhoneNumber($data['cellphoneNumber']);
$user->setPassword(
$this->encoder ->encodePassword($user, $data['password'])
);
51
$user->setRole(EnumRoles::ROLE_PATIENT);
$this->em->persist($user);
$this->em->flush();
}
Par défaut a tous les nouveaux utilisateurs est attribué le rôle de Patient. Seulement,
l’administrateur possède le fonctionnement d’attribution des rôles pour l’utilisateur. Alors pour devenir
avec le rôle de dentiste on doit appeler l’administrateur car seulement il peut faire ça.
Une autre chose interessante ici comment on sauvegarde les donnees dans la base de donnees. Ici
en aide vient la doctrine avec ORM avec les methodes persist() et flush(). Une entité peut être rendue
persistante en la transmettant à la méthode EntityManager persist (). En appliquant l'opération persist sur
une entité, cette entité devient MANAGED, ce qui signifie que sa persis tance est maintenant gérée par un
EntityManager. Par conséquent, l'état persistant de cette entité sera correctement synchronisé avec la base
de données lorsque EntityManager flush () est appelé.
3.4 Gestion d es utilisateur s
L'interface d'administration est u n élément capital. Cette partie permet en effet de gérer les
diverses informations disponibles : les utilisateurs du système, les employées et les patients, mais aussi et
la messagerie, l’horaire personnel etc.
Figure 3.5 L’interface de Login dans le sys tème
Si l’utilisateur fait une authentification est -il a le rôle “ROLE_ADMIN” attribué, alors on peut
voir la page de la figure 3.5. Dans la partie gauche de la page on peut voir l’avatar de l’utilisateur et le
nom et prénom et aussi le menu principal de l’application. Dans le menu on a les suivants boutons :
52
Dashboard, User, Staff, Patient, Schedule, Appointment et Mail. Sur la page de Dashboard on peut voir
d’information générale de l’application comme : le nombre total de l’utilisateurs, les nombres des
utilisateurs pour chaque rôle, le nombre d’utilisateur active ou inactive, etc.
En appuyant sur le bouton User le système affiche la liste des utilisateurs. Dans le tableau on
peut voir les suivantes informations : la photo de profil, le nom, le prénom, l e courriel électronique, le
numéro de téléphone, le rôle et le statut d’utilisateur. Il y a encore une colonne avec trois boutons qui
permet de voir information additionnelle, de modification et respectivement d’effacer l’utilisateur. Avant
de tableau il y a encore un bouton qui permet de crée des nouveaux utilisateurs par l’administrateur. Plus
loin on va parler en détail de toutes ses opérations.
Figure 3.6 L’interface de Login dans le système
– Editer un utilisateur
Au-dessus dans l’image on peut vo ir se fonctionnement. Il est généré une forme avec les
propriétés qui l’utilisateur les possèdes. Dans chaque input il est inscrit la valeur pour l’utilisateur de la
base de données. S’il n’a pas des données insère dans la base de données, alors input est vide. Les
informations qui peuvent être éditer sont catégorisé dans information générale ou personnel : le nom, le
prénom, le courriel électronique, date de naissance, IDNP, le numéro de téléphone, le pays, le ville,
l’adresse, la photo de profil et le lan gue native de l’utilisateur et informations qui tienne seulement du
système comme statut et rôle.
Le statut peut être active ou inactive, c’est en cas qu’on doit bloque quelqu’un utilisateur. En
cliquant sur le bouton Save, le système, premièrement passe au validation des données. Si les champs
introduits sont valides, alors on fait les modifications.
53
– Ajouter un utilisateur
Pour ajouter un utilisateur dans le système de partie adminstrateur on doit complete un
formulaire simetrique a ce de “Editer un ut ilisateur”. L’unique difference est qu’ici on cree un nouveau
utlisateur.
– Effacer un utilisateur
Pour supprimer un utilisateur de système on doit appuyer sur le bouton d’effacer de la colonne
Update du tableau avec les utilisateurs. Dans mon application je fais un “soft delete”. Ça veut dire que les
utilisateurs restent dans l’historique.
– Visualisation d’information additionelles de l’utilisateur
Plus loin on va parler de ça car la visualisation d’information additionnelles de l’utilisateur
représente un e page similaire au page de profil d’utilisateur.
3.5 Le profil d’utilisateur
Figure 3.7 L’interface de Login dans le système
Le profil d’utilisateur c’est la page ou l’utilisateur peut voir ses données : information générale,
données de système et donné es personnalisé en cas que c’est l’utilisateur est un patient alors on peut voir
le plan de traitement, les résultats d‘analyses, la description d’investigations, en cas que s’est une
employée on peut voir des données comme : salaire ou années d’expérience . Le profil d’utilisateur peut
être voir non seulement par l’utilisateur authentifie, mais aussi par l’administrateur et aussi par les
dentistes s’ils ont fait quelques investigations ou traitement sur se patient.
54
3.6 Creation des enregistrements pour les p atients
Figure 3.8 L’interface de Login dans le système
Une autre page importante de mon application c’est la création d’un nouvel enregistrement pour le
patient. Tous les types d’utilisateurs peuvent créer des enregistrements. Pour créer un enregistrem ent on
doit compléter le formulaire de l’image. Le formulaire contient les suivant champs : le nom du patient, le
nom du dentiste, le types de service, la date d’enregistrement, le début et la finalisation d’enregistrement
et un champs optionnelle descript ion. Si l’utilisateur a attache le rôle de patient, alors le champ avec le
nom de patient n’ai pas affiche car le système déjà connait ça. Si on a complété tous les champs, on doit
appuyer sur le bouton Save. Si les données introduites sont validées, alors le système insère dans la base
de données un nouvel enregistrement. La validation pour cette forme est plus complexe car on doit
chercher un temps libre disponible pour l’horaire de dentiste. Une autre chose intéressante ici c’est
comment on fait la sélec tion du patient nom et dentiste nom. Pour ça Symfony propose d’utilise
EntityType. [10]
$builder ->add('patientName', EntityType:: class, [
'required' => true,
'class' => Patient:: class,
'choice_label' => 'user.ful lName',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('p')
->join(User:: class, 'u')
->where('p.user = u')
->orderBy('u.fullName', 'ASC');
},
]);
$builder ->add('dentistName', EntityType:: class, [
'class' => Dentist:: class,
'choice_label' => 'employee.user.fullName',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('d')
->join(Employee:: class, 'e')
->join(User:: class, 'u')
->where('e.user = u')
55
->andWhere('u.role != :role_receptionist')
->orderBy('u.fullName', 'ASC')
->setParameter('role_receptionist',
EnumRoles::ROLE_RECEPTIONIST);
},
]);
EntityType c’est un champ ChoiceType spécial conçu pour charger des options à partir d'une
entité Doctrine. Dans mon exemple, j’ai les entités Dentist et Patient, j’ai utilisé ce champ pour remplir
les champs de sélection avec le nom des objets Dentist et Patient de la base de données. Encore on peut
voir qu’à l’aide de QueryBuilder les données vient d irectement trie d’ après le nom dans ordre croissante.
3.7 Voir les enregistrements
Figure 3.9 L’interface de Login dans le système
Chaque utilisateur peut voir son liste avec ses enregistrements, plus le réceptionniste et
l’administrateur peuvent voir le s enregistrements des autres utilisateurs. Dans la liste de la Figure 3.9 on
peut voir les suivantes informations : le nom du patient, le nom du dentiste, la spécialité du dentiste, la
date d’enregistrement avec le temps de débuts et le temps de la finalis ation. Encore il y a une colonne
avec deux boutons qui permet de modifie les données d’enregistrement et respectivement supprimer
l’enregistrement.
56
4 ARGUMENTATION ÉCONOMIQUE DU PROJE T
L’aspect économique est un autre aspect du projet qu’il faut ana lyser. Cela permette de déduire
l’actualité du produit ou service, la rentabilité, les point fortes et faibles de l’idée appliquée.
4.1 Généralités
Une étape très importante dans le processus de développement d’un projet informatique est
l’analyse économi que d’un projet. Ce type d’analyse s’intéresse à la capacité d’une entreprise, d’une
technique, d’un capital ou d’une stratégie à produire une valeur supérieure à l’investissement en
ressources financières, en temps et en travail. L’analyse d’un projet inf ormatique représente un point de
départ pour d’identifier la voie la plus efficace et d’atteindre un objectif.
L’idée forte de cette application est d’organiser et de gérer les actions des employées d’une
dentisterie et de créé une plateforme sécurisé et p ersonnalisé pour chaque type d’utilisateur. L’application
permet d’avoir un contrôle sur tous les employeur ou patients, d’optimiser le travail du dentiste en avoir
un grande nombre d’opérations comme : voir, créer, supprimer, éditer les patients, leurs i nformations,
leurs traitements, l’horaire avec les enregistrements, de voir tout ce qui est nouveau dans la dentisterie. Ce
système va vraiment aider beaucoup les administrateurs.
Pour le développement de l’application on a choisi le Framework Symfony qui aujourd’hui est
bien utilisé dans le développement des logiciels web. Mon application est un projet commercial qui a été
développé à l’aide de langages de programmation comme PHP et JavaScript (le framework VueJS),
langage de marquage comme HTML5, langage de style comme CSS3.
4.2 L’analyse SWOT
L’analyse ou la matrice SWOT est définie comme un outil d’audit marketing de l’entreprise et de
son environnement concurrentiel. C’est la première étape de la démarche d’analyse marketing. Elle aide
l’entrepris e à se concentrer sur les questions clés. [8]
Figure 4.1 La matrice SWOT avec les mots anglais en traduction
57
Le point fort de la matrice SWOT est qu’il permet de rassembler et de croiser les analyses
interne et externe avec les environnements micro et m acro de l’entreprise.
– Les forces – des points positifs internes à l’entreprise qui lui procurent un avantage durable.
– Les faiblesses – des points négatifs internes à l’entreprise avec une marge d’amélioration
substantielle.
– Les opportunités – des facteur s extérieurs ou les situations dont l’entreprise peut tirer parti.
Comme exemple : ouverture d’un nouveau marché à l’étranger.
– Les menaces – les problèmes, obstacles ou freins extérieurs qui peuvent nuire au développement du
projet.
Tableau 4.1. L’analys e SWOT
Les forces Les faiblesses
1. Simple d’utiliser
2. Simple d’administrer
3. Accès rapide
4. Sécurité et performance
5. Adaptés pour tous les browsers
6. En comparaison avec autre système ce
projet est plus user friendly.
7. Pour la maintenance ne nécessite pas de
resso urces financières ; 1. Cout élevé du développement
2. Le système ne travaille pas sans Internet.
Les opportunités Les menaces
1. Utilisation comme un plate -forme
universelle pour autres dentisteries
2. Il comprend un thème qui intéresse toutes
les dentisteries
3. Utilisation commerciale 1. Concurrence avec d’autres applications du
domaine de la médecine.
2. On n’a pas d’ expérience dans cette domaine
et on peut faire des fautes.
3. Manque de réputation sur le marché .
Pour diminuer les risques on fait les actions suivantes :
– On doit utiliser des personnes expérimentées dans le domaine de médecine ;
– On doit consulter des personnes expérimentées en anglais
– Application des plusieurs programmeurs
– Faire des code review pour diminuer les erreurs de code, performance.
58
4.3 Pla nification calendrier du projet
La planification c’est t’une étape très importante dans le développement d’un projet
informatique. Premièrement, on doit diviser l’application en beaucoup de tâches pour que cela devient
plus compréhensible et simple au dév eloppement. On doit ordonnancer les tâches du projet, faire une
estimation globale de chacune. Pour réussir la planification initiale et prévisionnelle du projet, il faut bien
comprendre les objectifs du projet, bien cerner le périmètre du projet et bien d éfinir les tâches. La
première étape dans la planification c’est l’organisation du calendrier qui permet de simplifier les calculs
des couts. Dans le tableau suivant est représenté le calendrier d’exécution des activités à faire pendant le
développement du ce projet.
Pour pouvoir réaliser les objectifs il faut voir tous les taches et les soutaches pour chaque partie du
projet qui vont nous conduire à l’obtention des résultats remarquables. Le travail sera divisé dans 4 étapes
traditionnelles de développemen t :
– Inception – on voit les besoins et on initie le processus ;
– Elaboration – on fait la projection du système ;
– Construction – on construit le logiciel en suivant les objectifs mentionnés ;
– Transition – on mit le produit en production et on le donne au client ;
Tableau 4.2 Calendrier de l’exécution des activités
Nr.
d’activité Étape Le nom d’activité Nombre
des jours Personne
responsable
1
Inception Etude des spécifications des besoins 5 Développeur
Web
2 Décomposé les spécifications dans
des taches 4 Développeur
Web
3 Etude du Framework Symfony,
VueJS et Bootstrap 5 Développeur
Web
4
Elaboration Elaboration des diagrammes UML
pour l’application 15 Développeur
Web
5 Installations et la configuration des
logiciels pour le projet web 3 Développeur
Web
6
Construction Création base de données 4 Développeur
Web
7 Développement et l’implémentation
du Back -end 30 Développeur
Web
8 Développement et l’implémentation 17 Développeur
59
du Front -end Web
9
Transition Deployment 2 Développeur
Web
10 La correction des bugs
5 Développeur
Web
Développeur Web 90
Total 90
Dans le tableau 4.3 est représenté environ toutes les actives et pour chaque le temps utilisé
(chaque jour on travaille environ 8 heures et ont exclue les samedis et les dimanches). Après cette table
on peut remarquer que le projet se déroulera 90 jours.
4.4 Calcul économique du projet
Dans cette partie on va présenter les calculs économiques du projet. La phase de détermination
des dépenses est très importante parce qu’elle imp lique des calculs de l’argument qui sous -tendent la
rentabilité du projet. Alors quand on a une bonne vision sur le projet, sur son cout, quand on sait le
budget du projet, on peut commencer d’impliquer les développeurs dans le travail.
Le tableau suivant contient les immobilisations corporelles à longue temps, la quantité utilise et
les prix pour chaque appart.
Tableau 4.3 Les immobilisations corporelles à longue temps
Nr. L’objet Unité de
mesure Le prix, lei Quantité La valeur
totale, lei
1 Ordinateur pièce 23000 1 23000
Total 23000
Pour la réalisation du projet on a besoin des objets matériels en valeur de 23000 lei. Le tableau
suivant représente les programmes utilisés au développement et pour chaque objet le coût.
Tableau 4.4 Les immobilisations i ncorporelles à longue temps
Nr Nom Unité de mesure Le prix, lei Quantité Le prix, lei
1 Linux pièce gratuite 1 0
2 PHP Storm pièce gratuite 1 0
3 Symfony pièce gratuite 1 0
4 VueJS pièce gratuite 1 0
60
5 Private Bitbucket
Repository pièce gratuite 1 0
6 Enterprise
Architect.
Desktop Edition pièce 13500 1 13500
7 Docker pièce gratuite 1 0
8 MySQL pièce gratuite 1 0
9 Workbench pièce gratuite 1 0
10 Data Grip pièce gratuite 1 0
Total 13500
Les produits software utilisées pour la programmation coût 13500 lei. La plupart des produits
programme utilisées sont open -source.
L’étape suivante c’est le calcul des provisions duquel on a eu besoin au bureau pendant le
développement du projet.
Tableau 4.5 Consommation matériels directes
Nr. Nom Unité de mesu re Prix à
l’unité, lei Quantité Somme, lei
1 Cahier pièce 10 1 10
2 Stylo pièce 5 2 10
3 Café boîte 70 1 70
4 Thé boîte 40 2 80
5 Papier A4 pièce 30 1 30
6 Docker Cloud pièce 1000 1 1000
Total 1200
Le prix total pour les matériaux directs qui o nt été consommés lors de l'élaboration du projet
coûtent 1200 lei. Les actifs matériels à long terme et aussi de consommation directe sont indispensable
pour n’importe quel projet, c’est -à-dire nous ont d’assure ils pour les personnelle engagé.
4.5 Cal cul des salaires
Dans ce sous -chapitre on va calculer pour les salaires en fonction de son volume de travail.
Le table suivant contient donc le nombre des heures travailles et les salaires. Cela permettre de voir un
chiffre exact sur les dépense.
61
Développeur WEB – doit avoir des connaissances en PHP 7 dans Symfony 4, une expérience
dans le travail avec des bases de données – Oracle, MySQL, la connaissance de HTML, CSS, Vue.js,
configuration et utilisation du Docker. Période d'engagement du projet – 2 mois, temps de travail – temps
plein.
Tableau 4.6 L’équipe de travail
Nr. Fonction Volume de
travail, jours Salaire par
jour, lei Salaire totale,
lei
1 Développeur Web 90 500 45000
Total 45000
Pour l’année 2018 la valeur du fonds d’assurance sociale constituent 23% et la valeur
d’assurance médicale constituent 4.5%. Dans le tableau suivante est représenté le calcul de ceux fonds
pour chaque membre de l’équipe.
Tableau 4.7 Le fond d’assurance sociale et médicale
Fonction Salaire, lei Fond d’assuranc e
sociale, lei Fond d’assurance
médicale, lei
Développeur Web 45000 10350 2025
Total 45000 10350 2025
Du salaire total en valeur de 45000 lei la somme de 10350 revient au fond d’assurance sociale et
2025 lei reviennent au fond d’assurance médical e. La revenue annuelle d'un développeur impliqué dans le
projet est d'environ :
VA = 500*260 = 130000 lei, où :
VA – revenue annuelle ;
500 – salaire par jour ;
260 – jour travaille par un an ;
FP=0.06*130000= 7800lei ;
FAM=0.045*130000= 5850 lei ;
Suivez le calcul de la revenue imposable :
VI=VB -FP-FAM -SP-SiP-SM ;
VI – revenue imposable ;
VB – revenue brut ;
FP – fond de retraite (assurance sociale), 6% de la revenue ;
FAM – fond d'assurance médicale, 4,5 % de la revenue ;
62
SP – exemption personnelle pour l’année 2018 est 11280 lei ;
VI = 130000 – 7800 – 5850 – 11280 =105070 lei ;
On calcule la somme de la revenue nette en appliquant les taux d'imposition en vigueur :
VN=VB -IV-FP-FAM ;
VB – revenue brut ;
IV – impôt sur le profit ;
FP – fond de retraite (as surance sociale) ;
FAM – fond d'assurance médicale ;
I – Impôt sur la revenue ;
Pour l’année 2018 :
– les revenue annuel d’un maximum de 33000 lei – taux d'imposition appliqué est de 7% ;
– les revenue supérieurs à 33000 lei – taux d'imposition appliqué e st de 18% ;
IV=VI -I ;
IV = VI – I = 33000*7% + (105070 – 33000) *18% = 2310 + 12972.6 =15282.6 lei ;
La revenue nette :
VN=130000 – 15282,6 – 10350 –2025= 102342.2 lei ;
4.6 Les dépenses indirectes
Dans cette partie sont numérotées les dépenses indire ctes du projet comme électricité, l’internet
et pour chaque service le prix.
Tableau 4.8 Dépenses indirectes
Nom Unité de mesure Quantité Tarif,
lei Valeur totale,
lei
Contrat de
location Abonnement
mois 4 3500 14000
Electricité KW/h 86.4 1.99 172
Services Internet Abonnement
mois 4 170 680
Total 14852
4.7 Calcul du fond d’amortissement
L’entreprise a procuré technique en somme de 24800 lei. La durée de fonctionnement sur ce
projet c’est 4 mois.
63
(5.3.3)
FA – somme de l'amortissement an nuel, MDL ;
Vi – la valeur d’amortissement des immobilisations ;
T1 – période de fonctionnement ;
T – durée d'utilisation de l'actif ;
Nuz = 100%/T = 100% / 4 = 25% ;
La somme de l'amortissement annuel pour les immobilisations corporelles :
;
La somme de l'amortissement annuel pour les immobilisations incorporelles :
;
La somme totale de l'amortissement annuel :
;
4.8 Prix du coût
Pour faire le calcul du prix, on a besoin des informations calculées dans tous les tableaux
précédents qui nous aide à faire un bilan total et d’estimer le plus précise possible le prix de l’application
à réaliser.
Tableau 4.9 Calcul du prix de l’application
Article de calcul Valeur, lei Poids, %
Consommations matériels directes 1200 1.57
Rémun ération du travail (salaires) 45000 58.84
Fond d’assurance sociale 10350 13.53
Fond d’assurance médical 2025 2.64
Dépenses indirectes 14852 19.42
Fond d’amortissement des actifs
matériels et non matériels 3042 3.98
Total 76469 100
Prix de revient = 76469 lei.
Le prix de revient de projet peut être diminues en dépendance du contrat signé avec les clients.
On peut proposer d’utiliser leur office et technique et de payer seulement la rémunération.
64
4.9 Les indicateurs économique -financiers
On va calculer le chiffre d'affaires brut/net, le profit brut/net, toutes les métho des de calcul de la
rentabilité :
PB = PC * PD où :
PB – profit brut ;
PC – coût total ;
PD-profit désiré = 25% ;
PB = 76469 *0,25 = 19117.25 lei ;
CA N = PC + PB ;
Où CA N – prix de marché net ;
CA N = 76469 + 19117.25 = 95586.25 lei
L’entreprise est de type SRL ou le taux d'imposition représente 12 %.
PN = PB – IP où :
PN – profit net ;
IP = PB * % imp ;
PN = PB – (PB * % imp) ;
PN = 19117.25 – (19117 ,25 * 0.12) = 16823.18 lei ;
4.10 Stratégies de marketing pour promouvoir un logiciel sur l’Internet
La promotion commerciale vise à déve lopper les ventes d’un produit sous la forme d'action
intensive conduite par l'offreur. L'objectif d'une promotion vise à attirer d’avantage l'attention du
consommateur en s'efforçant de faire mieux connaître, de faire mieux apprécier, et de faire acheter le
produit.
Lancer un nouveau produit n’est jamais facile pour une entreprise. Les difficultés auxquelles ces
dernières sont confrontées sont de natures diverses, et bien souvent, elles manquent d’initiatives si bien
que les clients se désintéressent du pr oduit. [9]
Pour surmonter ces obstacles, populariser le produit est la techniqu e à adopter. Mais comment
faire ? Des ventes bien planifiées et des stratégies marketing peuvent aider les entreprises à se
développer. Il est important que chaque dirigeant met te en œuvre différentes techn iques de marketing
pour réussir :
– Promotion propose une réduction du prix unitaire, un montant plus élevé pour le même prix.
Cependant, la promotion est plus une distribution de produit donné des ventes techniques et de souti en.
– Promotion pour le client : ils représentent 60% du total des actions de promotion ; Il vise à
sensibiliser et essayé un produit, en augmentant la quantité achetée par le client, en augmentant le nombre
65
d'acheteurs déterminent l'achat soutien immédiat des rejets ou des rééditions ou le positionnement, etc.
En ce qui concerne la promotion pour le client, cela se produit généralement au cours des
dernières étapes du cycle de vie du produit : lancement et de la maturité. Une bonne stratégie marketing
nous permet d’avancer rationnellement :
– Mise en perspective de nos objectifs commerciaux
– Création d’un calendrier éditorial solide
– Allocation des ressources financières et humaines (campagnes publicitaires, création de contenu,
email marketing)
– Analyse précis e du marché et de ce que font les concurrents en ligne
– Réductions (offres spéciales, le remboursement des repas, en prenant l'ancien produit, vendent
beaucoup de produits, jumeau de vente – détergent liquide po ur nettoyer la poussière, etc.)
Promotion e st devenue un moyen de consommateurs attirant qui sont le comportement d'achat
impulsif, qui choisissent facilement une autre marque, un autre produit. Promotion devient plus efficace,
plus les produits sont moins différenciés selon le fabricant, et les ac hats sont faits dans un contexte de
faible sensibilité du consommateur à la marque. [7]
4.11 Conclusion sur la partie économique
L’étape d’analyse économique est très importante dans le développement d’un projet, parce
qu’elle permet de voir toutes les cout s nécessaires pour l’élaboration. Je pense que le prix de réalisation
de 76469 lei est un prix bien justifié dans ce cas, parce que le projet utilise les dernières technologies, et
pour utiliser il faut avoir des ordinateurs avec une performance très élevé .
Apres l’établissement du projet j’ai effectué les calculs économiques, j’ai déterminé les objectifs
et j'ai partagé et déterminé les activités nécessaires à effectuer, j’ai estimé le temps pour chaque activité, puis
j'ai passé en revue les couts des obj ets matériaux et non -matériaux, on a calculé les fond d’amortissement
et finalement on a évalué le profit net, brut et la rentabilité économique de mon projet c’est 25 %.
66
CONCLUSIONS
Dans ce projet, j’ai développé un site web pour la gestion des patient s dans une dentisterie. Le
système offre un grand nombre des opérations, pour l’administrateur – la possibilité de gérer tout le
système, pour les patients – voir ses informations, enregistrements aux dentistes, investigations, résultats
d’analyse, recette et plan de traitement écrite par les dentistes , pour les dentistes et le réceptionniste – la
gestion des patients selon leur rôle. Par la gestion des patients on comprit : visualisation, modification,
création, effacement des données personnels, descripti on d’investigations, plans de traitements, résultats
d’analyse et beaucoup d’autres.
Pour développer un même système j’ai compris qu’il est nécessaire de partir plusieurs
étapes comme : analyse du domaine, projection du système, plan de développement, ainsi le
développement et d’autres. Ces étapes permettent de raffiner le niveau de détails du système à réaliser.
Pour une description plus détaillée du projet j’ai réalisé un modèle conceptuel en utilisant les principes de
l'UML. Le système a été conçu par Enterprise Architect. Son rôle est de prendre cette connaissance et de
s'assurer que l'entreprise et l'informatique sont dans l'alignement.
Pour atteindre mieux les objectifs, j’ai utilisé la plus moderne version du framework Symfony.
Symfony est une tech nologie nouvelle qui a une grande perspective sur l'avenir, étant toujours en
développement, qui est basée sur le modèle MVC ou le code est ainsi séparé en trois couches : le modèle
(M), la vue (V) et le contrôleur (C). J’ai utilisé une base de donnée MySQ L, pour l’interaction avec elle
j’ai utilisé la Doctrine qui est un logiciel qui permet de donner l'illusion de travailler avec une base de
données objet(ORM) alors que l'on est sur une base de données relationnelle. Finalement pour données du
dynamisme et interactivité , j’ai utilisé JavaScript le framework VueJS.
Finalement , je pense que le but et les objectifs pour cette thèse ont été atteint , j’ai créé une
application facile à utiliser qui résoudre un problème quotidien de la vie. Plus, pendant le proce ssus de
développement, j’ai appris beaucoup de choses nouvelles et captivantes qui sera très utile pour l’avenir.
67
BIBLIOGRAPHIE
1. PHP Notes for Professionals book , 2017. Livre sur PHP en format électronique. Sourse électronique :
https://books.goalkicker.com/PHPBook/ consultée le 17.01.2018 .
2. MySQL Notes for Professionals book , 2017. Livre sur MySQL en format électronique. Sourse
électronique: https://books.goalkicker.com/MySQLBook/ consultée le 17.01.2018.
3. JavaScript Notes for Professionals book , 2017. Livre sur JavaScript en format électronique. Sourse
électronique: https://books .goalkicker.com/JavaScriptBook/ consultée le 17.01.2018.
4. Documentation « About Docker ». Sourse électronique : https://www.docker.com/what -docker
consultée le 12.01.2018 .
5. Documentation « About MySQL ». Sourse électronique : https://dev.mysql.com/doc/ consultée
le 2018.02.08.
6. Site éducationnel www. w3schools .com Information sur JavaScript. Sourse électronique :
http://www.w3schools.com/js/default.asp , consultée le 21.04 .2018 .
7. Site éducation nel http://documents.tips/documents/ Information commerce électronique, consultée le
23.04.2018.
8. “Instrucț iune cu privire la modul de calculare și achitare a impozitului pe venit de către persoanele ce
practică activitate de antreprenoriat” (Guvernul R. Moldova, Instruc țiune Nr. 3 din 29.01.2001 ). Sourse
électronique : http://lex.justice.md/index.php?id=310744 consultée le 24. 02.2018
9. Sourse electronique ”Modificări taxe și scutiri salarii 2018 ” http://salarii.md/modific ari-taxe-si-scutiri –
salarii -2018/ , consultée le 24. 03.2018 .
10. Documentation « About ORM ». Sourse électronique https://en.wikipedia.org/wiki/Object –
relational_ma pping, consultée le 12.02.2018 .
11. Documentation « About Doctrine and Object -relational mapping ». Sourse électronique
https://www.doctrine -project .org/projects/doctrine -orm/en/latest/tutorials/getting -started.html , consultée
le 16.04.2018.
12. Documentation « About Doctrine ». Sourse électronique https://twig.symfony.com/doc/, consultée le
16.04.2018.
13. Documentation « About JavaScript ». Sourse électron ique https:// en.wikipedia.org/wiki/javascript ,
consultée le 13.04.2018.
14. Documentation « About PHP ». Sourse électronique : https://en.wikipedia.org/wiki/php, consultée
le 13.04.2018.
15. Documentation « About HTML ». Sourse électronique : https://en.wikipedia. org/wiki/html,
consultée le 13.04.2018.
68
16. Documentation « About CSS ». Sourse électronique : https://en.wikipedia.org/wiki/css, consultée le
13.04.2018.
17. Documentation « About Bootstrap ». Sourse électronique https://getbootstrap.com/docs/4.0/getting –
started/ introduction/, consultée le 10.02.2018.
18. Documentation « About UML ». Sourse électronique :
https://en.wikipedia.org/wiki/unified_modeling_language, consultée le 13.04.2018.
19. Documentation « About UML -diagrams ». Sourse électronique https://www.wuml -diagrams.org ,
consultée le 11.03.2018.
20. Site éducationnel www.bootstrapmade.com Théme de Bootstrap. Sourse électronique :
https://bootstrapmade.com/demo/Medilab/ , consultée le 10.02.2018.
21. Site éducationnel www.themeforest.net Théme de Bootstrap. Sourse électronique :
https://themeforest.net/item/health -admin -bootstrap -health -admin -template –
dashboard/19866995?s_rank=1 , consultée le 10.02.2018.
22. Documentation « VueJS ». Sourse éle ctronique https://vuejs.org/v2/guide/ , consultée le 17.02.2018.
23. Documentation « Symfony 4 ». Sourse électronique https://symfony.com/doc/current/index.html ,
consultée le 11.03.2018.
69
ANNEXE A
Image Docker de bas e pour PHP
# ––––– GET DOCKER IMAGE ––––-
FROM php:7.2.1 -fpm-alpine
RUN wget
https://raw.githubusercontent.com/composer/getcomposer.org/1b137f8bf6db3e79a38a5bc453
24414a6b1f9df2/web/installer -O – -q | php – –quiet \
&& mv composer. phar /usr/local/bin/composer \
&& apk add –update alpine -sdk \
&& apk add autoconf \
&& apk add zlib -dev \
&& apk add go \
&& apk add yarn \
&& apk add –no-cache icu -dev \
&& docker -php-ext-install pdo pdo_mysql zip intl
# ––––– XDEBUG ––––-
RUN cd /var \
&& git clone https://github.com/xdebug/xdebug.git \
&& cd xdebug \
&& git checkout 2.6.0 \
&& ./rebuild.sh
# Speedup composer
USER www-data
RUN composer global require hirak/prestissimo
USER root
# Copy php ini conf
COPY php-ini-overrides.ini /usr/local/etc/php/conf.d/99 -overrides.ini
COPY ssmtp.conf /etc/ssmtp/ssmtp.conf
ENV COMPOSER_ALLOW_SUPERUSER 1
70
ANNEXE B
Le fichier docker -compose
version: "2"
services:
stoma_nginx:
container_name: stoma_nginx
build: ./nginx
image: stoma_nginx:1.13.8
volumes_from:
– stoma_php
ports:
– 4000:80
stoma_php:
container_name: stoma_php
build: ./php
image: stoma _php:7.2.1
working_dir: /var/www
volumes:
– ./../:/var/www:cached
environment:
– XDEBUG_CONFIG=idekey=PHPSTORM
– PHP_IDE_CONFIG=serverName=sf4.test
stoma_db:
container_name: stoma_db
image: mysql/mysql -server:5.7
command: mysqld –character -set-server=utf8 –collation -server=utf8_unicode_ci
ports:
– "6606:3306"
environment:
MYSQL_DATABASE: stoma_db
MYSQL_ROOT_PASSWORD: toor
MYSQL_ROOT_HOST: "%"
networks:
default:
external:
name: stoma
71
ANNEXE C
La configuration du webpack sur Symfony
var Encore = require('@symfony/webpack -encore');
Encore
.setOutputPath('public/build/')
.setPublicPath('/build')
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())
.addEntry('js/registration -page', './assets/js/registration -page.js')
.addEntry('js/custom', './assets/js/custom.js')
.addEntry('js/login_form', './assets/js/login_form.js')
.addEntry('js/admin -sidebar', './assets/js/admin -sidebar.js')
.addStyleEntry('css/main', './assets/css/main.scss')
.addStyleEntry('css/admin -main', './assets/css/admin -main.scss')
.enableSassLoader()
.enableVueLoader()
;
module.exports = Encore.getWebpackConfig();
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: M Lettre Feuille Feuilles [631295] (ID: 631295)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
