rapport pfa(2)

17
Rapport du projet de fin d’année Application web de dématérialisation des appels d’offres Travail réalisé par: BOUZID Walid BOHI Nawal 2010 Ecole Nationale de l’Industrie Minérale

Upload: nawal-bohi

Post on 24-Jun-2015

1.012 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Rapport PFA(2)

Rapport du projet de fin d’année Application web de dématérialisation des appels d’offres

Travail réalisé par: BOUZID Walid BOHI Nawal

2010

Ecole Nationale de l’Industrie Minérale

Page 2: Rapport PFA(2)

Projet de fin d’année

ENIM

2

Sommaire

I – Contexte général du projet

1. Notion de dématérialisation………………………………………..............3 2. Problématique................................................................................................4 3. Résultats attendus.........................................................................................4

II – Etude préliminaire

1. Benchmarking.................................................................................................5 2. Modules du projet.........................................................................................6 3. Recueil des besoins fonctionnels............................................................6 4. Identification des acteurs...........................................................................7

III – Etude fonctionnelle

1. Méthode adaptée...........................................................................................8 2. Diagrammes des cas d’utilisations.........................................................8

IV- Etude technique

1. Architecture logicielle de l’application...............................................10 2. Frameworks

a) Introduction...................................................................................... 11 b) JavaServer Faces..............................................................................11 c) Hibernate............................................................................................12

3. Outils de développement a) NetBeans.............................................................................................12 b) Glassfish..............................................................................................13 c) MySQL..................................................................................................13

V- Réalisation

1. Mapping Objet/Relationnel.....................................................................14 2. Implémentation des IHM (Interfaces Homme/Machine).......... 14

Conclusion.........................................................................................................................17

Page 3: Rapport PFA(2)

Projet de fin d’année

ENIM

3

I. Contexte général

Ce premier chapitre présente le cadre général de notre projet de fin d’année, et

donne quelques définitions et explications sur les différentes notions utilisées.

1. Notion de dématérialisation

La dématérialisation est la transformation de supports d'informations matériels

(souvent des documents papier) en des fichiers informatiques , ce qui entraîne la

mise en œuvre du fameux « bureau sans papier » dans une entreprise.

La dématérialisation des procédures s’inscrit en général dans le cadre des télé-

procédures qui se sont améliorées avec le développement de la société de

l’information. Avec l’essor d’une nouvelle forme d’administration « le e-

gouvernement », la dématérialisation devient une notion pertinente à exploiter.

Dématérialisation de la procédure des appels d’offres :

Le projet de dématérialisation de la procédure des appels d’offres des marchés

publics au Maroc est appelé à devenir une réalité dans les années à venir.

En effet, c’est une solution qui s’impose pour combler les lacunes de la forme

actuelle de l’échange d’informations. La mauvaise communication entre les

différents acteurs qui entrent jeu, rend la procédure « classique » des appels

d’offres très pénible à réaliser et sujette à plusieurs défaillances.

Afin de mieux assimiler, il serait utile d’énumérer les étapes de la procédure des

appels d’offres :

Préparation du cahier des charges par le maitre d’ouvrage, cette étape

prend beaucoup de temps.

Publication de l’avis afin de s’assurer de sa transmission aux entreprises

(cette transmission n’est pas tout le temps assurée).

Demande et récupération du cahier des charges.

Déposition de l’offre.

Page 4: Rapport PFA(2)

Projet de fin d’année

ENIM

4

2. PROBLEMATIQUE

A travers l’analyse de la procédure des appels d’offres des marchés publics au

Maroc, plusieurs problèmes ont été dégagés :

Lourdeur de la procédure : elle s’étale sur plusieurs semaines dans les

meilleurs délais.

Consommation excessive de papiers lors de l’échange d’information entre

le fournisseur et l’acheteur (cahier des charges, offres…).

Couteuse : le prix de revient de la procédure est assez élevé surtout pour

les fournisseurs.

3. RESULTATS ATTENDUS

La solution proposée devrait réaliser la dématérialisation de toute la procédure

des appels d’offres des marchés publics à travers des interfaces conviviales qui

permettront d’alléger et de régler la majorité des défaillances de la procédure

normale.

Page 5: Rapport PFA(2)

Projet de fin d’année

ENIM

5

II. Etude préliminaire

L’étude préliminaire est la première étape du processus de développement.

Durant cette phase, une comparaison des différentes solutions présentes sur le

marché a été menée dans le but de dégager les besoins fonctionnels et

techniques.

1.Benchmarking

Le benchmarking, en français étalonnage ou parangonnage , est une technique

de marketing ou de gestion de la qualité qui consiste à étudier et analyser les

techniques de gestion, les modes d'organisation des autres entreprises afin de

s'en inspirer et d'en retirer le meilleur. C'est un processus continu de recherche,

d'analyse comparative, d'adaptation et d'implantation des meilleures pratiques

pour améliorer la performance des processus dans une organisation.

De nombreuses solutions de la dématérialisation de la procédure des appels

d’offres existent sur le marché. La table ci-dessous cite les principales solutions

existantes :

Solutions Caractéristiques

Maroc_business.com Portail offrant aux abonnés l’accès à une grande base de données d’annonces d’appels d’offres mise à jour constamment. Le service offert est principalement destiné aux fournisseurs mais il n’offre pas aux acheteurs la possibilité de publier leurs annonces.

Portail du ministère des finances

Il contient un volet d’appels d’offres où l’on trouve quelques annonces mais qui ne contiennent pas les informations nécessaires. La solution de dématérialisation est incomplète : elle s’arrête à l’étape de publication de l’annonce.

Portail national des marchés publics

Portail conçu et mis en œuvre depuis 2007 suite à l’entrée en vigueur du décret n° 2-06-388 du 5 février 2007. Il prévoit la mise en place du portail et l’obligation de publication des informations et des documents relatifs aux marchés de l’Etat. Ce portail s’inscrit dans une démarche progressive et pragmatique prenant en compte les attentes des acteurs de l’achat public au Maroc

Page 6: Rapport PFA(2)

Projet de fin d’année

ENIM

6

Le processus de benchmarking aux solutions existantes a montré qu’aucune

solution ne réalise la démarche de dématérialisation de façon complète :

Chacune des solutions précédentes s’arrête à une étape donnée de la procédure.

2. Modules du projet

Selon la chronologie de la procédure des appels d’offres des marchés publics, le

système peut être composé de 4 modules :

Administration : elle permet la gestion des comptes utilisateurs.

Annonce : commençant à la publication d’un programme prévisionnel des

achats et se terminant à la publication de l’annonce.

Soumission : commençant par l’envoi du fournisseur d’une demande

d’admission pour un marché et se terminant lors de l’ouverture des plis.

Résultat : commençant lors de l’ouverture des plis et se terminant à la

publication du résultat de l’appel d’offres.

Remarque :

Le présent projet ne s’est attardé que sur quelques besoins des modules

Administration et Annonce.

3.Recueil des besoins fonctionnels

A travers l’étude de la procédure des appels d’offres, les besoins fonctionnels

suivants ont été dégagés :

Module Acteur Besoins

Administration Acheteur/Fournisseur Emettre une demande d’inscription.

Administrateur Consulter les demandes d’inscription

Valider une inscription.

Annonce Acheteur Ajouter une annonce

Acheteur/Fournisseur Consulter une annonce

Page 7: Rapport PFA(2)

Projet de fin d’année

ENIM

7

4.Identification des acteurs du système

Après la détermination des besoins fonctionnels, vient l’étape de la

détermination et de la description des rôles des acteurs interagissant avec le

système. Cette étape est important pour le cadrage c’est-à-dire les frontières du

projet. Les acteurs du système sont :

Acheteur : organisme de l’état qui lance l’appel d’offres.

Fournisseur : toute personne physique ou morale candidate à répondre à

l’appel d’offres.

Administrateur : personne chargée de valider les inscriptions des

utilisateurs et de gérer leurs profils.

L’étude préliminaire s’achève avec l’identification des acteurs du système.

L’étude fonctionnelle sera abordée dans le chapitre suivant.

Page 8: Rapport PFA(2)

Projet de fin d’année

ENIM

8

III. Etude fonctionnelle

1. Méthodologie adoptée

Le langage de modélisation utilisé lors de la phase de conception de notre projet

est l’UML (Unified Modeling language). Il permet de modéliser toutes les

phases de développement d’un projet informatique en définissant un ensemble

de notations graphiques pour représenter des concepts orientés objets.

Les avantages de l’UML

Plusieurs avantages de l’UML nous ont poussé à l’adopter, par exemple :

Le développement avec des langages orientés objet induit la conception

avec des formalismes orientés objet.

UML est standard.

UML est un langage normalisé et formel.

Outils : Power AMC

Power AMC est un logiciel de modélisation. Il permet de modéliser les

traitements informatiques et leurs bases de données associées. Ce logiciel,

produit par Sybase , reste un des seuls permettant de travailler avec la méthode

Merise. Selon Riff News, cela permet d'améliorer la modélisation, les processus,

le coût et la production d’applications.

2. Diagrammes des cas d’utilisation

a. Module d’administration

Ce module permet de gérer les comptes utilisateurs, ci-dessous son diagramme

de cas d’utilisation :

Page 9: Rapport PFA(2)

Projet de fin d’année

ENIM

9

b. Module d’annonce

Ce module commence à la publication d’un programme prévisionnel d’achats et

se termine par la publication de l’annonce. Son diagramme de cas d’utilisation

est le suivant :

L’étude fonctionnelle s’achève avec la génération de la base de données

correspondante à la conception réalisée (notamment par le biais d’un atelier de

génie logiciel ex. Power AMC). L’usage d’UML a été d’un apport considérable,

dans la mesure où il a permis de structurer les composantes du projet.

Page 10: Rapport PFA(2)

Projet de fin d’année

ENIM

10

IV. Etude technique

Dans cette étape, l’architecture du système ainsi que celle de l’application

seront clairement définies. Les couches de l’application et les modules à

développer seront de même spécifiés. Nous ferons également une brève

description des technologies et outils utilisés pour le développement de

l’application.

1. L’architecture logicielle de l’application

Pour la réalisation de l’application, nous avons opté pour une architecture J2EE

(Java 2 Entreprise Edition)

La plateforme J2EE s’inscrit dans la philosophie de l’architecture n-tiers, avec

tout ce qu’elle comporte comme avantages : simplification de la conception et

du développement des applications web, dépassement du problème du

déploiement des applications, …

Ainsi, le présent projet respecte cette architecture, et ce en faisant intervenir les

couches présentation, application / métier et la couche de persistance (Base de

données).

Le choix s’est porté également sur le framework JSF s’implémentant dans la

couche présentation et assurant un mapping HTML/Objet (à travers les managed

beans), ainsi que le framework Hibernate qui assure le lien entre les bases de

données et la couche métier, et ce en assurant la persistance ‘objet’ à travers le

mapping Objet/Relationnel.

Page 11: Rapport PFA(2)

Projet de fin d’année

ENIM

11

Les EJB (Entreprise Java Beans) représenté sur l’image ci-dessus sont

remplacés dans ce projet par les POJOs (Plain Old Java Object). Ce choix est

présent également dans d’autres projets, vu la tendance à utiliser des objets

facilement manipulables comme le sont les POJOs.

2. Frameworks

a. Introduction

Un Framework capitalise l’expertise nécessaire en matière de programmation

pour résoudre une certaine classe de problèmes. Les programmeurs réutilisent

les Framework pour profiter de cette expertise sans avoir à résoudre le

problème.

En effet, un Framework est un kit de composants logiciels structurels, qui

définissent les fondations ainsi que les grandes lignes de l'organisation de tout

ou partie d'un logiciel (architecture). En programmation orientée objet un

Framework est typiquement composé de classes mères qui seront dérivées et

étendues par héritage en fonction des besoins spécifiques à chaque logiciel

utilisant le Framework.

b. Java Server Faces

La technologie Java Server Faces (JSF) est un Framework d’interface

utilisateur pour les applications web, basé sur la technologie JSP et servlets.

JSF est un standard J2EE. Actuellement les plus grands éditeurs Java proposent

une intégration de JSF dans leurs IDE.

JSF est constitué principalement de:

Un ensemble d'APIs pour la représentation et la gestion des composants.

Page 12: Rapport PFA(2)

Projet de fin d’année

ENIM

12

Deux bibliothèques de balises JSP pour permettre l'utilisation des JSP

pour la construction de vues JSF

Les Managed-Beans : qui forment la couche contrôle de JSF

c. Framework Hibernate

Hibernate est un ORM (Object Relational Mapping), un Framework qui fait le

pont entre le monde relationnel des bases de données et celui des objets

manipulés par Java. Il automatise ou facilite la correspondance entre des

données stockées dans des objets et une base de données relationnelle en se

basant sur des fichiers de configuration XML.

Avantages de Hibernate :

Améliorer la portabilité du code pour des changements de SGBD.

Penser en terme d’objets et non pas en terme de lignes de tables.

Génération automatique du code SQL.

Persistance transparente.

3. Les outils de développement et déploiement

a. NetBeans

NetBeans est un environnement de développement intégré (IDE) open source

développé par Sun. Il est disponible sous Windows, Linux, Solaris, Mac OS X et

Open VMS. Il a connu une évolution considérable et aujourd’hui on assiste à la

version 6.9.

En plus de Java, NetBeans permet également le développement avec d’autres

langages tels que : C, C++, PHP, HTML, Ruby et Python.

NetBeans dispose de nombreuses fonctionnalités intéressantes bien connues des

utilisateurs d’IDE : coloration syntaxique, gestion multi-projets, intégration des

documents de références, support de solutions de gestion de versions, intégration

de débogueurs…il a été conçu pour supporter le principe de la modularité. Il est

ainsi proposé au téléchargement via des paquetages centrés sur les langages

employés.

Page 13: Rapport PFA(2)

Projet de fin d’année

ENIM

13

b. GlassFish

GlassFish est un serveur d’applications certifié Java EE 5. Son développement a

été initié lorsque Sun a ouvert le code de son serveur d’applications pour le

licencier en Open Source. Il utilise le moteur de persistance d’Oracle, TopLink

Essentials.

GlassFish est constitué :

• d’un serveur web dédié au service de fichiers, c’est-à-dire à des pages

HTML statiques, images, vidéos, etc.

• d’un conteneur de servlets, hébergeant des applications composées de

servlets et/ou JSP.

• d’un conteneur d’EJB, pour la gestion des composants stateless, stateful,

MDB et entity beans.

• de l’implémentation de l’API de persistance JPA d’Oracle (TopLink

Essentials).

L'administration du serveur GlassFish se fait soit par interface web, soit par

ligne de commande.

c. MySQL

MySQL est un système de gestion de base de données (SGBD). Selon le type

d'application, sa licence est libre ou propriétaire. Il fait partie des logiciels de

gestion de base de données les plus utilisés au monde, autant par le grand public

(applications web principalement) que par des professionnels, en concurrence

avec Oracle et Microsoft SQL Server.

MySQL offre les fonctionnalités suivantes :

Définition et manipulation des données.

Confidentialité des données.

Sauvegarde et restauration des données.

Page 14: Rapport PFA(2)

Projet de fin d’année

ENIM

14

V. Réalisation

Durant cette phase la réalisation du système est présentée, elle s’étale sur deux

étapes :

Mapping objet/relationnel.

Implémentation des IHM.

1. Mapping Objet/ Relationnel

Durant cette étape, les classes bean sont implémentées sous Java en éditant les

fichiers XML d’Hibernate.

Pour une classe donnée, il existe une table correspondante dans la base de

donnée, les tables d’associations, pour réaliser le mapping il faut éditer deux

fichiers XML :

Hibernate.cf.xml : fichier de configuration.

Nom_classe.hbm.xml : fichier de mapping du Bean.

2. Implémentations des IHM

Par le biais du framework JSF implémenté dans les pages JSP, les données

remplies dans les formulaires sont réutilisées pour authentifier un utilisateur,

valider une inscription ou encore ajouter une annonce.

a. L’authentification

La figure suivante présente la vue d’authentification :

Page 15: Rapport PFA(2)

Projet de fin d’année

ENIM

15

b.Validation des inscriptions

La vue de validation des inscriptions est un tableau qui permet uniquement à

l’administrateur d’accepter ou de refuser une demande d’inscription d’un

acheteur ou d’un fournisseur.

b. L’ inscription

Cette vue est un formulaire de demande d’inscription renseigné par l’acheteur

ou le fournisseur. Les champs de ce formulaire dépendent du profil de

l’utilisateur c’est-à-dire acheteur ou utilisateur. La figure suivante présente cette

vue :

Page 16: Rapport PFA(2)

Projet de fin d’année

ENIM

16

c. Ajouter une annonce

Cette interface est un formulaire d’ajout ou de modification d’une annonce.

L’acheteur remplit plusieurs champs selon la procédure de l’appel d’offres :

ouverte, restreinte ou avec présélection.

La figure suivante présente la vue « ajouter une annonce » d’un acheteur donné.

d. Rechercher une annonce

Cette vue permet au fournisseur de lancer une recherche sur les annonces de la

base de données en se basant sur plusieurs critères.

Page 17: Rapport PFA(2)

Projet de fin d’année

ENIM

17

Conclusion Le présent projet a, outre son traitement d’un problème sensible affectant

le paysage socio-économique marocain, permis d’amorcer en nous les

réflexes et les techniques relatifs à une notion vouée à un grand avenir :

la dématérialisation.

Ce projet nous a permis également de nous initier aux technologies et

frameworks relatifs à une plateforme en perpétuel développement qui est

J2EE. C’est ainsi que l’on a pu manipuler les JavaServer Faces,

Hibernate, … et autres technologies qui nous seront d’une aide

considérable durant nos stages de formations et autres expériences

professionnelles.