Rapport Pi Dev
-
Upload
mohamed-mahdi-allani -
Category
Documents
-
view
39 -
download
0
description
Transcript of Rapport Pi Dev
Préface
Le monde de l’entreprise de nos jours a pris un nouvel horizon de communication, l’informatisation d’applications et de services est devenu primordiale pour les sociétés moderne, étant donné que cela permet une fluidité d’échange rapide, et une accessibilité a tout genre de publique.
Si on remarque que le marché informatique des applications et des fonctionnalités est devenu gourmand, c’est bien que la qualité qui se présente comme phénomène arbitre qui favorise un projet a un autre, bien que la qualité d’un rendu est définie selon le choix de l’idée et la réalisation.Il est claire que l'accès a un service est devenu assuré par plusieurs appareil, dont l’ordinateur, le smartphone… cela prouve qu’un ingénieur moderne, doit être capable de développer son idée, sur de divers plates-formes, pour satisfaire les besoins actuel d’un marché.Étant donné que notre école ESPRIT a été toujours proactive vis à vis aux avancements technologiques, elle a invité ses étudiants a réaliser un projet multiples plateformes: Desktop, Web et Mobile, ce qui confirme la continuité de cette politique d’apprentissage par problème, afin de habituer ses étudiants a se mettre en situation, préparant de ceux-ci, a être plus proche a la vie professionnel, en apprenant la conception et le codage a travers des projets, qui utilisent une méthodologie récente et pratiques.
Enfin nous tenons à remercier, toute l’équipe pédagogique d’ESPRIT et les intervenants professionnels responsables du module PI.DEV, pour avoir assuré un encadrement et le suivi de celle-ci.
Table des matières1) Identification des Acteurs..................................................................3
2) Etude des Besoins Fonctionnel..........................................................3
a. Besoin fonctionnels aux utilisateurs en général.............................3
b. Besoins fonctionnels destinés aux Freelancer................................4
c. Besoins fonctionnels destinés aux Job Owner.................................4
d. Notre application doit permettre à l’administrateur :....................4
3) Etude des besoins non fonctionnels...................................................4
1. Méthodologie :..................................................................................5
La méthode agile « SCRUM » :...............................................................5
2.1. Identification des acteurs :.......................................................7
3.1 Modélisation du diagramme de cas d’utilisation global..........8
3.1.2 Déterminer les cas d’utilisations.................................................8
4.Etude et choix de l’environnement.....................................................10
4.1 Environnement de développement.............................................10
I. Etude de Contexte
Dans le cadre de l’apprentissage du module PIDEV, nous avons été
invité a réaliser un projet d’application Desktop, Web & Mobile. il
s’agit bien d’une plateforme sur laquelle les utilisateurs peuvent
déposer ou chercher des projets de différents catégories allant du
graphisme jusqu’au développement en différents langages, nous allons
donc permettre aux utilisateurs d'être directement liés. il est évident
que ce projet existe déjà auparavant, avec Odesk, Vworker, Codeur…
Or notre projet aurait a la fois plus d’options, et moins de complexités
vis a vis a des nouveaux utilisateurs, accompagné d’une charte
graphique moderne et attirante.
1)Identification des Acteurs
- Freelancer : Utilisateur qui s’inscrire pour proposer une offre a un projet.
- JobOwner : dépose son projet et choisi parmi les offres proposés.- Administrateur : gère l’application.
2)Etude des Besoins Fonctionnel
a. Besoin fonctionnels aux utilisateurs en général
Notre Application doit permettre à tout utilisateur de :
- s’inscrire en tant que Freelancer ou JobOwner- pouvoir accéder à son compte en s’authentifiant. - Accéder à ses informations, personnelles, les modifier. - désactiver son compte.- Chercher un membre.
b. Besoins fonctionnels destinés aux Freelancer
Notre application doit permettre au Freelancer de :
- Accéder à ses Informations personnelles, les modifier ainsi désactiver son compte.- Consulter la liste des projets.- Evaluer une entreprise.- Passer une certification.- Rechercher un projet.- Déposer son cv.- Déposer une candidature pour les projets.
c. Besoins fonctionnels destinés aux Job Owner
- Publier un projet, ainsi sa modification et sa suppression..- Consulter les candidatures pour son projet.
- Evaluer une entreprise.- Choisir les Freelancer pour le projet.- Signaler des réclamations.
d. Notre application doit permettre à l’administrateur
- Consulter les affectations pour les projets.- Envoyer un message au Freelancer ou bien Jobowner.- Bannir un utilisateur.- Pouvoir consulter les messages échangés entre un Freelancer et un Jobowner- Ajouter un test, modifier et les supprimer.- Retirer l’affectation d’un Freelancer- Ajouter des comptes d’administrateurs- Valider un projet
3)Etude des besoins non fonctionnels
- Notification (newsletters) pour les projets en rapport des skilles des freelancers- Interface simple et convivial pour l’utilisateur- sécurisé l’application pour assurer le payement entre le Freelancer et le Jobowner- chaque membre peut contacter un autre membre ou un administrateur.
Dans le cadre de la réalisation de notre projet intégré, nous avons
choisi de suivre la méthode Agile « Scrum ».
Dans cette première partie nous décrirons les différentes phases du
projet. Par ce présent rapport, nous allons décortiquer les différentes
parties du Sprint 0, où nous spécifions essentiellement les acteurs
principaux du système, les besoins fonctionnels et non fonctionnels
marquants ainsi que nous entamons l’analyse générale.
Nous allons avoir recours aussi à l’architecture globale de notre
application et identifier les fonctionnalités principales à travers
l’élaboration du Product Backlog.
1. Méthodologie :
La méthode agile « SCRUM » :
Pour remédier aux failles des méthodes de découpage en phases (voir
cycle en V) et de découpage en activités WBS (Work Brakedown
Structure) La méthode SCRUM définit un cadre de travail permettant la
réalisation de projets complexes. Initialement prévu pour le
développement de projets type « Software », cette méthode peut être
appliquée à tout type de projet, du plus simple au plus innovant, et ce, de
manière très simple.
L’approche Agile « SCRUM » propose au contraire de réduire
considérablement voire complètement cet effet tunnel en donnant
davantage de visibilité, en impliquant le client du début à la fin du projet
et en adoptant un processus de développement itératif et
incrémental. Elle considère que le besoin ne peut être figé et propose
au contraire de s’adapter aux changements de ce dernier. Mais pas sans
un minimum de règles.
Les projets qui suivent la méthode agile « SCRUM » sont divisés en
plusieurs cycles de travail relativement court que l’on appelle « sprints
».
Cette méthode nous a permis, en tant que membres de l’équipe,
d’évaluer régulièrement les progrès liés au projet et de planifier les
prochaines étapes de développement.
Scrum permet de produire la plus grande valeur métier dans la durée la
plus courte.
Le Cycle projet avec Scrum
La répartition des rôles dans « Scrum »:
Chaque projet utilisant la méthode SCRUM se mène autour d’une équipe
auto-organisée et multifonctionnelle : auto-organisée car il n’y a pas
de chef d’équipe qui décide des rôles de chacun, et multifonctionnelle car
chaque membre de l’équipe est partie prenant dans le développement de
chaque fonctionnalité.
On distingue trois rôles principaux à savoir :
Ø Le Product Owner :
Un directeur de produit qui est soit le client, soit une personne
représentant le client, il définit les fonctionnalités du produit ,choisit
la date et le contenu de la release, responsable du retour sur
investissement et accepte et rejette les résultats.
Ø Le Scrum Master :
Il représente le management de projet ,il est responsable de faire
appliquer les valeurs et les pratiques de Scrum par l’équipe ,résout les
problèmes et s’assure que l’équipe est complètement fonctionnelle et
productive .
Ø Membres de l’équipe :
Dans la méthode Scrum, l’équipe est responsable de la réalisation
opérationnelle des « travaux », ou en d’autres termes, participe au
développement de l’application; et c’est toute l’équipe qui est
responsable du résultat final de chaque sprint .ils s’organisent eux-
mêmes et ne changent pas de composition pendant un sprint.
2.Etude de contexte Il s’agit de l’implémentation d’une application s’intitulant « freelancer»,
qui facilite la gestion du processus d’embauche à distance.
« freelancer » va permettre aux freelancer connectés d’accéder à leurs
comptes afin de pouvoir gérer ou évaluer l’ensemble des projets
proposés. D’autre part, elle met à disposition du job owner la gestion des
différentes propositions d’offres reçus de la part des freelancers pour
réaliser leurs projets..
2.1. Identification des acteurs :
Un acteur est une entité qui interagit avec le système. Plus spécifiquement, le rôle joué par un
simple utilisateur c’est de produire un flux d’informations.
Dans notre application, nous distinguons 3 principaux acteurs, à savoir :
● un
3.Analyse Globale
3.1 Modélisation du diagramme de cas d’utilisation global
3.1.1 Identification des cas d’utilisation :
L’identification des cas d’utilisation une première fois, nous donne un
aperçu des fonctionnalités futures que doit implémenter le système.
Cependant, il nous faut plusieurs itérations pour ainsi arriver à
constituer des cas d’utilisation complets. D’autres cas d’utilisation vont
apparaître au fur à mesure de la Description de ceux là, et l’avancement
dans le «recueil des besoins fonctionnels ».
Pour constituer les cas d’utilisation, il faut considérer l'intention
fonctionnelle de L’acteur par rapport au système dans le cadre de
l'émission ou de la réception de chaque message
3.1.2 Déterminer les cas d’utilisations
Un cas d’utilisation représente un ensemble de séquences d’actions
réalisées par le système et produisant un résultat observable
intéressant pour un acteur particulier.
Il modélise un service rendu par le système, en exprimant les
interactions acteurs/système et apportant une valeur ajoutée « notable»
à l’acteur concerné.
Ceci est le diagramme de cas d’utilisation générale qui résume les
activités prises en charge par le système, ainsi que les personnes qui
entreprennent ces activités. Freelancer utilise un diagramme de cas
d'usage pour connaître ce qui suit au sujet du système :
Figure 1 cas d'utilisation global
3.2 Modélisation du diagramme de cas d’utilisation global
Le diagramme de classe est l’un des diagrammes statiques d'UML. Il permet de décrire la structure d'un système informatique tout en montrant les différentes classes, leurs attributs, leurs méthodes ainsi que les relations entre eux. Tout au long de nos sprints, nous essayerons de construire ce diagramme au fur et mesure en ajoutant les différentes classes déduites.
4.Etude et choix de l’environnement
4.1 Environnement de développement
L’environnement de développement est un terme qui désigne l’ensemble d’outils et de langage utilisé pour l’implémentation d’une solution informatique. Nous commençons par l’environnement matériel.
4.1.1 Environnement logiciel4.1.1.1 Netbeans IDE
Netbeans IDENetBeans est un environnement de développement intégré (IDE), open source et multi-langues, créé par Sun. Il a la particularité d’être multiplateforme : il est compatible avec Windows, MacOs, Linux et Solaris. De plus, il supporte plusieurs langages de programmation.
4.1.1.2 Wamp
Wamp server
Wamp server est une plateforme de développement des applications web dynamiques. Ce logiciel est très intéressant puisqu’il englobe tous les outils nécessaires pour le fonctionnement d’une application web notamment un serveur de base de données MySQL, un serveur web apache et une interface de gestion des bases de données facile à utiliser PHPMyadmin
4.1.2 Langage de programmationLes langages de programmations utilisées pour le développement de notre application sont les suivants :
4.1.2.1 PHP
phpPHP ou Hyper Text Preprocessor est un langage de script extrêmement puissant et destiné pour le développement des applications web. PHP est l’un des langages de programmation les plus populaire. Le point fort de ce langage c’est qu’il est portable et simple à utiliser.
4.1.2.2. JQuery
jQuery
Afin de rendre notre application plus interactif nous avons fait recourt à jQuery qui est une bibliothèque JavaScript libre qui porte sur l'interaction entre JavaScript et HTML, et a pour but de simplifier des commandes communes de JavaScript.
4.1.2.3. JAVA
Java
Le langage Java est un langage de programmation informatique orienté objet. Java reprend en grande partie la syntaxe du langage C++, très utilisée par les informaticiens
4.1.2.4. Ajax
AJAXC’est un concept de programmation Web reposant sur plusieurs technologies comme le JavaScript et le XML – d'où le nom AJAX. Il permet de faire communiquer une page Web avec un serveur Web sans occasionner le rechargement de la page.
4.1.2.5 Html 5
HTML 5
L’HypertextMarkupLanguage, connu HTML, est le format de données conçu pour représenter les pages web. C’est un langage de balisage permettant d’écrire de l’hypertexte.
4.1.2.6. Css 3
css3
CSS3 appartient à la famille des styles, il offre de nouvelles possibilités intéressantes pour créer un impact avec vos dessins, vous permet d’utiliser des feuilles de style plus variés pour des effets de style beaucoup plus intéressante.
4.1.2.7 Java script
java script
Le Javascript est un langage de script incorporé dans un document HTML. C’est un langage de programmation qui permet d'apporter des améliorations au langage HTML en permettant d'exécuter des commandes du côté client, c'est-à-dire au niveau du navigateur et non du serveur web.
4.1.2.8 Framework Symfony
Symfony
Symfony 2 est un Framework MVC (kit de logiciel basé sur le Modèle Vue Contrôleur), libre.Il permet de développer, rapidement et avec facilité, des sites et applications.
4.2 Outils de configuration
L’outils de configuration utilisée pour le développement de notre application est le suivant : Gitlab :
Gitlab
Gitlab est un clone du célèbre site GitHub permettant d'héberger des répertoires Git et de mettre en place plusieurs outils autour afin de mieux gérer les projets à l'aide d'un gestionnaire de bugs (issues) ou encore d'un wiki pour la documentation.
partie Aziz :
Le Backlog de produit est le coeur de Scrum, il est l'ensemble des fonctionnalités du produit que l'on veut développer .c’est une liste priorisée de besoins et exigences que veut le client .il est élaboré par le Product owner avant le lancement des sprints
ID Feature ID_US User Story Priority
1 Gestion des consultations
1.1 En tant que freelancer je souhaite consulter la liste des projets via Desktop
70
1.2 En tant que freelancer je souhaite consulter la liste des projets via web
50
1.3 En tant que freelancer je souhaite consulter la liste des projets via mobile
30
1.4 En tant que jobowner je souhaite consulter les candidatures pour mon projet via Desktop
70
1.5 En tant que jobowner 50
je souhaite consulter les candidatures pour mon projet via Web
1.6 En tant que jobowner je souhaite consulter les candidatures pour mon projet via Mobile
30
1.7 En tant que administrateurs je souhaite consulter les affectations pour les projets via Desktop
70
1.8 En tant que administrateurs je souhaite consulter les affectations pour les projets via Web
50
1.9 En tant que administrateur je souhaite pouvoir consulter les messages échangé entre les freelancer et jobowner via Desktop
70
1.10 En tant que administrateur je souhaite pouvoir consulter les messages échangé entre les freelancer et jobowner via Web
50
2 générer des statistiques
2.1 En tant que administrateur je souhaite générer des statistiques via Desktop
70
2.2 En tant que 50
administrateur je souhaite générer des statistiques via Web
2.3 En tant que administrateur je souhaite générer des statistiques via Mobile
30
3 Evaluation 3.1 En tant que freelancer je souhaite évaluer une entreprise/jobowner via Desktop
70
3.2 En tant que freelancer je souhaite évaluer une entreprise/jobowner via Web
50
3.3 En tant que jobowner je souhaite évaluer un freelancer via Desktop
70
3.4 En tant que jobowner je souhaite évaluer un freelancer via Web
50
4 Gestion des tests 4.1 En tant que administrateurs je souhaite ajouter un test via Desktop
70
4.2 En tant que administrateurs je souhaite ajouter un test via Web
50
4.3 En tant que administrateurs je souhaite modifier un test via Desktop
70
4.4 En tant que administrateurs je souhaite modifier un test Via web
50
4.5 En tant que administrateurs je souhaite supprimer un test via Desktop
70
4.6 En tant que administrateurs je souhaite supprimer un test via Web
50
4.7 En tant que Freelancer je souhaite passer des tests Via desktop
70
4.8 En tant que Freelancer je souhaite passer des tests via web
50
5 Gestion des affectations
5.1 En tant que Administrateur je veux retirer l’affectation d’un freelancer à un projet via desktop
70
5.2 En tant que Administrateur je veux retirer l’affectation d’un freelancer à un projet via Web
50
5.3 En tant que jobOwner je souhaite choisir les freelancer pour le projet via Desktop
70
5.4 En tant que jobOwner 50
je souhaite choisir les freelancer pour le projet via Web
6 Gestion des réclamations
6.1 En tant que jobowner je souhaite déposer mes réclamations en cas de non satisfaction via Desktop
60
6.2 En tant que jobowner je souhaite déposer mes réclamations en cas de non satisfaction via Web
50
6.3 En tant que Freelancer je souhaite déposer mes réclamations via Desktop
70
6.4 En tant que Freelancer je souhaite déposer mes réclamations via Web
50
7 Gestion des recherches
7.1 En tant que Administrateur je souhaite lancer une recherche pour trouver un Freelancer /jobowner via Desktop
70
7.2 En tant que Administrateur je souhaite lancer une recherche pour trouver un Freelancer /jobowner via Web
50
7.3 En tant que 70
Freelancer je souhaite lancer une recherche pour trouver un jobowner Via Desktop
7.4 En tant que Freelancer je souhaite lancer une recherche pour trouver un jobowner via web
50
7.5 En tant que Freelancer je souhaite lancer une recherche pour trouver un projet via Desktop
70
7.6 En tant que Freelancer je souhaite lancer une recherche pour trouver un projet via Web
50
7.7 En tant que jobowner je souhaite lancer mes recherches pour trouver un Freelancer Via Desktop
70
7.8 En tant que jobowner je souhaite lancer mes recherches pour trouver un Freelancer Via web
50
8 Gestion Projet 8.1 En tant que jobowner je veux ajouter un projet Via Desktop
70
8.2 En tant que jobowner 50
je veux ajouter un projet Via Web
8.2 En tant que jobowner je veux supprimer un projet Via Desktop
70
8.3 En tant que jobowner je veux supprime un projet Via Web
50
8.4 En tant que jobowner je veux modifier un projet Via Desktop
70
8.5 En tant que jobowner je veux modifier un projet Via Web
50
9 Gestion des dépôts 9.1 En tant que freelancer je souhaite déposer mon cv via Desktop
70
9.2 En tant que freelancer je souhaite déposer mon cv via Web
50
9.3 En tant que freelancer je souhaite déposer mes candidatures pour les projets via Desktop
70
9.4 En tant que freelancer je souhaite déposer mes candidatures pour les projets Via web
50
9.5 En tant que freelancer je souhaite déposer le projet final via Web
50
10 Gestion des contacts
10.1 En tant que jobowner je souhaite contacter les freelancer via Desktop
70
10.2 En tant que jobowner je souhaite contacter les freelancer via Web
50
10.3 En tant que jobowner je souhaite contacter les freelancer via Desktop
70
10.4 En tant que jobowner je souhaite contacter les freelancer Via web
50
11 Gestion des payements
11.1 En tant que jobowner je souhaite payer les freelancer Via desktop
70
11.2 En tant que jobowner je souhaite payer les freelancer via Web
50
12 Gestion des comptes
12.1 En tant que freelancer je souhaite modifier mon compte via Desktop
70
12.2 En tant que freelancer je souhaite modifier mon compte via Web
50
12.3 En tant que jobowner je souhaite modifier mon compte via Desktop
70
12.4 En tant que jobowner je souhaite modifier
50
mon compte via Web
12.5 En tant que administrateur je souhaite pouvoir supprimer des comptes via Desktop
70
12.6 En tant que administrateur je souhaite pouvoir supprimer des comptes via Web
50
12.7 En tant que administrateurs je souhaite ajouter des comptes d’administrateurs via Desktop
70
12.8 En tant que administrateurs je souhaite ajouter des comptes d’administrateurs via Web
50
12.9 En tant que freelancer je souhaite désactiver mon compte via Desktop
70
12.10 En tant que freelancer je souhaite désactiver mon compte via Web
50
12.11 En tant que jobowner je souhaite désactiver mon compte via Desktop
70
12.12 En tant que jobowner je souhaite désactiver
50
mon compte via Web
12.13 En tant que utilisateur je souhaite accéder sur mon compte via login et mot de passe via Desktop
70
12.14 En tant que utilisateur je souhaite accéder sur mon compte via login et mot de passe via Web
50
12.15 En tant que freelancer je souhaite m’inscrire en local sur via desktop
70
12.16 En tant que freelancer je souhaite m’inscrire sur via web
50
12.17 En tant que jobowner je souhaite m’inscrire via Desktop
70
12.18 En tant que jobowner je souhaite m’inscrire sur via web
50
Le diagramme de déploiement permet d'illustrer l'architecture physique du système et de
montrer la relation entre ses différentes composantes. Voici le diagramme de déploiement de
notre application.
Maquette :
figure 1.1 représente la page d’authentification de l’application
Figure 1.2 la page d’accueil de jobowner
figure 1.3 ajouter un nouveau projet
Figure 1.4 liste des Projets d’un jobowner
Figure 1.5 Liste des condidats pour un projet
figure 1.6 représente la livraison du projet