Collecte des données métiers et constitution d'un entrepôt centrale
-
Upload
oussama-hafid -
Category
Internet
-
view
637 -
download
6
Transcript of Collecte des données métiers et constitution d'un entrepôt centrale
2012/2013
Faculté des sciences Ben M’sik
Département de mathématiques & informatique
Sciences Mathématiques et Informatiques
SMI
Coordonnateur : M. HANOUNE
1
Je dédie ce travail,
Comme preuve de respect,
De gratitude, et de reconnaissance
À ma chère famille, pour son affection, sa patience, et ses prières.
À Mes meilleurs amis pour leur aide, leur temps, leur encouragements, leur assistance et
soutien.
À mes enseignants qui m’ont aidé à améliorer mes connaissances en me donnant
informations et conseils.
Spécialement à Mme Benabou et Monsieur Hatim Joundi pour leur aide, leurs conseils
et leur accompagnement durant les 3 mois de stage.
À tous ceux qui ont contribué de près ou de loin à la réalisation de ce travail.
Merci infiniment.
2
D'abord, je voudrais remercier toute la direction Unified Systems de
m'avoir accueilli au sein de leur honorable société et de m'avoir confié ce
projet.
J’adresse mes sincères remerciements à Madame Fouzia Benabou,
Professeur à la faculté des sciences Ben M’Sik, qui n’a cessé de m’encourager et
de me guider avec ses précieux et judicieux conseils tout au long de la période
de préparation de ce projet.
Je remercie également Mr Hatim Joundi, ingénieur d’état en informatique
et ex-enseignant d’informatique, pour son encadrement et son dévouement le
long du déroulement de toutes les séances d’encadrement, et également pour
ses conseils pour le pilotage du projet.
Un grand merci pour tous les responsables de la licence informatique au
niveau de la faculté des sciences Ben M’Sik.
Je suis très reconnaissant à toute personne ayant contribué de près ou
de loin à l’élaboration de ce travail.
Je tiens, notamment, à exprimer ma gratitude aux membres du Jury pour
avoir accepté de juger mon travail.
3
Dans l’optique de poursuivre mes études tout en entrant dans la vie
active, j’ai fait le choix de préparer un stage en entreprise. C’est donc ainsi que
j’ai pu décrocher un stage dans une entreprise de développement à Casablanca:
UNIFIED SYSTEMS.
L’avantage de ce stage est de cumuler les connaissances théoriques avec
celles de la pratique. Ceci permet également de rentrer dans la vie active et de
découvrir plus précisément le milieu informatique. Ce qui permet de bien
comprendre les outils et les astuces qu’un informaticien doit maitriser.
Dans un premier temps, on m’a confié des tâches avec lesquels j’ai
commencé à m’habitué avec les outils informatique, comme l’organisation de
l’arborescence sur Eclipse, les raccourcis clavier… Puis au fur et à mesure des
tâches plus complexes en parallèle de mes cours théoriques, ce qui m’a permis
d’apprendre des nouveautés informatiques et ainsi de mieux comprendre. Puis,
grâce à cette pratique, ceci m’a permis d’aller au-delà des cours de théorie, et
d’enrichir mes connaissances dans le domaine de l’informatique.
C’est ainsi que dans une première partie je vous présenterais la
problématique résolus, l’objectif et l’environnement du travail. Puis dans une
seconde partie je vous présenterai l’analyse que j’ai faite et la conception. Et
enfin, je vous montrerai le résultat du travail.
4
Mon stage s’est déroulé à la société d’Ingénierie et de Conseil en
système d'information UNIFIED SYSTEMS. Situé au BD Ibn Tachfine, la
société vise la "Performance des Systèmes d'Information et de
Communication ", abordée sous ses différents aspects : Qualité,
Productivité et Efficacité, Sécurité et Capacité à tirer le meilleur parti des
nouvelles technologies de l'information et de la communication.
Le but de mon stage est d’offrir un service de consultation des fiches
de paie et des fiches de congés aux employés d’une entreprise. Ces fiches
sont déjà générées par des applications sous forme de fichiers TXT en
mode CSV pour les fiches de paie, et des fichiers XML pour les fiches de
congé.
Donc le travail est de pouvoir extraire les informations de ces
fichiers, les mettre dans une base de données, et pouvoir les consulter à
travers un site web. En même temps, les fichiers traités doivent se
déplacer vers un répertoire « archive ».Enfin il faut créer un fichier texte
« trace » qui contient les informations sur l’état des opérations exécutés.
Le travail donc se divise en deux grandes parties :
Création des Batchs Java pour extraire les informations vers la base
de données et planification de leur exécution.
Création d’un site web intranet pour consulter les informations.
Enfin, les Batchs vont s’exécuter à une heure précise, (2h de la nuit par
exemple) pour ajouter les nouvelles tables à la base de données.
5
1) Introduction : 7 2) La qualité des équipes d’Unified Systems 8
1) Principes conducteurs : 8 2) Composition des équipes 8 3) Compétences 9 4) La conduite de projets et l'assurance qualité : 9 5) La Formation : 11 6) L'ingénierie du logiciel et des systèmes : 13
1) Gestion de paie : 15
1. Format du fichier : 15 2. Contenu du fichier : 15
2) Gestion des congés : 16 1. Format du fichier : 16 2. Contenu du fichier : 16
3) Problématique : 17
1) Environnement intégré de développement : Eclipse 19 2) Langage de programmation : Java, J2EE 19 3) Base de données : MySQL 19 4) Serveur web : Apache Tomcat 20
1) modèle conceptuel de données – MCD : 21 2) Diagramme de classe : 22
1) Batch des fiches de Paie – BatchTXT : 23 2) Batch des fiches de congé – BATCHXML : 24
Conclusion : 24
1) Diagramme de séquence : 25
6
1) Introduction 26 2) UML en œuvre 26
1) MCD : Modèle conceptuel des données 29
1) JAVA : 30 2) JAVA EE : 31
1) Wampserver 32 2) Apache Tomcat 32
1) HTML 33 2) CSS 33
1) Technologies utilisés : 35 2) Organisation du code source : 35 3) Description technique : 36 4) Utilisation du composant : 36
1. Mode d’utilisation : 36 2. Méthode d’utilisation : 36
5) Création de l’exécutables et planification de l’exécution du Batch : 38 1. Création de l’exécutable : 38 2. Planification : 38
1) Page d’authentification : 39 2) Page d’accueil : 40 3) Page des listes de congés : 41 4) Page des listes des fiches de paie : 42
1) Ajout de congé – fiche de paie – utilisateur : 44 2) Modification des données : 44 3) Désignation des roles : 44 4) Le fichier Trace : 44
Fin : 44
7
Créée en 2009, (dont Unified Systems
le siège est située au N 2, Angle BD Ibn
Tachfine et rue Zineb Ishak, 4ème
Etage Appt 07, 20303 Casablanca),
société d’Ingénierie et de Conseil en
système d'information, vise la "Performance des Systèmes d'Information
et de Communication ", abordée sous ses différents aspects : Qualité,
Productivité et Efficacité, Sécurité et Capacité à tirer le meilleur parti des
nouvelles technologies de l'information et de la communication.
Dans le sens de cette ambition commune, accompagne Unified Systems
les entreprises de diverses manières selon leurs contextes spécifiques :
Conseil (appropriation de ces nouvelles technologies et de nouveaux
systèmes d'information, conception de nouveaux services …).
Définition, développement, maintien en condition opérationnelle de
systèmes d'information (architecture, ingénierie)
Accompagnement dans le cadre de gestion de projet
Expertises techniques (sécurité des systèmes d'information, e-
business, Multimédia).
8
1) Principes conducteurs :
s'attache à développer et à enrichir son savoir-faire : Unified Systems
La maîtrise des technologies les plus récentes implique de savoir (au-delà
des effets de mode) évaluer, identifier et mettre en œuvre les nouveaux
outils permettant de concevoir des architectures, de réaliser des systèmes
performants, évolutifs et réellement pérennes.
Dans le management de projet : par une analyse préalable des
enjeux et des risques liés à chaque contexte, nos équipes veillent à
définir et à mettre en place le processus de développement et les
mesures d'assurance qualité les mieux adaptés, permettant
d'atteindre au meilleur coût les objectifs de nos clients.
Dans l'approche technique de nos missions : l'évolution permanente
des technologies et des référentiels méthodologiques nous imposent
de faire évoluer nos pratiques en fonction de l'état de l'art.
2) Composition des équipes
Pour atteindre ces objectifs, la qualité des équipes, leur engagement et
leur capacité à s'adapter à de nouveaux contextes sont fondamentaux,
c’est dans cette optique qu’Unified Systems investit sur la formation de
ses équipes :
Expertise dans la démarche CMMI.
Expertise dans la conduite de projet.
Expertise dans les différentes technologies, architectures, et
démarches :
Dot Net.
J2EE.
PHP
9
Architecture SOA (Service Oriented Architecture)
Model Driven Architecture/Engineering
…
3) Compétences
Unified Systems a défini 4 axes de développement principaux :
La conduite de projets et l'assurance qualité, avec ses deux
composantes :
L'accompagnement en Assurance Qualité
L'accompagnement en conduite de projet
La formation, avec ses 3 composantes :
Management de projet
Ingénierie du logiciel
Outils de développement
L'ingénierie du logiciel et des systèmes, avec 2 composantes :
L'informatique technique et industrielle
Les systèmes d'information d'entreprise
La sécurité des systèmes d'information
4) La conduite de projets et l'assurance qualité :
Unified Systems accompagne ses clients dans l'élaboration et la mise en
œuvre de leur démarche qualité. Son rôle consiste à réaliser un transfert
de savoir-faire afin de rendre ses clients autonomes sur les aspects
méthodes et leur permettre d'atteindre leurs objectifs.
Construit sur des nouveaux référentiels en assurance qualité (SEI/CMMI,
ITIL, ISO20 000), cet accompagnement englobe :
L’élaboration du système qualité et des Plans d'Assurance Qualité
(procédures, instructions, manuels, formulaires) concernant :
La gestion des projets informatique
Le service d'assistance HELPDESK
La formation des différentes équipes sur :
10
Les composantes du système qualité
Les techniques d'assurance qualité logicielle
Le coaching des équipes de projets pilotes dans la mise en place du système qualité
Cet accompagnement concerne généralement des assistances à maîtrise
d'oeuvre ou d'ouvrage ou des missions de conseil sur des grands projets,
nationaux ou internationaux. Selon les contextes, une équipe
pluridisciplinaire est construite afin couvrir l'ensemble des composantes
méthodologiques et techniques des projets.
Unified Systems peut accompagner les équipes internes dans les projets
liés :
1)au Processus de Développement, et notamment dans :
L’Accompagnement des équipes dans les différentes phases des
projets : Planification, organisation, production et pilotage
La Sécurisation et la maîtrise des risques des projets de
développement.
L'Utilisation d'outils et de solutions intégrée de gestion, de conception
et d'échanges
L’Evaluation des coûts des projets et des choix des prestataires
la Réorganisation des processus sur base de projet de développement
2)à l’E-business, et notamment dans :
la réalisation du Business Plan, qui permettra de déterminer les services à développer, d'évaluer l'opportunité d'un tel projet et
d'apprécier son retour sur investissement
l'étude d'impacts sur l'organisation et les systèmes d'information
existants
la conception et le pilotage du projet E-business
3)au Supply Chain Management (SCM), et notamment
dans :
Le Diagnostic de la chaîne logistique, (benchmark interne et externe,
indicateurs bonnes pratiques, améliorations potentielles, évaluation des enjeux)
La Construction de la chaîne logistique cible et sa mise en œuvre, (organisation, flux, principes et règles de gestion)
11
L'Etude de cadrage et l'accompagnement à la mise en œuvre de systèmes d'information (ERP )
L’Elaboration d'un Plan d'actions pour des améliorations à court terme
(réduction des stocks, réduction des cycles, amélioration du service, etc.).
4)à La Conduite de Changement, et notamment dans :
L'Identification et l'analyse des impacts organisationnels liés aux
changements
la Construction des plans d'actions
La Construction et la mise en place du plan de communication (plan, news internes, séminaire, kick-off meeting, site intranet…)
La Construction et la mise en place du plan de formation (plan, évaluation de compétence, support de formation, planification…)
La Gestion des ressources (recrutement, évolution de carrière, replacement, définition de postes)
5)au Décisionnel, et notamment dans :
Le Cadrage du projet (pré-étude d’organisation de projet définissant le
périmètre fonctionnel, les types d’outils pressentis...)
La Définition des indicateurs de pilotage et du référentiel commun
La Définition de l'infrastructure décisionnelle
Le Coaching et accompagnement de la mise en oeuvre du projet décisionnel
6)A la Gestion de la Relation Client (CRM), et notamment
dans :
L’Optimisation des processus
Le choix d'une Solution CRM
Le Pilotage de projet CRM et/ou la conduite du changement
5) La Formation :
Notre but est d'offrir un service de formation et de développement des
compétences informatiques de très haute qualité sur les technologies les
plus récentes, et dispensé par des collaborateurs dont les compétences et
l'expertise font référence sur le marché.
12
Les exigences d'excellence des clients d’Unified Systems, multinationales,
banques, PME et administrations, sont le meilleur indicateur du sérieux
des prestations offertes.
Unified Systems oriente ses actions de formation selon deux axes :
la méthode pédagogique globale, fortement axée sur le « sur-mesure »
le produit sur lequel va porter l’enseignement
Parmi les méthodes pédagogiques globales que nous utilisons
habituellement :
la formation traditionnelle de groupe en inter ou en intra entreprise
l’atelier expert
la formation conférence
la formation action
le cas pratique
Ingénierie du logiciel
Savoir exprimer les besoins utilisateur
Analyse et conception de systèmes logiciels
Assurance Qualité et test du logiciel
Objet-Ingénierie du logiciel
Développement objet et basé sur les composants
Introduction à UML
Analyse et conception objet en utilisant UML
Systèmes temps réel : Démarche orientée objet
Mise en œuvre de modèles de conception objet (Design Patterns)
Management de logiciel
Gestion de projets informatiques
Développement objet et basé sur les composants
Analyse des systèmes et applications d'entreprise
Savoir exprimer les besoins utilisateur
Analyse et conception de systèmes logiciels
Analyse et conception objet en utilisant UML
13
C/C ++
Introduction à la programmation
Programmation en C++ : Travaux Pratiques
C++ pour des programmeurs C
Conception et programmation avancées en C++
Programmation en C : Travaux Pratiques
Programmation avancée en C
Mise en œuvre de modèles de conception objet
C#, Visual C++.NET et Visual C++
Développer des applications .NET avec C#
Développer des applications Visual C++ .NET
Java/J2EE
Programmation Java : Travaux Pratiques
Java pour le développement d'applications Web
Développer des services Web XML avec Java
Java pour le développement d'applications dans l'entreprise
Développer des applications avec Java et XML
6) L'ingénierie du logiciel et des systèmes :
Ce domaine concerne la maîtrise des développements de systèmes
d'information et de logiciels utilisant les technologies nouvelles en
environnement distribué. Il couvre deux composantes principales :
Cette activité couvre la mise en place de systèmes d'information
d'entreprises (y compris les sites de production industriels) en utilisant les
technologies :
Clients/serveur : Unified Systems conçoit et réalise des systèmes
d'information basés sur des architectures clients/serveur, dans lesquels la combinaison de nos compétences techniques et méthodologiques
s'exprime pleinement
Intranet / Extranet /Internet : Les savoir-faire d’Unified Systems
en méthodologie et conception d'architecture, en bases de données, en sécurité, alliés à la forte expérience acquise sur les nouvelles
technologies de l'information permettent de concevoir les architectures
des systèmes communicants sur les réseaux IP.
14
Applications coopératives / GED : Unified Systems accompagne ses clients dans la définition et la réalisation d'applications à forte valeur
ajoutée dans le domaine du travail coopératif (groupware et workflow),
particulièrement dans le cadre de constitution de bases de données documentaires.
Unified Systems intervient de manière majeure dans les domaines
suivants :
L'informatique industrielle : Unified Systems constitue un pôle de compétence informatique, qui intervient sur des projets liés à
l'instrumentation et au contrôle de process dans des sites de production industrielle.
La sûreté de fonctionnement : Conseils relatifs au développement de systèmes et de logiciels ayant de très fortes exigences de fiabilité.
Les méthodes formelles (avec une forte maîtrise des langages Z et
Esterel).
Les exigences exprimées dans les projets de développement informatique
sont de plusieurs ordres : fonctionnels, techniques, organisationnels. Le
coût, les délais, la qualité et la sécurité sont souvent prépondérants.
Par une veille technologique active, Unified Systems cherche à connaître et
à maîtriser le plus grand nombre des techniques et des méthodes, afin de
proposer à ses clients celles qui sont les mieux adaptées à leurs
développements.
15
Dans la société Unified Systems, des applications métiers ont le rôle de créer
des fichiers qui contiennent des données de la gestion de la paie et des congés :
1. Format du fichier :
Les données sont sous forme d’un fichier texte en mode CSV.
La mode CSV : Comma-separated values, connu sous le sigle CSV, est
un format informatique ouvert représentant des données tabulaires sous forme
de valeurs séparées par des points-virgules.
2. Contenu du fichier :
Chaque ligne du fichier texte représente un utilisateur.
Chaque colonne (espace entre deux points-virgules) présente une information
de l’utilisateur :
o Référence.
o Montant IGR.
o Montant Prime.
o Montant d’allocation.
o Montant net.
o Moyen de paiement (chèque, compte, espèce).
o Référence du moyen de paiement.
o Matricule.
o Date de la fiche de paie.
16
1. Format du fichier :
Les données sont sous forme d’un fichier XML.
Format XML : XML est l’acronyme d’eXtensible Markup Langage. Comme le
langage HTML, c’est un langage de balises mais contrairement à celui-ci, les
balises du langage XML ne sont pas prédéfinies, XML est donc comme son
nom l’indique, un langage extensible.
Alors que le but du langage HTML est d’afficher les données à travers des balises
interprétées par le navigateur, XML à lui pour but de structurer l’information et il
faudra au navigateur l’aide d’une feuille de style CSS ou d’un fichier XSL pour savoir
comment interpréter les balises contenues dans un document XML.
XML est ce que l’on appelle un métalangage, soit un langage permettant de décrire
d’autres langages.
2. Contenu du fichier :
Le fichier XML contient les informations suivantes pour chaque utilisateur :
o Identifiant.
o Date du début.
o Date de fin.
o Validateur (matricule).
o Commentaire.
o Matricule.
17
Les employés ne doivent pas accéder au application métiers car elle contiennent
des informations confidentielles.
En supposant qu’ils en ont accès, les employés trouvent une difficulté dans la
consultation de la fiche de paie et celle du congé en accédant pour chaque fiche
à l’application métier concerné : un travail qui se répète.
l’entreprise ne contrôle pas la confidentialité des informations.
Encombrement : stockage des données de chaque mois dans le même
répertoire.
L’application « entrepôt centrale de données » a pour objectif :
la collecte des données à partir des différentes applications de l’entreprise
(fichiers TXT et XML) et leur stockage sur une base de données représentant
l’entrepôt centrale de données, puis déplacer les fichiers traités vers l’archive
et créer un rapport (fichier text) contenant toutes les informations sur les
fichiers traité : date de début du traitement, date de fin du traitement et l’état
de chaque opération (réalisé avec succès ou l’existante d’une erreur) des
fichiers et des opérations sur la base de donnée .
l’exploitation des données de cet entrepôt à travers le développement d’un site
intranet permettant :
La recherche des données L’extraction des données sous forme de rapport (Excel, pdf …)
18
Les applications concernées au niveau de l’entreprise sont :
Application de gestion de la paie. [.txt]
Application de gestion des congés. [.xml]
Des extractions de données sont déjà réalisés à partir de ces applications vers des
fichiers sous forme XML ou CSV ou texte …
Faire la conception de la base de données représentant l’entrepôt centrale.
Développer des batch pour charger les données des fichiers (XML et CSV) sur
l’entrepôt centrale.
Développer un site intranet pour l’exploitation de ces données.
19
Eclipse est un projet de la Fondation Eclipse visant à développer un environnement de développement
intégré libre, extensible, universel et polyvalent.
Son objectif est de produire et fournir des outils pour la réalisation de
logiciels, englobant les activités de programmation (notamment au moyen d’un environnement de développement intégré) mais aussi de
modélisation, de conception, de test et de reporting. Son environnement de développement intégré vise à supporter tout langage de
programmation.
Le langage Java est un langage informatique orienté objet créé par James Gosling et Patrick Naughton,
employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement
le 23 mai 1995 au SunWorld.
La société Sun a été ensuite rachetée en 2009 par la société Oracle qui
détient et maintient désormais Java.
La particularité et l'objectif central de Java est que les logiciels écrits dans
ce langage doivent être très facilement portables sur plusieurs systèmes d’exploitation tels que UNIX, Windows, Mac OS ou GNU/Linux, avec peu
ou pas de modifications. Pour cela, devers plates-formes et Frameworks
associés visent à guider, sinon garantir, cette portabilité des applications développées en Java.
MySQL est un serveur de bases de données relationnelles
Open Source.
Un serveur de bases de données stocke les données dans
des tables séparées plutôt que de tout rassembler dans une seule table. Cela
améliore la rapidité et la souplesse de l'ensemble. Les tables sont reliées par des
relations définies, qui rendent possible la combinaison de données entre plusieurs
tables durant une requête. Le SQL dans "MySQL" signifie "Structured Query
Language" : le langage standard pour les traitements de bases de données.
20
Apache Tomcat est un conteneur libre de servlets et JSP
Java EE. Issu du projet Jakarta, c'est un projet principal de
l’Apache Software Foundation. Il implémente les spécifications
des servlets et des JSP du Java Community Process1, est
paramétrable par des fichiers XML et de propriétés, et inclut
des outils pour la configuration et la gestion. Il comporte également un serveur
HTTP.
21
Ce chapitre sera consacré à la phase d’analyse et de conception.
On va d’abord présenter la conception de la base de données qui représentent
l’entrepôt centrale, ensuite on va analyser la façon avec laquelle les Batchs doivent
s’effectuer et enfin la conception du site intranet.
22
23
Le fichier contenant les informations de la fiche de paie existe dans un répertoire, à
l’exécution du batch, on insère dans la base de données une fiche de paie pour
chaque ligne du fichier.
Ensuite on doit savoir combien de fiche s’est insérée et si elle est insérée avec
succès ou qu’il y avait une erreur ainsi que l’heure du début et de la fin de chaque
opération. Ce travail sera sous forme de Rapport qu’on appelle fichier Trace, dans ce
fichier on doit écrire toute les opérations faites lors de l’exécution du batch.
Enfin pour ne pas laisser les fichiers dans le même répertoire pour éviter de
réinsérer ces fichiers une autre fois, on déplace les fichiers traité vers le répertoire
archive. Cette action est aussi déclaré dans le fichier trace.
Donc on aura besoin de 3 répertoires :
Répertoire des fiches de paie.
Répertoire Archive.
Répertoire des fichiers trace.
24
Le fichier contenant les informations de la fiche de congé existe dans un répertoire, à
l’exécution du batch, on insère dans la base de données une fiche de congé pour
chaque ligne du fichier.
La meme chose que pour le batchTXT , on crée un fichier Trace, dans ce
fichier on doit écrire toute les opérations faites lors de l’exécution du batch.
Enfin pour ne pas laisser les fichiers dans le même répertoire pour éviter de
réinsérer ces fichiers une autre fois, on déplace les fichiers traité vers le répertoire
archive. Cette action est aussi déclaré dans le fichier trace.
Donc on aura besoin de 3 répertoires :
Répertoire des fiches de paie.
Répertoire Archive.
Répertoire des fichiers trace.
Sans qu’on va utiliser le même répertoire archive pour enregistrer les fichiers traités
et le même répertoire des fichiers Trace.
Conclusion :
Les Batchs seront liées à 4 répertoires :
25
Le site intranet permet aux employés de consulter leurs fiches de paie et leurs
fiches de congés.
En consultant la table utilisateur, on a mis pour chaqu’un un login et un mot de
passe, avec lesquels il pourra se connecter et consulter ses informations : fiche paie,
fiche de congé.
Chaque employé ne pourra voir que ses fiches pour garder la confidentialité
des informations.
26
La description de la programmation par objets a fait ressortir
l’étendue du travail conceptuel nécessaire: définition des
classes, de leurs relations, des attributs et
méthodes, des interfaces etc.
Pour programmer une application, il ne
convient pas de se lancer tête baissée dans
l’écriture du code : il faut d’abord organiser
ses idées, les documenter, puis organiser la
réalisation en définissant les modules et
étapes de la réalisation. C’est cette démarche antérieure à
l’écriture que l’on appelle modélisation ; son produit est un modèle.
Les spécifications fournies par la maîtrise d’ouvrage en programmation impérative
étaient souvent floues : les articulations conceptuelles (structures de données,
algorithmes de traitement) s’exprimant dans le vocabulaire de l’informatique, le
modèle devait souvent être élaboré par celle-ci. L’approche objet permet en principe
à la maîtrise d’ouvrage de s’exprimer de façon précise selon un vocabulaire qui, tout
en transcrivant les besoins du métier, pourra être immédiatement compris par les
informaticiens.
En principe seulement, car la modélisation demande aux maîtrises d’ouvrage une
compétence, un Professionnalisme qui ne sont pas aujourd’hui répandus.
UML n’est pas une méthode (i.e. une description normative des étapes de la
modélisation) : ses auteurs ont en effet estimé qu’il n’était pas opportun de définir
une méthode en raison de la diversité des cas particuliers.
Ils ont préféré se borner à définir un langage graphique qui permet de
représenter, de communiquer les divers aspects d’un système d’information (aux
graphiques sont bien sûr associés des textes qui expliquent leur contenu).
27
UML est donc un métalangage car il fournit les éléments permettant de construire
le modèle qui, lui, sera le langage du projet. Il est impossible de donner une
représentation graphique complète d’un logiciel, ou de tout autre système complexe,
de même qu’il est impossible de représenter entièrement une statue (à trois
dimensions) par des photographies (à deux dimensions).
Mais il est possible de donner sur un tel système des vues partielles, analogues
chacune à une photographie d’une statue, et dont la juxtaposition donnera une idée
utilisable en pratique sans risque d’erreur grave.
UML 2.0 comporte ainsi treize types de diagrammes représentant autant de vues
distinctes pour représenter des concepts particuliers du système d’information. Ils se
répartissent en deux grands groupes :
diagramme de classes (Class diagram)
diagramme d’objets (Object diagram)
diagramme de composants (Component diagram)
diagramme de déploiement (Deployment diagram)
diagramme de paquetages (Package diagram)
diagramme de structures composites (Composite structure diagram)
diagramme de cas d’utilisation (Use case diagram)
diagramme d’activités (Activity diagram)
diagramme d’états-transitions (State machine diagram)
Diagrammes d’interaction (Interaction diagram)
diagramme de séquence (Sequence diagram)
diagramme de communication (Communication diagram)
diagramme global d’interaction (Interaction overview diagram)
diagramme de temps (Timing diagram)
Ces diagrammes, d’une utilité variable selon les cas, ne sont pas
nécessairement tous produits à l’occasion d’une modélisation. Les plus utiles pour la
28
maîtrise d’ouvrage sont les diagrammes d’activités, de cas d’utilisation, de classes,
d’objets, de séquence et d’états-transitions.
Les diagrammes de composants, de déploiement et de communication sont
surtout utiles pour la maîtrise d’œuvre à qui ils permettent de formaliser les
contraintes de la réalisation et la solution technique.
Au cours de ce projet j’ai utilisé quelques diagrammes essentiels à la
compréhension et au formalisme des fonctionnalités représentées dans la phase de
conception, ci-dessous la description de ces diagrammes :
Le diagramme de classes est généralement considéré comme le plus important
dans un développement orienté objet. Il représente l’architecture conceptuelle du
système : il décrit les classes que le système utilise, ainsi que leurs liens, que ceux-ci
représentent un emboîtage conceptuel (héritage) ou une relation organique
(agrégation).
Le diagramme de séquence représente la succession chronologique des
opérations réalisées par un acteur. Il indique les objets que l’acteur va manipuler et
les opérations qui font passer d’un objet à l’autre. On peut représenter les mêmes
opérations par un diagramme de communication graphe dont les nœuds sont des
objets et les arcs (numérotés selon la chronologie) les échanges entre objets. En fait,
diagramme de séquence et diagramme de communication sont deux vues différentes
mais logiquement équivalentes (on peut construire l’une à partir de l’autre) d’une
même chronologie. Ce sont des diagrammes d’interaction.
Merise est une méthode d'analyse, de conception et de gestion de projet
informatique
Merise a été très utilisée dans les années 1970 et 1980 pour l’informatisation
massive des organisations. Cette méthode reste adaptée pour la gestion des projets
internes aux organisations, se limitant à un domaine précis. Elle est en revanche
moins adaptée aux projets transverses aux organisations, qui gèrent le plus souvent
des informations à caractère sociétal (environnemental et social) avec des parties
prenantes.
29
Le MCD repose sur les notions d'entité et d'association et sur les notions de
relations. Le modèle conceptuel des données s'intéresse à décrire la sémantique du
domaine (entity/relationship en anglais)
L'entité ou objet[modifier]
L'entité est définie comme un objet de gestion considéré d'intérêt pour
représenter l'activité à modéliser (exemple : entité pays). A son tour, chaque entité
(ou objet) est porteuse d'une ou plusieurs propriétés simples, dites atomiques
(exemples : code, nom, capitale, population, superficie) dont l'une, unique et
discriminante, est désignée comme identifiant (exemple : code).
L'entité représente le concept qui se décline, dans le concret en occurrences
d'individus.
Par construction, le MCD impose que toutes les propriétés d'une entité ont
vocation à être renseignées (il n'y a pas de propriété « facultative »).
Le MCD doit, de préférence, ne contenir que le cœur des informations strictement
nécessaires pour réaliser les traitements conceptuels (cf. MCT) : les informations
calculées (ex : montant taxes comprises d'une facture), déductibles (ex : densité
démographique = population / superficie) et a fortiori celles liées aux choix
d'organisation conçus pour effectuer les traitements (cf. MOT) ne doivent pas y
figurer.
L'association ou relation [modifier]
L'association est un lien sémantique entités :
1 entité reliée à elle-même : la relation est dite réflexive,
2 entités : la relation est dite binaire (ex : une usine 'est implantée' dans un pays),
Plus rarement 3 ou plus : parfois ternaire, voire de dimension supérieure.
Une association peut également être porteuse d'une ou plusieurs propriétés (ex :
'date d'implantation' d'une usine dans un pays)
Cette description sémantique est enrichie par la notion de cardinalité, celle-ci
indique le nombre minimum (0 ou 1) et maximum (1 ou n) de fois où une occurrence
quelconque d'une entité peut participer à une association (ex : une usine est
implantée dans un (card. min=1) et un seul (card. max=1) pays; et réciproquement
un pays peut faire l'objet soit d'aucune (card. min=0) implantation d'usine soit de
plusieurs (card. max=n). On a donc les combinaisons suivantes :(0,1)(0,n)(1,1)(1,n)
30
Il existe deux types d'associations : les CIF (Contrainte d'intégrité fonctionnelle)et
les CIM (contrainte d'intégrité multiple). Les CIF ont pour particularité d'être binaires
et d'avoir une cardinalité min à 0 ou 1 et une cardinalité max à 1 ou n, de plus elles
sont non porteuses de propriétés. Les CIM sont n’aires et ont toutes leurs
cardinalités max à n, de plus elles peuvent être porteuses de propriétés.
C'est un langage de programmation orienté
objet, développé par Sun Microsystems. Il
permet de créer des logiciels compatibles avec
de nombreux systèmes d’exploitation
(Windows, Linux, Macintosh, Solaris). Java
donne aussi la possibilité de développer des
programmes pour téléphones portables et
assistants personnels. Enfin, ce langage peut
être utilisé sur internet pour des petites
applications intégrées à la page web (applet)
ou encore comme language serveur (jsp).
Le langage Java reprend en grande partie la
syntaxe du langage C++, très utilisée par les
informaticiens. Néanmoins, Java a été épuré
des concepts les plus subtils du C++ et à la fois
les plus déroutants, tels que les pointeurs et
références, et l’héritage multiple remplacé par
l’implémentation des interfaces. Les
concepteurs ont privilégié l’approche orientée objet de sorte qu’en Java, tout est
objet à l’exception des types primitifs (nombres entiers, nombres à virgule flottante,
etc.)
Java permet de développer des applications client-serveur. Côté client,
les applets sont à l’origine de la notoriété du langage. C’est surtout côté serveur que
31
Java s’est imposé dans le milieu de l’entreprise grâce aux servlets, le pendant
serveur des applets, et plus récemment les JSP (JavaServer Pages) qui peuvent se
substituer à PHP, ASP et ASP.NET.
Java a donné naissance à un système d'exploitation (JavaOS), à des
environnements de développement (eclipse/JDK), des machines
virtuelles (MSJVM, JRE) applicatives multiplate-forme (JVM), une déclinaison pour
les périphériques mobiles/embarqués (J2ME), une bibliothèque de conception
d'interface graphique (AWT/Swing), des applications lourdes (Jude, Oracle SQL
Worksheet, etc.), des technologies web (servlets, applets) et une déclinaison pour
l'entreprise (J2EE). La portabilité du bytecode Java est assurée par la machine
virtuelle Java, et éventuellement par des bibliothèques standard incluses dans un
JRE. Cette machine virtuelle peut interpréter le bytecode ou le compiler à la volée en
langage machine. La portabilité est dépendante de la qualité de portage des JVM sur
chaque OS.
Java Enterprise Edition, ou Java EE (anciennement
J2EE ), est une spécification pour la technique Java de
Sun plus particulièrement destinée aux applications
d’entreprise. Ces applications sont considérées dans une
approche multi-niveaux1. Dans ce but,toute implémentation
de cette spécification contient un ensemble d’extensions
au framework Java standard (JSE, Java Standard Edition) afin de faciliter notamment
la création d’applications réparties.
Pour ce faire, Java EE définit les éléments suivants :
Une plate-forme (Java EE Platform), pour héberger et exécuter les
applications, incluant outre Java SE des bibliothèques logicielles (ou JDK)
additionnelles,
Une suite de tests (Java EE Compatibility Test Suite) pour vérifier la
compatibilité,
Une réalisation de référence (Java EE Reference Implementation),
dénommée GlassFish,
Un catalogue de bonnes pratiques (Java EE BluePrints);
32
WampServer (anciennement WAMP5) est
une plateforme de développement Web de type
WAMP, permettant de faire fonctionner
localement (sans se connecter à un serveur
externe) des scripts PHP. WampServer n'est pas
en soi un logiciel, mais un environnement
comprenant deux serveurs (Apache et MySQL),
un interpréteur de script (PHP), ainsi que
phpMyAdmin pour l'administration Web des
bases MySQL.
Il dispose d'une interface d'administration permettant de gérer et d'administrer ses
serveurs au travers d'un tray icon (icône près de l'horloge de Windows).
La grande nouveauté de WampServer 2 réside dans la possibilité d'y installer et
d'utiliser n'importe quelle version de PHP, Apache ou MySQL en un clic. Ainsi,
chaque développeur peut reproduire fidèlement son serveur de production sur sa
machine locale.
Apache Tomcat est un conteneur web libre de
servlets et JSP Java EE. Issu du projet Jakarta,
c'est un projet principal de l’Apache Software
Foundation. Il implémente les spécifications des
servlets et des JSP du Java Community Process1,
est paramétrable par des fichiers XML et de
propriétés, et inclut des outils pour la configuration
et la gestion. Il comporte également un serveur
HTTP.
33
L’Hypertext Markup Language, généralement abrégé 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, d’où son nom.
HTML permet également de structurer sémantiquement et de mettre en forme
le contenu des pages, d’inclure des ressources multimédias dont des images, des
formulaires de saisie, et des programmes informatiques.
Il permet de créer des documents
interopérables avec des équipements très variés de
manière conforme aux exigences de l’accessibilité du
web. Il est souvent utilisé conjointement avec des
langages de programmation (JavaScript) et des
formats de présentation (feuilles de style en cascade).
HTML est initialement dérivé du Standard Generalized
Markup Language (SGML).
Les feuilles de styles (en anglais "Cascading Style Sheets", abrégé CSS) sont un
langage qui permet de gérer la présentation d'une page Web. Le langage CSS est
une recommandation du World Wide Web Consortium (W3C), au même titre que
HTML ou XML.
Les styles permettent de définir des règles appliquées à un ou plusieurs
documents HTML. Ces règles portent sur
le positionnement des éléments,
l'alignement, les polices de caractères, les
couleurs, les marges et espacements, les
bordures, les images de fond, etc.
34
Le but de CSS est séparer la structure d'un document HTML et sa présentation.
En effet, avec HTML, on peut définir à la fois la structure (le contenu et la hiérarchie
entre les différentes parties d'un document) et la présentation. Mais cela pose
quelques problèmes. Avec le couple HTML/CSS, on peut créer des pages web où la
structure du document se trouve dans le fichier HTML tandis que la présentation se
situe dans un fichier CSS.
Avec CSS on peut par exemple définir un ensemble de règles stylistiques
communes à toutes les pages d'un site internet. Cela facilite ainsi la modification de
la présentation d'un site entier. CSS permet aussi de définir des règles différentes
pour chaque support d'affichage (une navigateur classique, une télévision, un
support mobile, un lecteur braille...). CSS permet aussi d'améliorer l'accessibilité des
documents web.
De plus, CSS ajoute des fonctionnalités nouvelles par rapport à HTML au point de
vue du style. En effet, HTML permet une gestion assez sommaire du style des
documents.
Photoshop est un logiciel de retouche, de traitement et de
dessin assisté par ordinateur édité par Adobe. Il est
principalement utilisé pour le traitement de photographies
numériques, mais sert également à la création d’images ex
nihilo.
Photoshop est un logiciel travaillant sur images
matricielles (également appelées bitmap, à ne pas confondre
avec le format d’enregistrement Windows bitmap) car les images sont constituées
d’une grille de points appelés pixels. L’intérêt de ces images est de reproduire des
graduations subtiles de couleurs.
35
Ce composant est développé en utilisant le langage de programmation java
(Version 5), Il se base sur les jars suivant :
ojdbc14.jar
mysql-connector-java-5.1.7-bin.jar
jdom-2.0.4.jar
36
Le projet Intranet qui réalise les Batchs va être utilisé comme une
bibliothèque .JAR dans le projet du site web. Ceci est pour faciliter la tâche et
ne pas répéter les opérations à chaque fois.
: contient le fichier Param.properties dans lequel on précise
les informations d’entrée. c’est le seule fichier que le client va
changer en mettant la destination des répertoires …
: Paquage contenant les tables de la base de données.
Connector : Paquage qui établit la connexion avec la base de
données.
: Paquage contenant les opérations (fonctions) dont on aura
besoin .
: Paquage contenant l’execution des batchs finale.
1. Mode d’utilisation :
Pour utiliser ces batch, il faut :
Disposer des composants « jar » suivants :
jdom-2.0.4.jar : pour le traitement XML
mysql-connector-java-5.1.7-bin.jar : comme pilote de la bse de
données.
intranet.jar : qui représente la librairie développé.
2. Méthode d’utilisation :
Ouvrir le fichier jar avec un décompresseur (winrar par exemple) , entrer dans :
Ma => unisys => lib et ouvrir le fichier appelé param.properties avec un éditeur text :
37
Ici vous allez entrer les informations sur votre base de données : Login, mot
de passe, le driver, et l’url.
Ensuite vous entrez aussi les chemins des répertoires de vos fichiers XML et
TXT, la destination du fichier de trace et les répertoires archive.
Enfin vous enregistrez ces modifications dans le fichier propriété.
38
1. Création de l’exécutable :
Avant de planifier l’exécution des
Batchs, on va créer un exécutable de
chaque Batch, cette action est réalisé
en exportant le projet intranet et tous les
bibliothèques (.jar) utilisé (jdom-2.0.4 et
mysql-connector-java-5.1.7-bin) dans un
répertoire (ici batch/lib) .
Puis on crée dans le répertoire lib un fichier .bat contenant le code d’exécution
java suivant :
1) Pour le fichier XML:
java -classpath lib/intranet.jar;lib/mysql-connector-java-5.1.7-bin;lib/jdom-2.0.4
ma/unisys/gestion/BatchLoadXML
pause;
2) Pour le fichier text :
java -classpath lib/intranet.jar;lib/mysql-connector-java-5.1.7-bin;lib/jdom-2.0.4
ma/unisys/gestion/BatchLoadTXT
pause;
Ainsi on aura deux exécutables .bat , il faut les planifier pour qu’ils s’exécutent
dans une heure précise .
2. Planification :
On va planifier l’exécution du batch à une heure précise
chaque jour. Et tant que la société utilise Windows, cette tâche
sera faite par le Planificateur des taches disponible sur
Windows à travers le chemin suivant :
Panneau de configuration\Tous les Panneaux de configuration\Outils
d’administration
39
Le site intranet permet de consulter les fiches de paie et les fiches de congé
insérées par les Batchs. On commence par une page d’authentification où l’utilisateur
doit entrer son login et son mot de passe pour pouvoir accéder à ses données :
40
Lors de l’insertion d’un login et d’un mot de passe qui ne sont pas correctes,
on revient à la page d’authentification en y affichant un message d’erreur :
Authentification erronée, Veuillez entrer un login et un mot de passe corrects !
Si le login et le mot de passe de l’employé sont correct, on passe à la page
d’accueil où on affiche son nom et son prénom, ainsi que les liens vers sa liste de
congé et vers sa liste de paie, et enfin un bouton pour se déconnecter :
41
Voici la page d’accueil :
42
43
Ainsi, j’ai effectué mon stage de fin d’étude de la Licence fondamentales sciences
mathématiques informatiques option Réseau & Systèmes. Lors de ce stage de 12
semaines, j’ai pu mettre en pratique mes connaissances théoriques acquises durant
ma formation, de plus, je me suis confronté aux difficultés réelles du monde du
travail.
Ce stage m’a permis d’avoir une idée sur le monde du développement et sur ce
qu’un informaticien doit avoir en expérience pour pouvoir avancer son niveau.
Après mon intégration dans la société, j’ai eu l’occasion de mettre en pratique
mes connaissances informatiques et d’en ajouter d’autres, ainsi que j’ai appris
plusieurs techniques tel que la manipulation des fichiers XML avec JDOM , la
manipulation des fichiers texte avec la bibliothèque java.io ... et ceci m’a mené à
maitriser l’utilisation d’ Eclipse.
Je garde du stage un excellent souvenir, il constitue désormais une expérience
professionnelle valorisante, encourageante pour mon avenir , enrichissante et
complète qui conforte mon désir d’exercer mon futur métier de développement dans
le domaine de l’informatique.
Le stage ne finira pas après ma soutenance, le travail va continuer avec la
société pour 5 autres semaines où je vais enrichir le site web de la société, d’ailleurs
ce travail a déjà commencé par la création de plusieurs pages que je vous
représente ci-dessous :
44
La facilité ici est qu’il existe dans les classes du batch UtilisateurDAO ,
CongeDAO , fichePaieDAO des classes prêtes à exécuter les modifications apporté
au données :
int ModifierConge(Conge conge)
int ModifierFichePaie(FichePaie fichepaie)
int ModifierUtilisateur(Utilisateur utilisateur)
De la table profil , on pourra distinguer si l’utilisateur connecté est administrateur
ou pas , l’administrateur aura droit à consulter toutes les tables , à modifier les tables
à ajouter d’autres à travers ce site web .
Le fichier Trace va être envoyé à chaque fois au responsable, ainsi qu’il sera
imprimé automatiquement ...
Fin :
Ce stage m'a conforté dans mes choix professionnels et m'a éclairé sur certaines
interrogations que j'avais sur le monde de l'entreprise. Je remercie encore une fois
toute personne ayant contribué de près ou de loin à l’élaboration de ce travail.