Template _rapport_pfe - new

47
PAGE DE GARDE PAGE DE GARDE

Transcript of Template _rapport_pfe - new

Page 1: Template  _rapport_pfe - new

PAGE DE GARDEPAGE DE GARDE

Page 2: Template  _rapport_pfe - new

ANNEE : … THEME : Réseautique/SI PFE N° : …

Titre : …

Auteurs: Nom1 Prénom1/ Nom2 Prénom2

Etablissement Universitaire: ESTI

Encadrant : Nom Prénom

Organisme PFE: Société …

Encadrant : Nom Prénom

RÉSUMÉ : …

….

MOTS CLÉS : mot1 / mot2/..etc.

ABSRACT : …

….

KEY-WORDS : word1 / word2/..etc.

Page 3: Template  _rapport_pfe - new

Dédicaces

Les dédicaces …

Page 4: Template  _rapport_pfe - new

Remerciement

Les remerciements …

Page 5: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Table des matières

Introduction.....................................................................................................4Chapitre I. Présentation Générale...........................................................2

I.1. Introduction.................................................................................................2I.2. Présentation de l’organisme d’accueil.........................................................2I.3. Cadre général du travail..............................................................................2I.4. Présentation du sujet....................................................................................2I.5. Méthodologie et formalise adoptés.............................................................2I.6. Conclusion...................................................................................................2

Chapitre II. Analyse des besoins et spécifications....................................3II.1. Introduction.................................................................................................3II.2. Objectif........................................................................................................3II.3. Etude de l’existant.......................................................................................3II.4. Spécification des exigences.........................................................................3

II.4.1. Liste des exigences..............................................................................3II.4.2. Quelques concepts...............................................................................4II.4.3. Scénarios et des cas d’utilisation.........................................................4

II.5. Conclusion...................................................................................................4Chapitre III. Etat de l’art............................................................................5

III.1. Introduction.............................................................................................5III.2. La technologie <xxx>..............................................................................5

III.2.1. Présentation.........................................................................................5III.3. La technologie <yyy>..............................................................................5

III.3.1. Présentation.........................................................................................5III.4. Comparaison entre les technologies <…> , <…>...................................5III.5. Conclusion...............................................................................................5

Chapitre IV. Conception..............................................................................6IV.1. Introduction.............................................................................................6IV.2. Architecture du système..........................................................................6IV.3. Conception..............................................................................................6IV.4. Structure de la base de donnée................................................................7IV.5. Conclusion...............................................................................................7

Chapitre V. Réalisation..............................................................................8V.1. Introduction.................................................................................................8V.2. Environnement de travail............................................................................8

V.2.1. Environnement matériel......................................................................8V.2.2. Environnement logiciel.......................................................................8

Chapitre : … Page : 1 /37

Page 6: Template  _rapport_pfe - new

Projet : … Année universitaire : …

V.3. Choix techniques.........................................................................................8V.3.1. Choix du langage.................................................................................8V.3.2. Choix du standard de développement.................................................9V.3.3. Choix de la technologie de sécurité.....................................................9V.3.4. Autres choix technologiques...............................................................9

V.4. Gestion du projet.........................................................................................9V.5. Phase d’implémentation..............................................................................9

V.5.1. Contraintes..........................................................................................9V.5.2. Pratiques adoptées...............................................................................9

V.6. Phase de tests et validation..........................................................................9V.7. Conclusion.................................................................................................10

Chapitre VI. Interface de l’application....................................................11VI.1. Introduction...........................................................................................11VI.2. Interfaces de l’application.....................................................................11VI.3. Conclusion.............................................................................................11

Conclusion Générale.....................................................................................12Glossaire.........................................................................................................13Bibliographie..................................................................................................14Netographie....................................................................................................14ANNEXE(S)......................................................................................................iAnnexe A : …...................................................................................................iiAnnexe B : …..................................................................................................iii

Chapitre : … Page : 2 /37

Page 7: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Table des figures....

Chapitre : … Page : 3 /37

Page 8: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Introductio

nDans nos jours, la location devient de plus en plus requise dans

notre vie quotidienne.Par définition la location est l'action qui consiste à louer un logement, un véhicule, ou tout autre bien à une personne.

En particulier, la location de véhicule est un service offert par des professionnels détenteurs d'automobiles de tourisme ou de véhicules utilitaires. Ce service consiste pour le client (professionnel ou particulier) à réserver un véhicule pour une période donnée allant de quelques heures à plusieurs mois.

Concernant la location d'utilitaire, il existe des services de location de véhicule en aller simple. C'est-à-dire que l'on prend le véhicule à une agence de location et on le rend dans une autre agence de location.

Devant la multitude des modes de tarification, la location est sur tous des camions ne trouver pas un « marché » clair pour se propage dans les services de location par rapport leur voisin les voitures, pour cela un agence de location de camion présente une bonne idée à exploiter. Le stite de location de camion dont les clientèles sont des entreprises besoin dans leur travail ce type de véhicule pour les transports. Chaque site de location souligne quelques caractères pour conserver leur existence.

Dans ce contexte, et dans le cadre d’un projet de fin d’études préparé en vue de l’obtention du diplôme licence appliqué en système informatique et logiciels, il nous a été confié de concevoir et développer une application web pour la gestion des locations et mutualisation des camions de transport permettant aux entreprises a exploités leurs véhicules (camions) pour les biens.

L’organisation du présent rapport est basée sur l’ensemble des éléments intervenant au fur et à mesure dans le développement du projet. En effet cette introduction est suivie de trois chapitres structurés de la façon suivante :

Le premier chapitre est consacré pour la présentation du projet.

Présentation de la société d’accueil.Présentation du contexte du projet.Présentation du choix technologique et de la méthodologie de

travail.

Chapitre : … Page : 4 /37

Page 9: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Le deuxième chapitre va entamer la technologie adoptée par le projet

Le troisième chapitre va entamer l’expression des besoins en introduisant les acteurs en relation avec le système et les cas d’utilisations de l’application en vue de définir les différentes fonctionnalités à envisager.La phase d’analyse des besoins et la conception afin de dégager la

composition du système sa structuration et les relations entre ses différents

composants. Il s’agit donc de donner une vision préliminaire pour le système afin de préparer

la phase de réalisation.

La quatrième partie traitera la phase de réalisation au cours de laquelle nous essayerons d’introduire les outils et les plates-formes utilisés. Ce chapitre comportera :Une présentation de l’architecture, la méthodologie de paquetage

de l’application.Une introduction aux différents modules de l’application.

Le cinquième présente les interfaces du projet.

Chapitre : … Page : 5 /37

Page 10: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Chapitre I. Présentatio

n Générale

I.1. Introduction 

Dans ce chapitre, nous présenterons en premier lieu la société « JASSP SAS » puis le sujet de notre projet et la métrologie et le formalise adoptés.

I.2. Présentation de l’organisme d’accueil 

L’entreprise J.A.S.S.P SAS est un éditeur franco-tunisien de logiciels et de solutions web. J.A.S.S.P est en train de développer une place de marché pour la gestion des offres/demandes en ressources logistiques (Bourse de fret). Ce développement entre dans le cadre d’un programme de recherche scientifique www.logistique.com.

I.3. Présentation du sujet 

La société JASSP TUNISIE, dans le cadre de ce projet, a comme objectif de développer et mettre en place une partie « persistance » d’une application web de location de véhicule.

Ainsi cette application se préoccupe des tâches suivantes :- Une administration complète des détails de véhicules et leurs propriétaires et les

autres clientèles.- Une gestion totale des processus de création, annulation, recherche, modification et

enregistrement.- Garde les informations à propos les véhicules et les clientèles de la société et toutes

les opérations d’annonce, précontrat, promotion, message....- Assurer la cohérence des données.- Avoir des systèmes d’information compréhensibles avec des interfaces

ergonomiques.- Créer une base de données bien détaillée contenant les données relatives à la gestion

de service garantissant un environnement multi utilisateurs qui bénéficie des options des SGBD pour la mise en réseau.

- Réaliser une application simple à manipuler et ergonomique pour les utilisateurs- Elaboration d’audit à tout moment.

Page 11: Template  _rapport_pfe - new

Projet : … Année universitaire : …

I.4. Méthodologie et formalise adoptés

Nous avons opté pour UML en vue de modéliser notre système.UML (en anglais Unified Modeling Language ou « langage de modélisation unifié »)est un langage de modélisation graphique des structures, comportement, architecture,

processus et des données des applications. Il est apparu dans le monde du génie logiciel, dans le cadre de la « conception orientée objet ».

UML est un langage formel, normalisé et est devenu la référence en termes de modélisation objet. UML permet :

- La modélisation de systèmes divers en utilisant des concepts orientés objets.- Etablir un couplage entre les concepts et leur implantation.- Offrir une approche de description utilisable par les humains et les machines.Ainsi avec ces différents diagrammes, UML facilité la représentation et la

compréhension des solutions objets : Sa notation graphique permet d'exprimer visuellement une solution objet, ce qui

facilite la comparaison et l'évaluation des solutions. L'aspect formel de sa notation, limite les ambiguïtés et les incompréhensions. Son indépendance par rapport aux langages de programmation, aux domaines

d'application et aux processus, au fond un langage universel.

I.5. Conclusion 

Dans ce présent chapitre, nous avons présenté la société Jassp. De même, nous avons présenté notre projet avec ses différentes problématiques, ainsi que la méthodologie adoptée pour sa réalisation.

Dans la suite, nous passons à l’identification des technologies dans les quels le projet est basé.

Page 12: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Chapitre II. Etat de

l’art

II.1. IntroductionLe choix du framework Symfony se justifie par :*Le modèle de Symfony est plus unifié avec un socle qui permet de cadrer le projet selon une architecture bien définie.*Séparation du code selon trois couches grâce au modèle MVC* Un système de cache pour garantir des temps de réponse accélérés* Un system de routage qui est un mécanisme qui réécrit les URL pour les rendre plus compréhensible.* Système de configuration de fichiers grâce au langage YAML* Mapping objet-relationnel (ORM) grâce à Doctrine.* Les aides incluses aider à minimiser le code utilisé dans la présentation, et qui encapsulent les grands blocs de code dans les appels de fonction simple.* Les formulaires comprennent des validateurs qui sont utilisé pour valider les saisies (entier, chaine, adresse email…).* Le web debug toolbar qui simplifie le débogage des applications, car il affiche toutes les informations que les développeurs ont besoin sur la page que vous travaillez.

II.2. MVC :L’architecture MVC définit un cadre d'organisation de code en trois couches

les données (c.-à-d. le modèle), l'interface homme-machine (la vue) et la logique de contrôle (le contrôleur).

Page 13: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Le fonctionnement du MVC

Ce modèle de conception impose donc une séparation en 3 couches : - Le modèle : Il représente les données de l'application. Il définit aussi l'interaction

avec la base de données et le traitement de ces données. - La vue : Elle représente l'interface utilisateur, ce avec quoi il interagit. Elle n'effectue

aucun traitement, elle se contente simplement d'afficher les données que lui fournit le modèle. Il peut tout à fait y avoir plusieurs vues qui présentent les données d'un même modèle.

- Le contrôleur : Il gère l'interface entre le modèle et le client. Il va interpréter la requête de ce dernier pour lui envoyer la vue correspondante. Il effectue la synchronisation entre le modèle et les vues. Symfony implémente donc trois couches répondant à ce pattern. Le schéma ci-dessous illustre le mécanisme du MVC dans un projet symfony lorsque l'utilisateur navigue sur le site.

2.3 ORMDoctrine est un ORM (Object Relational Mapper), c’est à dire qu’il va s’interfacer

avec notre base de données afin de nous permettre d’y accéder comme s’il s’agissait d’un objet. Ainsi il sera possible d’accéder aux données d’une table comme s’il s’agissait de propriétés d’une classe, mais en plus cette classe va nous proposer des méthodes permettant de mettre en œuvre des fonctionnalités comme l’enregistrement, la suppression, la mise à jour etc.

2.4 La structure du projet SymfonyLa structure d’un projet Symfony est composée de 10 dossiers. On peut citer : apps/ : contiendra nos futurs applications qui sont en fait nos différentes parties

de Site config/ : contient les fichiers de configuration du projet dont notamment ceux

de la base de données data/ : vous permet de déposer les documents liés au projet (schéma de la base

de données, les donner de base de donner ). lib/ : contient deux sous dossiers importants que sont forme et model qui

contiennent respectivement tous les formulaires du site (car avec Symfony, les formulaires ne sont pas du simple code html mais des objets que Symfony créera ) et le second dossier model stocke tout ce qui concerne les accès aux champs de votre base de données.

Page 14: Template  _rapport_pfe - new

Projet : … Année universitaire : …

web/ : contient aussi plusieurs dossiers qui contiendront vos feuilles de styles CSS, les images, les scripts JavaScripts.

II.3. Conclusion

Ce chapitre nous a permis de présenter le Framework Symfony et ses principaux notions de bases et nous allons détailler notre projet dans le chapitre suivant.

Chapitre III. Analyse

des besoins et

spécifications

III.1. Introduction

Notre projet consiste à réaliser un site web dynamique ouvert pour les professionnels pour poster leurs camions à la location et louer un camion

Chaque utilisateur a crée un compte a le droit de poster rechercher et louer un ou plusieurs camions, et créer une alerte de recherche

III.2. Objectif

Notre projet est demandé sous besoin d’une plateforme public de location camion pour les professionnels en France .

III.3. Etude de l’existant

Rentanddrop  : (www.rentanddrop.com) : Rentn'Drop possède une flotte de véhicules utilitaires composée de plus de 200 camions disponibles à la location. Deux catégories de véhicules vous sont proposées :

- La camionnette pour des petits déménagements : avec une capacité de 12m3, cette catégorie conviendra parfaitement aux appartements de moins de 40m².

Page 15: Template  _rapport_pfe - new

Projet : … Année universitaire : …

- Le camion pour les gros déménagements : grâce à sa capacité de 20m3, où l’utilisateur peut déménager l'intégralité d'un appartement allant jusqu'à 60m². Allez-simple   : (www.allez-simple.com) 1èr réseau national de

location de véhicules utilitaires en aller simple, il propose de louer une camionnette utilitaire (12m3) ou un petit camion utilitaire (20m3) au départ et à destination des grandes villes françaises où se trouve une agence allez-simple.com 

Ces sites font parti d’un agence spécifique tandis que notre projet est fait non pour une seule agence ou un seul fournisseur, c’est un site pour tout fournisseur veut mettre en location son ou ses camions ou un professionnel veut louer

III.4. Spécification des exigences

III.4.1. Liste des exigences

Besoins fonctionnels  :Les fonctionnalités e offertes par le site sont :

B1. L’authentification :Cette fonction est applicable pour les administrateurs du site, aux utilisateurs lors de

gestion compte, annonce ou proposition.Si un utilisateur a oublié son mot de passe, le système doit lui fournir la possibilité de

le demander en saisissant dans la fenêtre de récupération du mot de passe son login et son mail pour le récupérer dans sa boite aux lettres.

B2. Gérer annonce :

Cette tâche est réservée pour l’utilisateur offreur pour publier un camion le modifier

ou le supprimer aussi permet au administrateur de contrôler et manager

B2. Gérer compte:

Cette fonction donne l’autorité au utilisateur de modifier son compte, le désactiver et

l’activer et au administrateur d’ajouter, modifier, désactiver, activer et supprimer les comptes

B3. Faire proposition :

Pour louer un camion il faut envoyer une proposition à l’offreur et ce dernier a le droit

d’accepter ou refuser.

Le loueur peut annuler la proposition après être envoyé.

B4. Gérer alertes :

Pour être informé par les nouvelles annonces selon un critère voulu l’utilisateur peut

créer une alerte et ensuite la modifier ou supprimer

Page 16: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Besoins non fonctionnels  :

Dans l’intention de réussir notre tâche, l’application doit vérifier quelques propriétés et doit tenir compte de certaines contraintes et exigences.

ErgonomieL’interface de l’application doit être simple et pratique afin que l’utilisateur puisse

l’exploiter sans se référer à des connaissances particulières. En d’autres termes, les informations doivent être lisibles et faciles d’accès par n’importe quel utilisateur.

Elles doivent être claires et bien réparties sur la page.

Besoins de performanceCes besoins sont liés essentiellement aux temps de chargement des pages. Ce temps

varie en fonction du traitement, les accès à la base de données et la taille du fichier généré. Pour cela, il faut essayer de minimiser le traitement relatif au passage d’une page à l’autre et minimiser les accès à la base de données.

Champs obligatoiresSi le champ est obligatoire, il faut qu’il soit précédé d’un flag au niveau du label du

champ, ex : *. Sécurité :

Le système doit être sécurisé, l’accès aux données ne se fait qu’après une connexion de l’utilisateur.

La phase de paiement, les opérations de modification et d’annulation doivent être sécurisées.

Modularité :L’application doit être multi tiers pour garantir la souplesse et l’évolutivité de la

solution et la simplicité de maintenance.

III.4.2. Quelques concepts

Le site a principalement les tâches publier annonce et faire proposition.Dans la première tâche l’utilisateur doit avoir un compte pour ajouter un camion et le

publier comme annonce aussi que la modifier et faire des promotions périodiques et non périodiques

Dans la 2ème tâche l’utilisateur consulte une annonce, il peut faire une proposition (après l’authentification s’il est n’est pas connecté via son compte ou s’enregistrer si n’a pas un compte) et cette proposition va être envoyé au fournisseur pour valider ou annuler.

Les mots clés dans ce projet sont : location, camion, alerte, recherche, s’inscrire, s’authentifier…

III.4.3. Scénarios et des cas d’utilisation

Le site est utilisé par 3 acteurs visiteurs, utilisateur et administrateur, chacun a des tâches limites à faire.

Page 17: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Visiteur   :

uc cas d''utilisation v isiteur

v isiteur

creer un nouv eau compte

inscrire à newsletter

parcourir les annonces

rechercher annonces

parcourir les nouv elles annonces

parcourir les promotions

Utilisateur   :

Page 18: Template  _rapport_pfe - new

Projet : … Année universitaire : …

uc cas d''utilisation utilisateur

utilisateur

gerer annonce

publier une annonce

consulter les annonces publiés

modifier une annonce

supprimer une annonce

gerer les propositions

gerer les propositions env oyés

gerer les propositions reçus

env oyer une proposition

etablir un précontrat

gerer promotions

gerer profil s'authentifier

gerer les alertes

«include»

«include»

«include»

«include»

«include»

«extend»

«include»

«extend»

«include»

«include»

«include»

«include»

Administrateur :

Page 19: Template  _rapport_pfe - new

Projet : … Année universitaire : …

uc cas d'utilisation admin

admin

gerer comptes utilisateurs

gerer annonces

Scénarios :

Créer un nouveau compte   :

Acteurs principaux : visiteur.Objectif : ce cas d’utilisation permet aux visiteurs d’avoir un compte dans le

site.Pré-condition : Scénario nominal :

1. Le visiteur clique sur s’inscrire.

2. le system affiche le formulaire d’inscription.

3. Le visiteur remplit le formulaire en suivant les étapes.

4. Le système affiche la page d’accueil de nouveau utilisateur.

Alternatives :A1. Dans l’étape 3 si les champs sont invalides ou vides, un message d’erreur

sera affiché ExceptionE1. Le visiteur abandonne l’inscription.Post-condition : le visiteur est devenu un utilisateur dans le site

S'authentifier   :

Page 20: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Acteurs principaux : utilisateur, Admin.Objectif : ce cas d’utilisation est affiché à un utilisateur ou administrateur désire

faire certaines taches qui nécessitent l’identification.Pré-condition : L’utilisateur ou l’Admin s’est inscrit Scénario nominal :

1. l’utilisateur ou l’Admin. s’identifie par l’entrée de son login et mot de passe

2. le system valide l’identité.

3. l’utilisateur ou l’Admin. accède aux taches demandées.

4. l’instance se termine.

Alternatives :A1. Dans l’étape 2 si l’identité est invalide, un message d’erreur sera affiché ExceptionE1. L’utilisateur ou l’Admin abandonne l’authentification.Post-condition : l’instance se termine une foi l’utilisateur ou l’Admin accéder à la

tache souhaité.

Publier une annonce   : Acteur principal : l’utilisateurObjectif : ajouter un camion dans la base de l’utilisateur et la publierPré-condition : L’utilisateur s’est authentifiéScénario nominal :

1. l’utilisateur fait une clique sur louez votre camion

2. le système affiche le formulaire de l’offre de camion

3. l’utilisateur saisit les champs de formulaire tel que catégorie, carrosserie marque…

4. l’utilisateur fait une clique sur enregistrer

5. le système affiche le formulaire de service

6. l’utilisateur peut crée un service on remplissant les champs de formulaire Nom, prix et information.

7. l’utilisateur faire une clique sur enregistrer.

8. le système affiche le formulaire de l’équipement

9. l’utilisateur peut créer des équipements on remplissant les champs de formulaire Nom, prix et information.

10. l’utilisateur fait une clique sur enregistrer.

11. le système enregistre la commande dans les bases des données et affiche la nouvelle annonce.

Alternatives : A 1. Au niveau de l’étape 4 si l’un de champs obligatoires est vide ou ne respecte

pas le type prédéfini dans la base de donnes un message d’erreur est affiché.

Page 21: Template  _rapport_pfe - new

Projet : … Année universitaire : …

L’enchaînement redémarre au point 3 de scénario nominal A4. Au niveau de l’étape 7 si l’un des champs ne respecte pas le type prédéfini

dans la base de données un message d’erreur sera affiché. L’enchaînement redémarre au point 6 de scénario nominal A5. Au niveau de l’étape 10 si l’un de champs ne respecte pas le type prédéfini

dans la base de données un message d’erreur est affiché. L’enchaînement redémarre au point 9 de scénario nominal ExceptionE1. L’utilisateur abandonne l’offre de camion.

Envoyer une proposition   : Acteur principal : l’utilisateur.Objectif : l’utilisateur veut loyer un camion.Pré-condition : l’utilisateur a choisit une offre parmi la liste des camions ou a choisit

une offre parmi la liste des offres qui sont le résultat d’une recherche ou a reçut une alerte.L’utilisateur s’est authentifiéScénario nominal :

1. l’utilisateur saisit la duré de l’allocation (date début et date fin)

2. l’utilisateur fait une clique sur le bouton ‘demande devis’

3. le système vérifie la disponibilité de camion

4. le page de liste des services associer à cette offre s’affiche

5. l’utilisateur peut choisir le/les service(s) désiré(s)

6. le page de liste des équipements associer à cette offre s’affiche

7. l’utilisateur peut choisir le/les équipement(s) désiré(s)

8. le système affiche un formulaire qui contient la date de début, la date de fin ainsi la libellé qui contient le prix total de cette offre (prix initial de camion + le prix de chaque service et équipement choisi).

9. faire clique sur envoyé la demande a l’offreur.

Alternatives :A1. Au niveau de l’étape 3 si le camion n’est pas disponible dans la durée de location

introduit par le client un message de non disponibilité s’affiche. L’enchaînement redémarre au point 1 de scénario nominal ExceptionE1. L’utilisateur abandonne la propositionPost-condition : proposition envoyé à l’offreur.

Contraintes optionnelles : Le calcul total du prix de la location doit toujours être exact .

Établir un précontrat   : Acteur principal : utilisateur Objectif : établissement d’un précontrat de location entre l’offreur et le demandeur Pré-condition : Une proposition est arrivée à l’offreur. L’offreur s’est authentifiéScénario nominal :

1. le système affiche la proposition envoyée par le demandeur de

Page 22: Template  _rapport_pfe - new

Projet : … Année universitaire : …

loyer qui contient en plus deux liens (accepter la proposition et refuser la proposition).

2. une fois l’offreur accepte la proposition le système établi automatiquement un précontrat entre l’offreur et demandeur de loyer et mail d’acceptation sera envoyé au client. Si l’offreur refuse la proposition un mail de refus est envoyé au demandeur de Loyer

ExceptionE1. L’offreur abandonne la proposition.Post-condition : l’instance se termine une foi le précontrat établi ou mail de refus

envoyé.

Ajouter une promotion   :

Acteur principal : l’utilisateur Objectif : l’offreur accède à l’un de ces offres pour faire une promotion.Pré-condition : L’utilisateur doit avoir au moins une offre. L’utilisateur s’est authentifiéScénario nominal 1. l’utilisateur choisit une annonce  2. Le système affiche le détaille de l’offre 3. l’offreur faire un click sur promotion 4. Le système affiche le formulaire de promotion 5. l’offreur saisir date début, date fin, remise et des informations sur la

promotion et Puis faire un clique sur enregistrer. Alternatives : A2. Au niveau de l’étape 5 si l’un de champs obligatoires est vide ou ne respecte

pas le type prédéfini dans la base de données un message d’erreur est affiché. L’enchaînement démarre au point 5 de scénario nominal ExceptionE1. L’offreur abandonne la promotion.Post-condition : la promotion est enregistrée dans la base des données.

.

III.5. Conclusion Dans ce chapitre, nous avons spécifié les besoins fonctionnels et non fonctionnels du

système et nous avons identifié et décri les différents cas d’utilisation de la solution ce qui va

nous permettre de limiter les exigences de l’application et de passer à la conception de la

solution. C’est ce qu’on va voir en détail dans le chapitre suivant.

Page 23: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Chapitre IV. Conception

IV.1. Introduction

Cette phase est consacrée à la conception des différents modules du système. Nous avons opté pour la méthode UML pour une représentation selon trois vues : une vue fonctionnelle visant à appréhender les interactions entre les différents acteurs/utilisateurs et le système, une vue structurelle (statique) visant la structuration des données, et une vue dynamique à approche algorithmique orientée traitement.

IV.2. Architecture du systèmeLe système repose sur une architecture MVC.Le modèle MVC (Modèle-Vue-Contrôleur) cherche à séparer nettement les couches présentation,

traitement et accès aux données. Une application web respectant ce modèle sera architecturée de la façon suivante :

Le Modèle: Le modèle contient les objets métier de votre application, c'est aussi la partie qui dialogue en direct avec votre base de données. Le bénéfice que cela apporte est très vite compréhensible, en effet, le contrôleur fera appel à des méthodes publiques de vos objets, et si votre base de données venait à changer, la modification ne concernerait principalement que cette partie modèle, laissant la vue et le contrôleur (presque) inchangés.Pour Symfony il s’agit du répertoire /lib/model

La vue   : La vue contient principalement le html, et utilise en général un système de templates. Ces fichiers contiennent des variables php qui seront remplies par le contrôleur lors de la phase de "compilation" des données et de la vue. Dans le cas d'utilisation de templates, cela permet même à un intégrateur css ou à un infographiste de réaliser les pages html du site sans se confronter à du code.

Le contrôleur   : Le contrôleur est le "cerveau" de votre application, il va contenir toute la logique

Page 24: Template  _rapport_pfe - new

Projet : … Année universitaire : …

d'exécution de celle-ci. C'est lui qui va s'occuper de gérer les sessions, qui va écouter les requêtes du client et qui fera en sorte de fournir la bonne réponse en piochant dans le modèle et la vue pour afficher le bon résultat à l'utilisateur.

IV.3. ConceptionPrésentation du modèle de conception adopté.

Selon la normalisation de conception adoptée, présenter la modélisation par étape.

Exemple, pour le modèle Merise   :

1. Constitution d’un dictionnaire des données (dictionnaire brut)

2. Epuration du dictionnaire

3. Dictionnaire épuré

4. Agrégation des propriétés en objets

5. Mise en évidence des associations types porteuses de données

6. Mise en évidence des associations types non porteuses de données

7. Les cardinalités

8. Le modèle conceptuel de données (MCD)

9. Mise en évidence de 3ieme forme normale et des CIF

10. Le modèle conceptuel de traitement (MCT)

11. Le modèle logique de données (MLD)

IV.4. Structure de la base de donnéeDécrire l’architecture de la base de données et les relations entre ses tables.

IV.5. Conclusion

Tout au long de ce chapitre, nous avons détaillé la conception de notre application à travers ses différents modules afin que le passage à l’étape de réalisation soit plus souple et plus aisé.

Le chapitre suivant met en évidence le résultat de cette étape ainsi que celui du

développement de l’application.

Page 25: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Chapitre V. Réalisation

V.1. Introduction 

Il est certain que les phases de spécification des besoins et conception sont des phases à importance indiscutable dans le cycle de vie d'un logiciel, la phase de réalisation n'est pas moins importante. C'est au cours de cette phase que nous touchons la vraie valeur de notre travail.

L'implémentation est la phase la plus délicate. Le choix des outils de développement influe énormément sur le coût en temps de programmation ainsi que sur la flexibilité du produit à réaliser.

Dans ce chapitre, nous allons aborder une description de l'environnement du travail.Une deuxième partie sera consacrée à des imprimes écrans témoignant du résultat de

notre projet. La troisième partie visualise le chronogramme de travail suivi.

V.2. Environnement de travailV.2.1. Environnement matériel

Le projet est réalisé à l'aide du matériel suivant :

PC portable : Dell inspiron N5010. 4 GO mémoire vivante (RAM). Disque dur Capacité 320 GO. Processeur Intel®Core i3-330M 2.13 GHz OS: windows 7 integral edition (Ultimate) 64 bits.

V.2.2. Environnement logicielAfin de réaliser notre application, nous avons opté à utiliser l'environnement logiciel

suivant :

V.2.2.1 Entreprise architect 7.5   : Enterprise Architect est un programme complet d'analyse UML et l'outil de

modélisation qui peut être d'une grande aide pour toute organisation lors de la création des

projets de logiciels et de systèmes avancés d'affaires. Cet outil prend en charge Code

ingénierie, gestion de projet, administration système, des technologies XML et les

transformations MDA. Cette application a été conçue avec de nombreuses fonctionnalités

pour répondre à tous types d'utilisateurs professionnels.

L'utilisation de ces flexible, rapide, et des fonctionnalités avancées, vous pouvez concevoir,

Page 26: Template  _rapport_pfe - new

Projet : … Année universitaire : …

mettre en œuvre, tester et maintenir des modèles UML, SysML, BPMN et d'autres standards

de modélisation ouverte. Vous pouvez également développer et modifier la transformation de

modèles , de créer de haute qualité des documents à partir d'un modèle donné, de convertir ses

éléments et fragments de modèles d'un domaine à un autre, et bien plus encore

[http://enterprise-architect.software.informer.com/]

V.2.2.2 Workbench 5.2   : MySQL Workbench permet à un administrateur de base de données, un développeur

ou un architecte de données de concevoir, de modéliser, de générer et de gérer visuellement

des bases de données. Il comprend tous les éléments nécessaires à un modélisateur de données

pour créer des modèles entité-relation complexes et procéder à une pro-ingénierie ou à une

rétro-ingénierie. Il offre également des fonctionnalités clés qui permettent d'accomplir les

tâches délicates de gestion des modifications et de documentation, qui exigent habituellement

beaucoup de temps et d'efforts.[ http://www.mysql.fr/products/workbench/]

V.2.2.3 Netbeans 6.8   : L'EDI NetBeans est un primé Environnement de développement intégré disponible

pour Windows, Mac, Linux et Solaris. Le projet NetBeans est constitué d'un IDE open-

source et une plateforme d'applications qui permettent aux développeurs de rapidement créer

des web, l'entreprise, de bureau et des applications mobiles utilisant la plateforme Java, ainsi

que PHP, JavaScript et Ajax, Ruby et Ruby on Rails, Groovy , et C / C + +. Il est soutenu par

une vibrante communauté de développeurs et offre un choix diversifié de tiers plugins

V.2.2.4 Wamp5   :

WAMP (WAMP signifiant Windows Apache Mysql PHP) est une plate forme de

développement Web sous Windows. Il vous permet de développer des sites Web dynamiques

à l'aide du serveur Apache, du langage de scripts PHP5 et d'une base de

données MySQL version 5. Il possède également PHPMyAdmin et SQLite Manager pour

gérer plus facilement la base de données. 

V.3. Choix techniques

V.3.1. Choix du langage 

PHP :

Page 27: Template  _rapport_pfe - new

Projet : … Année universitaire : …

PHP est un langage de scripts multi plateformes, embarqué dans des documents HTML.

Plus simplement PHP nous offre un moyen de placer des instructions dans nos documents HTML en vue de créer des contenus dynamiques.

PHP est un véritable langage de programmation. Syntaxiquement il tient du Perl et du C. Il s'agit d'un langage interprété (un langage de script) exécuté du côté serveur .

Caractéristiques de PHP   : Très populaire et très utiliséTrès portable (fonctionne sous Windows/Unix…)Syntaxe héritée du C, du Shell et du PerlExtensible par de nombreuses bibliothèquesBien documentéPerformantFacile à hébergerLogiciel Open Source (donc plus facilement extensible) et disponible gratuitementConçu pour fonctionner efficacement avec le serveur Apache lui aussi en open source

V.3.2. Choix du standard de développementSymfony est un cadre d'applications (ou Framework) OpenSource développé en PHP5.

Il reprend les grands concepts du Modèle Vue Contrôleur et des design patterns. Développé

par l'entreprise française Sensio, Symfony est entièrement orienté objet et respecte un grand

nombre de bonnes pratiques qui facilitent un développement Web de qualité. On y trouve,

entre autres :

gestion de l'encodage et des types MIME url propres (routage)

système de cache évolué

mise en œuvre de CRUD support de l'internationalisation (i18n) par XLIFF

gestion des droits d'accès

génération assistée de l'interface d'administration

mise en œuvre aisée d'AJAX au sein des applications

Justifier les raisons qui ont poussées à adopter le standard de développement.

V.3.3. Choix de la technologie de sécurité

Décrire les choix retenu pour la technologie de sécurité et justifier les raisons.

Page 28: Template  _rapport_pfe - new

Projet : … Année universitaire : …

V.3.4. Autres choix technologiques

Présenter tous les autres éventuels choix (chacun sur un paragraphe séparé).

V.4. Gestion du projet

Présenter et commenter les différentes étapes de la réalisation du projet.

Citer comment les risques ont été gérés dans ce projet (Remarque : Un risque c’est

prévenir un problème avant qu’il se matérialise).

Illustrer le chronogramme de la réalisation par un graphique (MS Project,

OpenWorkbench, …)

V.5. Phase d’implémentation

V.5.1. Contraintes

Présenter les différentes contraintes en relation avec l’implémentation de l’application.

V.5.2. Pratiques adoptées

Présenter :o Les principaux règles de codage, o Bonnes pratiques, o Gestion de configuration,o …etc,

V.6. Phase de tests et validationUn test unitaire est une méthode permettant de tester une partie du code (appelée unité). Le test

consiste à vérifier que le retour de l’exécution de la portion de code correspond à ce que l’on attend. Il est exécuté indépendamment du programme en créant un environnement d’exécution spécifique à la portion du code. Cela permet d’éviter de devoir recompiler tout un logiciel pour vérifier la correction d’un bug des fois assez difficile à déclencher « manuellement » ou pour tester des fonctionnalités profondes dans le logiciel. On écrit un test qui s’exécute sur la portion de code définie. Le test unitaire est souvent mis en place dans les projets basés sur les méthodologies Agile ou l’Extreme Programming. JUnit lui est un framework de test unitaire, décliné sur plusieurs language (NUnit, PHPUnit,…) Il est intégré nativement a Netbeans. actuellement version 6.8 avec JUnit compatible 4.x.

Page 29: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Les tests prennent une part importante lorsque les projets deviennent de plus en plus large. Il est impensable de les écrire dans une fonction main(). Nous devrions mieux les organiser dans des classes de tests, créant une classe de test pour chaque classe dans l’application. A cette fin, le framework JUnit permet de simuler l'exécution de l’application. Pour créer un test: Placez le curseur sur une classe. Dans l'onglet "Project".

Cliquez-droit ---> Tools ---> Junit Tests ---> Create Test ... et acceptez la fenêtre qui est montrée avec les options par défaut.

Une classe sera crée dans la section "Test Packages". Elle étend un TestCase, cette classe du framework JUnit vous permet de créer des tests.

Cette classe contient un constructeur, une fonction appelée setUp (utilisée comme initialisateur de test), tearDown (utilisé à la cloture de chaque test), et finallement, un nombre infini de méthodes nommées testXXX où XXX est le nom d'un test

Présenter un récapitulatifs sur les stratégies de tests adoptés (Catalogues et scénarios de

tests, plan et rapport de tests, méthode adoptée lors de la campagne,…etc.).

Synthétiser les résultats de la campagne de tests (tirer des conclusion sur la qualité de

l’application) .

V.7. Conclusion 

Résumer les faits les plus marquant concernant la réalisation du projet

Page 30: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Chapitre VI. Interface

de l’application

VI.1. Introduction 

Présenter les principaux choix ergonomiques adoptés.

Argumenter pourquoi le profil utilisateur <xxx> a été choisi pour le besoin de

montrer l’Interface Homme Machine dans ce chapitre.

VI.2. Interfaces de l’application

Présenter et commenter quelques interfaces de l’application.

Respecter un scénario d’utilisation de bout en bout avec un profil utilisateur bien précis.

VI.3. Conclusion 

Mettre en valeur quelques facilités GUI (Graphic User Interface) pour cette application.

Page 31: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Conclusion

Générale

Résumer les différentes étapes du projet.

Présenter les profits tirés et les compétences acquises lors de la réalisation de ce projet.

Ouvrir des perspectives futures liées à ce projet.

Page 32: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Glossaire

Liste des abréviations (en respectant un ordre alphabétique décroissant).

Page 33: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Bibliographie

Netographie

Page 34: Template  _rapport_pfe - new

Projet : … Année universitaire : …

ANNEXE(S)

Exemples : Présentations techniques détaillées des langages de programmation, SGBD, technologies, outils, … adoptés dans ce projet (chacun dans un annexe séparé).

i

Page 35: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Annexe A : ….

ii

Page 36: Template  _rapport_pfe - new

Projet : … Année universitaire : …

Annexe B : …

iii