Académique Documents
Professionnel Documents
Culture Documents
ISI
Mémoire de fin de cycle pour l’obtention de la licence
professionnelle
en Informatique Appliquée à la Gestion des Entreprises
(IAGE)
Année Académique
1 : 2020 -2021
A LA MEMOIRE DE
Tous ceux qui ont contribué à notre éducation, à notre formation et à notre réussite et
qui ne sont plus là malheureusement
i
DEDICACES
Au nom d’ALLAH le clément et le miséricordieux louange à ALLAH le tout puissant.
En guise de gratitude pour leur amour, leur patience, leur soutien, leur encouragement et leur
sacrifice, aucun mot, aucune dédicace ne pourrait exprimer notre respect, notre considération
ainsi que l’expression de notre profond amour, puisse Dieu vous accorder santé, bonheur et
longue vie afin que nous pussions un jour combler de joie vos vieux jours.
À mes frères et sœurs
Quand j'ai besoin de courage et de force c'est vers eux que je me tourne toujours. C'est cette
confiance aveugle qu'ils ont pour moi qui me motive, qui me pousse à toujours me surpasser
et à dépasser mes limites.
À tous les amis, que j’ai connus jusqu'à maintenant. Merci pour leur amour et leurs
encouragements.
À mes camarades de classe, en souvenir des années et les plus agréables moments que
nous avons partagé. Pour toute la complicité et l’entente qui nous unissent, ce travail
est un témoignage de mon attachement et de mon amour.
À toutes les autres personnes aussi qui de près ou de loin ne cessent de me soutenir et
de m'encourager.
ii
REMERCIEMENTS
Je rends grâce à Allah le tout puissant qui nous a permis de mener à bout ce travail qui a été
soumis à notre étude, ensuite nous adressons nos remerciements les plus chaleureux à :
Notre encadreur Mme DIAGNE Aicha, Ingénieur en génie logiciel, de par sa
disponibilité et ses conseils qu’il nous donne sans pour autant se lasser, merci pour
tout Mme.
L’ensemble du personnel du département Génie Informatique de l’ISI ayant participé
d'une manière ou d'une autre à notre formation de licence.
A la fin nos remerciements les plus sincères à toutes les personnes qui ont contribué de près
ou de loin à l'élaboration de ce mémoire ainsi qu'à la réussite de cette formidable année
Universitaire...
ii
AVANT-PROPOS
L'Institut Supérieur d'informatique (ISI) est un institut d'enseignement supérieur avec
une expérience de plus de dix ans dans la formation continue de type académique. ISI dispose
d'un bureau qui s'occupe des études de conception, d'expérimentation, de réalisation et de
conseil dans différents domaines. Le groupe ISI offre plusieurs formations et délivre les
diplômes suivants : DTS, LICENCE, MASTER et éventuellement le DOCTORAT. Parmi les
filières offertes par ISI, il y en a dans le domaine de l’informatique, des réseaux, de la gestion
et l’organisation des entreprises.
i
SOMMAIRE
Introduction générale....................................................................................................1
Chapitre 3 : Analyse...................................................................................................16
Chapitre 4 : Conception.............................................................................................35
Conclusion....................................................................................................................50
v
GLOSSAIRE
A.F : Approche fonctionnelle
v
LISTE DES FIGURES
Figure 1 : Organigramme de la structure..................................................................................................................5
v
LISTE DES TABLEAUX
Tableau 1 : Niveau d’analyse...................................................................................................11
v
RÉSUMÉ
Le secteur de l’immobilier au Sénégal est en pleine effervescence. En effet le Sénégal
est un pays où le potentiel de construction immobilière est immense car les surface à bâtir y
sont en grand nombre et encore inexploitées. Sous l’impulsion de grands travaux (autoroute,
nouvel aéroport) menés par le gouvernement pour désenclaver la capitale, et la volonté de ce
dernier à offrir un toit pour tous, le secteur immobilier connait une forte croissance. A fortiori,
ce secteur va connaitre des taux de croissance à deux chiffres pendant encore de nombreuses
années.
Cependant l’accès et l’ouverture de marché pour les propriétaires avec leurs biens, et
les clients pour trouver une bonne location restent toujours un problème. C’est dans ce
contexte s’est basé notre recherche en guise d’apporter une solution aux deux parties.
i
ABSTRACT
The real estate industry in Senegal is booming. Indeed Senegal is a country where the
potential of real estate construction is immense because the surface to be built there are in
great number and still unexploited. Under the impetus of major works (highway, new airport)
carried out by the government to open up the capital, and the latter's desire to provide a roof
for all, the real estate sector is experiencing strong growth. A fortiori, this sector will
experience double- digit growth rates for many years to come.
However, accessing and opening a market for homeowners with their property, and for
clients to find a good rental, is still a problem. It is in this context that our research was based
to find a solution for both parties.
To respond to the problem, we are setting up a platform allowing agents on the one
hand to safeguard their property and to monitor all activities concerning their properties. And
on the other hand, this platform will help customers to find a space for a purchase or for a
rental, according to their needs.
x
INTRODUCTION GENERALE
1
L’immobilier est connu pour être l’un des secteurs les plus rentables en matière
d’investissement. Cela est encore plus valable en Guinée avec une population d’environ 13
millions d’habitant et une croissance au rythme très soutenu de 2,5%/an qui caractérise une
forte demande d’agence immobilière notamment dans la capitale Conakry avec 2 317 376
habitants.
Par rapport à une étude de cas menée au sein de la structure, nous nous sommes posés
les questions suivantes : comment faire pour gérer les biens ? Comment faire pour gérer le
recouvrement des arriérés de paiement ? Comment gérer les propriétaires ? Comment gérer
les clients ?
C'est dans ce contexte que s'inscrit notre projet de mémoire de licence qui consiste à
mettre en place d’une application web de gestion immobilière afin de faciliter la gestion des
biens immobilier (Gérance, location et vente).
Le choix de ce sujet est nourri par les besoins présents dans le marché pour faciliter la
recherche de bien immobilier (immeuble, appartement, studio, entrepôt, terrain…) en fonction
des besoins (location, achat).
Notre plateforme devrait permettre à l’agence de pouvoir gérer les biens, les offres, les
facturations etc…mais aussi aux clients de pouvoir payer leurs factures en ligne. Elle pourrait
également permettre de garder une certaine traçabilité des transactions effectuées après les
opérations pour une transparence totale.
Le travail réalisé a été divisé en trois grandes parties. Dans la première partie, nous
présenterons le sujet, ensuite nous exposerons les résultats de nos recherches dans la seconde
et enfin une troisième partie sera consacrée à l’implémentation.
2
Première partie : CADRE THEORIQUE ET METHODOLOG
3
Dans le cadre de cette première partie intitulée CADRE THEORIQUE ET
METHODOLOGIQUE il s’agit de faire les points des travaux ayant fait l’objet d’étude sur
l’entreprise et en suite définir la méthodologie de l’étude. Cette partie comporte deux chapitres
: cadre théorique et cadre méthodologique.
1.1. Presentation
1.1.1. Presentation de la structure
MARLY-IMMO implantée en GUINEE-CONAKRY est une agence de gestion
immobilière, elle assure la gestion des biens immobiliers (Terrain, Studio, Emplacement,
Entrepôt, Appartement…). Elle dispose d’une équipe très qualifiée et professionnelle dans le
domaine mais aussi elle dispose des moins de déplacement pour assurer la mobilité des agents
sur terrain afin de garantir la bonne gérance en temps réel. L’agence MARLY-IMMO est
structurée comme suit.
4
DIRECTION
Service Gérance
Service Comptabilité Service Contentieux
& transaction
Commerciaux
La mutation des agences immobilières vers la digitalisation est au cœur de ce domaine afin de
rendre encore beaucoup plus facile la gestion des différents biens immobiliers.
1.1.2.2. Problématique
5
En guinée, avec la croissance démographique très élevée, les agences immobilières se
multiplient grâce à la forte demande de l’immobilier. Chaque agence utilise un système pour
assurer la bonne gestion de ces biens.
Les problèmes rencontrés sont d’une part la difficulté à trouver un système fiable qui
permettra de gérer efficacement les biens et patrimoines immobiliers des propriétaires et
d’autre part faciliter l’accès à l’information sur les biens disponibles pour les clients désireux.
L’agence immobilière MARLY-IMMO que nous avons ici choisie, pour faire la publicité des
biens qu’elle gère utilise beaucoup plus les panneaux publicitaires parfois détruite par des
manifestant ou des calamité naturelle, catalogue et autre.
En général certaines agences ont une clientèle étrangère ; il y a donc nécessité d’avoir
un système d’informations valide et sécuritaire afin d’étendre les services à ces clients.
Ainsi, compte tenu de la situation citée ci-haut, nous sommes parvenus à nous poser
les questions suivantes :
- L’agence MARLY-IMMO se rend-elle comptes des avantages de l’implantation d’un
site web à son sein pour améliorer le mode de diffusion des informations à la
population ?
- Comment l’agence MARLY-IMMO pourrait-elle mettre à la portée du public toutes
les informations concernant les biens disponibles soit pour la location, soit pour la
vente sans contrainte de distance et du temps ?
- La conception d’une application web pour l’agence MARLY-IMMO 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 ?
La réalisation d’une telle plateforme nous permet d’atteindre des objectifs secondaires
suivants :
6
Avoir une vision globale de la situation des biens : l’application web doit permettre à
l’agence de connaitre à tout moment la liste des biens en vente, en location ainsi que
la liste des offres concernant les biens publiés.
Suivre la situation des locataires sur le respect ou le non-respect de la règlementation :
l’application devrait permettre à l’agence d’avoir quotidiennement la liste des
locataires retardataires pour le payement du loyer.
Décharger le personnel des tâches lourdes et répétitives tout en offrant le meilleur
service aux utilisateurs.
Proposer une plateforme assez dynamique et adaptable au niveau de la gestion des
biens pour pouvoir satisfaire aux besoins futurs de l’agence.
Faciliter les tâches des insertions pour remplir les données nécessaires, comme par
exemple, des informations complémentaires nécessaires relatives aux biens ou au
profil client.
Doter le nouveau système de plusieurs critères de recherches afin que l’utilisateur
puisse choisir celle qui convient au mieux à ses besoins.
Disposer d’une vue généraliste soit sur les biens à vendre, soit sur les biens à louer en
consultant la base de données afin de choisir l’annonce la plus pertinente qui répond
au mieux aux besoins du client.
7
Chapitre 2: CADRE METHODOLOGIQUE
Dans ce chapitre nous allons présenter la méthodologie adoptée pour la mise en place
de l’application de l’agence MARLY-IMMO. Ainsi cette partie comportera trois sections qui
seront : Approche fonctionnelle, Approche orientée objet et choix approche.
Une méthode, dans le contexte informatique, peut être définie comme une démarche
fournissant une méthodologie et des notations standards qui aident à concevoir des logiciels
de
8
qualité. Une méthode d’analyse assure donc la pertinence, la représentativité et la
hiérarchisation des besoins.
A qui est destinée l’application ? Quelles sont les caractéristiques des utilisateurs finaux
? Quels objectifs professionnels cette application va apporter aux utilisateurs ? Dans quel
contexte l’utilisation de cette application va-t-elle s’inscrire ? De quelle façon, ces utilisateurs
parviennent-ils à réaliser ses objectifs ? Dans cette partie, nous allons présenter deux outils de
modélisation à savoir MERISE et UML.
2.2.1. MERISE
Merise propose une méthode de conception et de développement de Systèmes
d'informations complète, détaillée, en grande partie formalisée, qui garantit (en principe) une
informatisation réussie. Elle fut créée en 1978 sous l'impulsion du Ministère français de la
Recherche et de l'industrie. Dès 1980, c'est devenu un standard dans le domaine des systèmes
intégrés de gestion. Ce système existe seulement dans les pays francophones. Le but de cette
méthode est d'arriver à concevoir un système d'information. La méthode MERISE est basée
sur la séparation des données et des traitements à effectuer en plusieurs modèles conceptuels
et physiques. C'est d'ailleurs son point fort.
9
Figure 2 : Cycle d’abstraction
Ainsi, la méthode MERISE s’appuie sur un certain nombre d’outils qui modélisent le
système selon les niveaux d’analyse (abstraction) ou degré d’invariance :
LE NIVEAU LOGIQUE : Ce niveau décrit la nature des ressources qui sont utilisées pour
supporter la description statique et dynamique du système d'information. Ces ressources
peuvent être humaines et/ou matérielles et logicielles. Il s'attache à préciser comment on
organise les données de l'entreprise ou d'une organisation.
LE NIVEAU PHYSIQUE : permet d'établir la manière concrète dont le système sera mis en
place. Il représente le résultat informatique, il dépend des logiciels de développement
nécessaires à la programmation et la manipulation des données.
Modèle Conceptuel de Données (MCD) : décrit la signification des données sur lesquelles
reposent le système d'information et les structures.
1
Modèle conceptuel de traitements (MCT) : formalise les activités du domaine étudié.
Modèle Logique de Données (MLD) : fournit une description des données tenant compte des
moyens informatiques mis en œuvre.
Avantages
Pour de petites bases de données, MERISE est généralement l’une des meilleures
solutions du point de vue de l’architecture. Un des avantages de MERISE est quasiment de
pouvoir être utilisé par un non informaticien. Ce qui permet de faire évoluer en temps réel la
structure informatique d’une entreprise à mesure que celle-ci évolue.
Inconvénients
2.2.2. UML
UML (en anglais Unified Modeling Language ou « langage de modélisation unifié »)
est un langage de modélisation graphique à base de pictogrammes. Il est apparu dans le
monde du génie logiciel, dans le cadre de la « conception orientée objet ». Couramment
utilisé dans les projets logiciels, il peut être appliqué à toutes sortes de systèmes ne se limitant
pas au domaine
1
informatique. UML est l’accomplissement 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 défini par l’Object
Management Group (OMG). La dernière version diffusée par l’OMG est UML 2.5.1.
l'utilisateur,
Avantage
1
Étant donné qu’il est le fruit de la fusion de plusieurs méthodes objets, il utilise
l’approche objet en présentant un langage de description universel. Il permet grâce à un
ensemble de diagrammes très explicites, de représenter l’architecture et le fonctionnement des
systèmes informatiques complexes en tenant compte des relations entre les concepts utilisés et
l’implémentation qui en découle.
Inconvénients
UML, contrairement à son prédécesseur MERISE qui pourtant est utilisée de nos
jours, donne un sens intéressant à l'approche objet et couvre de plus tout le cycle de
réalisation du logiciel. UML est avant tout un support de communication performant, qui
facilite la représentation et la compréhension de solutions objet.
1
et les incompréhensions. Son indépendance par rapport aux langages de programmation et aux
domaines d'application ainsi aux processus, en fait un langage universel. UML est donc bien
plus qu'un simple outil qui permet de "dessiner" des représentations graphiques... Il permet
également de parler un langage commun, normalisé mais accessible, car visuel.
C’est pourquoi UML a été choisi comme outil de modélisation de notre système.
1
Deuxième partie : ANALYSE ET CONCEPTION
1
L’analyse et la conception consistent la base même de la future plateforme, c’est une
des phases primordiales dans la démarche de la réalisation d’un projet.
Chapitre 3: ANALYSE
L’analyse est un procédé qui a pour objectif de permettre de formaliser les étapes
préliminaires du développement d’un système afin de rentre ce développement plus fidèle aux
besoins du client. Ainsi cette partie comportera trois sections qui seront : démarche de
modélisation : UML, Mise en œuvre UML et les processus métier.
Le directeur
Le responsable gérance et transaction
Le responsable comptabilité
Le responsable travaux
1
Client
Fiabilité : L’application doit fonctionner de façon cohérente sans erreurs et doit être
satisfaisante.
Les ambigüités : Les ambigüités doivent être signalées par des messages d’erreurs bien
organisés pour bien guider l’utilisateur et le familiariser avec notre plateforme.
Ergonomie et bonne Interface : L’application doit être adaptée à l’utilisateur sans qu’il ne
fournisse aucun effort (utilisation claire et facile) du point de vue navigation entre les
différentes pages, couleurs et mise en textes utilisées.
Sécurité : Notre solution doit respecter surtout la confidentialité des données personnelles des
1
utilisateurs qui reste l’une des contraintes les plus importantes dans les plateformes de gestion
immobilière.
1
Cas d’utilisation Directeur
1
Cas d’utilisation responsable comptabilité
2
Cas d’utilisation client
2
Cas d’utilisation visiteur
2
Dans un souci de simplification, on représente l'acteur principal à gauche du
diagramme, et les acteurs secondaires éventuels à droite du système. Le but étant de décrire
comment se déroulent les actions entre les acteurs ou objets.
Séquence Authentification
2
Séquence Ajouter bien
2
Séquence enregistrement d’une location
2
Séquence ajout d’un rapport d’entretient
2
programmation particulier. Nous avons élaboré les diagrammes de classes pour chaque
utilisateur du système.
a) Concepts et formalismes
Classe
Une classe est une description abstraite d’un ensemble d’objets ayant une
sémantique, des attributs, des méthodes, et des relations en commun. Elle spécifie l’ensemble
des caractéristiques qui composent des objets de mêmes types. Une classe est composée de
nom, d’attributs, et d’opérations. Selon l’avancement de la modélisation ces informations ne
sont pas forcément connues.
Attribut
Propriété nommée d’une classe qui décrit un domaine de valeurs possibles partagé par
tous les objets e la classe. A tout instant, chaque objet d’une classe porte une valeur spécifique
pour chaque attribut de sa classe. Les valeurs des attributs d’un objet représentent son état.
Association
Une association est une relation générique entre deux classes ? Elle est modélisée par
une ligne reliant les deux classes. Cette ligne peut être qualifiée avec le type de relation, et
peut également comporter des règles e multiplicité (par exemple un à un, un à plusieurs,
plusieurs à plusieurs) pour la relation.
Opération
Représente un service, traitement qui peut être demandé à n’importe quel objet e la
classe.
Une opération est partagée par tous les objets de la classe. L’utilisation d’une
opération sur un objet de la classe modifiera l’état de l’objet. La meilleure façon d’identifier
les opérations est d’étudier la dynamique de l’application soit les interactions entre les objets.
Composition
2
Si une classe ne peut pas exister par elle-même, mais doit être un membre d’une autre
classe, alors elle possède une relation de composition avec la classe contenante. Une relation
de composition est indiquée par une ligne avec un ‘‘diamant’’ rempli.
Agrégation
Les agrégations indiquent une relation de contenant contenu. Elle est décrite par une
relation possède. Une relation d’agrégation est représentée par une ligne avec un ‘‘diamant’’
creux.
Dépendance
Quand une classe utilise une autre classe, par exemple comme membre ou comme
paramètre d’une de ces fonctions, elle ‘‘dépend’’ dépend ainsi de cette classe. Une relation de
dépendance est représentée par une flèche en pointillée.
Généralisation
2
Cas gestion de décisions
2
Cas gérance transaction
3
Cas service travaux
3
Cas service comptabilité
3
Cas client
3
Diagramme de classe global
3
Chapitre 4 : CONCEPTION
4.1. Diagramme de Déploiement
3
Troisième partie : MISE EN OEUVRE ET POLITIQUE DE
3
Chapitre 5 : Mise en œuvre de la solution (réalisation)
5.1. Outils de développement
5.1.1. Etude comparative des technologies
a. Comparatifs de quelques langages de programmation
Même s’il existe un nombre important de langages de programmation qui sont très
célèbres et très puissants le choix d’un langage de programmation pour un projet ne doit pas
se faire de façon arbitraire. En effet c’est la nature du projet qui doit guider notre choix car
chaque langage à des forces et des limites. Ainsi il faut faire une étude sur les langages de
programmation existant afin de choisir celui qui est le plus adéquat à notre projet.
Java
Java est un langage de programmation et une plate-forme informatique qui ont été
créés par Sun Microsystems en 1995. Beaucoup d'applications et de sites Web ne fonctionne
pas si Java n'est pas installé et leur nombre ne cesse de croître chaque jour. Java est rapide,
sécurisé et fiable. Des ordinateurs portables aux centres de données, des consoles de jeux aux
superordinateurs scientifiques, des téléphones portables à Internet, la technologie Java est
présente sur tous les fronts ! C’est un langage de programmation de haut niveau il est
fortement typé. Cependant java est un langage de haut niveau par conséquence l’apprentissage
peut prendre du temps en plus pour qu’un programme java marche il faut préparer la machine
(ajouter un jdk par exemple) en plus java est un langage compilé s’il y’a un petit problème
c’est tout le programme qui s’arrête de marcher c’est la loi du tout ou rien.
PHP
PHP a suivi un long chemin depuis sa naissance au milieu de l'année 1990. Depuis ses
débuts modestes, jusqu'à devenir l'un des plus éminents langages de programmation pour le
web, l'évolution de PHP est un véritable conte de fées technologique. Créé en 1994 par
Rasmus Lerdorf pour suivre les traces des personnes qui consultaient son CV. Un an plus tard
il décida de publier son code pour le publique PHP s’appelais à l’époque PHP/FI (Personal
Home Page Tools/Form Interpreter). En 1997, deux étudiants, Andi Gutmans et Zeev Suraski,
redéveloppèrent le cœur de PHP/FI. Ce travail aboutit un an plus tard à la version 3 de PHP,
devenu alors PHP : Hypertext Preprocessor... Depuis PHP ne cesse d’évoluer actuellement on
3
est à la version PHP 7.1.8 et elle fait partie des langages de programmation les plus utilisé
pour la production de pages web dynamiques. PHP a permis de créer un grand nombre de
sites web célèbres, comme Facebook, Wikipédia, etc. Il est considéré comme une des bases de la
création de sites web dits dynamiques mais également des applications web. Néanmoins PHP présente
quelques inconvénients comme le fait d'être lourd du fait que les scripts doivent être lus à chaque
appel de page.
C#
C# est un langage élégant et de type sécurisé orienté objet qui permet de créer toute une
gamme d'applications sûres et solides exécutées sur .NET Framework. On peut utiliser C# pour créer
des applications clientes Windows, services Web XML, composants distribués, applications client-
serveur, applications de base de données et bien plus encore. Visual C# fournit un éditeur de code
avancé, des concepteurs d’interface utilisateur pratiques, un débogueur intégré et de nombreux autres
outils pour faciliter le développement d’applications basées sur le langage C# et le .NET Framework.
JavaScript
JavaScript souvent abrégé en <> 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 tels que Node.js etc... Le code JavaScript est interprété
ou compilé à la volée JIT1 (just-in-time compilation). C'est un langage à objets utilisant le concept de
prototype, disposant d'un typage faible et dynamique qui permet de programmer suivant plusieurs
pratiques de programmation : fonctionnelle, impérative et orientée objet.
Python
Python fait partie des langages script interprétés contrairement à Java, au C/C++ qui sont des
langages compilés. Ce qui lui permet d’être plus rapide au développement. Python est portable entre
les différentes variantes d’Unix ainsi que sur les OS propriétaires comme Mac OS, BEOs, et les
différentes versions de Windows. Au-delà de la multitude de librairies et de modules déjà existante, il
est possible d’en développer pour ses propres besoins avec python. La syntaxe de Python est très
simple et, combinée à de nombreux types de données évolués, ce qui conduit à des programmes à la
fois très compacts et très lisibles.
Comparaison
Nous allons faire une comparaison entre les langages avec l’aide d’un paradigme de
programmation, qui est une façon d'approcher la programmation informatique et de traiter les
solutions aux problèmes et leur formulation dans un langage de programmation approprié.
3
- La programmation générique : utilise des algorithmes écrits en termes à être déterminé
plus tard, les types qui sont ensuite instancié en tant que de besoin pour des types
spécifiques fournis en tant que paramètres ;
- La programmation déclarative : décrit ce qu'un calcul doit effectuer, sans spécification
détaillée des modifications de l’état ;
- La programmation fonctionnelle : les utilisations de l'évaluation de fonctions
mathématiques et évite d'état et de données mutable ;
- La programmation orientée objet : utilise des structures de données composées de
champs de données et les méthodes avec leurs interactions (les objets) pour la
conception de programmes ;
- La programmation simultanée : avoir des éléments de langage pour la concurrence, il
peut s'agir de multitâches, le soutien pour le calcul distribué, le passage des messages,
des ressources partagées (y compris de la mémoire partagée), ou des contrats à terme.
Python
Oui Non Partiel Oui Oui
Java
Oui Non Oui Oui Oui
JavaScript
Non Non Oui Oui Partiel
PHP
Non Non Oui Oui Non
C#
Oui Non Oui Oui Oui
3
données. Il existe plusieurs SGBD mais dans ce document nous allons étudie Oracle et MySQL
qui font partie des SGBD les plus utilisés.
Oracle
Oracle Database est un produit d’Oracle Corporation une entreprise américaine créée
en 1977 et un des SGDB les plus célèbre au monde. Oracle est très puissant et très fiable. Les
SGBD d’oracle comportent des fonctions d’audit évolué en plus si on utilise Oracle on
bénéficie d’un Assistants performants via Oracle Manager Server, possibilité de gérer en
interne des tâches et des alarmes mais aussi il a des Accès aux données système via des vues,
bien plus aisément manipulable que des procédures stockées.
Développé par Oracle Corporation
Avantages
- Oracle peut nous aider à créer des applications de base de données personnalisées.
- Fiabilité ;
- Satisfaction de la clientèle ;
- Capable de supporter un grand nombre de données par instance ;
- Extraction des données ;
- Fonctionnalité sur toutes les applications
- Flashback technologie qui permet de récupérer toutes les données
supprimées ouperdues ;
4
- Procédure stockes en PL/SQL (Langage Propriétaire Oracle orienté ADA)
ou en java(depuis l’avènement du 8.7.1) apparait comme utile pour les
équipes de développement ;
- Ordonnanceur intégré ;
4
MySQL est système de gestion de base de données relationnelle (SGBDR). C’est-à-
dire un logiciel qui permet de gérer des bases de données, et donc gérer de grosses quantités
d’information. Il utilise pour cela le langage SQL. Il s’agit d’un des SGBDR les plus connus et les plus
utilisés (Wikipédia et adobe utilisent par exemple MySQL).
MySQL peut donc s’utiliser seul, mais la plupart du temps combiné à un autre langage de
programmation : PHP, Java, Python, C++, et beaucoup d’autres.
Avantage
- Solution très courante en hébergement public ;
- Rapide et Facile à utiliser ;
- Très bonne intégration dans l’environnement Apache ;
- Open source, bien que les critères de licence soient de plus en plus difficiles à supporter
API diverse ;
Connexion et sécurité ;
Version cluster depuis la version 4 ;
Ordonnanceur dès la version 5.1 ;
Plusieurs moteurs de stockage adaptés à différentes problématiques,
configurable auniveau table.
Inconvénients
Ne supporte qu’une faible partie des standards SQL-92 ;
Support incomplet de triggers et procédures stockées ;
Gestion de transaction avec les moteurs Falcon ou InnoDB uniquement ;
Assez peu de richesse fonctionnelle ;
Manque de robustesse avec de fortes volumétries ;
Pas d’héritage de table ;
Pas de vue matérialisée ;
Pas de sauvegarde constante à chaud ;
Cluster par clonage de base impact prépondérant sur la volumétrie.
c. Comparatifs de quelques framework
Il existe plusieurs Framework PHP dont au moins plus d’une dizaine sont réputés
comme étant des Framework très puissants et très célèbres. On peut en citer : Zend, CakePHP,
4
CodeIgniter, Laravel, Symfony…
La liste étant très longue nous avons décidé de faire une étude sur les trois premiers et
ensuite choisir celui qui semble être plus adéquate pour notre projet.
Le framework Laravel
Laravel est un Framework PHP qui a été créé par Taylor Otwel, open-source écrit en
PHP respectant le principe de MVC entièrement développé en programmation orientée objet
qui initie une nouvelle façon de concevoir un Framework en utilisant ce qui existe de mieux
pour chaque fonctionnalité. Il a été, en ce sens, construit en se basant sur Symfony, un autre
Framework PHP reconnu mondialement pour sa robustesse. De fait, il embarque des briques
logiciels testés et approuvés par une grande communauté permettant d’améliorer la rapidité
des développements et de la robustesse de l’application.
Le framework Symfony
Développé en PHP, sous licence MIT, Symfony est reconnu comme le framework
PHP open source leader sur le marché. Aujourd'hui, beaucoup d'entreprises dans le domaine
de l'Internet recrutent des développeurs capables de travailler sous ce Framework. Ces
développeurs pourront ainsi se greffer aux projets de l'entreprise très rapidement, car ils en
connaîtront déjà les grandes lignes. Lancé il y a plus d’une dizaine d’années par l’éditeur
français SensioLabs, il a aujourd’hui acquis une très large popularité et bénéficie d’une
communauté internationale très active. Il existe dans Symfony un composant qui gère les
formulaires HTML : leur affichage, leur validation, etc. ainsi le développeur qui l'utilise se
concentre sur l'essentiel dans son application : chaque formulaire effectue une action, et c'est
cette action qui est importante, pas les formulaires.
Le framework Codeigniter
CodeIgniter est issue de la société EllisLab3 et a été conçu par Rick Ellis, PDG de
l’entreprise. CodeIgniter est un dérivé de leur principal projet : ExpressionEngine4 . Il en est
très largement inspiré et profite de l'expérience acquise sur ce projet. La première version de
CodeIgniter a été publiée le 28 février 2006. Une version majeure (2.0.0) est sortie le 28
janvier 2011, symbolisée principalement par l'abandon de l'utilisation de PHP 4 au profit de
PHP 5. Codeigniter est un environnement cadre de développement d'application, un ensemble
d'outils
4
permettant de structurer et de construire des sites Web en utilisant PHP. C’est un Framework
très célèbre et très facile à apprendre. Contrairement à la plupart des Framework, codeigniter
n’est pas une usine à gaz : il a été conçu dans le but de ne fournir que le strict minimum. Tout
le reste est entièrement optionnel (même les bibliothèques gérant les bases de données et les
sessions le sont).
PHP
PHP a été créé en 1994 par Rasmus Lerdorf. C'était à l'origine une bibliothèque dont il
se servait pour conserver une trace des visiteurs qui venaient consulter son CV sur son site
Web. En 1997, deux étudiants, Andi Gutmans et Zeev Suraski, redéveloppèrent le coeur de
PHP. La version 5 introduit la programmation orientée objet. Le PHP est à l'origine un langage
purement destiné au web. Contrairement à Java et à Dot Net dont les codes sont d'abord
précompilés puis s'exécutent sur une machine virtuelle, le PHP est interprété par le serveur sur
lequel il s'exécute. Un même code PHP est donc capable de s'exécuter sur n'importe quel
serveur, mais il n'est pas
« optimisé ». Le serveur réalise cette opération à la première utilisation de l'application.
Concrètement, le PHP cumule deux avantages majeurs : Il apparaît que le PHP est bien plus
performant que JAVA. Bertrand Bigay PDG de Cityvox, explique que Le Monde et TF1 ont
adopté le PHP. Comparant les applications de gestion de contenu « ils ont calculé qu'une page
s'affiche douze fois plus vite en PHP ». L'autre force de PHP c'est LAMP (Linux Apache
MySQL PHP). Ces quatre lettres désignent quatre composants libres suffisant pour bénéficier
d'un serveur. Là où Windows, IIS, SQL Serveur sont des logiciels propriétaires payants et
chers. Le monde libre offre une alternative gratuite. Et il ne faut pas croire que gratuit est
forcément moins bien. Apache est aujourd'hui le serveur majoritairement utilisé dans le
monde.
4
Contrairement aux
4
CGI, les scripts PHP sont donc exécutés par le serveur web, sans ressources supplémentaires.
Pour des sites très fréquentés, le PHP s’avère plus performant que l’ASP (mais la différence
est imperceptible pour un site avec moins de 2 millions de pages vues par mois).
Le PHP sait communiquer avec presque tous les SGBD de la création (Oracle, MySQL, DB2,
Informix, Ingres, PostgreSQL, SQL Server, Access etc.…). Les plateformes Linux/Apache/PHP sont
d’une très grande stabilité (sauf mauvaise config à l’origine). Un site peut tourner pendant des mois et
des mois sans avoir besoin d’un reboot... Appréciable pour les sites d’e-commerce ou les sites
boursiers (ces derniers choisissent de plus en plus le PHP, ce n’est pas un hasard) pour lesquels
une panne d’une heure peut coûter des millions... Aux instructions de bases du PHP,
s’ajoutent une foule de fonctions, couvrant tous les besoins imaginables pour un webmaster :
applications e- commerce, génération de PDF, création d’images à la volée, parsing XML,
programmation COM, compression/décompression, statistiques, cryptologie, génération
d’email, gestion d’annuaires LDAP etc… Pour le cas, fort improbable, où il resterait quelque
chose à inventer, vous pourrez, grâce à une API très stable et bien faite, programmer vos
propres modules d’extension. Un atout majeur, et qui achève de convaincre nombre
d’utilisateurs : le PHP, élaboré par des pionniers de l’Open Source, bénéficie d’une énorme
communauté d’utilisateurs, qui s’entraident au sein de nombreux forums (dont celui-ci),
mettent à disposition des scripts où des applications complètes en Open Source.
MYSQL
Pour notre travail nous avons choisi le SGBD MySQL. MySQL est un SGBD gratuit,
simple à utiliser et facilite d’hébergement. En effet la mise en place d’un serveur supportant
MySQL est simple, car seul un serveur apache suffit. De ce fait presque tous les hébergeurs
web offrent un hébergement MySQL.
4
⮚ Framework
Nous avons choisi Symfony comme framework parce qu’il est un puissant framework
PHP utilisé pour développer des applications web ou des sites web complexes, voire haut de
gamme. Relativement simple d’accès, Symfony est un ensemble de composants (ou «
bibliothèques ») qui facilitent le développement web en réduisant de façon considérable le
temps et l’effort requis pour créer des composants génériques.
Java
SQL server Symfony ✔ UML ✔
JavaScript
Oracle Codeigniter
PHP
✔
C#
4
code afin d'afficher les classes, les méthodes et les variables très rapidement. Pour une
meilleure navigation, l’utilisation des fonctionnalités de recherche avancée est disponible.
PHPStorm propose également une console SSH, des outils de contrôle à distance et
plusieurs framework PHP. Le logiciel bénéficie aussi du support de SQL, d'un terminal et
d'un système de contrôle de versions. Des fonctions de débogage et de test donnent les
moyens aux développeurs de configurer au mieux leurs applications.
Cet éditeur de logiciels s’est tout d’abord fait connaître dans le monde Java avec son
premier produit, l’EDI IntelliJ IDEA. PHPStorm reprend l’interface et les fonctionnalités
d’IntelliJ pour les adapter au langage PHP.
⮚ STARTUML
Robuste, complet et gratuit StarUML est un outil spécialisé dans la modélisation UML
pratique dans le domaine du développement d'applications. Un logiciel complet pour les
utilisateurs aguerris dans le développement d'applications.
StarUML est un logiciel de modélisation UML, cédé comme open source par son
éditeur, à la fin de son exploitation commerciale, sous une licence modifiée de GNU GPL.
StarUML gère la plupart des diagrammes spécifiés dans la norme UML 2.0.
StarUML est écrit en Delphi, et dépend de composants Delphi propriétaires (non open-
source). StarUML 2.8.1 est la version que nous avons utilisée.
⮚ XAMPP
XAMPP est un ensemble de logiciels permettant de facilement créer une interface web
interagissant avec une base de données SQL !
4
M pour MySQL
P pour PHP
P pour Perl
Architecture un tiers
4
Architecture deux tiers
Aussi appelé l’architecture « client-serveur » est assez simple. Vous avez d’un côté le
client et de l’autre le serveur. Ce genre d’architecture peut se faire sur tout type d’architecture
matérielles interconnectées. Concrètement, comment ça fonctionnement ? Le client demande
un service au serveur comme par exemple la page contact.html, le serveur reçoit cette requête
http, il effectue un traitement, et renvoie la ressource demandée par le client. Les avantages
d’une architecture client-serveur c’est que tout d’abord les ressources sont centralisées sur le
serveur. Il est donc plus simple de gérer les ressources communes aux utilisateurs comme la
base de données par exemple. Ensuite, cette architecture est plus sécurisée étant donné que le
client dispose de moins de point d’entrée pour accéder aux données.
Architecture trois-tiers
Dans l’architecture 3-tiers, un nouveau niveau fait son apparition. En effet, nous avons
toujours le niveau 1 qui est le client. Le client est très léger étant donné qu’il n’a aucun rôle de
5
traitement. Au niveau 2 nous avons le serveur d’application et enfin, au dernier niveau le
serveur de base de données. Les points importants d’une application 3-tiers :
Les avantages d’une architecture 3-tiers sont nombreux. Tout d’abord cette
architecture étant plus divisé permet d’avoir du point de vue du développement, une
spécialisation des développeurs selon le niveau de l’application (un développeur front-end,
back-end…)
Et enfin, cette architecture offre une flexibilité beaucoup plus importante que
l’architecture 2- tiers. En effet, la portabilité du tiers serveur permet d'envisager une allocation
et ou modification dynamique aux grés des besoins évolutifs au sein d'une entreprise.
Pour nous utiliser une architecture à 3 niveaux est beaucoup plus propre. Cela permet
de diviser les tâches et par conséquent d’avoir des développeurs spécialisés sur un des trois
niveaux. De plus, la flexibilité qu’offre ce genre d’infrastructure est à prendre en
considération surtout si vous travaillez sur un projet qui peut être amenée à évoluer.
5
5.4. Server de base de données et server web
5.4.1. Server de base de données
Un serveur de base de données est un système informatique qui fournit aux autres
ordinateurs des services liés à l’accès aux données d’une base de données et à leur extraction.
L'accès au serveur de base de données peut s'effectuer via un utilisateur principal exécutant
localement la machine d'un utilisateur (phpMyAdmin, par exemple) ou un utilisateur principal
s'exécutant sur le serveur de base de données lui-même, auquel le Shell distant a accès. Une
fois les informations de la base de données récupérées, elles sont transmises à l'utilisateur qui
demande les données. De nombreuses entreprises utilisent un serveur de base de données pour
le stockage. Les utilisateurs peuvent accéder aux données en exécutant une requête à l’aide
d'un langage de requête spécifique à la base de données. Par exemple, SQL est un bon
exemple de langage de requête.
5
des images, des feuilles de style, des tests, etc. Outre un serveur HTTP, un serveur Web prend
également en charge les protocoles SMTP (protocole de transfert de courrier simple) et FTP
(protocole de transfert de fichier) pour l'envoi par courrier électronique et le transfert de
C’est à partir de cette page que l’utilisateur saisit son adresse mail et son mot de passe.
5
Page des offres de location
C’est à partir de cette page que l’utilisateur (visiteur, client, personnel) peut visualiser les
offres de location.
5
Page Gestion clients
5
5.6. Politique de sécurité informatique
La Sécurité des Systèmes d’Informations (SSI) est aujourd’hui un sujet important
parce que le système d’information (SI) est pour beaucoup d’entreprises un élément
absolument vital. Ainsi, la politique de sécurité informatique est un des éléments de la
politique de sécurité du système d'information. Elle est donc, de la même manière,
intrinsèquement liée à la sécurité de l'information. Elle définit les objectifs de sécurité des
systèmes informatiques d'une organisation.
La sécurité informatique repose sur une bonne connaissance des règles. Tout
utilisateur est responsable de son usage des ressources informatiques et du réseau auxquels il
a accès. Il a aussi la charge, à son niveau, de contribuer à la sécurité générale et aussi à celle
de son entité. L’utilisation de ces ressources doit être rationnelle et honnête afin d’en éviter la
saturation ou le détournement à des fins personnelles. En particulier
L’injection de données est une technique consistant à insérer des données spécialement
formées en entrée d’une fonction, d’un programme ou d’un script afin de les détourner de leur
fonction d’origine (exemple : modification de base de données, récupération d’informations
5
sensibles, etc.). C'est donc la disponibilité, l’intégrité et la confidentialité des données qui
peuvent ne plus être assurées.
La sécurité informatique, d'une manière générale, consiste à assurer que les ressources
matérielles ou logicielles d'une organisation sont uniquement utilisées dans le cadre prévu. La
sécurité informatique vise généralement cinq principaux objectifs :
❖ L'intégrité, c'est-à-dire garantir que les données sont bien celles que l'on croit être ;
❖ La confidentialité, consistant à assurer que seules les personnes autorisées aient accès
aux ressources échangées ;
❖ La disponibilité, permettant de maintenir le bon fonctionnement du système
d'information ;
❖ Le non répudiation, permettant de garantir qu'une transaction ne peut être niée ;
❖ L'authentification, consistant à assurer que seules les personnes autorisées aient accès
aux ressources.
5
Ces pratiques de sécurité doivent être mises en place d’une manière complémentaire et
cohérente. La sécurité doit être prise en compte tout au long du cycle de vie du projet. Les
bonnes pratiques de sécurité ci-après doivent être mises en place tout au long du
développement du projet :
5
CONCLUSION GÉNÉRALE
Au cours de ce mémoire, nous avons présenté les différentes étapes de la conception et
la réalisation de notre plateforme de mise en place d’un système de gestion immobilière d’une
agence de gestion immobilière.
Afin de satisfaire les besoins des utilisateurs nous avons commencé la conception en
utilisant le formalisme UML ensuite l'implémentation des requêtes SQL pour la manipulation
des données et enfin l’utilisation du Framework symfony sur PhpStorm.
5
BIBLIOGRAPHIE
[1] Uml2 par la pratique, Auteur(s) : Pascal Roques, Éditeur(s) : Eyrolles, Collection :
Noire, Date de parution : 14/09/2006 (5e édition).
6
WEBOGRAPHIE
[1] https://fr.m.wikipedia.org/wiki/Diagramme_des_cas_d%27utilisation visité le 20/08/2021
[2] https://www.developpez.com/actu/185087/Quels-sont-les-langages-de-programmationlesplus-
utilises-par-les-developpeurs-Une-analyse-des-evenements-publics-sur-GitHub/ , visité le 30/08/2021
[5] https://www.developpez.net/forums/d712414/bases-donnees/ms-
sqlserver/avantagesinconvenients-mssql-server/ visité le 02/10/2021
[7] https://www.lebigdata.fr/base-de-donneesvisitéle02/06/2019
[14] https://www.developpez.com/actu/185087/Quels-sont-les-langages-de-programmationlesplus-
utilises-par-les-developpeurs-Une-analyse-des-evenements-publics-sur-GitHub/ visité le 08/10/2021
[15] http://remy-manu.no-ip.biz/UML/Cours/coursUML5.pdf,visitéle10/10/2021
[16] https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours05.html,visitéle10/10/2021
[17] https://fr.wikiversity.org/wiki/Mod%C3%A9lisation_UML/Le_diagramme_d%27activit%C
3%A9, visité le 12/10/2021
6
TABLE DES MATIERES
A LA MEMOIRE DE.................................................................................................................i
DEDICACES............................................................................................................................ii
REMERCIEMENTS................................................................................................................iii
AVANT-PROPOS....................................................................................................................iv
SOMMAIRE..............................................................................................................................v
GLOSSAIRE............................................................................................................................vi
RÉSUMÉ..................................................................................................................................ix
ABSTRACT..............................................................................................................................x
1.1. Presentation....................................................................................................................4
1.1.2.1. Contexte..................................................................................................................5
1.1.2.2. Problématique.........................................................................................................5
2.2.1. MERISE......................................................................................................................9
6
2.2.2. UML.........................................................................................................................11
Chapitre 3: ANALYSE............................................................................................................16
Chapitre 4 : CONCEPTION....................................................................................................35
6
5.6.1. Les causes de l’insécurité..........................................................................................55
CONCLUSION GÉNÉRALE..................................................................................................58
BIBLIOGRAPHIE...................................................................................................................59
WEBOGRAPHIE....................................................................................................................60