Vous êtes sur la page 1sur 54
2009/2010 LICENCE PRO-SIL : PROJET TUTORE Groupe : Yahsine,Resnay, Kojo, Amadou, Alain Tuteur : Moez
2009/2010 LICENCE PRO-SIL : PROJET TUTORE Groupe : Yahsine,Resnay, Kojo, Amadou, Alain Tuteur : Moez
2009/2010 LICENCE PRO-SIL : PROJET TUTORE Groupe : Yahsine,Resnay, Kojo, Amadou, Alain Tuteur : Moez
2009/2010 LICENCE PRO-SIL : PROJET TUTORE Groupe : Yahsine,Resnay, Kojo, Amadou, Alain Tuteur : Moez
2009/2010 LICENCE PRO-SIL : PROJET TUTORE Groupe : Yahsine,Resnay, Kojo, Amadou, Alain Tuteur : Moez

2009/2010

LICENCE PRO-SIL : PROJET TUTORE

Groupe : Yahsine,Resnay, Kojo, Amadou, Alain

2009/2010 LICENCE PRO-SIL : PROJET TUTORE Groupe : Yahsine,Resnay, Kojo, Amadou, Alain Tuteur : Moez Essaidi

Tuteur : Moez Essaidi

Ad Hoc reporting

SOMMAIRE

I) CAHIER DES CHARGES

2

L’objectif du projet :

2

Environnement du projet :

2

L’équipe:

2

Les moyens mis en place :

3

II) AD HOC REPORTING, DÉFINITIONS

8

III) ETUDE DE L’EXISTANT

10

IV) ODBIS VS LES PRODUITS EXISTANTS

11

V) ETAT DE L’ART

12

VI) SPECIFICATIONS FONCTIONNELLES

18

VII) SPECIFICATIONS TECHNIQUES

28

VIII) ANALYSE ET CONCEPTION

32

IX) DEVELOPPEMENT

42

X) SITE ET SUPPORT

48

XI) CONCLUSION

50

Ad Hoc reporting

I) CAHIER DES CHARGES

L ’ o b j e c t i f

d u

p r o j e t

:

Réalisation de fonctionnalités d’un module de ad’hoc reporting.

Ce type de logiciel doit permettre à des utilisateurs non informaticiens d’une entité de paramétrer et réaliser des rapports selon leurs critères. Le rapport affichera des données sous une représentation qui peut être un mélange de texte et de graphiques.

E

n v i r o n n e m e n t

d u

p r o j e t

:

 

Utilisation d’outils open source.

 

Architecture JEE.

 

Interfaces web pour la création et la consultation des rapports, dashboard et sources de données.

C

e

t r a v a i l

s ’ e s t

d é r o u l e

e n

p l u s i e u r s

p h a s e s

:

Etude de l’existant Odbis Beta1.

• Etablissement de l’état de l’art et étude des produits existants et de leurs différents packages open source.

Spécifications fonctionnelles.

Spécifications techniques.

Etablissement du planning.

Etude et conception du module.

L ’ é q u i p e :

5 personnes : Yahsine, Resnay, Kojo, Amadou et Alain

Un responsable de projet est nommé afin d’organiser le travail et les relations avec le tuteur.

Les connaissances en JEE sont nulles au départ du projet.

Les connaissances en technique du web ne sont pas identiques et faibles de toute manière.

Ad Hoc reporting

L e s

m o y e n s

m i s

e n

p l a c e

:

Un groupe Google est créé afin de pouvoir disposer d’une zone collaborative ou on peut d’une part lancer des discussions sur différents thèmes et d’autre part avoir une zone commune pour partager des documents.

Notre tuteur mettra en cours de projet celui-ci sur SourceForge qui est une plateforme d’hébergement de projet open source. Les sources que nous produirons et ceux de la version Beta1 seront à disposition dans un dépôt SVN.

• Nous installons sur nos machines l’environnement de développement Eclipse en version JEE.

Une version « stand alone » de la Beta1 est également installée afin que nous puissions voir comment fonctionnent les éléments déjà réalisés.

Une base de donnée PostgreSql et un serveur Web Tomcat doivent être également installés pour que cela fonctionne.

En ce qui concerne la gestion du projet par elle-même et afin de ne pas avoir à installer une application de plus, nous avons créé un compte sur PlanZone pour le groupe et nous avons demandé l’extension de ce compte afin que le nombre maximum d’utilisateurs puisse permettre aux autres groupes d’en profiter. Il s’agit d’une gestion de projet en ligne et nous pourrons ainsi essayer de mettre en pratique ce que nous verrons dans les différents cours à ce sujet.

Ce logiciel est accessible par une barre installée en plugin dans Firefox :

différents cours à ce sujet. • Ce logiciel est accessible par une barre installée en plugin

Ad Hoc reporting

Exemple du Planning du projet Odbis :

Ad Hoc reporting Exemple du Planning du projet Odbis : Détails des actions d’une activité :

Détails des actions d’une activité :

Ad Hoc reporting Exemple du Planning du projet Odbis : Détails des actions d’une activité :

Ad Hoc reporting

Exemple d’affichage sur une activité :

Ad Hoc reporting Exemple d’affichage sur une activité : Page 5

Ad Hoc reporting

L e

t r a v a i l

e n

é q u i p e ,

l a

r é p a r t i t i o n

d e s

t â c h e s :

Notre première réunion avec notre tuteur a lieu le 23 Novembre 2009. Après avoir clarifié les besoins, il est convenu d’effectuer des recherches individuelles pour que chacun s’approprie le projet et l’existant pour être capable de revenir avec des questionnements.

a) Nous convenons de la date du 02/12/09 pour la remise sur le groupe Google d’un document individuel concernant l’étude des fonctionnalités :

Fonctionnalités

Membre de l’équipe

Les données

Martial

Administration

Yashine

Dasboard

Resnays

Rapports

Alain

Requêtes

Amadou

b) En ce qui concerne l’état de l’art, le travail de recherche et de rédaction est réparti de la même manière :

Produit à étudier

Membre de l’équipe

Pentaho

Martial

LogiXml

Yashine

Pentaho

Resnays

Birt

Alain

Jasper Report

Amadou

c) En fonction des compétences, les tâches seront réparties comme suit :

Spécialité

Membre de l’équipe

Modélisation et Bdd

Martial

IHM et Site

Yashine

Code Java

Resnays

Modélisation

Alain

Support

Amadou

Ad Hoc reporting

d) Calendrier récapitulatif des faits principaux durant le projet

Date

Avancement

14/12/2009

Décision d’une réunion systématique le Jeudi

15/12/2009

Mise à disposition des documents décrivant les fonctionnalités

18/12/2009

Essai d’affichage de rapport en .rptdesign trouvé sur le net

22/12/2009

Inscriptions sur SourceForge

22/12/2009

Installation du plugin d’Eclipse pour Subversion

06/01/2010

Etude de l’IHM de Intelliview

07/01/2010

Carte du site

08/01/2010

Apprentissage à l’utilisation de SVN

19/01/2010

Etude des modèles objet des systèmes de charting afin de définir le nôtre. Cela comprend, Excel, Google Chart, Trinidad.

21/12/2010

Travail sur le modèle CWM

29/01/2010

Les premiers éléments de code produits à partir de la modélisation sont délivrés.

31/01/2010

Les palettes de couleur sont mises sur SVN

03/02/2010

Site du projet en ligne pour test

08/02/2010

Phase de rétro-conception avec BoUml sur Birt Core Module

14/02/2010

Le code de la première itération de la DataTable est déposé

15/02/2010

Mise sur Svn du code du chart engine et celui permettant de tester.

20/02/2010

Simplification du modèle DataTable pour la première itération

01/03/2010

Préparation de la soutenance, exposé et document d’accompagnement

Ad Hoc reporting

II) AD HOC REPORTING, DÉFINITIONS

A d

h o c :

Ad hoc est une expression latine signifiant « à cette fin ». Elle est généralement utilisée pour indiquer qu’une solution est conçue pour traiter un problème spécifique, non-généralisable et qu’elle n’est pas adaptée à d'autres buts. On rencontre souvent ce terme lorsque l’on parle d’organismes, comités, ou de commissions créés au niveau national ou international pour une tâche spécifique. Dans d'autres domaines, cela peut concerner par exemple un protocole de réseau sur mesure et avoir parfois une co- notation indiquant une solution improvisée utilisant des moyens de fortune (cela ne concerne pas notre domaine d’étude).

R e p o r t i n g

:

Le reporting est utilisé pour présenter périodiquement des rapports sur les activités et résultats d'une entité, ceci afin d’en informer les responsables, gestionnaires ou toute personne (interne ou externe) concernée par ces activités.

Ces rapports vont répondre à des interrogations types : « Que se passe-t-il ? », « Que va-t-il se passer ? », ou « Pourquoi cela s’est-il passé ? ». Les informations utilisées afin de construire ces rapports sont extraites d’entrepôts de données qui peuvent être multiples et locaux ou déportés.

La technique inclut les moyens mis en œuvre pour offrir à l’utilisateur une présentation facilement lisible ou imprimable.

A d

h o c

r e p o r t i n g :

Beaucoup d’applications logicielles s’appuient sur une base de données accessible par un ensemble limité de requêtes et de rapports. Typiquement, ces éléments sont préprogrammés et optimisés.

A l’opposé, le ad hoc reporting permet aux utilisateurs de créer eux-mêmes des requêtes par

l’utilisation d’interface graphique et sans avoir besoin de passer par l’utilisation du langage SQL. Comme de tels systèmes ont tendance à dégrader sévèrement les performances du système, on les utilise plutôt de paire avec un data warehouse. Comme d’autres outils tels le data warehousing et le data mining, le ad hoc reporting est une branche de la business intelligence.

Ad Hoc reporting

D é f i n i t i o n

i s s u e s

d e

W i k i p e d i a

:

Business Intelligence : L’informatique décisionnelle (en anglais : DSS pour Decision Support System ou encore BI pour Business Intelligence) désigne les moyens, les outils et les méthodes qui permettent de collecter, consolider, modéliser et restituer les données, matérielles ou immatérielles, d'une entreprise en vue d'offrir une aide à la décision et de permettre aux responsables de la stratégie d'entreprise d’avoir une vue d’ensemble de l’activité traitée. Ce type dapplication utilise en règle générale un entrepôt de données (ou datawarehouse en anglais) pour stocker des données transverses provenant de plusieurs sources hétérogènes et fait appel à des traitements par lots pour la collecte de ces informations.

Data warehouse : Le terme entrepôt de données (data warehouse) désigne une base de données utilisée pour collecter et stocker de manière définitive des informations volatiles provenant d'autres bases de données. Chaque information collectée se voit affecter une date, ou un numéro de version pour éviter de recouvrir une information déjà présente dans la base de données et permettre de suivre l'évolution de cette information au cours du temps. Parfois les informations des différentes bases de données d'une entreprise sont collectées dans un seul entrepôt de données, ou alors il existe différents entrepôts de données en fonction du sujet ou du métier en rapport avec chaque information (datamart).Les informations collectées serviront à faire des statistiques, des recherches et des rapports. Les entrepôts de données sont utilisés notamment en informatique décisionnelle.

Ad Hoc reporting

III) ETUDE DE L’EXISTANT

O d b i s

B e t a 1 :

Ce module utilise différentes technologies et chacun va essayer pendant les deux premières semaines de comprendre ce qu’il peut.

Cela comprend l’étude de la structure du projet dans Eclipse aussi bien que le fonctionnement des différents éléments et du Serveur Tomcat.

Notre tuteur nous a fourni une version « standalone » qui est une archive .war directement installable.

L’étude de l’existant à ce niveau consiste à voir comment est implémentée une application web de ce type au niveau du serveur et le rôle des différents fichiers.

D’un autre coté le fonctionnement de cette maquette nous a permis de nous forger une idée de base du besoin client et des fonctionnalités attendues. Cette étape était donc nécessaire pour pouvoir aborder les spécifications.

Ad Hoc reporting

IV) ODBIS VS LES PRODUITS EXISTANTS

ODBIS se veut être différents des autres produits de business intelligence que nous avons pu étudier et ceci sur les points suivants :

Software As Service intégrant l’ensemble des fonctionnalités nécessaires aux utilisateurs à partir d’une même application Web sans être forcé d’utiliser différents modules.

Utilisation d’Api standards.

Intégration du méta modèle CWM permettant l’échange de métadonnées avec n’importe quelle autre application ou dépôt de données d’un environnement distribué de WareHousing.

Architecture multicouche basé sur Spring qui apporte dans le projet toutes les fonctionnalités au niveau de la sécurité.

qui apporte dans le projet toutes les fonctionnalités au niveau de la sécurité. Architecture SaaS d’OdBis

Architecture SaaS d’OdBis

Ad Hoc reporting

V) ETAT DE L’ART

Q U E L Q U E S

P R O D U I T S

E X I S T A N T S

PENTAHO:

La suite BI de PENTAHO est un produit open source qui fournit une large gamme de solutions :

reporting, analyse de données, tableaux de bord et intégration de données (ETL).

FONCTIONALITES IMPLEMENTEES:

REPORTING :

Fournit des états de synthèse dans des formats populaires tels que le pdf, texte. Le reporting de Pentaho est basé sur le projet JFreeReport.

ANALYSE :

XLS, HTML et

Fournit des possibilités étendues d'analyse qui inclut des vues de table pivot basées sur JPivot (JPivot est un client OLAP disposant d'une interface Web), des affichages graphiques avancés (en utilisant SVG ou Flash), des widgets de tableau de bord, le data mining, un portail et l'intégration de workflow. En plus, les services de tableurs de Pentaho permettent à l’utilisateur d’aller fouiller et sortir des charts en utilisant Excel.

DASHBOARDS :

Tous les composants, par exemple reporting ou analyse, peuvent contribuer au contenu des tableaux de bord de Pentaho. Ce service fournit des composants d’affichage réutilisables (widgets) comme des cadrans(dial), indicateurs (gauge) ou des graphiques(charts) qui peuvent être inclus dans des applications JSPs, ou dans les portails conformes à la norme JEE JSR-168.

DATA MINING :

Incorpore Weka, qui est une collection d'algorithmes d’apprentissage machine dédiés au data mining. Ces algorithmes sont combinés avec des technologies OLAP pour permettre l'analyse intelligente de données. Les outils de data mining peuvent, en analysant des données historiques, créer des modèles prédictifs et distribuer cette information en utilisant les services de reporting et d'analyse de Pentaho.

Ad Hoc reporting

INTEGRATION DES DONNEES :

Elle est réalisée par un outil d'ETL appelé Kettle, acquis par Pentaho. L'outil fournit l'interface utilisateur graphique pour la définition de la tâche et une grande flexibilité pour le traitement des données.

JASPERREPORTS:

Jasper Reports est une librairie open source qui permet de générer des rapports à partir de sources de données.

Pour utiliser les rapports il faut d’abord créer un modèle (template) de représentation de ces données qui une fois compilé et rempli avec des données fournira une sortie de type variable :

impression

fichier PDF

fichier HTML

fichier XLS

fichier CSV

fichier XML

La source de données est indiquée dans le fichier XML de description.

Cette librairie n’inclut pas d’interface graphique utilisateur qui faciliterait la conception, il faut donc soit générer le modèle directement par programme à partir de l’API, soit utiliser un éditeur, ou bien utiliser un outil GUI de style IREPORT. Cette option est illustrée par la figure ci-dessous :

, ou bien utiliser un outil GUI de style IREPORT . Cette option est illustrée par

Ad Hoc reporting

BIRT:

BIRT (Business Intelligence and Reporting Tools) est un projet open source de la fondation Eclipse qui permet de réaliser des rapports dans des formats multiples dont HTML et PDF.

a) BIRT utilise pour effectuer le rendu des rapports deux types de fichiers :

1. un fichier de données XML.

2. un modèle (template) représentant la forme du rapport au format rptdesign (propriétaire

BIRT).

b) Au niveau du design, BIRT peut être utilisé de deux façons :

Sous Eclipse via un plugin permettant la conception des états et de générer le rapport.

En runtime utilisant du code java installé sur un serveur JEE qui utilise l’Api Design Engine. Cette dernière méthode ne permet que de lancer la génération du rapport.

méthode ne permet que de lancer la génération du rapport. c) Pour l’affichage , on peut

c) Pour l’affichage, on peut utiliser l’utilitaire Birt Viewer qui est un servlet à installer dans Tomcat.

Ad Hoc reporting

Ad Hoc reporting Détails des API de BIRT Diagramme des composants les plus importants de BIRT

Détails des API de BIRT

Ad Hoc reporting Détails des API de BIRT Diagramme des composants les plus importants de BIRT

Diagramme des composants les plus importants de BIRT

Ad Hoc reporting

B i b l i o t h è q u e s

o p e n

s o u r c e

d e

C h a r t i n g

JFreeChart est une librairie open source en Java permettant de générer des graphiques tels que :

Les camemberts (2D et 3D)

Les histogrammes (normal et empilé, avec effet 3D)

Les graphiques de types courbes ou nuages de points

Les séries chronologiques ou style candle.

Les graphiques combinés

Les diagrammes de Pareto

Les digrammes de Gantt

ICharts

JCharts est un utilitaire 100% Java produisant divers types de graphiques. Il a été conçu et réalisé de A à Z par des volontaires, pour afficher des graphiques par le biais de Servlets, de pages JSP et d'applications Swing.

CeWolf

CEWOLF peut être utilisé dans les applications web Servlet/JSP, pour incorporer des graphiques complexes de toutes sortes (ligne, camembert, histogramme, chart, tracés, etc.). La Page JSP qui contient le graphique n'est encombré par aucun code Java. Toute la configuration est décrite par des balises XML.

JccKit

JCCKit (pour Java Chart Constuction Kit) est une petite librairie Java (< 100Ko) très flexible permettant la création de graphiques et tracés scientifiques.

JChart2d

Il s'agit d'un gadget swing (JComponent), utilisé pour rendre de manière précise, l'affichage dynamique de tupples en strip-chart. Il a été conçu pour les travaux d'ingénierie où la précision est plus importante que l'esthétique du rendu. Les points forts sont la configuration très minimaliste, les échelles et légendes automatiques, le processus d'exécution est sécurisé. L’Api est bien documentée et claire.

Ad Hoc reporting

DataVision

DataVision est un outil de reporting Open Source similaire à Crystal Reports. Les états peuvent être conçus dans un éditeur graphique par glisser-déposer de composants. Les états sont exécutés, affichés et imprimés depuis l'application, ou exportés en HTML, XML, PDF, LaTex2e, DocBook, ou en fichiers textes délimités par tabulation ou virgule. Les fichiers exportés en LaTex2e et DocBook peuvent ensuite être utilisés pour produire des sorties en PDF, texte, HTML, PostScript et plus.

ART

ART est un outil web portable, très léger, de requête de reporting. Très facile à personnaliser, il produit des graphiques et exporte ses sorties dans divers formats par le biais de plugins.

JGraphT

JGraphT est une librairie Java open source de production de graphiques. Il fournit des objets issus de la théorie des graphes.

JGraphT supporte divers types de graphiques.

La visualisation des graphiques utilise la librairie Jgraph.

QN Plot

QN PLOT fournit des composants Swing permettant de créer des graphiques. Les graphiques permettent le rendu d'un grand jeu de données en temps réel.

Les coordonnées sont de type BigDecimal, permettant une précision variable

Les performances sont élevées

Toutes les classes sont thread-safe

La mise à l’échelle des graphes s’effectue automatiquement.

Ad Hoc reporting

VI) SPECIFICATIONS FONCTIONNELLES

Elaborer un module de Ad Hoc Reporting Editer les Editer les Editer des Editer des
Elaborer un module de Ad Hoc Reporting
Editer les
Editer les
Editer des
Editer des
Administrer le
Sources de
Requêtes
Rapports
DashBoards
module
Données

Le module à concevoir doit permettre aux utilisateurs de travailler en ligne à la réalisation de rapports personnalisés sans utiliser d’outils spécifiques sur le poste client.

L’application doit pouvoir allier la simplicité d’établir des rapports à la puissance de créer des rendus qui peuvent tout de même être complexes.

Il doit s’appuyer sur des standards open source et correspondre à l’architecture définie par la norme JEE. Il s’agit entre autre d’un ensemble de standards pour le développement d’architectures multi-tiers. C’est plus un ensemble de spécifications qu’un produit. La communauté se repose sur les concepteurs pour adhérer à ces spécifications. Toute implémentation de cette spécification doit donc contenir un ensemble d’extensions du framework standard de base.

Ad Hoc reporting

C A H I E R

D E S

C H A R G E S

F O N C T I O N N E L

FONCTIONALITES DE L’EDITEUR DE RAPPORTS

Elaborer un module de Ad Hoc Reporting Editer les Editer les Editer des Editer des
Elaborer un
module de Ad
Hoc Reporting
Editer les
Editer les
Editer des
Editer des
Administrer
Sources de
Requêtes
Rapports
DashBoards
le module
Données

But :

Le ad hoc reporting permettant aux utilisateurs de créer eux-mêmes des requêtes par l’utilisation d’interface graphique, ceux-ci doivent avoir la possibilité de présenter les données extraites également de manière non standard.

L’utilisateur doit pouvoir créer, visualiser et modifier un rapport. Celui-ci peut être construit à partir de différents composants (widgets) communiquant de l’information pertinente à l’utilisateur consommateur du rapport ou de rapports déjà existants qui sont alors inclus.

Il est intéressant de pouvoir enregistrer un rapport comme un modèle afin de pouvoir être réutilisé comme base de création.

L’éditeur de rapport doit mettre à disposition d’autres outils de la suite BI, des informations sur la représentation des données sous un format standard. Le XML semble tout à fait conseillé. Deux formats de ce type sont majoritairement utilisés : rptdesign de BIRT et jrxml de JasperReport.

Ad Hoc reporting

ORGANIGRAMME FONCTIONNEL

Editer des rapports      Modifier Construire Visualiser Echanger Plannifier
Editer des
rapports
Modifier
Construire
Visualiser
Echanger
Plannifier

1.1

Sélectionner une

2.1

Visualiser dans

3.1

Inclure un rapport

4.1 Exporter un rapport dans un format standard

5.1

Synchroniser la

source de données

l’éditeur

dans un rapport

génération d’un rapport avec la source de données

1.2

Sélectionner un type

2.2

Visualiser dans

3.2

Inclure le contenu

4.2 Importer un rapport.

5.2

Prévoir la

de rapport existant

les conditions de l’utilisateur

d’un fichier extérieur

publication d’un

 

rapport

1.3

Sélectionner les

 

3.3

Modifier le contenu.

   

éléments qui composent

 

le rapport

 

1.4 Tester le rapport

       

1.5 Enregistrer comme

       

modèle

 
 

CARACTERISATION DES FONCTIONS

 

Ref

Fonctions

 

Critères

Flexibilité

 

Construire un rapport

 

1.1

Sélectionner une source de données

 

Liste des sources de données

 

impératif

1.2

Sélectionner un type de rapport pré-existant.

 

Liste des formats disponibles Liste des formats déjà définis

 

Négociable

1.3

Sélectionner les éléments qui composent le rapport

 

Liste des « Widgets » disponibles

 

impératif

1.4

Tester le rapport

 

Ecran Bouton de déclenchement Format de visualisation

 

impératif

1.5

Enregistrer comme modèle

 

Choix du groupe de modèle Choix du nom

 

négociable

 

Visualiser un rapport

 

2.1

Visualiser dans l’éditeur

 

Ecran Bouton de déclenchement

 

impératif

2.2

Visualiser dans les conditions de l’utilisateur

 

Affichage direct dans un navigateur

 

négociable

 

Modifier un rapport

 

Ad Hoc reporting

3.1

Inclure un rapport dans un rapport

Format du rapport Chemin d’accès au rapport Positionnement du rapport

négociable

3.2

Inclure le contenu d’un fichier extérieur

Chemin d’accès au fichier Positionnement du contenu

négociable

3.3

Modifier le contenu.

Eléments concernés Nouveau contenu Nouvelle présentation

impératif

 

Echanger Des rapports

 

4.1

Exporter un rapport dans un format standard

Choix du format Chemin du document de sortie

Très négociable

4.2

Importer un rapport.

Chemin du document d’entrée Choix du format

Très négociable

 

Planifier un rapport (plutôt du domaine de l’administration)

 

5.1

Synchroniser la génération d’un rapport avec la source de données

Choix du rapport Choix du type de synchronisation

Très négociable

5.2

Prévoir la publication d’un rapport

Choix du rapport Choix du type de publication Choix du type de date Choix de la périodicité

Très négociable

Ad Hoc reporting

FONCTIONALITES DE L’EDITEUR DE Requêtes

Elaborer un module de Ad Hoc Reporting Editer les Editer les Editer des Editer des
Elaborer un
module de Ad
Hoc Reporting
Editer les
Editer les
Editer des
Editer des
Administrer
Sources de
Requêtes
Rapports
DashBoards
le module
Données

But :

Le ad hoc reporting permettant aux utilisateurs de créer eux-mêmes des requêtes par l’utilisation d’interface graphique, ceux-ci doivent avoir la possibilité d’utiliser soit le langage SQL, soit de construire la requête de manière interactive en sélectionnant les attributs intervenants, ceux à afficher, les filtres, etc…

ORGANIGRAMME FONCTIONNEL

Editer des requêtes      Elaborer Tester Enregistrer Modifier Exporter
Editer des
requêtes
Elaborer
Tester
Enregistrer
Modifier
Exporter

1.1

Sélection des

2.1

Saisir les

3.1 Nommer la requête

4.1

Sélectionner la requête

5.1 Choisir le format

champs

 

paramètres

à modifier

1.2

Gestion des

2.2 Lancer la requête

3.2

4.2

Editer comme en

5.2 Sélectionner le

conditions

 

chemin

1.3

Gestion des

2.3 Visualiser les

3.3

   

classements

données extraites

   

CARACTERISATION DES FONCTIONS

 

Ref

 

Fonctions

 

Critères

Flexibilité

 

Elaborer une requête

 

1.1

Sélectionner les objets (tables/vues)

 

Listes des objets (tables/vues) de la source

 

Impératif

Ad Hoc reporting

 

concernés

   

1.2

Sélectionner les champs

Liste des champs de chaque objet

Impératif

1.3

Indiquer les critères de sélection

Filtre sur les valeurs des champs ou sur des fonctions

impératif

1.4

Indiquer un ordre de tri

Options de tri sur un champ de la requête

Impératif

 

Tester une requête

2.1

Saisir les paramètres

Choix des valeurs

Impératif

2.2

Lancer la requête

Bouton/lien d’exécution

Impératif

2.3

Visualiser les données extraites

Tableau d’un échantillon des n (à définir) premiers enregistrements.

Impératif

 

Enregistrer une requête

3.1

Nommer la requête

Choix du nom (par rapport à ceux qui existent déjà). Bouton/Lien d’enregistrement

Impératif

 

Modifier une requête existante

 

4.1

Sélectionner la requête à modifier

Liste des requêtes sauvegardées

Impératif

4.2

Editer la requête comme au n°1

 

Impératif

 

Exporter une requête

5.1

Choisir le format

Liste des formats d’exports

Négociable

5.2

Sélectionner le chemin

Chemin d’accès aux répertoires Bouton/Lien d’export

Négociable

Ad Hoc reporting

FONCTIONALITES DE L’EDITEUR DE DONNEES

Elaborer un module de Ad Hoc Reporting Editer les Editer les Editer des Editer des
Elaborer un
module de Ad
Hoc Reporting
Editer les
Editer les
Editer des
Editer des
Administrer
Sources de
Requêtes
Rapports
DashBoards
le module
Données

But :

Définir, l’origine des données exploitées par le rapport et la façon de se connecter au service qui les procure.

Les sources de données peuvent être des bases de données, des fichiers xml, des fichiers csv etc….

ORGANIGRAMME FONCTIONNEL

Editer des données     Créer unesource Dupliquer source Modifier source Supprimer une
Editer des
données
Créer unesource
Dupliquer source
Modifier source
Supprimer une source

1.1

Sélectionner le type de la

2.1

Sélectionner la connexion

3.1

Sélectionner la connexion

4.1

Sélectionner la

source

à dupliquer

 

connexion

1.2

Indiquer les paramètres

2.2 Cloner la connexion

3.2

Modifier comme en 1

4.2

Supprimer

de connexion

   

1.3

Tester la connexion

2.3 Modifier comme en 1

3.3

 

1.4

Sauvegarder la connexion

     

1.5

     

Ad Hoc reporting

CARACTERISATION DES FONCTIONS

Re

Fonctions

Critères

Flexibilité

 

Créer une source de données

 

1.1

Sélectionner le type de source

Liste de types de sources

Impératif

1.2

Indiquer les paramètres de connexion

Choix des valeurs Contextuel selon le type choisi

Impératif

1.3

Tester la connexion

Bouton/Lien

Impératif

1.4

Sauvegarder la connexion

Bouton/Lien

Impératif

1.5

     
 

Créer une source de données selon un modèle (create as)

 

2.1

Sélectionner la source existante

Liste des sources de données

Impératif

2.2

Dupliquer la source sélectionnée

Bouton/Lien

Impératif

2.3

Modifier la source comme en 1.

 

Impératif

 

Modifier une source de données

 

3.1

Sélectionner la source

Liste des sources existantes

Impératif

3.2

Modifier la source comme en 1

 

Impératif

3.3

     
 

Supprimer une source de données

 

4.1

Sélectionner la source

Liste des sources existantes

Impératif

4.2

Supprimer la source

Bouton/Lien

Impératif

Ad Hoc reporting

FONCTIONALITES DE L’EDITEUR DE DASHBOARDS

Elaborer un module de Ad Hoc Reporting Editer les Editer les Editer des Editer des
Elaborer un
module de Ad
Hoc Reporting
Editer les
Editer les
Editer des
Editer des
Administrer
Sources de
Requêtes
Rapports
DashBoards
le module
Données

But :

Les « tableaux de bord » s’inscrivent dans une approche de pilotage.

Cela ce traduit par la surveillance de l'activité, dans sa capacité à remplir ses objectifs stratégiques. Les tableaux de bords sont des formats agrégés de présentation de contenu. Ils mettent en scène les indicateurs clés et les objectifs stratégiques en les confrontant. Très visuel, le tableau de bord permet de savoir rapidement si l'entreprise est en avance ou en retard sur son plan stratégique

Les tableaux de bord permettent d'avoir accès à des données totalement agrégées en présentant des tendances, des écarts par rapport aux objectifs fixés. Suite à la remontée de ces indicateurs, une analyse plus fine pourra être élaborée par des opérationnels plus impliqués localement.

Un mot clé rencontré dans cette forme de reporting est « KPI » : Key Performance Indicators. Comme dans les autres sous-modules, les utilisateurs doivent pouvoir déterminer eux-mêmes l’agencement des composants graphiques servant à visualiser les indicateurs. Ils auront au préalable pu choisir ces indicateurs en indiquant les champs, critères et paramètres qui serviront à produire les données qui seront affichées.

Ad Hoc reporting

ORGANIGRAMME FONCTIONNEL

Editeur de dashboards      Choix des Choix type Positionnement Choix type
Editeur de
dashboards
Choix des
Choix type
Positionnement
Choix type de
Rendu
Choix périodicité
indicateurs
affichage

1.1 Identification

2.1

Liste des charts

3.1

Présentation par

4.1 Liste des types

5.1 Indiquer la périodicité

disponibles

défaut

1.2 Champ de la

2.2 Liste des styles

3.2

Déplacement des

4.2

5.2

mesure

indicateurs

1.3 Critères

2.3 Liste des palettes

3.3

   

1.4 Paramètres

       
 

CARACTERISATION DES FONCTIONS

Ref

 

Fonctions

Critères

Flexibilité

 

Choix des indicateurs

1.1

Identification

Choix des valeurs

Impératif

1.2

Champ de la mesure

Liste des champs

Impératif

1.3

Critères

Choix des valeurs

Impératif

1.4

Paramètres

Choix des valeurs

Impératif

1.5

     
 

Choix de l’affichage

2.1

Liste des charts disponibles

Liste de choix

Impératif

2.2

Liste des styles

Liste de choix

Impératif

2.3

Liste des palettes

Liste de choix

Impératif

 

Positionnement des indicateurs

 

3.1

Présentation par défaut

Liste de choix

Impératif

3.2

Déplacement des indicateurs

Choix de valeurs

Impératif

3.3

     
 

Choix du type de rendu

4.1

Liste des types

Liste de choix

Impératif

4.2

     
 

Choix de la périodicité

5.1

Indiquer la périodicité

Liste de choix

Impératif

5.2

     

Ad Hoc reporting

VII) SPECIFICATIONS TECHNIQUES

E n v i r o n n e m e n t :

1. La plate-forme de développement est Microsoft Windows XP ou Linux.

2. Les outils utilisés sont principalement : Eclipse, Subversion, StarUml, BoUml

3. En ce qui concerne les bibliothèques graphiques dédiées : jFreeChart

4. Le déploiement de l’application a été testé sur Tomcat 6.0.20 avec PostgreSql 8.4

Ad Hoc reporting

A r c h i t e c t u r e

J E E

Ad Hoc reporting A r c h i t e c t u r e J

Dans notre cas nous sommes uniquement en présence d’un serveur web, il n’y a aucun serveur d’application.

Ad Hoc reporting

Ad Hoc reporting  EIS : Entreprise Information system La partie IHM de la couche présentation

EIS : Entreprise Information system

La partie IHM de la couche présentation va être prise en charge par des pages HTML ou des JSP (compilées au niveau du serveur Web).

La partie contrôleur étant assurée par des Servlets

Servlet, définition :

Une servlet est un composant Web java géré par un container et qui génère du contenu dynamique. Comme d'autre technologies Java basées sur les composants, les servlets sont des classes indépendantes de la plateforme et sont compilées en bytecode qui peut être chargé et exécuté dynamiquement sur un serveur web. Les containers, quelquefois appelés moteurs de servlet, agissent comme des extensions du serveur web. Les servlets interagissent avec les clients Web par l'intermédiaire des requêtes/réponses gérées par le container de servlets.

Le traitement d’un formulaire par une servlet suit le schéma suivant :

1. Récupère ou demande les données

2. Enregistre ou transmet les données

3. Répond à la requête

La partie container du serveur web va gérer le décodage des types MIME, le cycle de vie des servlets et peut également gérer les aspects sécurité.

Ad Hoc reporting

A r c h i t e c t u r e

g é n é r a l e

d u

P r o j e t

O D B I S

Ad Hoc reporting A r c h i t e c t u r e g

Ad Hoc reporting

VIII) ANALYSE ET CONCEPTION

Dans cette partie du document, nous allons reprendre le découpage en thème établi lors de la description des fonctionnalités pour élaborer les détails qui permettront, en passant par l’établissement de diagrammes de classes, de passer à la phase de codage.

L’étude des cas d’utilisation n’est que partielle et le périmètre d’étude détaillée est restreint à l’édition de rapport en se concentrant sur ce qui concerne la génération des graphiques (Charts) et des tableaux (DataTable).

L e s

c a s

d ’ u t i l i s a t i o n

:

UC > Arrivée sur le site

et des tableaux (DataTable). L e s c a s d ’ u t i l

Ad Hoc reporting

UC > CHOIX PAR L’UTILISATEUR DE L’EDITION D’UN RAPPORT

CHOIX PAR L’UTILISATEUR DE L’EDITION D’UN RAPPORT UC > EDITION RAPPORT > MAQUETTE F 1.1 ET

UC > EDITION RAPPORT > MAQUETTE F 1.1 ET 1.3 > SELECTION SOURCE DE DONNEES

L’EDITION D’UN RAPPORT UC > EDITION RAPPORT > MAQUETTE F 1.1 ET 1.3 > SELECTION SOURCE

Ad Hoc reporting

UC> EDITION RAPPORT > MAQUETTE F 1.1 ET 1.3 > SELECTION D’UN COMPO……> CHART

1.1 ET 1.3 > SELECTION D’UN COM PO ……> CHART UC > EDITION RAPPORT > MAQUETTE

UC > EDITION RAPPORT > MAQUETTE F 1.1 ET 1.3 > SELECTION D’UN COMPO…….> DATATABLE

Sélection d’un DataTable
Sélection d’un DataTable
Sélection des données dans la DataSource Choix du Style de rendu
Sélection des données dans la
DataSource
Choix du Style de rendu

Ad Hoc reporting

UC > EDITION RAPPORT > DIAGRAMME DE SEQUENCE

Ad Hoc reporting UC > EDITION RAPPORT > DIAGRAMME DE SEQUENCE Page 35

Ad Hoc reporting

UC > CHOIX PAR L’UTILISATEUR DE L’EDITION DES REQUETES

CHOIX PAR L’UTI LISATEUR DE L’EDITION DES REQUET ES USE CASES > EDITION D’UNE REQUÊTET >

USE CASES > EDITION D’UNE REQUÊTET > MAQUETTE F 1.3

L’UTI LISATEUR DE L’EDITION DES REQUET ES USE CASES > EDITION D’UNE REQUÊTET > MAQUETTE F
L’UTI LISATEUR DE L’EDITION DES REQUET ES USE CASES > EDITION D’UNE REQUÊTET > MAQUETTE F

Ad Hoc reporting

C o n c e p t i o n ,

d i a g r a m m e s

d e

c l a s s e s

:

Fig : Diagramme de classe des packages org.odbis.domain et org.odbis.domain.metadata
Fig : Diagramme de classe des packages org.odbis.domain et
org.odbis.domain.metadata

BaseEntity : afin qu'une classe POJO puisse être persistante, elle doit être déclarée en utilisant l'annotation @Entity et posséder un attribut Id. Le rôle de cette classe abstraite est d'apporter aux classes concrètes cette caractéristique (champ privé et accesseurs). C'est un peu comme Object pour les classes Java.

NameEntity : elle apporte un nom et une description.

DataSource (javax.sql Interface DataSource): interface représentant une "source de données". Cette "source de données" est en fait une simple fabrique de connexions vers la source de données physique. Son utilisation permet de s’adapter à des changements comme par exemple le déplacement d’une base d’un serveur vers un autre.

Charts et Dataset : afin de créer un graphique en utilisant JFreeChart, on doit utiliser un Dataset qui possède une référence sur une DataSource pour aller chercher les données. Le DataSet est ensuite utilisé afin de créer un JFreeChart à l’aide d’une ChartFactory

Ad Hoc reporting

Ad Hoc reporting Fig : Diagramme des classes du package org.odbis.domain.reporting  Les objets de type

Fig : Diagramme des classes du package org.odbis.domain.reporting

Les objets de type Chart permettent d’incorporer dans un rapport un graphique de type variable (camembert, courbes, histogramme etc ).

Les objets de type DataTable permettent de représenter des données sous formes tabulaires.

Ad Hoc reporting

Ad Hoc reporting Fig : Diagramme des classes du package org.odbis.services Page 39

Fig : Diagramme des classes du package org.odbis.services

Ad Hoc reporting

D I A G R A M M E

D E

D E P L O I E M E N T

Ad Hoc reporting D I A G R A M M E D E D E

Ad Hoc reporting

M o d è l e

d e s

d o n n é e s

d e

l a

b a s e

P o s t G r e S q l

Ad Hoc reporting M o d è l e d e s d o n n

Ad Hoc reporting

IX)

DEVELOPPEMENT

S t r u c t u r e

d ’ u n

p r o j e t

A p p l i c a t i o n

W e b

Une application web basée sur les technologies Java doit se présenter au niveau du serveur sous une forme hiérarchique standardisée:

Cette hiérarchie doit être implantée au niveau du répertoire contenant les applications de notre serveur d’application Tomcat, sur mon ordinateur par exemple :

d’application Tomcat, sur mon ordinateur par exemple : Répertoire Contenu /wwwAlain Répertoire racine

Répertoire

Contenu

/wwwAlain

Répertoire racine de notre application, c’est ici que seront stockées les pages (X)HTML et JSP.

/wwwAlain/images

On rangera dans le répertoire images toutes les images auxquelles on fera référence dans nos pages

/ wwwAlain /WEB-INF

Ce repertoire contient toutes les resources qui ne sont pas à la racine. C’est ici entre autres que l’on va trouver notre descripteur de deployment. Il faut noter qu’aucun fichier situé à ce niveau n’est accessible pour être rendu coté client, Tomcat ne le rend pas visible.

 

/ wwwAlain /WEB-INF/classes

C’est le repertoire qui contient les servlets et les classes utilitaires. Si nos classes sont organisées en packages la structure interne de

 

WEB-INF/classes le reflètera par des sous répertoires.

/ wwwAlain /WEB-INF/lib

Ce répertoire contient les fichiers Java Archive dont dépend notre application. Par exemple, c’est l’endroit où on placer un JAR

Ad Hoc reporting

contenant un driver JDBC. En règle général on y trouvera les fichiers situés dans le
contenant un driver JDBC. En règle général on y trouvera les
fichiers situés dans le répertoire src/lib de nos projets sous Eclipse.

Un serveur d’application peut héberger plusieurs applications, chaque application expose son contenu grâce à son descripteur de déploiement.

Ce contenu apparaît dans l’explorateur de projet qui, en fonction de la perspective utilisée (JavaEE dans notre cas), affiche les différentes composantes décrites dans le fichier web.xml

Perspective JEE Perspective Java
Perspective JEE
Perspective Java

Ad Hoc reporting

S t r u c t u r e

d u

p r o j e t

O d b i s

d a n s

E c l i p s e

Ad Hoc reporting S t r u c t u r e d u p r
Ad Hoc reporting S t r u c t u r e d u p r
Ad Hoc reporting S t r u c t u r e d u p r

Ad Hoc reporting

Détails du fichier descripteur de déploiement web.xml, seuls on été conservés les éléments les plus significatifs pour nous.

conservés les éléments les plus significatifs pour nous. On peut voir que par exemple toute les

On peut voir que par exemple toute les requêtes concernant des pages *.xhtml seront prises en charge par le servlet identifié par Faces Servlet qui fait référence à la classe javax.faces .webapp.FacesServlet.

Au niveau du context, on peut voir également que l’application fera appel à contextConfigLocation qui représente la configuration décrite dans le fichier xml situé à /WEB-INF/config/web-application- config.xml.

Ad Hoc reporting

C o d a g e

d e s

C h a r t s

e t

D a t a T a b l e

Les Charts et DataTable

Ils peuvent être rendu à l’aide de plusieurs palettes de couleurs qui sont définies par le type ChartColor.

public class ChartColor extends Color { public final static Color copper = new Color(173, 108, 80); public final static Color frostedAlmond = new Color(204, 184, 159); public final static Color paleGold = new Color(183, 140, 95); Ainsi que les palettes :

public static Paint[] simplyElegant() { return new Paint[] { copper, frostedAlmond, paleGold, antelope, purplePassion, silverBlue, silverMink, mahogany };

}

Le rendu des Datable est effectué sous la forme d’un élément Table HTML

public class TableRender{

private String width; private String html;

private DataTable table; ……… private void buildHtml(){ StringBuilder sb = new StringBuilder(); sb.append("<table "); sb.append(" width=\""); sb.append(this.width+"\""); sb.append(" border=\""); sb.append(this.border+"\""); sb.append(">"); for(List<String> row :table.getRows()){ sb.append("<tr>"); //ajoute les colonnes for(String cell :row)

{

 

sb.append("<td>");

sb.append(cell);

sb.append("</td>");

}

sb.append("</tr>");

}

sb.append("</table>"); this.html = sb.toString();

Ad Hoc reporting

La Servlet effectuant le charting:

public class ChartServlet extends HttpServlet { private static final long serialVersionUID = 1L; private DataSetProvider provider=new DataSetProvider(); private ChartEngine chartEngine=new ChartEngine();

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String type=request.getParameter("type"); // creation du chart if(type.equalsIgnoreCase("pie")){ this.createChartPie(request, response); }else if(type.equalsIgnoreCase("barV3D")){ this.createChartbarV3D(request, response); }else if(type.equalsIgnoreCase("XYArea")){ this.createChartXYArea(request, response);

}

}

//Insertion de l’image généréé dans le flux de retour vers le client

public void createChartPie(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType("image/png"); String titlePie="Repartition des notes"; OutputStream outPie = response.getOutputStream(); String[][] pieDataSetQuery=provider.getPieDatasetQuery(); JFreeChart pieChart = chartEngine.createPieChart(titlePie,pieDataSetQuery); ChartUtilities.writeChartAsPNG(outPie, pieChart, 300, 300); request.setAttribute("pie", pieChart); outPie.close();

}

Ad Hoc reporting

X) SITE ET SUPPORT

H e b e r g e m e n t

d e s

s o u r c e s

e t

s i t e

d u

p r o j e t

Site Source forge où les sources du projet sont hébergés

dans un dépôt SVN :

Site Source forge où les sources du projet sont hébergés dans un dépôt SVN : Site
Site Source forge où les sources du projet sont hébergés dans un dépôt SVN : Site

Site du projet www.odbis.com

Site Source forge où les sources du projet sont hébergés dans un dépôt SVN : Site

Ad Hoc reporting

Ad Hoc reporting Page 49

Ad Hoc reporting

XI)

CONCLUSION

Nous allons passer en revue les différents points techniques et méthodologiques que nous avons rencontrés lors de ce projet et décrire les enseignements que nous avons pu en tirer en les mettant en relation avec les différentes matières au programme.

Si les acquis techniques sont du domaine de l’immédiat (quoiqu’il y existe un phénomène dû à l’accumulation), les acquis méthodologiques seront obtenus d’avantage par l’étude à postériori du déroulement du projet ou chacun pourra voir ce qui a ou non fonctionné.

A ) L e

s u j e t

Pour la plupart d’entre nous les concepts de business intelligence, ad’hoc reporting ne voulaient pas dire grand-chose lors de notre arrivée en formation. Le projet Odbis nous a fait découvrir un secteur de l’informatique d’entreprise, les outils décisionnels, et cela nous a permis entre-autre d’utiliser quelques logiciels de démo et d’acquérir un minimum de connaissance technique et de vocabulaire dans ce domaine. Le sujet nous a attiré car il était le reflet d’un besoin industriel et qu’il utilisait des technologies inscrites à notre programme.

B )

L e s

t e c h n o l o g i e s

u t i l i s é e s

JEE

La courbe d’apprentissage a été très plate car elle comprend la prise en main avec plus ou moins de maîtrise des éléments suivants:

1. Java

2. Détails de JEE

Différents types de serveurs

Servlet

Persistance

Framework

Structure des projets

Implémentation des applications

3. XML

4. Nombreux framework

5. Vocabulaire important à acquérir.

6. Nombreuses utilisations de design pattern inconnus au début du projet et de toute façon non maitrisés.

Ad Hoc reporting

Une majeure partie de ces différents éléments a été vue en cours et nous avons donc pu tirer un plus grand profit dans les cas où le cours a eu lieu après notre propre exploration.

Bien qu'il n’intègre pas de serveur d'application, le projet Odbis a permis de voir concrètement un exemple d'implémentation d'architecture JEE.

SVN et la gestion des versions

Lors des cours, chacun a pu travailler sur sa machine avec son IDE de développement. Dans le cadre d'un projet réel, chaque développeur travaille sur un module et le gestionnaire de versions permet de centraliser, d'homogénéiser et de synchroniser le code produit pendant le cycle de développement. Nous avons appris à extraire et réintégrer des sources sur le repository, par contre l’aspect « partage » des sources lorsque plusieurs développeurs travaillent en même temps sur un module n’a pas pu être abordé faute de temps et du manque de matière produite.

C )

S p é c i f i c a t i o n s

Le travail de recherche sur les outils de reporting et l’étude de leur documentation a apporté une forte valeur ajoutée. Pour certains qui ont été jusqu’à leur installation et létude de leur utilisation, le bénéfice a été encore plus important. D’une manière générale nous avons tous amélioré notre capacité à chercher de l’information (à travers la multitude de sources existant sur le web) et arrivé à en faire ressortir l'essentiel. Cela a résulté en une montée en compétence proportionnelle au temps investi. Le cahier des charges étant très réduit, l’étape des spécifications a représenté une expérience quelque peu déroutante puisque pour la plupart nous étions plus habitués à faire ce que l’on nous demande qu’à nous interroger sur le « que va-t-on faire ? ».

D ) G e s t i o n

d u

p r o j e t

La mise en place de l’outil PlanZone et son utilisation dans plusieurs groupes a permis de mettre en application les concepts vus en cours de génie logiciel.

Par contre, nous n’avons pas disposé d’assez de temps pour pratiquer son utilisation au quotidien. Les aspects techniques du projet ont pris le pas sur l’aspect gestion. Un projet un peu moins exigeant nous aurait sûrement permis d’être plus près de la réalité du travail en entreprise.

Le mode de développement itératif choisi était nouveau pour nous tous.

Ad Hoc reporting

E )

M o d é l i s a t i o n

Etude et manipulation de différents outils UML :

La recherche du bon outil nous a beaucoup aidés par la suite sur d'autres modules comme le GL4. La mise en pratique a permis de faire le rapprochement avec le cours d’UML et d'aborder le passage du diagramme des classes aux tables relationnelles.

Le passage des cas d’utilisation vers les diagrammes de séquence avec l’établissement au fil de l’eau de l’inventaire des classes participantes s’est peu à peu imposé comme plus naturel. Nous avons pu observer enfin la dure réalité : tant que ce n’est pas modélisé, ce n’est pas codable.

Nous avons utilisé la rétro-conception pour inclure dans nos modèles des composants externes et avons pu dans certains cas renforcer notre compréhension de concepts vus dans les cours de Java.

Métadonnées et modèle CWM :

Nous avons commencé à aborder ce méta modèle qui permet aux différentes applications de la Business intelligence de communiquer à l’aide d’une grammaire commune. C’est ce que l’on appelle un « teasing » et certains auront peut-être le loisir d’approfondir ce modèle. Dans le cadre d’Odbis, nous avons cessé de l’inclure dans notre modélisation assez rapidement car il y avait trop de connaissances à acquérir pour obtenir un minimum de maîtrise.

Développement itératif:

Comme il a été dit plus haut, le mode de développement itératif choisi était nouveau pour nous tous. Nous avons pu découvrir à l’usage que nous devions faire évoluer l’implémentation mais aussi partir de buts simplifiés par rapport aux spécifications. L’enrichissement itératif du modèle, en faisant très simple au départ, a été une découverte.

Ad Hoc reporting

F )

L ’ o p e n

s o u r c e

Le projet Odbis nous a fait découvrir « l'envers du décor ». Nous avons tous été jusqu’à lors, plus ou moins consommateurs d'outils et utilitaires open source et

souvent gratuits. Ce projet a permis de voir une certaine manière d'initier et de construire un projet open

, Le fait d’être impliqué dans un tel projet a soulevé chez certains des questionnements qui nous ont amenés à éclaircir la différence entre Logiciel Libre et Open Source :

L’open source est d’avantage un mouvement de développeurs qui vise à perfectionner la qualité du code source et le logiciel libre est issu d’un mouvement qui se concentre sur les libertés accordées à l’utilisateur.

Si on fait le rapprochement avec les informations obtenues lors du cours ERP5, la transparence de l’Open Source permet d’évaluer la qualité (à condition qu’on prenne le temps de le faire) en accédant aux sources, listes de bugs, suivi de celles-ci, etc… mais elle n’implique en rien que le logiciel est de qualité. Enfin nous avons pu effleurer la problématique des licences lors de la publication d’un logiciel puisque celui-ci devra être diffusé avec une licence et cela implique d’étudier en détails les différents composants utilisés pour le développement et leur licence.

source. (Etat de l'art, conception, modélisation, etc

jusqu'à la mise à disposition du livrable final)

Il faut déterminer si ces licences sont compatibles avec les utilisations prévues.

Voir s’il n’y a pas de problème de licence contaminante (par exemple tout logiciel avec au moins un composant sous licence GPL doit être diffusé sous licence GNU GPL.)