___________________
___________
Intégration d’un module de
planification dans SNEDA GLOBAL
SOFTWARE
1
I. REMERCIEMENTS
Mes plus vifs remerciements sont adressés au bon DIEU qui m’a toujours autant soutenu
que béni tout au long de ma vi estudiantine, tout au long de mon stage, jusqu'à la réalisation
de cet ouvrage malgré moi.
Les étudiants a la MISA en particulier la promotion 2011, qui ont été plus que
des camarades d’écoles durant ses années passé a la MISA
2
II. TABLE DES MATIERES
Sommaire
I. REMERCIEMENTS....................................................................................................................2
II. TABLE DES MATIERES............................................................................................................3
III. TABLE DES ILLUSTRATIONS............................................................................................4
IV. INTRODUCTION....................................................................................................................5
V. Contexte du stage..........................................................................................................................5
a. Présentation de SNEDA.............................................................................................................5
i. La filiale SNEDA Madagascar...............................................................................................6
ii. Organisation interne...............................................................................................................6
b. Analyse de l’existant..................................................................................................................8
i. Présentation de SNEDA Global Solution...............................................................................8
ii. Présentation de SNEDA Global Softwares.............................................................................9
VI. Elaboration et Mise en Œuvre du projet..............................................................................14
a. Architecture applicative et outil de mise en œuvre..................................................................14
i. Cartographie et couche applicative.......................................................................................14
ii. Présentation d’Eclipse RCP..................................................................................................19
iii. Présentation de Spring Framework..................................................................................21
iv. Présentation du logiciel Progress......................................................................................22
b. Réalisation et processus de développement..............................................................................25
i. Exigence matérielle et logiciel..............................................................................................25
ii. Présentation de RSM............................................................................................................26
iii. Document d’analyse et de conception...............................................................................28
iv. Présentation du module Planning......................................................................................30
v. Exemple de cas d’utilisation : gererPlanning........................................................................32
c. Organisation du projet..............................................................................................................46
VII. BILAN ET PERSPECTIVE D’EVOLUTION.....................................................................47
a. Bilan du stage...........................................................................................................................47
i. Bilan pour SNEDA...............................................................................................................47
ii. Bilan personnel.....................................................................................................................48
3
b. Perspectives d’évolution du domaine planning et du « SNEDA GLOBAL SOFTWARE ».....48
VIII. CONCLUSION...............................................................................................................49
IX. BIBLIOGRAPHIE.............................................................................................................49
X. GLOSSAIRE...........................................................................................................................49
XI. ANNEXES...............................................................................................................................50
a. UML.........................................................................................................................................50
b. Détails technologiques..............................................................................................................52
i. Java et la programmation orienté Objet................................................................................52
ii. Comparatif Progress et MySQL............................................................................................53
iii. Comparatif Maven et Ant.................................................................................................53
IV. INTRODUCTION
Actuellement, en plus de la qualité des services et des produits qu’elles offrent, la valeur
des entreprises se joue aussi, et d’une part importante, sur la rapidité des résultats qu’on
attend d’elles. Pour être bon dans la concurrence et avoir un rang privilégié, l’automatisation
des taches avec contrôle des résultats se voit comme une solution adaptée, pour les
sociétés.
Des solutions adaptées sont proposées afin de faciliter la création du planning et sa mise
à jour. Une gestion optimisée des alertes permet de faciliter la lecture du planning et des
actions à traiter en priorité.
V. Contexte du stage
a. Présentation de SNEDA
5
i. La filiale SNEDA Madagascar
6
1. Le Pole Software
Ce pole est composé, des équipes de développeurs, notamment les équipes des
productions et de la maintenance, il est aussi composé par les équipes conception, et d’un
service transversal nommé la qualité
3. Le Pôle service
7
personnel de la société. Le deuxième est pour les autres services que les clients pourront
solliciter après la livraison du produit.
b. Analyse de l’existant
i. Présentation de SNEDA Global Solution
1. Description général
Comme écrit précédemment Sneda met à disposition la Sneda Global Service pour éviter une
sous-exploitation de « Sneda Global Softawre », elle s’étend en deux branches principales : le
« consulting service », et le « outsourcing Services »
a. Le « consulting service »
L’ingénierie développement : pour répondre aux besoins des entreprises clientes comme
l’intégration des solutions tierces
8
b. Le « outsourcing Services »
L’hébergement : qui est une solution pour la gestion
quotidienne des données informatiques de l’entreprise.
L’infogérance : qui répond aux exigences d’exploitation des
clients (gestion et administration de leur informatique).
L’éditique : qui est encor un projet mais qui prendra en
charge les impressions en masse, la mise sous plis et
routage.
Les services à distance : qui prend en charge les tâches
d’exploitation courante de l’entreprise.
Ses services ont été élaborés pour les clients pour qu’ils exploitent à fond les
fonctionnalités de l’application.
SGS partage les fonctionnalités de Esti@ et Peg@s, deux logiciels anciennement developper.
Esti@ est encore utilisé par certain clients, et on essaye cohabite Esti@ avec Sgs, de
ce fait Sgs utilise le même schéma de base de donnée que Esti@, le même environnement
Progress, les traitements batch, et une partie du code Progress déjà existant.
9
Figure 2 : Authentification dans le SNEDA GLOBAL SOFTWARE
10
Comme nous le voyons en haut nous avons le nom de l’utilisateur, la date et l’heure.
En bas à gauche nous avons un bouton aide, et un autre pour quitter l’application.
« Sneda Global Software » met a disposition plusieurs perspectives, mais différent selon le
client, chaque perspective est un domaine dans SGS. Voyons maintenant quelques domaines
dans SGS
11
Quelques exemples de domaines dans SGS
Pour mieux comprendre SGS voyons trois exemples de domaine qui s’y
trouvent, le domaine du partenaire, la Démade de logement, la commission
o Partenaire
o Demande de logement
12
Ce domaine consiste à enregistrer les demandes des clients, Immeuble, type étage ou coHLM
ou villa, qui comporte aussi les données concernant le client(Locataires).
o Commission
Ce domaine traite les propositions validées, en générale la commission concerne les locataires
(partenaires morales)
Une session de commission comporte une ou plusieurs propositions qui lui sont
rattachées
13
Figure 7 : perspective commission
L’architecture applicative que SNEDA utilise est particulière, c’est une architecture
trois tiers qui comprend respectivement de la couche la plus haute vers la couche des
données.
Il faut aussi remarquer qu’on distingue deux types de composants dans cette architecture
applicative. Les composants statiques et les composants dynamiques, voyons de plus près ses
composants.
1. Composant statique
14
Les composants statiques décrivent des structures de données sans comportement, ce
sont les données qu’on manipule. Ils sont alimentés de la base et parfois traiter avant d’être
affiché dans l’interface homme machine. Nous avons :
Des objets directement prise de la base, qui sont afficher dans l’interface homme
machine, sans subir des traitements, ses attributs sont de type primitif, des entiers des
booléens, et aussi des chaines de caractères.
Ce sont les entités que nous allons manipuler dans le « SNEDA GLOBAL
SOFTWARE », ils subissent des traitements particulaires en passant entre deux couches de
l’architecture applicative. Leur différence avec les objets statique, c’est qu’ils peuvent avoir
comme attribut d’autres entités mais pas seulement les types de variable de java.
Les données qui alimentent leurs attributs sont aussi prises de la base de données, en
passant de la couche ressource vers la couche directement supérieure, ils passent par des
« mappers » pour être transformée en BE ou « Business Entity », et pour arriver a la couche
présentation, ils passent par des « adapters » pour devenir des AOE.
2. Composant dynamique
a. Couche présentation
i. Des widgets
15
Le « LabelProvider » qui hérite de la classe « LabelProvider » de la librairie
JFace, qui est responsable des données a affichée pour l’identification des
éléments qui alimentent le widget.
Le ReqAO, où on trouve les paramètres d’initialisation, les filtres des éléments
a affichées, s’il y en a.
La classe Widget qui hérite de la classe « ComboListViewer » de Sneda, c’est
cette classe qu’on instancie quand on appel le widget, elle initialise le trie a
utilisée ainsi que le « LabelProvider ».
Le LazyLoading qui hérite d’IComboLazyLoading de Sneda, c’est cette Classe
qui fait les appels aux couches inferieurs et alimente l’affichage du widget.
Parfois un regroupement de widgets peut être utilisé plusieurs fois, d’où les parts, qui
sont des regroupements de un ou plusieurs widgets avec parfois des composants graphiques
dans les librairies d’eclipse. Quatre squelettes de classes sont générer automatiquement
quand on fait un part.
16
enveloppe qui contient les données, elle implemente juste les accesseurs et
les modificateurs des attributs que l’on y trouve.
Le ReqAO, tout comme le Widget, le part a parfois des données qu’on utilise
pour son initialisation ou pour le filtre des éléments qu’elle va retournée, on
trouve ses données dans le ReqAO.
Le Composite qui hérite de la classe Composite de swt, c’est là qu’on appel les
composants graphiques du part, et aussi on y gère les actions à faire lors des
événements comme le clic d’un des composants ou autres.
La classe Part qui implémente la classe IPartContainer de Sneda, c’est le
conteneur du part
Il faut remarquer que quand on utilise le part, on ne fait pas un appel direct de son
conteneur par exemple, mais on les appelle par l’intermédiaire du PartFactory, c’est dans
une méthode de cette dernière classe qu’on fait les instances nécessaires pour l’appel du
part.
De façon générale :
17
Le Modèle ne connaît ni la Vue ni le Contrôleur
iv. Le contrat de binding
Parfois il est nécessaire d’utiliser dans un « use case » des composants ihm qui proviennent
de domaines sur lesquels il n’y a pas de dépendance forte.
On utilise un contrat de binding qui n’est autre qu’un point d’extension définit pour le
domaine consommateur et alimenté par le domaine fournisseur. Le point d’extension est
défini par une méthode getPart qui retourne le Part et prend en paramètre d’appel un
contratBindingESO fourni par l’appelant.L’extension bind le Part sur le contratBindingESO,
l’appelant du point d’extension écoute les modifications sur le contratBindingESO
v. Les signaux
Les composants de ce PRL sont amenées a dialoguée entre eux pour une cohérence des
données, ce dialogue peut s’effectuer lors des créations, modifications, ou d’éditions des
données contenue dans le modèle.
Ce sont les signales qui assurent cette communication, ainsi il y a des signales de création, de
modifications, de suppression …
Les classes responsable des « signals » ont leur propre package, et héritent de
« EntityUpdateSignal », de « EntitySelectionSignal » …, des classes propres a Sneda, selon le
cas. Les « Signales » sont envoyer par l’intermédiaire d’une méthode SendSignal et sont
envoyer en création, en modification en suppression, … et est traiter par le SignalManager.
b. La couche metier
C’est dans cette couche que les accès aux données sont gérer, elle contient aussi des règles,
ceci pour garder l’intégrité des données. Cette couche est composée de :
Les couches métiers de chaque domaines sont indépendantes les une des autres, néanmoins
on peut accéder aux couches métiers d’un domaine par l’intermédiaire de cette interface
18
C’est ici qu’on implémente les méthodes, appeler aussi sévices, qui sont déclares dans
l’ « Interface business service ».
Eclipse « Rich Client Platform » est un Framework basée eclipse. C’est elle que Sneda
utilise pour le développement des « Interfaces Homme Machine ».
Elle est basée sur les librairies SWT et Swing pour ses éléments graphiques natifs tels
que les boites de dialogues standard, le SWT browser, le drag and drop, … (wikipedia, 2010)
Les librairies graphiques dans eclipse RCP, offre des composants de très bonne
qualité, et sont fiable.
A cause de la notion de plugins qui sont, des archives java (JAR) contenant les fichiers
META-INF/MANIFEST.MF et le plugins.xml, les applications eclipse RCP sont modulaires
et extensibles, car ses deux fichiers contiennent des informations exploitées par le noyau
eclipse pour l’identification des plugins et ses relations avec les autres plugins.
Figure 12 : Manifest.MF
Et un fichier Plugin.xml
20
Figure 13 : Plugin.xml
Il y a aussi le fait que le langage natif d’eclipse RCP étant java, les applications fait
avec ce Framework sont portables.
Spring est un Framework implémenté en langage objet, il est open source on a donc
l’avantage de réutilisation de ses codes.
21
Figure 14 :applicationContext.MF
Progress a été fondé en 1981, son siège social est situé a Bedford dans le
Massachusetts (près de boston). Initialement Progress était un Système de Gestion de Base de
Donnée Relationnel. En 1994, la version 7 de Progress fournit un langage de développement
graphique et événementiel.
Elle dispose de la couche technique Open Client permettant une interopérabilité entre les
programmes Progress et d’autres languate comme java.
Sont environnement est composé de la procédure editor, avec lequel on écrit du code
Progress, qui est composée de la barre de menu et de la zone de saisie du code, comme la
figure qui suit l’indique.
22
Figure 15 : procedureEditor
23
Ensuite il y a le « Data Dictionary » qui permet de consulter la structure de la base de
données, des tables de colonnes. Ce qui nous donne la figure suivante :
24
Figure 18 : dictionnaire Sneda
1. Serveurs
25
La Sneda possède deux serveurs : l’un pour l’administration de la base de données et l’autre
pour l’administration réseau.
Il faut remarquer que le logiciel Progress est utiliser pour l’administration de base de
donnée, ainsi que IPCOP pour l’administration réseau et protection du système.
26
Figure 19 : Rational Software Modeler
RSM, ou Rational Software Modeler est un logiciel fournit par IBM, c’est le logiciel
que l’équipe de conception utilise pour la modélisation des composants, et des cas
d’utilisation de « Sneda Global Software », il aide pour la communication entre les
développeurs, et aide même ses derniers pour les implémentations car il permet d’avoir une
vue général de l’attente des clients. Voici un aperçu dans RSM de ce qu’est une
communication entre la couche de présentation et la couche service.
RSM est basée sur eclipse, il bénéficie des avantages d’eclipse, et il est open source.
Chez Sneda, il comporte un plugin qui fait gagner un temps précieux chez les développeurs
27
lors de la navigation à travers les différents modèles. Voici un schéma qui montre les
différentes options du plugin Sneda.
Ce document contient les indications relatives aux classes dans « Sneda Global
Software », il met en évidence :
- Les relations entre les classes, car le travaille est fait en équipe chaque
développeur doit savoir connecter son travaille avec celle des autres.
- les conventions de nommages, car le travaille peut être repris par un autre
développeur et les noms des variables ainsi que des méthodes doivent être
significatif et suivant certaine normes pour être plus lisible.
- parfois quelques indications pour le développement d’une méthode. Pour
aider le développeur pour l’implémentation.
28
Figure 22 : représentation d'une Classe
Dans le package explorer, on peut voir une arborescence les classes ainsi que les
attributs et méthodes de ses classes.
Dans l’encadrée bleu nous pouvons voir quelques informations concernant l’élément
sélectionnée dans le « package explorer »
Enfin dans l’encadrée rouge, nous pouvons voir les diagrammes des éléments sélectionnée
dans le package explorer
Le document d’analyse aussi est très important, le développeur doit lire et comprendre
le document d’analyse et toutes les instructions qui y figurent avant de faire toute
implémentation.
29
Les maquettes écrans
Les règles de gestions
Les maquettes écrans doivent être rigoureusement respectées, chaque élément du part
ou du cas d’utilisation est détailler un a un dans le document d’analyse et relier a un
identifiant d’une règle, ses règles sont ensuite énoncer après l’énumération de chaque
composant.
Les triggers sont des programmes Progress, chaque table a en général trois triggers qui
lui est associé, et ils sont déclencher avant des opérations de création, de modification, de
suppression sur les tables.
Les instructions à faire en création, modification, suppression pour chaque attribut de la table
si des règles doivent être suivi.
30
Le module planning est intégrer dans la perspective AMOA, voici un aperçu des
principales zones de la perspective AMOA
Comme nous le voyons en haut nous avons la barre d’outils, à gauche, la liste des
plannings classée dans une arborescence Société/Agence/Opération. Afin de faciliter l’accès
au planning régulièrement utilisées, chaque utilisateur a la possibilité de paramétrer sa propre
liste de « planning suivis ». A chaque ouverture de la perspective AMOA, la zone « liste des
plannings » présentent en priorité la sélection, personnalisée de l’utilisateur.
Début de l’axe de temps : une date saisie manuellement ou une date calculée
dynamiquement (Date du jour –N mois)
Date de fin de l’axe des temps : une date saisie manuellement ou une date
calculée dynamiquement (Date du jour+ M mois)
Echelle
o Journalière
o Hebdomadaire
o Mensuelle
o Trimestrielle
o Semestrielle
31
o Annuelle
Ce paramétrage fait partie des données conservées par l’utilisateur entre deux session.
La date et les participants à la passation sont fixés d’avance, les développeurs doivent
avoir au part avant bien lu le document d’analyse, et comprendre la conception.
32
Ensuite, le développeur poursuit par la lecture du document de conception. Il expose le
travaille qu’il doit faire, les relations entre les classes, et entre les couches de l’architecture
applicative.
33
Figure 25 : document de conception du gererPlanning
A droite nous avons les diagrammes des éléments correspondant à ceux sélectionner
dans l’explorateur de projet, et quelques propriétés.
A chaque livraison de conception, nous avons aussi des livraisons de code générer.
Au niveau présentation, les codes générer sont ceux des modèles, des reqAO (des objets
qui ont des attributs pour initialiser un part ou un widget), et les respAO (les objets retournée
par les parts), qui contienne les attributs ainsi que les accesseurs et les modificateurs.
Au niveau service, nous avons les codes générer des interfaces, et des classes les
implémentant, qui contiennent des signatures de méthodes avec un « return null » d’abord, et
que le développeur devra implémenter pour avoir les bons éléments.
Ses codes générer ont été fait pour être plus rapide dans le développement. Et dans le but
d’être un peu plus uniforme dans le développement, le plugin Sneda dans l’eclipse utiliser
34
chez Sneda, on offre la possibilité de génération des parts, des assistants, et des éditeurs. Il
permet de générer les squelettes des classes permettant de faire ses composants, pour être
uniforme dans le développement, ses codes ne donne pas tout de suite un part par exemple,
mais c’est au développeur de mettre les codes nécessaires pour avoir le résultat voulu.
La génération de code permet de gagner du temps et nous évite de refaire a chaque fois
des bouts de codes répétitifs, mais le réel travaille se situe entre la génération de code et le
résultat final affichant l’élément voulu.
i. couche présentation
Étant donné qu’on a utilisé Gantt pour l’affichage des diagrammes dans le temps, on a eu
besoins de quelques classes supplémentaires pour le paramétrage de Gantt, regrouper dans le
package Gantt, a cause du travaille par équipe, ce package a été fait par un collaborateur
Nantais, on n’accède pas a ses classes directement mais par l’intermédiaire de la classe
GanttFactory.
Une autre package action a été créer pour gérer les interactions aux actions de l’utilisateur,
chaque classe action héritent de la classe Action de Jface. On à la possibilité de mettre une
image représentant l’action dans l’interface homme machine, de mettre une info bulle, et la
véritable action a faire après interaction sur l’image de l’assistant doit entre implémenter dans
la méthode run(), hérité de Action.
Prenons l’exemple d’une classe action : l’action modifier, gérer par la classe
ModifierAction.
35
Figure 26 : modifierAction
36
Figure 27 : modifierAction Lancement des Editeurs vue code
37
Figure 28 : Assistant GererTachePlanning
Une autre classe très importante est la classe EditeurGererPlanning(), c’est la classe
qui gère les interactions avec l’utilisateur, c’est ici qu’on instancie les composants graphiques,
et leurs comportements au cours des modifications :
38
Figure 29 : EditeurGererPlanning
A chaque sélection d’une tache dans l’éditeur, l’attribut tacheSelectionner est mis à
jour, de même pour un regroupement, il y a l’attribut regroupementselectionner.
Parfois une tache ne peut commencer qu’après, la date de fin d’une autre tache qui le
précède, et peut aussi mettre une contrainte sur sa date de fin d’une tache.
39
Figure 30 : Appel de gererContrainte
Le bouton, qui appel GererContrainte est un bouton de type « FlatButton » de Sneda, on peut y
ajouter des menus comme gérer Contrainte, ou Supprimer Contrainte.
A partir de sélection sur les menus, on peut ajouter des contraintes sur les dates de fin ou de
debut
40
Figure 32 : l’assistant gererContrainte
Les éléments dans la couche service sont sollicités pour certaines actions effectuées au
niveau planning, par exemple, après chaque modification au niveau présentation, l’état de
l’éditeur de planning change en « dirty », cela permet de savoir que des changements ont été
fait dans les données, et qu’on a la possibilité d’enregistrer.
Quand l’utilisateur choisis d’enregistrer, les données du planning, transitent, sur les
différents couches du domaine, par la méthode modifierPlanning() et sont prises dans la base
de donnée .
Ses interactions avec la couche service, sont gérer par le contrôleur, classe
« ControleurGererPlanning »
Prenons comme exemple le lirePlanning() : elle a pour but d’alimenter les éléments d’un
planning. En effet dans l’arborescence qui permet de consulter les plannings, les attributs du
planning de type PlanningAOE, n’ont pas tous une valeur, ceci pour éviter un gaspillage de
41
donnée, mais un attribut tres importante est quand même remplis, l’identifiant du planning,
qui permet de différencier le planning parmi les autres plannings.
Le contrôleur fait appel au lirePlanning() des couches services, dans les couches services
rien de bien particulier, a par, la construction des différents attributs, on construits des objets a
partir des données de type primitifs reçu de la base. Cependant montrons un peu plus,
comment se fait la lecture des données venant de la base.
Figure 33 : PlanningApserverDAO
Elle a des attributs de type InteractionSpec pour spécifier le chemin du fichier Progress et la
procédure à exécuter, et aussi, un attribut de type Log, qui contient les erreurs Progress qui sont
monté jusqu'à la couche présentation.
42
Figure 34 : Appel de lirePlanning
Et c’est spring qui se charge de l’instanciation des services, mais les couches qui
utilise les service le font a partir d’interface, et c’est Spring qui se charge de l’instanciation.
Les classes services, et dans les accès aux données doivent subir au moins un test
unitaire, cella pour divers raison :
Réduire les bugs dans les fonctionnalités attendues : les tests doivent être écrits
car elles aident à réduire le nombre des bugs.
43
Contribuer a la documentation : un exemple de code concis vaut parfois mieux
que plusieurs paragraphes de documentations.
Ralentir et penser : tester force à penser ce que le code est sensé faire.
Chez sneda, on utilise JUnit, un Framework de tests unitaires pour le langage java. On
fait des codes décrivant ce qu’on attend des classes, dans les accès aux données et au niveau
des services.
Les tests de recettes par contre sont effectués par les concepteurs, pour vérifier le
respect des règles de gestions.
Pour éviter les taches répétitives, Sneda a choisi d’utiliser un outil de « build » :
maven. L’outil contient des scripts qui amènent vers la construction du projet. Il a pour but
de : « produire un logiciel a partir de ses ressources, en optimisant les taches réalisées à cette
fin et en garantissant le bon ordre de fabrication
5. L’outil CVS
L’outil CVS est un système de gestion de version, elle stocke un ensemble de fichiers qui
retrace l’historique, d’un fichier précis.
Apres son travaille le développeur envoie ses modifications sur CVS, on appel cela un
commit.
Tout ses classes feront l’objet d’un autre travaille pour le cycle du développement.
44
Figure 36 : tableau de bord de hudson
Hudson met à disposition une version testable du produit avec les dernières
modifications. Un état de chaque couche dans chaque domaine est fait, et au cas où il y a un
« build faild », le développeur ainsi que le coordinateur reçoivent un mail de notification, et
ils doivent résoudre le problème, car Hudson ne construit la version testable que si le domaine
est stable.
7. Le daily project
Deux fois dans la journée, a midi et a minuit, Hudson génère un produit semblable au
produit final qu’on appel « daily product », a partir des classes qui on été comité. C’est à
partir de ce « daily product » que l’équipe qualité fait des tests, pour détecter des mauvaises
implémentations des règles de gestions, et aussi l’ergonomie de l’application.
A partir du « daily product », l’équipe de qualité fonts des tests sur le produit qui leur est
livré, pour voir d’éventuelles anomalies.
45
Ils inspectent l’ergonomie, mais aussi le respect des règles de gestions qui régissent le
produit. Les erreurs feront l’objet de retour que l’équipe de développeur devra traiter
Le délai de traitement des fiches est considérer comme faisant partie des délais
d’implémentation.
9. Problème rencontrées
Malgré le bon niveau de formation suivi a la MISA, cette première expérience dans le
développement d’application stricte et déjà attendu par les clients n’as pas été toute simple.
Le « SNEDA GLOBAL SOFTWARE » était déjà au début de mon intégration très avancé
dans son développement, il m’a fallu entrée dans le contexte du projet et dans le même rythme
que les autres collaborateurs pour que le module soit dans les temps.
Il faut remarquer quand même, que le Module Planning est déjà livrée a la clientèle, et les
développeurs ayant participé, a ce cas d’utilisation on été félicité car le client
« VALLOIRE »est satisfait du résultat.
c. Organisation du projet
i. Organisation du travaille
Pour l’élaboration d’un cas d’utilisation ou d’un composant dans le « SNEDA GLOBAL
SOFTWARE » quatre équipes entrent en jeu.
46
Une pour l’analyse, une pour la conception, une pour la production et enfin une de la
qualité. Les documents fournis par l’équipe d’analyse sons minutieusement lu par l’équipe de
production, chaque produit doit suivre les indications dans la conception.
Chaque produit est livré à l’équipe qualité pour la revue de l’ergonomie et des règles qui
doivent régir le système, les éventuels corrections et retouches sont encor remis a l’équipe de
production, et redistribué de façon équitable par le coordinateur au membres de l’équipe.
Pour avoir un bon niveau de rapidité des développeurs et pour leur montrer les
conventions et normes chez Sneda, les développeurs suivent des formations notamment sur
l’architecture applicative que Sneda utilise, mais aussi sur les outils qui sont à leurs
dispositions.
Les documents sont mis à disposition pour chaque domaine, on y trouve les règles
générales du domaine. Il y a aussi le xwiki, un site web de tutoriel, qui montre les bonnes
pratiques de développement, les nouvelles techniques qui doivent être pris en compte, des
partages de connaissances sont aussi mis en place pour une bonne compréhension de ses
nouvelles techniques.
Les coordinateurs et une équipe d’aide technique sont présents pour apporter de l’aide aux
développeurs dans d’éventuels blocages.
47
Ce module répond au attentes de la clientèle, elle permettra a Sneda de fidéliser encor plus
ses client car elle élargi le « Sneda Global Software »
En effet ce module n’existait pas avec esti@, un logiciel qu’on reproduit dans SGS
Le stage a été bénéfique dans bien des domaines, autant dans le domaine technique
que dans le domaine social, dans les relations professionnels et hiérarchique.
La société Sneda respecte une hiérarchie précise dans le travaille, dans les équipes de
production cette hiérarchie vas des développeurs, jusqu’au directeur de production en passant
par le coordinateur de chaque équipe et les chefs de projet. Les collaborateurs sont amenés a
rédigée des rapports, a communiqué entre eux et aussi a leur supérieur, de façon
administrative. Ainsi on est amené à connaitre et appliqué les normes pour ce genre de
communication.
2. Connaissance technique
Les élargissements du logiciel vers d’autres applications comme le web sont aussi à
prévoir car ça sera utile pour les utilisateurs, en particulier le domaine planning.
48
VIII. CONCLUSION
Devenir une référence pour l’informatique immobilière est un défi de taille, pour cela le
mot clé est la rigueur, tant au niveau des délais, qu’au niveau des codes, du respect des
règles de gestions. Même la hiérarchie choisi par Sneda amène ver cette rigueur, en mettant
en place des personnes qualifier et compétents comme aide technique, coordinateurs, et
chefs de projets, dans le but d’aider chaque développeur dans son travaille.
Pour ce nouveau logiciel qui est la « SNEDA GLOBAL SOFTWARE », sneda opte pour la
communauté, il a choisi d’utiliser des technologies se basant sur eclipse, a cause de sa
modularité, et le fait qu’elle soit en « open source », et a bien exploiter ses aspects au profit
du travaille, de la rapidité.
Enfin, ce stage m’as aussi permis de mettre en œuvre les acquis a la MISA, et surtout
d’apprendre un nouveau langage de programmation, le Progress, un langage L4G,
procédural très puissant, utiliser dans les couches ressources dans l’architecture applicative
de Sneda. Enfin, comme toute chose, les problèmes rencontrés façonnent le développeur, et
donne de l’expérience pour la suivie des normes, et l’apprentissage de nouveau langage. Un
environnement d’équipe accueillante motive d’autant plus pour le travaille.
IX. BIBLIOGRAPHIE
http://www.eclipsetotale.com/articles/Eclipse_RCP.html
http://baptiste-wicht.developpez.com/tutoriels/java/debuter/
http://bruce-eckel.developpez.com/livres/java/traduction/tij2/
http://jmdoudoux.developpez.com/cours/developpons/java/
http://www.roseindia.net/java/
X. GLOSSAIRE
Hudson : outil d’intégration continu, il compile les codes et affiche les erreurs comme dans la
console si les erreurs existent.
49
ABL-L4G : «Advanced Business Language », c’est un langage de programmation procédural
tres avancer créer par le Progress Software Corporation, elle permet même de faire des
interfacez graphiques.
UML : « Unified Modeling Language » langage de modélisation graphique basée sur des
pictogrammes, permettant une vue général des classes, des interactions entre utilisateurs, …
SWT : « Standard widget Toolkit », bibliothèque graphique libre pour java, offrant des
composants de tres bonne qualité.
JFace : bibliothèque graphique libre pour le projet eclipse, basée sur SWT.
GANTT : logiciel payant paramétrable qui donne des diagrammes de temps, ici on l’a utiliser
au niveau présentation.
XI. ANNEXES
a. UML
50
Les diagrammes comportementaux :
o Diagramme de cas d’utilisation
o Diagramme d’état-transition
o Diagramme d’activité
Les diagrammes d’interaction ou dynamiques :
o Diagramme de séquence
o Diagramme de communication
o Diagramme global d’interaction
o Diagramme de temps
Tout ses diagrammes ne sont pas forcement utilisé dans un projet, c’est au concepteur d’en
faire le choix.
b. Détails technologiques
Pour les attributs, Private et Protected, on fait des actions sur eux de l’extérieur par
l’intermédiaire de méthodes déclaré public.
2. L’héritage et le polymorphisme
Avec Java, on peut faire passer les caractéristiques d’une classe, dite classe mère,
directement a d’autres classes dite classe fille par la notion d’héritage, avec le mot clef
« extends ». Contrairement aux autres langages de programmation orienté objet comme le c+
52
+, on ne peut pas faire d’héritage multiple en java, une classe fille ne peut avoir les
caractéristiques de plus d’une classe mère, mais on palie ce problème par l’intermédiaire
d’implémentation d’interfaces, des classes qui ne contiennent que la signature de méthode que
la classe qui l’implémente doit redéfinir et implémenter, cela par l’intermédiaire du mot clef
« implements ».
Ses notions sont très importantes, car elles permettent le polymorphisme. On n’a pas
besoin de connaitre la vraie nature de la classe fille, car beaucoup de classe fille peuvent
hériter d’une classe mère, on peut accéder a une méthode hériter directement de la classe
mère, et ceci est très pratique dans la programmation orienté objet.
Ce sont tout deux des logiciels utilisé avec des projets java pour éviter des taches répétitif
pour le développement d’un logiciel, a l’instar du make sous UNIX. Cependant
54