Académique Documents
Professionnel Documents
Culture Documents
~I~
REMERCIEMENTS
Après avoir rendu grâce à Dieu (SWT) et prié au nom du prophète (PSL),
nous tenons à remercier tous ceux qui de loin ou de près ont participé à
l’élaboration de ce mémoire :
✓ Mon encadreur Monsieur Mallé Ndiaye pour avoir bien voulu accepter la
direction de ce mémoire. Je lui témoigne de ma sincère gratitude tout en
saluant la compétence, la diligence et la patience dont il a toujours fait
preuve pendant ce long processus
✓ Mes parents et mes frères pour leur soutien moral et financier, ils n’ont
ménagé aucun effort pour la réussite de mes études et je leur en suis
reconnaissant
~ II ~
AVANT-PROPOS
L’Institut Supérieur d’Informatique (ISI) est un établissement
d’enseignement supérieur dont le projet pédagogique permet de transmettre la
pluralité des savoirs et des clés de lecture d’un monde fluide pour les futurs cadres.
Le groupe ISI possède neufs campus au Sénégal et deux (02) en Mauritanie. Avec
plus de 26 ans d’expériences, ISI dispose des départements comme le génie
informatique, les réseaux et systèmes, la gestion, ..., et délivre les diplômes suivants
: DTS1, LICENCE, MASTER, DITI2 et le DOCTORAT.
1
DTS : Diplôme de Technicien Supérieur
2
DITI : Diplôme d’Ingénieur en Techniques Informatiques
~ III ~
SOMMAIRE
~ IV ~
GLOSSAIRE
UML : Unified Modeling Language
ISI : Institut Supérieur d’Informatique
SGBD : Système de Gestion de Base de Donnée
POO: Programmation Orientée Objet
PHP: HyperText Preprocessor
HTML: Hyper- Text Markup Language
CSS: Cascading Style Sheet
CRUD : Create Read Update Delete
MERISE : Méthode d'Etude et de Réalisation Informatique pour les Systèmes
d'Entreprise
SI : Système d’Information
SIO : Système d’Information Organisationnel
SII : Système d’Information Informatisé
MCD : Modèle Conceptuel des Données
MLD : Modèle Logique des Données
MOD : Modèle Organisationnel des Données
MCT : Modèle Conceptuel des Traitements
MOT : Modèle Organisationnel des Traitements
MLT : Modèle Logique des Traitements
MPD : Modèle Physique des Données
MPT : Modèle Physique des Traitements
SGF : Système de Gestion de Fichiers
HTTP: Hypertext Transfer Protocol
ORM: Object Relationnal Mapping
IHM : Interface Homme Machine
~V~
Liste des figures
Figure 1.1.1 Interface expat-dakar ........................................................................... 5
Figure 1.1.2 Interface 2simmo ................................................................................. 5
Figure 1.2.1 Cycle MERISE .................................................................................... 7
Figure 1.2.2 cycle de vie .......................................................................................... 8
Figure 1.2.3 Cycle de vie ......................................................................................... 9
Figure 1.2.4 Schémas détaillé SIO & SII............................................................... 11
Figure 1.2.5 Cycle de décision............................................................................... 12
Figure 1.2.6 Les deux (02) groupes de diagrammes UML .................................... 13
Figure 1.2.7 Les diagrammes structurels ............................................................... 13
Figure 1.2.8 Les diagrammes comportementaux ................................................... 14
Figure 1.2.9 Représentation des acteurs UML ...................................................... 15
Figure 1.2.10 exemple de diagramme de cas d’utilisation .................................... 15
Figure 1.2.11 Représentation des cas d'utilisation ................................................. 15
Figure 1.2.12 ligne de vie acteur diagramme de sequence .................................... 16
Figure 1.2.13 Représentation ligne de vie ............................................................. 16
Figure 1.2.14 Représentation des messages synchrone et asynchrones et de retour
............................................................................................................................... 17
Figure 1.2.15 Exemple de diagramme de séquence............................................... 17
Figure 1.2.16 Formalisme d'une classe .................................................................. 18
Figure 1.2.17 Relation unidirectionnelle ............................................................... 18
Figure 1.2.18 Relation bidirectionnelle ................................................................. 18
Figure 1.2.19 Représentation des cardinalités en UML......................................... 18
Figure 1.2.20 Relation de composition et d'agrégation ......................................... 19
Figure 1.2.21 Relation de généralisation ............................................................... 19
Figure 1.2.22 Exemple diagramme de classe ........................................................ 19
Figure 1.2.23 Représentation d'un nœud ............................................................... 20
Figure 1.2.24 Représentation d'un composant et relation avec un nœud ............... 20
Figure 1.2.25 Représenation d'un artifact dans un noeud ...................................... 20
Figure 1.2.26 Relation entre une instance artifact et un noeud.............................. 21
Figure 1.2.27 Représentation d'un artifact et relation avec un noeud .................... 21
Figure 1.2.28 Exemple diagramme de déploiement .............................................. 21
Figure 1.2.29 Instanciation .................................................................................... 23
~ VI ~
Figure 1.2.30 Objet ................................................................................................ 24
Figure 1.2.31 Exemple d'héritage .......................................................................... 24
Figure 2.4.1 Diagramme de cas d'utilisation gestion des biens et des annonces ... 27
Figure 2.4.2 Diagramme de cas d'utilisation gestion des contrats ......................... 28
Figure 2.4.3 Diagramme de cas d'utilisation gestion des règlements .................... 28
Figure 2.4.4 Diagramme de cas d'utilisation gestion des clients et des utilisateurs
............................................................................................................................... 29
Figure 2.4.5 Diagramme de séquence du cas d'utilisation se connecter ................ 29
Figure 2.4.6 Diagramme de séquence du cas d'utilisation ajouter bien ................. 30
Figure 2.4.7 Diagramme de séquence du cas d'utilisation supprimer client .......... 31
Figure 2.4.8 Diagramme de séquence du cas d'utilisation louer bien .................... 31
Figure 2.4.9 Diagramme de classe de conception ................................................. 32
Figure 2.4.10 Diagramme de déploiement............................................................. 33
Figure 3.5.1 HTML - CSS ..................................................................................... 35
Figure 3.5.2 JavaScript .......................................................................................... 35
Figure 3.5.3 PHP .................................................................................................... 36
Figure 3.5.4 JAVA ................................................................................................. 37
Figure 3.5.5 C SHARP .......................................................................................... 37
Figure 3.5.6 Python ................................................................................................ 38
Figure 3.5.7 Laravel ............................................................................................... 39
Figure 3.5.8 Symfony ............................................................................................ 39
Figure 3.5.9 SamaneMVC ..................................................................................... 40
Figure 3.5.10 MySQL ............................................................................................ 41
Figure 3.5.11 MariaDB .......................................................................................... 42
Figure 3.5.12 ORACLE DATABASE ................................................................... 43
Figure 3.5.13 SQL SERVER ................................................................................. 43
Figure 3.6.1 Architecture deux-tier........................................................................ 44
Figure 3.6.2 Architecture trois-tier ........................................................................ 45
Figure 3.7.1 Interface de connexion ...................................................................... 46
Figure 3.7.2 Interface Accueil ............................................................................... 47
~ VII ~
Liste des tableaux
Tableau 1.2.1 Tableau comparatif entre MERISE ET UML ................................................ 22
~ VIII ~
Résumé
En vue de l’obtention du diplôme de licence en Informatique Appliquée à la
Gestion des Entreprises à ISI, nous avons réalisé un projet de fin d’études afin de
parachever notre formation du premier cycle universitaire. C'est ainsi que nous
avons amusé l’idée de concevoir et de mettre en œuvre une plateforme web de
location et de vente de biens immobiliers qui, à terme, contribuera à permettre au
secteur de l’immobilier du Sénégal de s’adapter face à l’émergence du numérique.
Par la même occasion, nous avons eu l’opportunité d'approfondir et d’enrichir nos
connaissances théoriques et notre expérience pratique à travers la conception et la
réalisation de cette application. La réalisation de cette application sera bénéfique
aux acheteurs car ils pourront facilement rechercher et trouver le bien qui leur
convient. Aussi l’application sera capable de faire la gestion des clients, des biens,
des locations et des ventes.
Pour ce faire, nous avons créé une application web, modélisée à partir du
langage UML (langage de modélisation unifié). Le langage de programmation
choisi est le langage PHP (HyperText Preprocessor) avec le framework Symfony et
le système de gestion de base de données (SGBD) est MariaDB. Il faut noter que
l'outil StarUML nous a été très utile dans la modélisation graphique du système
avec les différents diagrammes UML.
~ IX ~
Abstract
In order to obtain the degree of Bachelor of Science in Computer Science
Applied to Business Management at ISI, we carried out an end-of-studies project to
complete our undergraduate training. Thus, we had fun with the idea of designing
and implementing a web platform for renting and selling real estate which, in the
long run, will help the real estate sector in Senegal to adapt to the emergence of
digital technology. At the same time, we had the opportunity to deepen and enrich
our theoretical knowledge and practical experience through the design and
implementation of this application. The realization of this application will be
beneficial to buyers because they will be able to easily search and find the property
that suits them. The application will also be able to manage clients, properties,
rentals and sales.
~X~
INTRODUCTION GENERALE
Le secteur de l’immobilier est longtemps resté un secteur à l’abri
d’innovations majeures. Malgré l'avènement de la publicité immobilière en ligne,
le processus d'achat, de location ou de vente d'un bien immobilier n'a pas changé.
Les visites et l’ensemble de la procédure pour acheter ou louer une propriété
immobilière n’ont en effet que peu évolué. Basé sur des méthodes traditionnelles,
le marché immobilier n'a connu un véritable bouleversement que depuis quelques
années. C'est dans cette optique que l'on assiste à la mise en place de technologies
qui facilitent la location et la vente de biens.
Nous avons choisi ce sujet pour apporter des solutions afin d’aider les
acteurs qui souhaiteraient louer ou acheter des biens immobiliers.
~1~
Ainsi, pour implémenter cette plateforme, plusieurs techniques ont été
employées, notamment celles s’appuyant sur la recherche documentaire à l’aide
des outils comme des sites Internet.
~2~
I. Les cadres théorique et méthodologique
Les cadres théorique et méthodologique constitueront la première partie de
notre travail qui aidera à structurer l'étude, mais aussi à introduire et décrire le
concept ou le thème de l'étude.
➢ Problématique
~3~
• La conception d’une application web pour l’agence permettra-t-elle une
diminution des coûts de publicité ?
• Comment faire pour gérer efficacement de manière automatique le
recouvrement des arriérés de paiement, les propriétaires ainsi que les clients ?
• Quels sont les coûts de location et de vente d’un bien immobilier ?
• Quelles informations sont pertinentes pour la situation du client ?
• Quels sont les types de biens immobiliers ?
• Comment améliorer le processus d’achat et de vente d’une propriété
immobilière ?
• Quelles sont les solutions qu’il faudrait mettre en place ?
Le contexte et la problématique ainsi abordées, nous passerons à l’objectif de
l’étude.
~4~
• Expat-dakar.com : Lancé en 2008, Expat-Dakar.com est un portail qui offre une
façon simple, efficace et pratique d’acheter et de vendre des biens ou des
services. On peut y trouver un appartement, un terrain, un emploi, une voiture,
un smartphone, une nounou et bien d’autres choses. Leur rôle est de connecter
les vendeurs et les acheteurs, et leur permettre d’échanger librement.
Pour les critiques, nous pouvons dire que Expat-Dakar n’est pas spécialisé dans la
location et la vente de biens immobiliers alors que 2simmo l’est. Tous les
utilisateurs d’Expat-Dakar qui ont ouvert un compte peuvent faire des annonces, ce
qui ne garantit pas la sécurité des clients. Quant à 2simmo, il ne permet pas à ses
~5~
utilisateurs d’en faire. Pour toutes les deux solutions, il n’y a que les annonces ; la
gestion des locations et des ventes ne se fait pas dans les deux sites web.
Ainsi, nous avons fait l’étude de l’existant.
Ce chapitre a constitué la présentation de notre sujet. Venons-en maintenant à
l’étude méthodologique, objet du chapitre deux.
1.2.1.1. MERISE
La méthode MERISE (Méthode d'étude et de réalisation informatique pour
les systèmes d'entreprise) date de 1978-1979, et fait suite à une consultation
nationale lancée en 1977 par le Ministère de l'Industrie dans le but de choisir des
sociétés de conseil en informatique afin de définir une méthode de conception de
systèmes d'information. Les deux principales sociétés ayant mis au point cette
méthode sont le CTI (Centre Technique d'Informatique) chargé de gérer le projet,
et le CETE (Centre d'Etudes Techniques de l'Equipement) implanté à Aix-en-
Provence. C’est une méthode d'analyse, de conception et de gestion de projet
complètement intégrée, ce qui en constitue le principal atout. MERISE est donc une
méthode de conception des systèmes d'information (SI). Ceux-ci sont un ensemble
de ressources et de dispositifs permettant de collecter, stocker, traiter et diffuser les
~6~
informations nécessaires au fonctionnement d’une organisation (administration,
entreprise…).
La démarche MERISE se fait selon trois axes appelés cycles.
➢ Le cycle de vie : comment enchaîner les étapes
➢ Le cycle d’abstraction : quels outils permettent de les mener
➢ Le cycle de décision : quelles décisions sont à prendre au fil de celles-ci.
a) Le cycle de vie
~7~
• La maintenance : devra permettre au système d'évoluer et de s'adapter aux
modifications de l'environnement et aux nouveaux objectifs pendant une
certaine durée de vie et ensuite il devra laisser la place à un nouveau système.
~8~
b) Le cycle d'abstraction
~9~
Les deux premiers niveaux sont adaptés à la conception du système d'information
organisationnel (SIO), les deux derniers à la conception du système d'information
informatisé (SII).
Au niveau conceptuel, le modèle conceptuel des données (MCD) formalise la
signification des informations sur lesquelles repose le système d'information, sans
contrainte technique ni économique. Le modèle conceptuel de traitements (MCT)
formalise l'activité du domaine abordé, sans préciser les ressources ni leur
organisation.
Au niveau organisationnel, le modèle organisationnel de traitements (MOT) décrit
le fonctionnement du domaine en précisant les ressources humaines et matérielles
mobilisées, ainsi que l'organisation de ces ressources dans le temps et dans l'espace.
Le modèle organisationnel des données (MOD) précise quelles sont parmi les
données définies au niveau conceptuel (MCD) celles qui sont prises en compte par
le futur système informatisé, où ces données sont localisées (répartition par site
organisationnel), leur confidentialité pour chaque intervenant de l'entreprise.
Au niveau logique, le modèle logique de données (MLD) fournit une description
des données tenant compte des moyens informatiques de mémorisation et de leurs
conditions d'utilisation par les traitements. Le modèle logique de traitements (MLT)
décrit comment les tâches informatisées définies dans les MOT précédents sont
conçues en termes de logiciel.
Au niveau physique, le modèle physique de données (MPD) est une description de
la ou des bases de données ou de l'ensemble des fichiers, exprimée dans la syntaxe
du système de gestion de bases de données (SGBD) ou système de gestion de
fichiers (SGF) adoptés. Enfin, le modèle physique de traitements (MPT) précise,
pour la réalisation, les spécifications techniques des différents modules définis au
niveau du MLT. Ces modules pourront être réalisés soit en langages de quatrième
génération, soit de façon plus traditionnelle en langage de troisième génération
(Cobol, C…).
~ 10 ~
Figure 1.2.4 Schémas détaillé SIO & SII
c) Le cycle de décision
~ 11 ~
Figure 1.2.5 Cycle de décision
1.2.1.2. UML
UML (Unified Modeling Language) est un langage de modélisation
maintenu en tant que standard par l'OMG (Object Management Group) depuis
1997. UML est né de l'unification des travaux des "3 amigos", Grady Booch, Ivar
Jacobson, et James Rumbaugh, auteurs de techniques et de langage de modélisation
objets : Booch, OOSE (Object Oriented Software Engineering), et OMT (Object
Modeling Technique). La dernière version officielle selon l'OMG est UML
2.5.1 (2017). Le langage UML permet de produire une représentation visuelle et
uniformisée des aspects d'un système ou projet logiciel à réaliser. UML peut ainsi
être utilisé pour rendre compréhensible et gérable des concepts ou architectures
~ 12 ~
complexes. UML est à la fois adapté pour de simples projets avec quelques
modèles, ou pour des projets complexes et de grande envergure par un large
référentiel de modèles. Il est conçu pour représenter, construire, et documenter des
systèmes logiciels utilisant des techniques orientées objet. UML propose quatorze
(14) types de diagrammes répartis en deux (02) groupes.
➢ Les diagrammes structurels
➢ Les diagrammes comportementaux
Diagrammes UML
diagrammes diagrammes
structurels comportementaux
~ 13 ~
Les diagrammes comportementaux sont aussi aux nombres de sept (07)
diagrammes exposés ci-dessous.
Nous allons voir principalement quatre (04) diagrammes qui sont le diagramme
de cas d’utilisation, le diagramme de séquence, le diagramme de classe et le
diagramme de déploiement.
• Diagramme de cas d’utilisation : il permet d'identifier les possibilités
d'interaction entre le système et les acteurs (intervenants extérieurs au système),
c'est-à-dire toutes les fonctionnalités que doit fournir le système. Il permet aussi
de délimiter le système. Un acteur représente un élément externe qui interagit
avec le système. Cet élément peut être un utilisateur ou un système tiers (autre
ordinateur, autre programme, base de données). Tous les éléments extérieurs
qui stimulent le système et tous les éléments extérieurs qui sont utilisés par le
système sont représentés par des acteurs. Dans le cas d'acteurs non-humains, il
est possible de définir une « Interface » qui représente les opérations offertes
par cet acteur. Il est possible de représenter un acteur sous forme d'un
~ 14 ~
bonhomme comme ci-dessous à gauche ou sous forme d'un classeur comme ci-
dessous à droite.
~ 15 ~
• Diagramme de séquence : c’est un type de diagramme d'interaction, car il
décrit comment et dans quel ordre plusieurs objets fonctionnent ensemble. Ces
diagrammes sont utilisés à la fois par les développeurs logiciels et les managers
d'entreprises pour analyser les besoins d'un nouveau système ou documenter un
processus existant. Les diagrammes de séquence sont parfois appelés
diagrammes d'événements ou scénarios d'événements. Ils permettent de montrer
les interactions dans le cadre d’un scénario d’un diagramme de cas d’utilisation.
Le but est de décrire comment se déroulent les interactions entre les acteurs ou
objets. Chaque instance d'une interaction est représentée par une ligne de vie.
X : classe1
~ 16 ~
Bande
d’activation
~ 17 ~
compartiments. Le premier indique le nom de la classe, le deuxième ses attributs
et le troisième ses opérations. Un compartiment des responsabilités peut être
ajouté pour énumérer l'ensemble de tâches devant être assurées par la classe,
mais pour lesquelles on ne dispose pas encore assez d'informations. Un
compartiment des exceptions peut également être ajouté pour énumérer les
situations exceptionnelles devant être gérées par la classe.
Une association est une relation entre deux classes (association binaire) ou plus
(association n-aire), qui décrit les connexions structurelles entre leurs instances.
Une association indique donc qu'il peut y avoir des liens entre des instances des
classes associées. Elle peut aussi comporter un nom.
La flèche indique ici (voir figure 1.2.17) que la relation est unidirectionnelle :
les objets de classe Article connaissent ceux de la classe Commentaire auxquels
ils sont liés, mais pas l’inverse.
L’absence de flèche (voir figure 1.2.18) indique ici que l’on peut accéder aux
catégories à partir des articles qui leur sont liés, et inversement.
~ 18 ~
Une relation d'agrégation affiche un discriminant comme un composant ou un
subordonné d'un autre discriminant. Une relation d'association de composition
représente une relation Tout-Partie et est une forme d'agrégation. Une relation
d'association de composition spécifie que la durée de vie du discriminant de
partie dépend de la durée de vie du discriminant global. Leurs formalismes sont
illustrés ci-dessous.
~ 19 ~
composants sont répartis sur les nœuds et quelles sont les connexions entre les
composants ou les nœuds. Les diagrammes de déploiement existent sous deux
formes : spécification et instance. Chaque ressource est matérialisée par un
nœud représenté par un cube comportant un nom. Un nœud est un classeur et
peut posséder des attributs (quantité de mémoire, vitesse du processeur…).
Pour montrer qu'un composant est affecté à un nœud, il faut soit placer le
composant dans le nœud, soit les relier par une relation de dépendance
stéréotypée « support » orientée du composant vers le nœud.
~ 20 ~
Une instance d'un artefact se déploie sur une instance de nœud. Graphiquement,
on utilise une relation de dépendance (flèche en trait pointillé) stéréotypée
« deploy » pointant vers le nœud en question. En toute rigueur, seuls des
artefacts doivent être déployés sur des nœuds. Un composant doit donc être
manifesté par un artefact qui, lui-même, peut être déployé sur un nœud.
~ 21 ~
Dans un diagramme de déploiement, les associations entre nœuds sont des
chemins de communication qui permettent l'échange d'informations.
Nous avons vu les méthodes d’analyse et de conception MERISE et UML, passons
à présent à la comparaison entre ces deux (02).
MERISE UML
~ 22 ~
1.2.3. Choix de la méthode conception
Notre choix se porte sur l’UML qui adopte l’approche orientée objet car
UML est un langage formel et normalisé (clair et précis). Il est un support de
communication performant du fait qu’il facilite l’analyse et la compréhension des
représentations abstraites complexes. L’orientation utilisateur de certains
formalismes est un autre avantage non négligeable. En plus de définir les services
accessibles (offerts) aux utilisateurs, celui-ci constitue un support du dialogue
concepteurs / utilisateurs non négligeable offrant ainsi une plus rapide et plus
efficace collaboration et validation par les utilisateurs. De s’urcroît, UML apporte
une compréhension rapide du programme à d’autres développeurs externes en cas
de reprise du logiciel et facilite sa maintenance. Présentons à présent quelques
concepts clés de l’orientée objet.
~ 23 ~
• Objet : il est le second concept le plus important en programmation objet.
Comme nous vous l’avons dit tout à l’heure, un objet est une instance de classe.
Pour faire le parallèle avec le monde réel, l’objet est un peu comme une maison
bâtie sur la base d’un plan particulier. Tant que les architectes se réfèrent à ce
plan, ils produiront toujours les mêmes maisons. Il est caractérisé par une
identité (qui doit l’identifier sans ambiguïté), des états (chaque objet a une
valeur par défaut lorsqu’elle est indiquée à l’instanciation pour chacune de ses
propriétés) et des méthodes (chaque objet est capable d’exécuter les actions ou
le comportement défini dans la classe).
~ 24 ~
• Polymorphisme : Le nom de polymorphisme vient du grec et signifie qui peut
prendre plusieurs formes. Cette caractéristique est un des concepts essentiels de
la programmation orientée objet. Alors que l'héritage concerne les classes (et
leur hiérarchie), le polymorphisme est relatif aux méthodes des objets. Un
langage orientée objet est dit polymorphique, s’il offre la possibilité de
percevoir un objet en tant qu’instance de différentes classes selon la situation.
Le choix de la méthode de conception a constitué la dernière section de ce chapitre.
Celui-ci nous a permis de voir les méthodes d’analyse et de conception.
Il ressort de cette première partie une meilleure maîtrise du sujet en dégageant les
cadres théorique et méthodologique. Nous allons donc poursuivre avec la deuxième
partie où nous attaquerons l’analyse et la conception du système.
~ 25 ~
Nous avons donc déterminé les besoins fonctionnels, à présent, passons aux besoins
non-fonctionnels.
2.4. Conception
Dans ce chapitre nous modéliserons le système en représentant quatre (04)
diagrammes UML que nous avons jugé incontournable lors de la conception.
Figure 2.4.1 Diagramme de cas d'utilisation gestion des biens et des annonces
~ 27 ~
2.4.1.2. Gestion des contrats
~ 28 ~
2.4.1.4. Gestion des utilisateurs
Figure 2.4.4 Diagramme de cas d'utilisation gestion des clients et des utilisateurs
~ 29 ~
2.4.2.2. Cas d’utilisation ajouter bien
~ 30 ~
2.4.2.3. Cas d’utilisation supprimer bien
~ 31 ~
2.4.3. Diagramme de classe
~ 32 ~
2.4.4. Diagramme déploiement
3.5. Réalisation
Dans ce chapitre nous allons voir deux sections qui sont les outils de
développement et la présentation des SGBD (Système de Gestion de Base de
Données).
~ 33 ~
3.5.1. Outils de développement
Les outils de développement sont l’ensemble des langages de programmation, des
framework3, des SGBD, …, qui vont nous aider à réaliser notre application. Cette
section nous aidera à faire notre choix sur les langages de programmation à utiliser,
le framework à adopter et le SGBD à exploiter.
a) HTML – CSS
HyperText Markup Language (HTML) est le code utilisé pour structurer
une page web et son contenu. Par exemple, le contenu de votre page pourra être
structuré en un ensemble de paragraphes, une liste à puces ou avec des images et
des tableaux de données. Cependant HTML n'est pas un langage de programmation.
C'est un langage de balises qui définit la structure de votre contenu. HTML se
compose d'une série d'éléments, utilisés pour entourer, ou envelopper, les diverses
parties du contenu pour les faire apparaître ou agir d'une certaine façon. Les fichier
html ont pour extension *.htm ou *.html. CSS est l’acronyme de « Cascading Style
Sheets » ce qui signifie « feuille de style en cascade ». Le CSS correspond à un
langage informatique permettant de mettre en forme des pages web. Ce langage est
donc composé des fameuses « feuilles de style en cascade » également appelées
fichiers CSS (.css) et contient des éléments de codage. En faisant appel à ce fichier
3
Framework : cadre de travail
~ 34 ~
dans la page HTML, on peut désigner un style lourd et complexe avec une simple
petite balise.
De plus, si la CSS est employée dans un site entier (comme c'est toujours le cas), il
suffit de mettre à jour le CSS pour refaire le design du site en entier.
b) JavaScript
JavaScript (souvent abrégé en « JS ») est un langage de script léger, orienté
objet, principalement connu comme le langage de script des pages web. Mais il est
aussi utilisé dans de nombreux environnements extérieurs aux navigateurs web. Le
code JavaScript est interprété ou compilé à la volée (JIT4). C'est un langage à objets
utilisant le concept de prototype, disposant d'un typage faible et dynamique qui
permet de programmer suivant plusieurs paradigmes de programmation :
fonctionnelle, impérative et orientée objet. Avec les technologies HTML et CSS,
JavaScript est parfois considéré comme l'une des technologies cœur du World Wide
Web5. Le langage JavaScript permet des pages web interactives, et à ce titre, c’est
une partie essentielle des applications web.
Une grande majorité des sites web l’utilisent.
4
JIT: « just in time »
5
Word Wide Web : la Toile mondiale ou la Toile, est un système hypertexte public fonctionnant
sur Internet
~ 35 ~
c) PHP (Hypertext Preprocessor)
Plus connu sous son sigle PHP (sigle auto-référentiel), est un langage de
programmation libre, principalement utilisé pour produire des pages Web
dynamiques via un serveur HTTP6 (Hypertext Transfer Protocol), 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. Il est considéré comme une des bases de
la création de sites web dits dynamiques mais également des applications web.
C'est un langage peu typé et souple et donc facile à apprendre par un débutant. Il
est multi-plateforme : autant sur Linux qu'avec Windows il permet aisément de
reconduire le même code sur un environnement à peu près semblable.
d) Java
Java est un langage de programmation largement utilisé pour coder des
applications web. Il a été fréquemment choisi parmi les développeurs depuis plus
de deux décennies, des millions d'applications Java étant utilisées aujourd'hui. Java
est un langage multiplateforme, orienté objet et centré sur le réseau, qui peut être
utilisé comme une plateforme à part entière. Il s'agit d'un langage de programmation
rapide, sécurisé et fiable qui permet de tout coder, des applications mobiles aux
logiciels d'entreprise en passant par les applications de big data et les technologies
côté serveur.
6
HTTP : c’est un protocole de communication client-serveur développé pour le World Wide Web
~ 36 ~
Figure 3.5.4 JAVA
e) C Sharp (C#)
C’est un langage de programmation orienté objet à typage fort, créé par la
société Microsoft, et notamment un de ses employés, Anders Hejlsberg, le créateur
du langage Delphi. Il a été créé afin que la plate-forme Microsoft .NET soit dotée
d'un langage permettant d'utiliser toutes ses capacités. Il est très proche du Java dont
il reprend la syntaxe générale ainsi que les concepts (la syntaxe reste cependant
relativement semblable à celles de langages tels que le C++ et le C). Un ajout
notable à Java est la possibilité de surcharge des opérateurs, inspirée du C++.
Toutefois, l'implémentation de la redéfinition est plus proche de celle du Pascal
Objet.
Figure 3.5.5 C
SHARP
f) Python
Le langage Python est un langage de programmation open source multi-
plateformes et orienté objet. Grâce à des bibliothèques spécialisées, Python s'utilise
pour de nombreuses situations comme le développement logiciel, l'analyse de
données, ou la gestion d'infrastructures. Il n'est donc pas, comme le
langage HTML par exemple, uniquement dédié à la programmation web. Langage
de programmation interprété, Python permet l'exécution du code sur n'importe quel
ordinateur. Utilisable aussi bien par des programmeurs débutants qu'experts,
Python permet de créer des programmes de manière simple et rapide. Python est
principalement utilisé pour le scripting et l'automatisation de tâches simples mais
~ 37 ~
fastidieuses, c'est-à-dire l'interaction avec les navigateurs web. Mais Python est
aussi utilisé pour : programmer des applications ; générer du code ; créer des
services web ; faire de la métaprogrammation.
b) Symfony
~ 39 ~
c) SamaneMVC
~ 40 ~
Ainsi, nous avons choisi un framework PHP pour nous faciliter le développement
de l’application. Nous allons donc entamer la dernière section de ce chapitre qui est
la présentation des SGBD.
Figure 3.5.10
MySQL
7
Multi-thread : capable d’executer plusieurs tâches à la fois
~ 41 ~
b) MariaDB
MariaDB est un fork8 développé par la communauté et pris en charge
commercialement du système de gestion de base de données relationnelle MySQL
(RDBMS), destiné à rester un logiciel libre et open source sous la licence publique
générale GNU. Le développement est dirigé par certains des développeurs
originaux de MySQL, qui l'ont dérivé en raison de préoccupations concernant
son acquisition par Oracle Corporation en 2009. MariaDB est destinée à maintenir
une compatibilité élevée avec MySQL, avec une parité binaire de la bibliothèque et
une correspondance exacte avec les API et les commandes MySQL, lui permettant
dans de nombreux cas de fonctionner comme un remplacement direct de
MySQL. Cependant, les nouvelles fonctionnalités divergent.
c) Oracle Database
Oracle est un système de gestion de base de données relationnel (SGBDR)
qui depuis l'introduction du support du modèle objet dans sa version 8 peut être
aussi qualifié de système de gestion de base de données relationnel-objet
(SGBDRO). Fourni par Oracle Corporation, il a été développé par Larry Ellison,
accompagné d'autres personnes telles que Bob Miner et Ed Oates. Oracle n’est pas
un SGBD optimisé pour de petites entreprises ayant de petits volumes de données
et un peu d’utilisateurs (une vingtaine). Si la gestion des données devient importante
63 et le nombre d’utilisateurs devient également grandissant alors la nécessité quant
au choix d’un SGBD performant s’impose, et Oracle est une solution.
8
Fork : un nouveau logiciel créé à partir du code source d’un logiciel existant
~ 42 ~
Figure 3.5.12 ORACLE DATABASE
d) SQL Server
Microsoft SQL Server est un système de gestion de base de données
relationnelle développé par Microsoft. En tant que serveur de base de données, il
est un produit de logiciel avec la fonction principale de stockage et de récupération
de données tel que demandé par d'autres applications logicielles pouvant circuler
sur le même ordinateur ou sur un autre ordinateur dans un réseau (y compris
l'Internet). Microsoft SQL Server fait désormais partie de la stratégie technique de
Microsoft, en matière de base de données. Le moteur MSDE qui est à la base de
SQL Server doit à terme remplacer le moteur Jet (qui gère les bases Access), dans
les applications telles qu’Exchange et Active Directory.
~ 43 ~
En somme, ce chapitre a servi de support de présentation des outils de
développement et des SGBD. Nous attaquerons dans le prochain les architectures.
3.6. Architectures
Nous allons présenter dans ce chapitre deux sections, les architectures et le
choix qui s’en suit.
3.6.1. Présentation
Les architectures se déclinent sur deux types à savoir les architectures deux-
tier et trois-tier.
~ 44 ~
3.6.1.2. Architecture trois-tier
Dans une telle architecture, on a séparé la partie applicative ou traitement
de l'IHM et des données. On obtient donc les trois couches suivantes :
➢ la couche présentation.
➢ la couche application
➢ la couche donnée ou métier.
Chacune de ces trois couches a un rôle spécifique.
La couche présentation est chargée du traitement de l'interaction avec l'utilisateur.
C'est un rôle d'affichage et d'interaction.
La couche application effectue les traitements applicatifs. Elle effectue de plus le
tampon entre la présentation et les données. Elle effectue aussi les règles de gestion
de l'application.
La partie donnée stocke les données pérennes de l'entreprise ou de l'application.
Cette séparation en trois couches simplifie les procédures d'installations de logiciel,
le partage d'information entre applications et enfin la réutilisation de composants.
On parle d'architecture trois-tier mais aussi d'architecture n-tier. En effet, dans la
plupart des applications, le niveau intermédiaire est une collection de composants
qui sont utilisés dans de nombreux traitements transactionnels. Ces composants
peuvent être situés sur un ou plusieurs serveurs physiques. De plus chacun de ces
composants effectue une petite tâche et c'est pourquoi on peut séparer cette partie
intermédiaire en n partie d'où le terme architecture n-tier.
La représentation d'une architecture trois-tier est la suivante.
~ 45 ~
3.6.2. Choix de l’architecture
Notre choix se porte sur l’architecture 3-tiers car elle est une architecture
client/serveur dans laquelle les applications au niveau serveur sont délocalisées,
c'est-à-dire que chaque serveur est spécialisé dans une tâche (serveur web/serveur
de base de données par exemple). L’architecture à trois niveaux permet une grande
flexibilité, une sécurité accrue car la sécurité peut être définie indépendamment
pour chaque service et à chaque niveau, de meilleures performances, grâce au
partage des tâches entre les différents serveurs. De plus, dans la même approche,
on peut dire au vu de l'explosion d’Internet que le navigateur Web est le client
universel, puisque de plus en plus utilisé pour tout type de développement, ou
d'interface.
Ce chapitre a fait l’objet de la présentation et du choix de l’architecture à adopter.
Nous allons voir le chapitre suivant sur l’implémentation.
3.7. Implémentation
Nous allons faire la capture de l’interface de notre plateforme en montrant
la page de connexion et la page d’accueil.
~ 46 ~
3.7.2. Interface Accueil
~ 47 ~
CONCLUSION GENERALE
Au terme de notre réflexion, nous avons pu porter une étude sur la mise en
place d’une plateforme web de location et de vente de biens immobiliers en faisant
la présentation des cadres théorique et méthodologique, des différentes étapes de
l’analyse et de la conception ainsi que de la mise en œuvre. Notre sujet avait pour
ambition de savoir si l’informatisation de l’immobilier serait un atout majeur pour
un éventuel développement.
Cette étude nous a permis de mettre en place une application web sur la
location et la vente de biens immobiliers. Elle permettra de réduire le déplacement
pour rechercher des biens immobiliers, d’abaisser les coûts en sautant les
intermédiaires (courtiers) et surtout de participer au développement du secteur
immobilier dans un contexte entièrement soumis au numérique.
~ 48 ~
Bibliographie
I- Mémoires
II- Cours
M. Mallé NDIAYE : cours d’UML
~ 49 ~
Wébographie
https://www.techno-science.net/definition/739.html: 17/10/2022, 13:52
https://web.maths.unsw.edu.au/~lafaye/CCM/merise/concintro.htm: 17/10/2022,
14:24
https://www.universalis.fr/encyclopedie/systemes-informatiques-conception-
architecture-et-urbanisation-des-systemes-d-information/: 17/10/2022, 15:00
https://bbf.enssib.fr/consulter/bbf-1994-03-0068-002: 17/10/2022, 15:45
https://payfit.com/fr/fiches-pratiques/systeme-information/: 17/10/2022, 19:00
https://www.ibm.com/docs/fr/rsm/7.5.0?topic=diagrams-lifelines-in-uml:
19/10/2022, 14:42
https://laurent-audibert.developpez.com/Cours-UML/?page=diagrammes-
interaction: 19/10/2022, 18:39
https://laurent-audibert.developpez.com/Cours-UML/?page=diagramme-classes:
19/10/2022, 19:04
https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours01.html: 19/10/2022, 20:04
https://www.ibm.com/docs/fr/rsar/9.5?topic=diagrams-relationships-in-class:
19/10/2022, 21:00
~ 50 ~
Table des matières
DEDICACE ............................................................................................................ I
REMERCIEMENTS ............................................................................................ II
SOMMAIRE........................................................................................................ IV
GLOSSAIRE ......................................................................................................... V
Résumé ................................................................................................................. IX
Abstract.................................................................................................................. X
~ 51 ~
2.3.3. Rédaction du cahier de charges .................................................... 26
~ 52 ~
3.7. Implémentation ..................................................................................... 46
Bibliographie ........................................................................................................ 49
Wébographie ........................................................................................................ 50
~ 53 ~