conception objet et développement - ppmax.net€¦ · l’asp.net ... figure 8 - la textboxsaisie...

36
C C o o n n c c e e p p t t i i o o n n o o b b j j e e t t e e t t d d é é v v e e l l o o p p p p e e m m e e n n t t . . N N E E T T Etudiant : Pierre Pettera, IUP ISI M1 Période : Avril à Septembre 2007 Tuteur en entreprise : Franck Marty Encadrant universitaire : Bernard Cherbonneau

Upload: vutu

Post on 23-May-2018

216 views

Category:

Documents


1 download

TRANSCRIPT

CCCooonnnccceeeppptttiiiooonnn ooobbbjjjeeettt eeettt dddééévvveeellloooppppppeeemmmeeennnttt ...NNNEEETTT

Etudiant : Pierre Pettera, IUP ISI M1 Période : Avril à Septembre 2007 Tuteur en entreprise : Franck Marty Encadrant universitaire : Bernard Cherbonneau

Pierre PETTERA - 2 - Stage ISIM1

SOMMAIRE SOMMAIRE ................................................................................................................................................................................ 2

TABLE DES FIGURES .............................................................................................................................................................. 3

REMERCIEMENTS .................................................................................................................................................................... 4

INTRODUCTION....................................................................................................................................................................... 5

RAPPORT .................................................................................................................................................................................... 6

1. CONNAISSANCE DE SYGNATURES .......................................................................................................................... 6

2. EQUADEX .......................................................................................................................................................................... 7

2.1. ACTIVITES .................................................................................................................................................................... 7 2.2. ORGANIGRAMME DU SERVICE......................................................................................................................................... 7 2.3. INTEGRATION DU STAGIAIRE ......................................................................................................................................... 8 2.3.1. Intégration ....................................................................................................................................................... 8 2.3.2. Horaires ............................................................................................................................................................ 8

3. PRESENTATIONS DE L’ENVIRONNEMENT DE TRAVAIL ................................................................................... 9

3.1. INTRODUCTION............................................................................................................................................................. 9 3.2. PLATEFORME .NET ET VISUAL STUDIO .......................................................................................................................... 9 3.3. LE LANGAGE C# ........................................................................................................................................................... 9 3.4. LES CONTROLES UTILISATEURS ...................................................................................................................................... 9 3.5. L’ASP.NET ................................................................................................................................................................ 10 3.6. AJAX ......................................................................................................................................................................... 11 3.7. L’ATLAS ET L’AJAX CONTROL TOOL KIT ..................................................................................................................... 11

4. OBJET TECHNIQUE...................................................................................................................................................... 12

4.1. PRESENTATION GLOBALE DU SYSTEME.......................................................................................................................... 12 4.2. PLANNING DES TRAVAUX.............................................................................................................................................. 12 4.2.1. Planning prévisionnel ................................................................................................................................... 12 4.2.2. Planning Effectif ............................................................................................................................................ 13

4.3. TRAVAUX REALISES..................................................................................................................................................... 14 4.3.1. Thème d’étude 1 : Elexia ............................................................................................................................. 14 4.3.2. Thème d’étude 2 : PrepaPaie...................................................................................................................... 18

CONCLUSION .......................................................................................................................................................................... 33

4.4. POINT DE VUE DE L’ENTREPRISE D’ACCUEIL .................................................................................................................. 33 4.5. POINT DE VUE PERSONNEL........................................................................................................................................... 33 4.6. POINT DE VUE FORMATION .......................................................................................................................................... 33 4.7. CONCLUSION GENERALE .............................................................................................................................................. 34

5. ANNEXE 1 : NORME ASCII DE QUADRAPAIE ..................................................................................................... 35

5.1. EXTRAIT DE LA DOCUMENTATION DE QUADRATUS ........................................................................................................ 35

6. RESSOURCES NUMERIQUES .................................................................................................................................... 36

6.1. HTTP://MSDN2.MICROSOFT.COM ................................................................................................................................. 36 6.2. WWW.ASP.NET............................................................................................................................................................ 36

7. RESSOURCES BIBLIOGRAPHIQUES ...................................................................................................................... 36

7.1. ASP.NET 2.0 – ETAPE PAR ETAPE.............................................................................................................................. 36 7.2. C# 2 ET ASP.NET 2.0 .............................................................................................................................................. 36

Pierre PETTERA - 3 - Stage ISIM1

TABLE DES FIGURES

Figure 1 - Photographie du bâtiment de Sygnatures ............................................................... 6 Figure 2 - Organisation d'Equadex......................................................................................... 7 Figure 3 - Création du contrôle Adresse dans Visual Studio ................................................... 10 Figure 4 - Utilisation du CU Adresse dans CU Personne......................................................... 10 Figure 5 - Planning prévisionnel .......................................................................................... 12 Figure 6 - Planning Effectif.................................................................................................. 13 Figure 7 - La textBoxSaisie dans visual studio ...................................................................... 15 Figure 8 - La TextBoxSaisie avec le masque Siret valide........................................................ 15 Figure 9 - La TextBoxSaisie avec le masque Siret invalide ..................................................... 15 Figure 10 - Fenêtre d'ajout d'un assuré................................................................................ 15 Figure 11 - Fenêtre d'erreur de suppression de type............................................................. 16 Figure 12 - Découpage de la phase PrepaPaie...................................................................... 19 Figure 13 - Architecture de l'application ............................................................................... 22 Figure 14 - Page d'accueil ................................................................................................... 23 Figure 15 - Page de détail d'un site ..................................................................................... 25 Figure 16 - Page de détails du salarié .................................................................................. 26 Figure 17 - Les onglets de la page Détails du Salarié ............................................................ 27 Figure 18 - Page embauche ................................................................................................ 28 Figure 19 - Page Cloture de Période .................................................................................... 29 Figure 20 - Fenêtre principale Administration ....................................................................... 30 Figure 21 - Fenêtre détail d'une société ............................................................................... 31 Figure 22 - Fenêtre de gestion des rubriques ....................................................................... 32

Pierre PETTERA - 4 - Stage ISIM1

REMERCIEMENTS

Je tiens à remercier l’ensemble de Sygnatures pour leur accueil chaleureux. Je souhaite tout particulièrement remercier monsieur Franck Marty pour son

encadrement durant ces cinq mois de stage et pour m’avoir accepté au sein d’Equadex. Enfin, je remercie Anthony, David, Jeremy, Luc, Magalie et Thierry pour leur

bonne humeur et leur aide dans mon travail.

Pierre PETTERA - 5 - Stage ISIM1

INTRODUCTION

Cette année de master 1 fut longue et difficile, afin de valider ces 7 mois de

cours, il me fallait faire un stage en entreprise, j’ai eu plusieurs entretiens et plusieurs choix s’offraient à moi dans de nombreux langages, ADA chez Airbus, C++ dans des SSII, ou .NET chez Sygnatures.

Contrairement aux attentes de mon entourage, je n’ai pas choisi le stage à Airbus, même si la mention Airbus sur le curriculum vitae est un plus, je me suis plutôt focalisé sur le langage utilisé : l’ADA va mourir, le .NET a le vent en poupe. Il est clair que dans les prochaines années, les nouvelles technologies, principalement .NET et J2EE seront très demandées, n’aimant pas le J2EE, j’ai décidé de me pencher sur l’autre technologie et comme vous allez le voir, je pense avoir fait le bon choix.

Pierre PETTERA - 6 - Stage ISIM1

RAPPORT

1. CONNAISSANCE DE SYGNATURES

Sygnatures SA, est l'un des plus importants cabinets indépendants du Grand

Sud-Ouest avec plus de 300 mandats de Commissariat aux comptes et environ 2000 dossiers en missions d'expertise. Il est issu de la fusion des sociétés REVIREX et LABERENNE-LAFFONT, deux des dix plus importants cabinets d'expertise comptable et de commissariat aux comptes régionaux indépendants.

Sygnatures propose une offre de services autour de 4 pôles :

• Expertise comptable, consolidation, • Conseil et accompagnement du développement, • Commissariat aux comptes et audit contractuel, • Ingénierie des systèmes d'information.

Cette organisation prend en compte les dispositions de la loi sur la sécurité

financière, l'ouverture au commissariat aux comptes des marchés, des collectivités publiques et semi-publiques, la demande des entreprises pour plus de valeur ajoutée en matière de conseil, notamment en ingénierie des systèmes d'information. Elle va également permettre d'élargir l'offre en fournissant notamment des services externalisés en comptabilité et administration.

Ces pôles sont animés par plus de 100 collaborateurs, principalement situé à

TOULOUSE, avec des bureaux à CONDOM et MURET; un pôle d'activité se développe à PARIS, la dimension internationale est assurée par notre adhésion au réseau international RSMI.

Figure 1 - Photographie du bâtiment de Sygnatures

Pierre PETTERA - 7 - Stage ISIM1

2. EQUADEX

2.1. ACTIVITES

Equadex est la filiale informatique de Sygnatures. Ses membres gèrent le parc informatique de l’entreprise, développent des logiciels internes et proposent des services aux clients extérieurs :

• Audit et conseil, études techniques, rédaction de cahier des charges, assistance à maîtrise d'ouvrage

• Mise en œuvre de projet et accompagnement, • Analyse et développement de solutions logicielles (Client-Serveur,

intranet, Lotus Notes, site internet), • Gestion déléguée d'infrastructure (administration système et réseau de

tout ou partie de l'architecture informatique de nos clients, déploiement d'outils, gestion de parc,...),

• Formation, assistance technique, hotline, tierce maintenance applicative.

2.2. ORGANIGRAMME DU SERVICE

Equadex est dirigée par Franck Marty et est composée à l’heure actuelle de 6

salariés, dont 5 certifiés Microsoft SQL Server. Il est très intéressant de voir de quelles origines viennent les salariés : une majorité vient des IUP locaux, ce qui est très encourageant pour nous !

Figure 2 - Organisation d'Equadex

Pierre PETTERA - 8 - Stage ISIM1

2.3. INTEGRATION DU STAGIAIRE

2.3.1. INTEGRATION

C’est dans ce cadre dynamique et performant que j’ai intégré l’entreprise. Un

poste équipé de Windows XP Pro avec SQL Server et Visual Studio d’installés m’a été fourni. Il était situé parmi les développeurs, ce qui m’a permis l’échange rapide des informations en cas de problème.

2.3.2. HORAIRES

Mes horaires étaient fixes : 8h30 à 12h et 13h à 17h30 du lundi au vendredi.

Pierre PETTERA - 9 - Stage ISIM1

3. PRESENTATIONS DE L’ENVIRONNEMENT DE TRAVAIL

3.1. INTRODUCTION

Durant ce stage, j’ai fait l’acquisition de nouvelles compétences, tant au niveau

relationnel que technique. Avant de commencer l’exposition de mon travail, il me semble essentiel de présenter brièvement l’environnement dans lequel j’ai évolué.

3.2. PLATEFORME .NET ET VISUAL STUDIO

Mes précédents stages avaient été multiplateformes, j’avais travaillé sur des

environnements Linux comme sur des environnements Windows. Cette année j’ai redécouvert la plateforme Visual Studio au travers du Framework .NET 2.0. Cela a été une grande découverte pour moi : durant l’année scolaire, j’ai travaillé sur le logiciel de développement KDevelop, c’est un très bon logiciel, mais il semble amateur comparé au mastodonte Visual Studio.

Visual studio est plus qu’un environnement de développement : des plug-ins

viennent s’ajouter afin d’ajouter de nouvelles fonctionnalités. On trouve par exemple le Team Suite qui permet de travailler en collaboration sur un projet ou encore une version améliorée de SVN ou de CVS, car la gestion des bugs, les tâches et les rôles de gérés font en effet partie de Team Suite.

3.3. LE LANGAGE C#

En ce qui concerne le langage de programmation, j’ai travaillé dans un premier

temps sur une application C#. Ce langage à l’avantage de m’être familier, la syntaxe ressemble comme deux gouttes d’eau au Java, mais va au-delà de son parent : le C# reprend les atouts des autres langages plus anciens (ce que l’on appelle la généricité, élément fondamental au-cours de mon premier travail au sein de Sygnatures) mais développe aussi des notions nouvelles telles que le binding, le tout associé à Visual Studio et foisonnant de raccourcis afin d’accélérer le travail du développeur.

3.4. LES CONTROLES UTILISATEURS

Un élément important du couple C# / Visual studio est la création de contrôles

utilisateurs (user controls), qui permettent de réutiliser d’une façon très simple et rapide des composants créés précédemment et destinés à d’autres fins, par exemple le contrôle utilisateur « Adresse ». Le premier projet sur lequel j’ai travaillé possédait bon nombre de formulaires de saisie ; les champs « adresses » sont récurrents : les personnes, les sociétés, les agences… Plutôt que de refaire le formulaire à chaque fois, on ajoute ce composant, le formulaire devient alors un jeu de brique : le contrôle utilisateur « Adresse » est utilisé dans le contrôle utilisateur « Personne » qui lui est

Pierre PETTERA - 10 - Stage ISIM1

utilisé dans un autre contrôle, et ainsi de suite. Cela permet d’avoir une homogénéité dans l’application, de cette façon les champs de saisis sont tous semblables.

Figure 3 - Création du contrôle Adresse dans Visual Studio

Figure 4 - Utilisation du CU Adresse dans CU Personne

3.5. L’ASP.NET

Mon second travail est majoritairement orienté Web, j’ai pour cela utilisé la

technologie ASP.NET couplé à du C# code-behind. ASP.NET est l’évolution d’un ancien langage de Microsoft appelé ASP. Basé sur la CLR, l’ASP.NET permet d’utiliser les langages supportés par le Framework .NET dans les développements « code-behind ».

Au premier abord, l’ASP.NET semble être un langage informatif comme l’HTML avec quelques balises spéciales comme du PHP. Or ce n’est pas du tout le cas. En effet, l’ASP.NET a une relation très poussée avec ce que l’on appelle du code-behind : le traitement effectué lors de l’appel d’un contrôle (le clic sur un bouton) va par exemple appeler une fonction code-behind codée en C#, VB.NET ou autre.

Grâce à la technologie ASP.NET, le développement WEB est très proche du développement d’application lourd, on appelle d’ailleurs les projets ASP.NET des projets WebForm alors que les logiciels lourds sont appelés WinForm. De plus, l’architecture générale est la même :

Pierre PETTERA - 11 - Stage ISIM1

3.6. AJAX

L’acronyme de Asynchronous JavaScript And XML, ce faux langage, n’est en fait

qu’une extension du JavaScript. Dans des applications web standard, à chaque action d’un contrôle (bouton, liens…), il faut envoyer l’information au serveur pour qu’il la traite et celui-ci renvoie la page web dans sa globalité. Ceci utilise inutilement de la bande passante et rend impossible tout dynamisme dans des pages web. Ajax a ajouté au JavaScript l’objet XMLHttpRequest qui permet d’envoyer et de recevoir partiellement des informations de façon totalement asynchrone (entendez par là, pas de rafraichissement intégrale de la page web). Associé au CSS et au DOM, cela permet d’obtenir des pages internet aussi dynamiques que des clients lourds en langages standards.

3.7. L’ATLAS ET L’AJAX CONTROL TOOL KIT

Il existe de nombreuses bibliothèques AJAX qui ajoutent des fonctionnalités

(pop-up, effets, menus déroulants…), mais le plus souvent leur intégration est fastidieuse.

ATLAS est le nom d’une bibliothèque de composants développé par Microsoft

pour étendre les possibilités du langage ASP.NET. L’ATLAS est l’implémentation « ASP.NET » de la norme AJAX, ainsi, la création de pages dynamiques devient très simple. L’ATLAS permet entre autres la création d’un timer et des appels clients serveurs asynchrones.

Pour ce qui est des composants améliorés, l’AjaxControlToolKit, développé par

des employés de Microsoft et en licence libre, ajoute de nombreux objets : des pop-up modales, des calendriers, des scrollings, des onglets… Tout cela bien entendu presque parfaitement intégré à Visual Studio.

Interface WinForm

Code-Behind en CLR

Interface ASP

Code-Behind en CLR

Winform :

Webform :

Pierre PETTERA - 12 - Stage ISIM1

4. OBJET TECHNIQUE

4.1. PRESENTATION GLOBALE DU SYSTEME

Equadex, la filiale de Sygnatures a bien entendu un domaine d’application

orienté bureautique, il n’était donc pas question de faire de la programmation industrielle ou mathématique. Je vais à travers cette partie exposer mon travail au sein d’Equadex, travail sur le logiciel Elexia et PrepaPaie.

4.2. PLANNING DES TRAVAUX

Lors de la signature de ma convention de stage, il était convenu que je devrais

travailler sur au moins deux projets différents, voire trois si jamais le temps le permettait (voir Figure 5 - Planning prévisionnel). Mais le déroulement s’est trouvé quelque peu modifié ; vous pouvez voir grâce à la Figure 6 - Planning Effectif, que je n’ai finalement travaillé que sur deux projets distincts.

Les raisons de ce changement sont diverses et je les expliquerai lorsque j’exposerai mon travail dans ces deux parties.

4.2.1. PLANNING PREVISIONNEL A l’origine, mon planning se découpait en quatre phases : Phase 1: Travail sur PrepaPaie Phase 2: Sujet 2 à définir Phase 3: Travail sur Elexia Phase 4: Rédaction du rapport de Stage et de la documentation

Avril Mai Juin Juillet Août

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Phase 1

Phase 2

Phase 3

Phase 4 Figure 5 - Planning prévisionnel

Pierre PETTERA - 13 - Stage ISIM1

4.2.2. PLANNING EFFECTIF Mais le planning a complètement été bouleversé. Phase 1: Travail sur Elexia Phase 2: Travail sur PrepaPaie Phase 3: Rédaction du rapport de Stage et de la documentation

Avril Mai Juin Juillet Août

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Phase 1

Phase 2

Phase 3 Figure 6 - Planning Effectif

Pierre PETTERA - 14 - Stage ISIM1

4.3. TRAVAUX REALISES

4.3.1. THEME D’ETUDE 1 : ELEXIA

4.3.1.1. PROBLEMATIQUE ET OBJECTIFS

Elexia, anciennement appelé GestionSinistre est le plus gros projet d’Equadex.

Il s’agit d’un logiciel de gestion des sinistres pour la société d’experts en assurance Elexa. Cette société, afin de mieux répondre aux attentes de ses clients, a décidé de faire l’acquisition d’un logiciel centralisant toutes les données, ainsi le client n’aura qu’un interlocuteur unique pour communiquer.

Afin de déployer l’application, la solution Citrix a été choisie.

4.3.1.2. CITRIX Citrix est une solution de mise à disposition d’applications. Une application

client-serveur lourde a toujours le même problème, il faut installer et maintenir les applications sur les postes clients, ce qui est long et fastidieux dès que l’entreprise dépasse un nombre de postes de travail conséquent. Citrix passe outre ce problème, il met à disposition un client multiplateformes qui se connecte à un serveur sur lequel est installé l’application. Le serveur exécute des instances des applications et renvoie le rendu graphique au client.

Ce système possède de nombreux avantages, parmi lesquelles la possibilité d’utiliser une application .Net à partir de n’importe quel système d’exploitation avec comme seule contrainte l’installation du client sur le poste. De plus, aucune donnée réelle ne transite sur le réseau, seule l’image est envoyée. Enfin, les bases de données des applications sont le plus souvent situées à coté des serveurs Citrix, le temps d’accès aux données est ainsi réduit.

4.3.1.3. RESSOURCES ALLOUEES

Elexia mobilise à plein temps une équipe de quatre développeurs, une cinquième personne nous a rejoints pour une durée de deux mois durant la période estivale juillet-août afin de renforcer le développement.

4.3.1.4. REALISATION

4.3.1.4.1. LA TEXTBOX SAISIE

Elexia étant une application bureautique permettant la saisie de données sur

des personnes ou des localisations, il fallait avoir un outil de vérification de saisie, j’ai donc réalisé un composant nommé TextBoxSaisie.

Cette TextBox (champ de saisie en français) permet de choisir un type prédéfini

de masque ou d’expression régulière. Le plus long fut de mettre en place les expressions régulières et de trouver les algorithmes pour vérifier les clefs RIB et INSEE.

Pierre PETTERA - 15 - Stage ISIM1

Figure 7 - La textBoxSaisie dans visual studio

Figure 8 - La TextBoxSaisie avec le masque Siret valide

Figure 9- La TextBoxSaisie avec le masque Siret invalide

J’ai réalisé une autre version s’appelant TextBoxSaisieMonétaire ne permettant

que la saisie de numériques. Nous avons décidé de ne pas ajouter cette fonction à la TextBoxSaisie déjà créée afin de ne pas alourdir le composant présent sur quasiment toutes les fenêtres.

4.3.1.4.2. CREATION DE FENETRES DE SAISIES

J’ai également dû réaliser des fenêtres de saisie pour certains types simples en prenant exemple sur les fenêtres déjà existantes afin de garder l’homogénéisation du look and feel de l’application.

Figure 10 - Fenêtre d'ajout d'un assuré

Pierre PETTERA - 16 - Stage ISIM1

4.3.1.4.3. SOUTIENT A L’EQUIPE DE DEVELOPPEMENT

J’ai de plus réalisé des procédures stockées : les procédures associées à chaque

objet « métier nouveau », ou bien encore une procédure permettant la génération d’un numéro de dossier en fonction des dossiers déjà existant et de l’année en cours :

Numéro de dossier : AA LLL NNNN

A : Année L : Lettres N : Nombre

J’ai aussi réalisé un module vérifiant lors d’une suppression de données dans la

base si les données ne sont pas utilisées ailleurs (problème de clefs étrangères). Si jamais il y a une violation de clé, une fenêtre apparaît pour demander à l’utilisateur de remplacer la clé supprimée par une autre.

Figure 11 - Fenêtre d'erreur de suppression de type

J’ai aussi réalisé l’homogénéité des interfaces (alignements des champs,

ancrage des fenêtres, etc…)

Pierre PETTERA - 17 - Stage ISIM1

4.3.1.5. CONCLUSION

Cette première partie de stage fut assez courte, mais elle m’a permis de m’habituer au langage C#. De plus, durant les deux premières semaines de stages, j’ai reçu en même temps que l’équipe une formation sur les outils Microsoft (Visual Studio, Team Suite….), ce qui m’a facilité la compréhension du langage. Le travail que j’ai effectué durant cette période est toujours utilisé par l’équipe de développement sur le projet Elexia. La TextBoxSaisie, étant un composant indépendant, pourra même être insérée dans d’autres projets futurs.

Pierre PETTERA - 18 - Stage ISIM1

4.3.2. THEME D’ETUDE 2 : PREPAPAIE

4.3.2.1. PROBLEMATIQUE ET OBJECTIFS

La société Sygnatures gère environ 3500 bulletins de paie par mois pour ses clients. Elle utilise le logiciel QuadraPaie de la suite Quadra vendu par Quadratus. Un des problèmes rencontré est la saisie des bulletins préparatoires : chaque mois, le bulletin de paie change pour une grande partie des salariés (congés pris, arrêt maladie, prime…). Il faut donc que chaque client de Sygnatures envoie ces informations tous les mois afin qu’elles soient saisies dans QuadraPaie.

4.3.2.2. HISTORIQUE

4.3.2.2.1. SANS PREPAPAIE

Le gros problème de la saisie des bulletins est comme l’on l’a vu précédemment

la communication des données entre les clients et le service social de Sygnatures. Les clients envoyaient alors leurs données par mail, téléphone ou fax. Les problèmes qui en découlent sont évidents : aucune traçabilité, aucunes fiabilités dans les données…

4.3.2.2.2. PREPAPAIE DELPHI

Une solution (schéma §4.3.2.5.1) a été mise en place pour tenter de résoudre

les problèmes des transferts des données « à la volée ». Le logiciel développé en Delphi fut appelé PrepaPaie. C’est un logiciel qui s’installe chez le client. Une base de données est fournie avec le logiciel. Cette base est la copie de la base de données Access de QuadraPaie.

Grâce à PrepaPaie, le client génère ce que l’on appelle des bulletins préparatoires. Les bulletins préparatoires servent de support à la création des bulletins dans QuadraPaie. Une fois les bulletins préparatoires terminés, le client envoie par mail un fichier XML extrait de PrepaPaie. Ce fichier est ensuite traité dans une application locale qui génère le fichier ASCII qui est alors importé dans QuadraPaie.

Cette solution permet d’avoir des informations structurées grâce au XML et à un

envoie plus ou moins suivi grâce à la méthode « par mail ». Hélas, se pose un nouveau problème : la base de données copiée chez le client n’est pas mise à jouir par rapport à la base de données Access de QuadraPaie. Les données risquent de se désynchroniser. De plus, nous ne sommes pas maîtres du poste client. Si une mise à jour doit avoir lieu, les difficultés liées à la localisation du client apparaissent: il faut se déplacer chez tous les clients pour mettre à jour le logiciel.

4.3.2.2.3. PREPAPAIE ASP.NET

Pour résoudre ce problème de « logiciel local », une nouvelle version de

PrepaPaie a été mise en développement (schéma §4.3.2.5.2): un portail web qui permet d’avoir un point d’accès unique pour tous les clients. Ce portail sera alimenté par les bases accès de PrepaPaie afin de ne pas avoir d’incohérences dans les données.

Pierre PETTERA - 19 - Stage ISIM1

La génération des bulletins préparatoires se fera directement via PrepaPaie et en respectant la norme ASCII de QuadraPaie.

4.3.2.3. LA NORME ASCII DE QUADRAPAIE

QuadraPaie permet d’importer des lignes de bulletins préparatoires générées

selon la norme ASCII : il s’agit d’un fichier texte où les données sont « parsées » de façon définie :

Par exemple : Monsieur Dupond identifié 31 a réalisé 4 heures supplémentaires =>

31 :.HCO :4 Monsieur Dupond a aussi pris 2 jours de congés => 31 :.CPC :2 La norme est fournie avec QuadraPaie, il suffit de la suivre à la lettre.

4.3.2.4. PLANNING DES ACTIVITES

Le développement de la nouvelle version de PrepaPaie s’est déroulé de cette façon :

Phase 1: Définition des exigences et analyse de l’existant Phase 2: Développement de l’interface utilisateur Phase 3: Développement de l’interface administrateur

Avril Mai Juin Juillet Août

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

P1

P2

P3

Figure 12 - Découpage de la phase PrepaPaie

Pierre PETTERA - 20 - Stage ISIM1

4.3.2.5. SCHEMA FONCTIONNEL DU SYSTEME

4.3.2.5.1. PREPAPAIE AVANT

4 3 2 1

1. Les clients utilisent PrepaPaie en local sur leur machine. 2. Ils envoient ensuite le résultat généré par mail. 3. Le service social de Sygnatures reçoit le document et entre les données dans un logiciel

tiers qui génère le code ASCII pour QuadraPaie. 4. Importation dans QuadraPaie du document ASCII généré à l’étape 3.

Pierre PETTERA - 21 - Stage ISIM1

4.3.2.5.2. PREPAPAIE MAINTENANT

3 2 1

1. La partie client de PrepaPaie : Le client se connecte au site internet ASP.NET, et rempli les bulletins préparatoires. De son coté, le site web, à chaque connexion, va récupérer les données dans la base de données Access de QuadraPaie afin de remplir une base de données SQL Server. Ainsi, chaque client a une base de données Access et une base de données SQL Server qui lui est dédié.

2. La partie Administration : La secrétaire utilise l’application winform de PrepaPaie et génère les bulletins préparatoires.

3. On importe le fichier généré à l’étape 2 dans QuadraPaie

Pierre PETTERA - 22 - Stage ISIM1

4.3.2.6. ARCHITECTURE DE L’APPLICATION

Nous avons décidé d’implémenter une architecture en couche MVC (Model, Vue Contrôleur) inspirée de Elexia. En effet, nous avons réutilisé les couches Data et Business développées pour Elexia, ce qui permis un gain de temps non négligeable dans le développement.

Figure 13 - Architecture de l'application

4.3.2.7. REALISATION : INTERFACE CLIENT ASP.NET

L’interface client est le pilier de PrepaPaie : Il permet la saisie des bulletins préparatoires. Je vais expliquer les différentes fenêtres du projet.

4.3.2.7.1. L’IDENTIFICATION.

Pour commencer, il faut bien évidement que le client s’identifie sur PrepaPaie :

Pierre PETTERA - 23 - Stage ISIM1

Lorsque l’utilisateur clique sur « Se connecter », le système vérifie dans la base principale si le nom utilisateur et le mot de passe sont corrects, en cas d’adéquation, il récupère les données dans la base Access de QuadraPaie et les compare avec les données présentes dans la base SQLServer. Si les données sont déjà présentes dans SQL Server, on met à jour les informations, sinon, on ajoute les données dans la base. Si toute l’opération s’est bien déroulée, la page suivante apparait.

4.3.2.7.2. LA PAGE D’ACCUEIL

Voici un aperçu de la page d’accueil lorsque la procédure d’identification a réussi :

Figure 14 - Page d'accueil

Pierre PETTERA - 24 - Stage ISIM1

• Le menu de gauche (rouge) :

Dans ce menu est indiquée la période en cours ; en effet, les bulletins sont créés pour une date donnée. En dessous sont affichés les différents sites gérés par le client. Et enfin, il y a la possibilité de se déconnecter.

• Le menu du haut (vert)

1 2 3 4 5

1. Ce bouton mène à la page d’accueil. 2. Ce bouton mène à la page de Reporting / Statistiques. 3. Ce bouton mène à la page Embauche. 4. Ce bouton mène à la page de solde de tout compte. 5. Ce bouton mène à la page de clôture de période.

• Le corps de la page (bleu)

C’est dans cette partie de la page que les informations vont être affichées. Ce

modèle est le même pour toutes les pages du projet, j’ai utilisé pour ça une « master page » qui permet de définir un design global des pages, un peu comme les Template en HTML. La grosse différence avec les Template réside dans le fait que les « master

Pierre PETTERA - 25 - Stage ISIM1

page » permettent de réaliser des traitements pour toutes les pages : par exemple, dans la master page, j’initialise le menu de gauche, je teste si l’on s’est bien connecté, etc…

4.3.2.7.3. PAGE : DETAILS D’UN SITE

Cette page permet d’avoir un aperçu global de l’état d’avancement du site

sélectionné dans le menu de gauche. Dans un premier temps sont affichés le nombre de salarié du site, le nombre de bulletins effectués et la différence entre les deux.

Puis sont affichés en détails les salariés, une coche verte montre que l’employé

a un bulletin préparatoire de fait. Une coche rouge montre un salarié sans bulletin préparatoire pour la période. Si l’on clique sur le bouton « remplir à vide », les salariés qui sont cochés verront leur bulletin préparatoire créé. Le tout se fait sans aucun rechargement de la page grâce à l’AJAX.

Figure 15 - Page de détail d'un site

Pierre PETTERA - 26 - Stage ISIM1

4.3.2.7.4. PAGE : DETAIL D’UN SALARIE

La page « salarié » contient deux éléments importants : une fenêtre composée

de trois onglets et un tableau affichant les lignes de bulletins préparatoires.

Figure 16 - Page de détails du salarié

La fenêtre à onglets :

• Onglet 1 : les informations du salarié

Cet onglet affiche les informations du salarié concerné.

• Onglet 2 : historique des bulletins

Cet onglet affiche l’historique des bulletins pour le salarié concerné. Cela

permet d’avoir un aperçu rapide des différents événements pour ce salarié.

• Onglet 3 : Messages à l’administrateur

Cet onglet contient un formulaire pour envoyer un message à l’administrateur

de PrepaPaie.

Pierre PETTERA - 27 - Stage ISIM1

Figure 17 - Les onglets de la page Détails du Salarié

Pierre PETTERA - 28 - Stage ISIM1

4.3.2.7.5. LA PAGE D’EMBAUCHE

Ce formulaire d’embauche est dynamique, en effet, par exemple, lorsque l’on

choisit le sexe « féminin », le champ de saisi du nom de jeune fille s’active, il en va de même pour le type de contrat ; si l’on choisit CDD, les champs dédiés au CDD s’activent. Une fois le formulaire rempli, sa validation envoie un mail au service social de Sygnatures pour la création de l’employé dans QuadraPaie.

Figure 18 - Page embauche

Pierre PETTERA - 29 - Stage ISIM1

4.3.2.7.6. CLOTURE DE PERIODE

Cette page a pour but de valider la période en cours. Une fois la période

validée, il n’est plus possible de modifier les bulletins. En outre, pour pouvoir valider la période, tous les salariés de tous les sites doivent avoir un bulletin préparatoire, qu’il soit vide ou pas. Les salariés n’ayant pas de période sont affichés et l’on peut remplir à vide leur bulletin grâce à un bouton. Une fois tous les bulletins préparatoires réalisés, on peut enfin clôturer la période.

Figure 19 - Page Cloture de Période

Pierre PETTERA - 30 - Stage ISIM1

4.3.2.8. REALISATION : INTERFACE ADMINISTRATEUR WINFORM

4.3.2.8.1. LA FENETRE D’ACCUEIL

Cette fenêtre permet d’avoir un aperçu global de l’état d’avancement dans la

création des bulletins par entreprise. Un code couleur a été mise en place : • Rouge : il y a un problème. • Bleu : la période est en cours. • Vert : la période a été fermée par l’administrateur. • Beige : la période a été validée par le client.

Si l’on clique sur l’une des sociétés, le détail s’affiche dans la partie droite de la

fenêtre. Le détail des périodes précédentes est affiché. Si l’on double-clique sur l’une des sociétés, on ouvre la page de détails des sociétés.

Figure 20 - Fenêtre principale Administration

Pierre PETTERA - 31 - Stage ISIM1

4.3.2.8.2. LA FENETRE DE DETAILS DE LA SOCIETE

Cette fenêtre permet d’avoir un aperçu au cas par cas des bulletins pour tous

les salariés. C’est dans cette fenêtre que l’on ferme la période en cours, que l’on génère le code ASCII et que l’on ouvre une nouvelle période. On peut aussi imprimer les bulletins.

Figure 21 - Fenêtre détail d'une société

Pierre PETTERA - 32 - Stage ISIM1

4.3.2.8.3. GESTION DES RUBRIQUES

Fenêtre permettant de configurer les lignes de bulletins destinées à l’extraction

ASCII :

Figure 22 - Fenêtre de gestion des rubriques

4.3.2.9. TRAVAIL RESTANT

Le menu du haut contient deux boutons dont je n’ai pas parlé lors du détail des pages. En effet, ces deux pages ne sont pas terminées à l’heure actuelle. La page de solde de tout compte permet de faire le solde d’un employé qui part de l’entreprise ou qui change de site.

Le bouton Statistiques/Reporting doit quant à lui mener à une page qui utilise

les Reporting Services de Microsoft pour afficher des graphiques ou des statistiques sur les salariés, sites, bulletins… Cela permettra d’avoir des chiffres que l’on n’a pas avec QuadraPaie.

4.3.2.10. CONCLUSION

Cette partie fut la plus instructive de mon stage ; sa durée y est certainement pour quelque chose ! J’ai pu apprendre à utiliser l’ASP.NET et surtout ATLAS et Ajax, ce qui semble très important pour mon futur emploi étant donné que l’ASP.NET semble être l’une des technologies porteuses de ces prochaines années… Concernant PrepaPaie, l’objectif est attend, le portail d’accès est fonctionnel, la base est centralisée… Les défauts de PrepaPaie première version ont été comblés.

Pierre PETTERA - 33 - Stage ISIM1

CONCLUSION

4.4. POINT DE VUE DE L’ENTREPRISE D’ACCUEIL

Ma présence au cours de la première partie de mon stage a permis de

supporter l’équipe de développement et de leur fournir des composants spécifiques réutilisables pour des projets futurs.

La seconde partie de mon stage portant sur un projet autonome, PrepaPaie, n’a pas influencé l’équipe de développement, mais risque cependant de changer les habitudes des clients de Sygnatures. Ce service est une valeur ajoutée par rapport aux concurrents de Sygnatures faisant gagner du temps et de l’argent à de nombreux clients.

4.5. POINT DE VUE PERSONNEL

Ce stage m’a apporté plusieurs choses : Il est indéniable qu’un stage permet

avant tout de découvrir un monde différent de l’éducation, sauf mauvais stage, l’enrichissement personnel est toujours là : rien n’est plus enrichissant que de partager ses problèmes avec d’autres personnes et ne retour aider les autres. C’est exactement le sentiment que j’ai ressenti durant mon stage : le travail en équipe est vraiment très important. L’année dernière j’avais réalisé un stage plutôt autonome, ce qui peut avoir ses avantages aussi (aucune dépendance avec d’autres personnes…), mais cela n’est rien comparé à la satisfaction de travailler en groupe.

Il y a aussi la satisfaction du travail utile, mon travail va être utilisé et non remis dans un dossier au fin fond d’un disque dur… Rien n’est plus agréable que le fait de recevoir une critique positive de son travail et de pouvoir exposer les problèmes résolus ou les points noirs encore non terminés.

4.6. POINT DE VUE FORMATION

L’enseignement que j’ai reçu ces dernières années a été mis à contribution, j’ai

pu mettre en avant les cours de génie logiciel (planification, gestion des exigences…), Mais en ce qui concerne les langages de programmation, tout était nouveau, mais l’enseignement Java dispensé m’a permis de ne pas me perdre dans la syntaxe du C#.

Comme je l’ai marqué précédemment, lors de mon arrivée au sein de Sygnatures, j’ai reçu une formation par une SSII nommée Bewise sur les technologies .NET. J’ai pu apercevoir que les formations payantes sont un vrai plus par rapport à l’autoformation. Se faire expliquer les choses par un professionnel du domaine est un plus et un gain de temps pour le client. Tout le monde s’y retrouve ; grâce à cette formation, j’ai acquis un niveau certain dans les technologies dotNet.

Pierre PETTERA - 34 - Stage ISIM1

4.7. CONCLUSION GENERALE

Ce stage m’a permis d’entrevoir autre chose que le J2EE enseigné durant

l’année. Une chose était certaine avant mon arrivé à Sygnatures, si je devais un jour travailler dans les nouvelles technologies, ça ne serait pas dans le J2EE, si jamais le .Net ne me convenait pas, je continuerais mon parcours dans le C++ avec ou non une implication dans le logiciel libre. Seulement voilà, le .Net m’a vraiment plu et je continue dans ce domaine : dans l’état d’avancement de ma recherche de stage pour le master 2, je peux sans trop me tromper qu’il sera dans le dotNet.

Si l’on doit retenir une chose de ce stage, c’est vraiment ma découverte de l’environnement dotNet, une chose qui va influer dans ma future carrière !

Pierre PETTERA - 35 - Stage ISIM1

5. ANNEXE 1 : NORME ASCII DE QUADRAPAIE

5.1. EXTRAIT DE LA DOCUMENTATION DE QUADRATUS

Structure du fichier ASCII

Chaque ligne du fichier se compose de 3 ou 4 arguments séparés le caractère ":". Les arguments sont les suivants :

• Le numéro des employés à traiter. Ce numéro doit correspondre au

numéro d'un employé dont la fiche est créée dans le dossier QuadraPAIE et les lignes du fichier ASCII doivent être triées sur ce critère.

• INDX = L’indice numéro X du bulletin à traiter (facultatif, par défaut le

bulletin est créé ave l’indice 0) A noter que durant le traitement, d'autres contrôles sont effectués par QuadraPAIE :

o Vérification de la date de présence du salarié par rapport à la période de paie.

o Vérification qu'il n'existe pas pour le salarié un bulletin avec un état (Absent).

• Le code de la ligne à créer.

o Il peut s'agir d'une ligne "native" ou d'un libellé (prime ou retenue) Si le libellé n’existe n’est pas repris.

o Si plusieurs lignes du fichier ASCII font référence au même code pour un même salarié, ligne est retenue, et sa valeur affecte la première ligne dans le bulletin de code correspondant.

o Les lignes correspondant à des libellés doivent comporter le code du libellé (Bxxx, Exxx, renvoient respectivement à une prime imposable, une retenue, une prime imposable non une prime non imposable). Ces libellés doivent exister dans le dossier client.

• Les arguments suivants permettent de valoriser la ligne.

o Une ligne du type "Nombre d'heures supplémentaires à 25" comporte un seul montant.

o Une ligne de type retenue avec taux salarial et taux patronal comportent 2 montants.

Pierre PETTERA - 36 - Stage ISIM1

6. RESSOURCES NUMERIQUES

6.1. HTTP://MSDN2.MICROSOFT.COM

Site des ressources des API Microsoft et aides aux développeurs.

6.2. WWW.ASP.NET

Communauté autour de l’ASP.NET et de l’AjaxControlToolKit.

7. RESSOURCES BIBLIOGRAPHIQUES

7.1. ASP.NET 2.0 – ETAPE PAR ETAPE

Microsoft Press ISBN : 2-10-049778-2 Présentation d’un site web ASP.NET et les étapes de sa construction

7.2. C# 2 ET ASP.NET 2.0

Eni Editions ISBN: 2-7460-3430-1 Développement d’un projet ASP.Net de la conception à l’interface.