Académique Documents
Professionnel Documents
Culture Documents
Sous le thème
Réalisé par
Louange à Allah ;
Paix et Salut sur le Prophète, Sa Famille et Ses Compagnons.
A nos parents ;
Aucune dédicace ne saurait exprimer l’amour, l’estime, le dévouement et le
respect qu’on a toujours eu pour vous. Rien au monde ne vaut les efforts fournis jour et nuit
pour notre éducation et notre bien-être. Ce travail est le fruit de vos sacrifices que vous
avez consentis pour notre éducation et notre formation.
A nos frères ;
On vous exprime à travers ce travail nos sentiments de fraternité, d’amour et
d’attachement. Avec tous nos vœux de bonheur, de santé et de réussite.
Membres de nos familles ;
Vous avez toujours été présents pour les bons conseils. Votre affection et votre
soutien nous ont été d’un grand secours tout au long de notre vie.
A tous nos amis ;
En témoignage de l’amitié qui nous uni et des souvenirs de tous les moments que
nous avons passés ensemble, on ne peut trouver les mots justes pour exprimer notre
affection.
2
Université Privé de Fès CGI Technologies et Solutions
Remerciement
Au terme de ce travail, nous tenons à adresser nos sincères remerciements à tous ceux
qui ont contribué au bon déroulement de ce projet.
Nos plus vifs remerciements vont aussi à l’ensemble du corps enseignant de l’UPF qui
nous a préparé théoriquement et pratiquement, et au corps administratif pour les conseils et les
encouragements reçus lors de cette année.
Nous tenons à remercier également tout le personnel de CGI de Fès, pour leur
serviabilité, leur accueil et leur soutien.
Nous formulons nos sincères remerciements à l’égard des membres du jury, d’avoir
accepté de juger notre travail. Finalement, nous remercions toute personne qui a contribué de
près ou de loin à l’élaboration de ce travail.
3
Université Privé de Fès CGI Technologies et Solutions
Table des matières
4
Université Privé de Fès CGI Technologies et Solutions
II.5.5. Les outils utilisés ............................................................................................................... 32
II.6. Conclusion ................................................................................................................................ 35
Chapitre III : Analyse fonctionnelle et technique du projet TMA-CCS ................................................ 36
III.1. Introduction............................................................................................................................ 36
III.2. La méthodologie de pilotage ................................................................................................. 36
III.3. My Security Desk (MSD) ...................................................................................................... 38
III.3.1. Description....................................................................................................................... 38
III.3.2. Architecture..................................................................................................................... 39
III.3.3. Fonctionnalité .................................................................................................................. 39
III.4. Diagramme de classe ............................................................................................................. 40
III.5. Technologies utilisées............................................................................................................. 41
III.5.1. Un Framework ................................................................................................................ 41
III.5.2. Langages .......................................................................................................................... 46
III.5.3. Serveurs ........................................................................................................................... 47
III.5.4. Logiciels ........................................................................................................................... 47
III.6. Conclusion .............................................................................................................................. 48
Chapitre IV : Les tâches réalisées ......................................................................................................... 49
IV.1. Introduction ............................................................................................................................ 49
IV.2. Recette MSD ........................................................................................................................... 49
IV.3. Mettre à niveau le Framework ZK ....................................................................................... 50
IV.3.1. La différence entre les deux versions ............................................................................ 50
IV.3.2. Réalisation ....................................................................................................................... 50
IV.4. Les tests d’intrusion avec ZAP ............................................................................................. 58
IV.5. Création des procédures stockées ......................................................................................... 61
IV.5.1. Définition ......................................................................................................................... 61
IV.5.2. Avantages ......................................................................................................................... 61
IV.5.3. Problématiques ................................................................................................................ 61
IV.5.4. Solutions ........................................................................................................................... 61
IV.6. RFC calcul des permissions................................................................................................... 63
IV.6.1. Request for Change (RFC) ? .......................................................................................... 63
IV.6.1. Problématique ................................................................................................................. 63
IV.6.2. Solution ............................................................................................................................ 64
IV.6.3. Résultat ............................................................................................................................ 66
IV.7. Batch synchronisation des changes ...................................................................................... 66
IV.7.1. C’est quoi un batch ? ...................................................................................................... 66
IV.7.2. Problématique ................................................................................................................. 67
5
Université Privé de Fès CGI Technologies et Solutions
IV.7.3. Solution ............................................................................................................................ 67
IV.8. Conclusion .............................................................................................................................. 68
Conclusion générale .............................................................................................................................. 69
Bibliographie ......................................................................................................................................... 70
6
Université Privé de Fès CGI Technologies et Solutions
Liste des figures
Figure 1 : CGI en chiffres ....................................................................................................................... 12
Figure 2 : Evolution de la marque CGI .................................................................................................. 13
Figure 3 : Les clients de CGI .................................................................................................................. 18
Figure 4 : Répartition des sites CGI Maroc ........................................................................................... 19
Figure 5 : Type maintenance ................................................................................................................ 22
Figure 6 : Modèle de méta processus de la maintenance logiciel ...................................................... 23
Figure 7 : Logo Mantis BT ..................................................................................................................... 32
Figure 8 : Flux de travail pour Mantis BT ............................................................................................. 33
Figure 9 : Logo GIT ................................................................................................................................ 33
Figure 10 : Interface JENKINS ............................................................................................................... 34
Figure 11 : Méthodologie cycle en V .................................................................................................... 36
Figure 12 : Méthodologie en cycle V en pratique ................................................................................ 38
Figure 13 : Diagramme de classe .......................................................................................................... 40
Figure 14 : Architecture N-tiers ............................................................................................................ 41
Figure 15 : Architecture Hibernate ....................................................................................................... 42
Figure 16 : Flux de communication des services web.......................................................................... 44
Figure 17 : Architecture modulaire de Spring ...................................................................................... 44
Figure 18 : Architecture server-centric de ZK ...................................................................................... 45
Figure 19 : Design pattern MVC ........................................................................................................... 45
Figure 20 : Exemple interface Mantis BT ............................................................................................. 49
Figure 21 : Pop-up d’erreur .................................................................................................................. 51
Figure 22 : Exemple hflex / vflex .......................................................................................................... 51
Figure 23 : Page Authentification avant la modification ..................................................................... 52
Figure 24 : Page Authentification après la modification ..................................................................... 52
Figure 25 : Gérer panorama avant la modification ............................................................................. 53
Figure 26 : Page gérer panorama après la modification ..................................................................... 53
Figure 27 : Fenêtre ajouter widget avant la modification ................................................................... 54
Figure 28 : Fenêtre ajouter widget après la modification ................................................................... 54
Figure 29 : Page gérer administrateurs après la modification ............................................................ 55
Figure 30 : Fenêtre ajouter administrateurs avant la modification .................................................... 56
Figure 31 : Fenêtre ajouter administrateur après la modification...................................................... 56
Figure 32 : Menu configurations et demandes avant la modification ................................................ 57
Figure 33 : Menu configurations et demandes après la modification ................................................ 57
Figure 34 : Menu suivi des changements avant la modification ......................................................... 58
Figure 35 : Menu suivi des changements après la modification ......................................................... 58
Figure 36 : Installation ZAP ................................................................................................................... 59
Figure 37 : Ajout de l’entrée ZAP ......................................................................................................... 59
Figure 38 : Activation de ZAP ............................................................................................................... 60
Figure 39 : Interface de l’outil ZAP ....................................................................................................... 60
Figure 40 : PS qui supprime data lier au client .................................................................................... 61
Figure 41 : PS qui supprime structure de data lier au client ............................................................... 62
Figure 42 : PS qui supprime Tree lié au client ...................................................................................... 62
Figure 43 : PS supprimer client ............................................................................................................. 63
Figure 44 : Modification de la structure d’un client ............................................................................ 63
Figure 45 : Requête d’Ajout de la colonne ........................................................................................... 64
7
Université Privé de Fès CGI Technologies et Solutions
Figure 46 : Méthode de récupération des droits ................................................................................. 64
Figure 47 : Méthode de modification de allowed ............................................................................... 64
Figure 48 : Appel de la méthode modification de allowed ................................................................. 65
Figure 49 : Modification de style .......................................................................................................... 65
Figure 50 : Rafraichissement du panneau ............................................................................................ 65
Figure 51 : Affichage du pop-up ........................................................................................................... 65
Figure 52 : Panneau clients lors de recalcule des permissions............................................................ 66
Figure 53 : Affichage du pop-up ........................................................................................................... 66
Figure 54 : Les différentes classes de Batch ......................................................................................... 67
8
Université Privé de Fès CGI Technologies et Solutions
Liste des acronymes
CCS : Customer Care Service
TI : Technologies de l'information
CRM : Customer Relationship Management
RH : Resource Humaine
ZAP : Zed Attack Proxy
ML : Maintenance Logicielle
OBS : Orange Business Service
TIC : Technologies de l'information et de la communication
SOAP : Simple Object Access Protocol
IHM : Interface Homme Machine.
Ajax (DWR) : Ajax (Direct Web Remoting)
AMO : Assistance à la maitrise d'ouvrage
SFG : spécifications fonctionnelles générales
STD : spécifications techniques Détaillées
FTU : Fiche des tests unitaires
XSLT : eXtensible Stylesheet Language Transformations.
API : Application Programming Interface
ORM : Object-Relationnel Mapping
SMTP : Simple Mail Transfer Protocol
HTTP : Hypertext Transfer Protocol
AXIS : Apache eXtensible Interaction System
WSDL : Web Services Description Language
COM : Component Object Model
CORBA : Common Object Request Broker Architecture
EJB : Entreprise Java Bean
XML : Extensible Markup Language
9
Université Privé de Fès CGI Technologies et Solutions
Introduction générale
10
Université Privé de Fès CGI Technologies et Solutions
Dans le quatrième chapitre, nous présentons les tâches réalisées accompagnées d’une
description de chacune d’elles.
11
Université Privé de Fès CGI Technologies et Solutions
Chapitre I : Présentation du contexte du stage
I.1. Introduction
Nous introduisons le présent chapitre par une section qui donne un bref aperçu sur l’organisme
d’accueil, à savoir la société CGI, son organisation, ses domaines d’activité et ses clients. La
deuxième sera dédiée à une présentation de ma mission lors du stage.
12
Université Privé de Fès CGI Technologies et Solutions
I.2.2. Histoire de CGI
CGI a été fondée en 1976 par deux entrepreneurs de 26 ans, Serge Godin et André Imbeau. CGI
signifiait « Conseillers en gestion et informatique ». Ils ont démarré l'entreprise dans le sous-sol
de la résidence de Serge dans la ville de Québec avec un seul client, un téléphone et beaucoup d'ambition.
Aujourd'hui, nous sommes 73 000 professionnels travaillant dans le monde entier. La société
s’étant mondialisée, nous sommes maintenant connus simplement sous le nom de CGI.
Ensemble, les professionnels de CGI ont bâti l'une de plus importantes entreprises qui offre une
gamme complète de services-conseils en technologie de l'information (TI) et en management
au monde. CGI est reconnue pour l'excellence de ses services et affiche une croissance rentable
durable.
1976-1986
Au cours de ses dix premières années d’existence, CGI a développé une stratégie, un modèle et
un ensemble de principes de gestion qui se sont traduits par une croissance considérable et qui
continuent de guider l’entreprise encore aujourd’hui – nous appelons ces éléments « la
Constitution de CGI ». Durant cette période, le marché des services en TI n’en était alors qu’à
ses balbutiements. Tout en continuant à fournir des services-conseils, CGI a élargi son offre
pour réaliser également des contrats d’intégration de systèmes.
Vers la fin de cette décennie, certains de nos clients ont envisagé la possibilité d’externaliser
leurs fonctions informatiques et plusieurs sont allés de l’avant. CGI s’est adapté en élaborant
une stratégie pour participer au marché émergent de l’impartition.
1986-1996
En 1986, CGI a commencé à faire l’acquisition d’entreprises offrant des services d’impartition
et est devenue une société ouverte afin de les financer. Grâce à ces acquisitions, nous avons été
en mesure d’offrir des services informatiques complets, y compris des services-conseils en TI
et en gestion, des services d’intégration de systèmes ainsi que d’impartition des TI.
Au cours de cette même période, CGI s’est également établi au sein du marché des services en
gestion des processus d’affaires et s’est positionnée en vue de s’adapter à la tendance émergente
vers la mondialisation.
En 1992, la version initiale des Assises de gestion de CGI (PDF) a été créée afin de servir de
fondement pour l’ensemble des cadres de gestion, des politiques et des lignes directrices de
l’entreprise. Ces Assises de gestion ont permis à CGI de prendre des décisions d’affaires éclairées et
d’assurer une croissance saine.
13
Université Privé de Fès CGI Technologies et Solutions
1996-2006
En 1996, la clientèle de CGI comprenait déjà des leaders mondiaux dans nos secteurs d’activité
cibles, et notre objectif était de disposer d’une masse critique dans les marchés géographiques
des clients clés, d’acquérir une connaissance approfondie de leurs secteurs d’activité ainsi que
de développer des pratiques spécialisées et des solutions novatrices.
Caractérisée par la mondialisation et les regroupements d’entreprises, cette période représente
aussi celle où le secteur informatique a atteint sa maturité. L’exécution de notre stratégie de
croissance axée sur les acquisitions et sur la croissance interne a occupé une place centrale
pendant cette phase d’expansion. Nous appliquons d’ailleurs cette stratégie encore aujourd’hui.
De 2006 à aujourd'hui…
Cette période est marquée par un engagement continu envers les principes fondamentaux qui
contribuent au succès de tous les partenaires de CGI et à la réalisation de son objectif stratégique
qui est de doubler la taille de l’entreprise.
En 2010
CGI a fait l’acquisition de Stanley Inc., et de ses filiales Oberon et Techrizon. Cette acquisition
a presque fait doubler la taille des activités de CGI aux États-Unis. De plus, cette combinaison
de ressources et de compétences a créé davantage d’occasions de croissance au sein de
l’important marché du gouvernement fédéral des États-Unis.
Deux années plus tard, CGI a réalisé sa plus grande acquisition avec Logica, une entreprise
anglo-néerlandaise de services technologiques et d’entreprise. L’acquisition a fait passer la
taille de son équipe de 31 000 à 65 000 professionnels, et a accru sa présence, ses capacités et
son expertise pour servir ses clients dans les Amériques, en Europe et en Asie. Grâce à cette
acquisition, CGI se classe au cinquième rang parmi les plus importantes entreprises
indépendantes de services-conseils complets en TI et en management au monde.
Aujourd’hui, forte d’une présence dans de centaines d’emplacements partout dans le monde,
d’une solide expertise sectorielle et d’un éventail complet de services en technologie de
l’information (TI), CGI est en mesure de répondre aux besoins d’affaires de ses clients partout,
en tout temps. CGI est toujours déterminée à être reconnue comme un leader de classe mondiale
qui offre une gamme complète de services-conseils en TI et en management par ses clients, ses
membres et ses actionnaires. Tout en restant fidèle à sa Constitution, CGI continue à s’adapter
pour mieux tenir compte des changements du marché des TI, répondre aux exigences
commerciales de ses clients à l’échelle locale et mondiale, et satisfaire les attentes de ses
professionnels et de ses actionnaires.
La vision de CGI :
Être un leader de classe mondiale qui offre une gamme complète de services conseils en
technologie de l’information (TI) et en management et qui contribue au succès de ses clients.
14
Université Privé de Fès CGI Technologies et Solutions
La mission de CGI :
Contribuer au succès de ses clients grâce à des services-conseils de la plus grande qualité,
compétence et objectivité ; exercer un leadership éclairé qui les aidera à atteindre pleinement
leurs objectifs en technologie de l’information, en processus d’affaires et en gestion.
Partenariat et qualité
Pour nous, le partenariat et la qualité constituent une philosophie et une façon d'être. Nous
approfondissons sans cesse notre compréhension des activités de nos clients. Nous développons
les meilleures pratiques de gestion, nous y adhérons et nous les intégrons à nos cadres de gestion
de la relation client et de prestation des services afin d'établir des partenariats solides et
durables. Nous sommes à l'écoute de nos clients et nous avons à cœur leur pleine satisfaction.
Objectivité et intégrité
Nous faisons preuve de la plus grande indépendance dans le choix des produits, services et
solutions que nous recommandons à nos clients. Nous adhérons aux meilleurs standards de
qualité, d’objectivité et d’intégrité. Nous n’acceptons aucune rémunération de la part de
fournisseurs. Nous agissons toujours de façon honnête et éthique. Nous ne cherchons jamais à
tirer d’avantages indus et évitons les conflits d’intérêts, qu’ils soient réels ou perçus.
Intrapreneurship et partage
Notre succès collectif repose sur notre compétence, notre engagement et notre enthousiasme.
Nous favorisons une culture d’innovation et d’autonomie de façon à rendre chacun d’entre nous
imputable de la satisfaction de nos clients, assurant ainsi notre croissance rentable. Par le travail
d’équipe et le partage de notre savoir-faire et de nos connaissances dans toutes nos activités à
l’échelle mondiale, nous offrons à nos clients ce que CGI a de meilleur. En tant que membres
de CGI, nous prenons part activement au succès de notre entreprise, et bénéficions de la valeur
ainsi créée en participant aux profits et en ayant accès à l’actionnariat.
15
Université Privé de Fès CGI Technologies et Solutions
Respect
Dans toutes nos actions, nous sommes respectueux envers nos membres, clients, partenaires
d’affaires et concurrents. En tant qu’entreprise mondiale, nous reconnaissons la grande richesse
que la diversité nous apporte. Nous célébrons cette diversité tout en adhérant à la culture
d’entreprise de CGI.
Solidité financière
Tous nos efforts visent une performance financière qui se distingue par sa constance et sa
solidité afin de soutenir notre croissance à long terme au bénéfice de nos membres et de nos
actionnaires. Notre solidité financière nous permet d’investir continuellement dans les capacités
de nos membres, dans nos services et dans nos solutions d’affaires au profit de nos clients. Dans
ce but, nous gérons nos affaires de manière à réaliser un rendement supérieur aux normes de
l’industrie.
Responsabilité sociale
Notre modèle d’affaires, qui en est un de proximité, a été conçu afin de développer des liens
étroits avec nos clients et avec nos collectivités. En tant que membres, nous prenons à cœur nos
responsabilités sociales et contribuons à l’évolution des collectivités où nous vivons et
travaillons.
I.2.4. Secteurs cibles de CGI
CGI met à profit ses connaissances sectorielles approfondies et son expertise technologique afin
de fournir à ses clients des repères dans le dédale que constitue la numérisation des ressources
humaines, des processus et des technologies.
Services bancaires – Nous travaillons avec 15 des 20 plus importantes banques au
monde et collaborons avec nos 10 principaux clients depuis en moyenne 26 ans.
Communications – Nous collaborons avec 6 des plus importants fournisseurs de
services de communication au monde pour répondre aux demandes des
consommateurs pour de nouveaux produits et services et offrir une prestation de
services omnicanale, personnalisée et en temps réel.
Gouvernements – CGI a collaboré avec plus de 2 000 clients dans 15 pays pour
améliorer les services offerts aux citoyens et l’efficacité opérationnelle.
16
Université Privé de Fès CGI Technologies et Solutions
Santé et sciences de la vie – Nous offrons du soutien à plus de 1 000 établissements
de santé, à 195 M de prestataires de régimes d’assurance maladie, à 3 millions de
fournisseurs, à 500 pharmacies et à 50 entreprises pharmaceutiques et de sciences de
la vie.
Secteur manufacturier – Nous offrons des services à plus de 700 clients du secteur
manufacturier dans divers segments, dont les industries automobiles et aérospatiale,
la haute technologie, les industries minière et métallurgique, les pâtes et papiers, et
les produits chimiques.
Pétrole et gaz – CGI est le partenaire de toutes les principales sociétés pétrolières et
gazières dans le monde, offrant des services pour l’ensemble de la chaîne de valeur.
Commerce de détail et services aux consommateurs – CGI offre des services à
plus de 800 clients dans les domaines du commerce de détail, de la vente en gros,
des biens de consommation courante et des services aux consommateurs.
Transport et logistique − Nous collaborons avec des chefs de file des secteurs du
transport aérien, ferroviaire, maritime, routier et du transit régional, et de la logistique.
Services publics – CGI est partenaire de plus de 450 clients des secteurs de
l’électricité, de l’eau et du gaz, et de 8 des 10 plus grandes sociétés de services publics
en Europe et en Amérique du Nord.
CGI a une clientèle internationale, avec de grands clients institutionnels dans un large éventail
d'industries et de marchés. Les États-Unis représentaient 29% de leur clientèle en mars 2015,
tandis que le Canada était le deuxième pourcentage le plus élevé avec 15%. La majorité des
contrats restants de CGI sont en Europe, avec 15% dans le reste du monde.
Ci-dessous l’ensemble des clients clés de CGI :
17
Université Privé de Fès CGI Technologies et Solutions
Figure 3 : Les clients de CGI
CGI figure parmi les plus importants fournisseurs de services en technologies de l’information
(TI) au monde. Au Maroc, où travaillent 920 professionnels, il offre des services complets en
TI, dont des services-conseils en management ainsi que des services d’intégration de systèmes,
en gestion des processus d’affaires et d’impartition (externalisation).
CGI est le premier fournisseur francophone de services en TI offerts sur le continent « Near
shore » au Maroc. Cette position permet à CGI de collaborer étroitement avec ses clients
français et de leur offrir un savoir-faire sectoriel tant sur le plan des technologies que des
affaires, afin de contribuer à la croissance de leur organisation.
CGI offre actuellement des services à 45 clients actifs formés de grands noms français pour qui
ses professionnels réalisent une cinquantaine de projets.
CGI dispose de plusieurs centres techniques et fonctionnels au Maroc. Ces centres offrent
notamment des services liés aux technologies SAP, Java JEE, Mainframe, Oracle et Microsoft,
ainsi que des systèmes de gestion de la relation client (CRM) et des RH.
CGI au Maroc possède une double certification : ISO 9001 et ISO 27001.
CGI Maroc est un des premiers fournisseurs francophones de services en TI, avec 3 sites :
Casablanca, Rabat et Fès.
18
Université Privé de Fès CGI Technologies et Solutions
Figure 4 : Répartition des sites CGI Maroc
Actuellement, 45 clients dans 6 secteurs d’activité. CGI Maroc fournit à ses clients plusieurs
prestations dans des secteurs diversifiés :[3]
Intégration de systèmes : aider les clients à concevoir, élaborer et intégrer des systèmes et
applications pour optimiser leur fonctionnement.
Application Management : refondre efficacement les systèmes qui appuient un processus
d'affaires, pour atteindre les résultats visés.
Infrastructure Management : offrir aux clients une gamme complète de services
d'architecture d'entreprise allant des services conseils stratégiques à la mise en œuvre final.
Managed Testing : fournir à l'organisation, les processus et l'environnement de test qui
permettront d'obtenir des résultats optimaux.
Business Process Outsourcing : l'externalisation d'une partie de l'activité de l'entreprise vers
un prestataire extérieur, un sous-traitant.
Support : aider les clients à maximiser leurs investissements en leur offrant un soutien
personnalisé grâce à des services tels que du matériel de formation, des communications
continues et des conseils techniques d'experts.
Suite à mon intégration au projet TMA CCS, j’étais mené à suivre un ensemble de formations,
qu’on peut les catégorisées en deux parties :
- Formations présentées par l’entreprises, pour but de faire découvrir au nouvel arrivant
son cadre de travail, ses différentes assises de gestion, ses pratiques et démarches à
19
Université Privé de Fès CGI Technologies et Solutions
suivre et à appliquer afin de préserver son processus de qualité et rester toujours sous le
cadre de norme 9001.
- Formations reliées au cadre du projet TMA CCS, ces derniers cernes en particulier
l’aspect de sécurité, applicatives et techniques. Ceci est fait afin de former les
collaborateurs, d’être alerter a toute éventuelle menace, distinguer entre information :
publique, confidentiel, privée...
Elle s’étend également avec la récupération de plusieurs document dédié à l’explication d’une
façon général, découvrir le plan de qualité du projet, les procédures pour la mise en place de
l’environnement, l’installation des différentes CCS, afin de garder la même structure
d’enivrement de développement local.
Après avoir terminé la totalité des formations obligatoires, une réunion a été organisée par mon
manager, qui a pris le soin dans un premier temps, de me donner une idée générale sur les
différentes visions est perceptives ciblés au cours des prochaines mois. Dans un second temps,
on a eu un petit discours de découverte pour cerner mes connaissances dans le domaine, à
travers lequel, il m’a confié des tâches particulières dans le projet.
Alors, nous avons décidé que je commence mon activité au sien de l’équipe de TMA afin de
collaborer les efforts pour la mise en place des évolutions au faveurs de l’application MSD.
Dans ce cadre, je me suis engagé à réaliser deux missions respectives et indispensables pour le
bon déroulement du projet TMA CCS, qui en effet, sont :
- Le développement des évolutions affectés tout en veillant sur la non régression sur
d’autres fonctionnalités des CCS.
- Mener le travail en respectant les démarches de qualité indiquée et respecter par tous les
membres du projet pour but de clarifier, documenter, testé tout bout de code ajouté.
Par la suite, et dès que les premières tâches seront effectuées, ma mission consisterait à :
- Faire des recettes complètes de toutes l’application.
- Mis à niveau de Framework ZK.
- Faire les tests d’intrusion avec ZAP.
- Création des procédures stockés.
- Développement des évolutions.
- Création des Batchs.
I.4. Conclusion
20
Université Privé de Fès CGI Technologies et Solutions
Chapitre II : Le projet TMA CCS
II.1. Introduction
Ce chapitre résume l’ensemble des définitions et des atouts nécessaires à comprendre afin de
mieux suivre et maitriser les parties suivantes, où les différentes taches réalisées sont décrites.
Il fait office d’un descriptif détaillants le jargon employé dans le cadre du projet, ainsi que les
démarches appliquées et les informations nécessaires et indispensables pour assurer la qualité
du travail à fournir.
Pour chaque projet de maintenance, l’équipe TMA s’engage à définir les indicateurs de qualité
de service définis dans le contrat avec le client au début du projet. Ces engagements sont
régulièrement mesurés et présentés par le chef de projet et le directeur de projet dans les comités
de pilotage.
Afin de garantir la meilleure qualité de service et permettre aux différentes entreprises de se
concentrer leurs propres métiers, la TMA a mis en place une organisation rigoureuse et une
série de meilleures pratiques acquises au cours des années de son intégration dans le monde
Professional :
21
Université Privé de Fès CGI Technologies et Solutions
Financier
- Réduire les coûts et bénéficier, avec le même budget, d’une augmentation de
périmètre.
Business
- Optimiser la qualité de services et augmenter la réactivité de développement pour
les Offres Sur Mesure (ou OSM) pour les clients finaux, et de nouveaux comptes
prospectifs.
- Permettre une fluctuation de charges tout en maîtrisant les coûts.
Pour répondre à l’enjeu financier, l’objectif de la TMA est d’apporter :
De la souplesse et de la fluidité pour dimensionner l’équipe de réalisation.
Une mutualisation des ressources.
Pour répondre à l’enjeu Business, l’objectif de la TMA est d’apporter :
Une forte réactivité pour la mise en place de nouvelles fonctionnalités aux
utilisateurs finaux
Une modularité et une évolutivité de l’architecture pour optimiser la prise en
compte des évolutions
22
Université Privé de Fès CGI Technologies et Solutions
L’aspect proactif :
Indique une maintenance qui anticipe les attentes, prend l'initiative de l'action :
Une évolution qui ne peut être réalisé qu'une fois parvenu à son terme (Perfectif), une
correction destinée à prévenir, à empêcher une régression de se produire par exemple
(Préventif).
L’aspect réactif :
Indique une maintenance Qui réagit, exerce une intervention vis-à-vis une demande, un besoin
du client :
Une évolution qui prend en charge des nouvelles spécifications (Adaptative), de corrections
des anomalies de fonctionnement remontées par le client (Corrective).
Quelques soit le types d’interventions de la TMA durant le cycle de vie d’un projet, chaque
modification ou améliorations acceptée et développer doit suivre un procès bien précis selon
son type, ceci permet ainsi, de bien cordier entre l’entreprise clients et l’équipe TMA.
Afin de mieux clarifier le besoin et respecter les dates de livraison. Un type de ses procès sera
décrit dans la séquence suivante.
23
Université Privé de Fès CGI Technologies et Solutions
là, le client ne considéra plus la TMA comme une solution des corrections de bug mais un
moyen aussi qui agit sur l'aspect fonctionnel en plus que technique.
Souscrire un contrat de TMA auprès d'un prestataire permet à l'entreprise de :
- Maîtriser les coûts de maintenance.
- Gagner en agilité.
- Avoir à disposition les bonnes ressources et les bonnes compétences.
- Se concentrer sur son cœur de métier.
- Se libérer des contraintes de maintenance informatique.
24
Université Privé de Fès CGI Technologies et Solutions
Dans ce sujet, nous nous contentant de citer les CCS couvert par notre périmètre, aussi celles
où, il eut de l’activité durant ma période du stage en raison de manque d’information nécessaire
sur les autres soit ceux qui ne font pas partie du scope, soit ceux où j’pas eu encore l’occasion
pour intervenir.
Technologies du projet :
Java 1.6.1
MySQL 5.5
Open LDAP 2.4
AXIS 1.4
Apache 2.4
Tomcat 6
- Une IHM pour les utilisateurs (Administrateurs clients OBS). Elle permet à l’utilisateur
de visualiser les indicateurs du client auquel il est rattaché et pour lesquels il a les droits
de visualisation. Il peut également construire des panoramas permettant de visualiser
rapidement certains indicateurs.
- Un ensemble de batchs est utilisé pour gérer les tâches d’administrations non
disponibles dans l’IHM d’administration (exemple : définition des indicateurs et de
leurs modes d’affichage).
25
Université Privé de Fès CGI Technologies et Solutions
Technologies du projet :
Java 1.7
Apache Maven 3
Spring 3.0.7. RELEASE
Hibernate 3.4.0.GA
ZK 7.0.7
Tomcat 8
Apache
API JFreeChart 1.0.13
L’application MSD réalise l’interface entre les administrateurs OBS et les administrateurs
clients, ainsi que le suivi et l’historisation des demandes des administrateurs clients.
L’application MSD permet également à OBS d’envoyer des notifications à ses clients sur les
sujets sensibles (par exemple les alertes virales).
Technologies du projet :
Java 1.6
Apache Maven 3
Spring 3.1.2. RELEASE
Hibernate 3.4.0.GA
JBPM 3.3.1.GA
ZK 6.5.5
Tomcat 6
Apache
Perl 5.8
MySQL 5.5
26
Université Privé de Fès CGI Technologies et Solutions
Cette différentiation se fait à l’authentification. C’est le moyen qui permet aux différents clients
d’orange business services de personnaliser les accès aux services messagers pour ses
utilisateurs ceci se fais d’après leurs privilèges aux sains de leurs sociétés respectives.
Technologies du projet :
Java 1.5
Perl 5.8.5
Struts
Ajax (DWR)
Webserver sun
Sun Java System Directory Server Enterprise Edition v6
JAX-WS
II.5. Plan Assurance Qualité
II.5.1. Définition
Le Plan Assurance Qualité (PAQ) précise les dispositions communes mises en œuvre
conjointement par ORANGE et CGI pour assurer le TPAS TMA CCS sur un périmètre
prédéfini.
Le PAQ permet de :
Définir des modalités conjointes d’échanges et de travail entre ORANGE et CGI,
Donner à tous les participants les procédures et standards à appliquer,
Définir les responsabilités d’ORANGE et de CGI en matière d’organisation,
Servir de base aux activités des ingénieurs qualité d’ORANGE et de CGI.
ORANGE et CGI, pour les aspects qui ne relèvent pas des échanges respectifs entre eux,
appliquent chacun des dispositions internes qui concourent au respect de ces dispositions
communes.
Ce plan manifeste une organisation, tout un procès à suivre est à respecter durant les différents
échanges entre la parties cliente et la partie prestataire. Ces à travers cette direction est méthodes
que CGI assure la qualité de ses services, ceci se concrétise par un ensemble de démarche,
exigences, procédures et organisme à appliquer.
Dont on peut citez comme premier point majeur, l’activité AMO qui est un facteur essentiel,
une unité simplifiant les transactions entre client et TMA. Un ensemble de gestion.
Lors des différentes phases de la mise en production, que nous allons détaillés dans les parties
qui suivent.
II.5.2. AMO (Assistance à la maitrise d’ouvrage)
L’activité AMOA est une activité très rare au Maroc, ça nous donne la possibilité de gérer des
projets transverses à la place du client. Nous pouvons dire qu’avec cette activité, nous portons
une autre casquette fonctionnelle et nous participons -en plus de la maîtrise d’œuvre- à la
27
Université Privé de Fès CGI Technologies et Solutions
maîtrise d’ouvrage. L’objectif est d’assister le client à mieux exprimer et cadrer son besoin et
même proposer des nouveaux projets à sa place.
Voici une vue globale sur l’ensemble d’activités réalisées sous le lot d’AMOA :
Définition du besoin.
Rédaction de cahiers des charges.
Conseil sur les plateformes.
Support à l’installation, validation du bon fonctionnement.
Support à la production.
Formation des utilisateurs, des administrateurs.
Hébergement.
Ceci était le travail général réalisé par l’équipe du projet. Le périmètre au niveau duquel nous
travaillons repose sur les trois activités mentionnées précédemment.
La liste suivante décrit brièvement les activités que nous assurons sur l’ensemble du périmètre
du projet :
Montée en compétence fonctionnelle et technique sur l’ensemble des
applications du périmètre Maroc.
Réalisation des tests et recettes en respectant les spécifications fournies.
Correction et développement en respectant les délais et les différentes normes
qualité.
Contribution à l’autonomie et la dynamique de l’équipe.
Soutient technique de l’équipe.
Enrichissement de la base de connaissance fonctionnelle et technique au profit
de l’équipe du projet.
Les objectifs du projet partagés avec ORANGE sont les suivants :
Réduire les coûts ;
Maintenir la qualité de service ;
Respecter les délais imposés ;
28
Université Privé de Fès CGI Technologies et Solutions
II.5.3. Les gestions de qualité
II.5.3.1 La gestion des exigences
Définition :
Tout évènement n'appartenant pas aux opérations normales et pouvant engendrer une
interruption de service ou une diminution de sa qualité.
Émission :
Reçu via un rapport d'anomalie indiquant qu’un composant ou une fonctionnalité ne répond pas
aux exigences définies.
Le rapport d‘incident doit contenir :
Le nom et la version du composant (logiciel ou documentaire) concerné,
Le scénario de reproduction,
Le nom et les coordonnées de la personne signalant l’incident,
Les détails concernant des corrections éventuellement souhaitées,
Les autres composants potentiellement impactés par l’incident,
Toutes autres informations utiles pour l’analyse de l’incident (Logs, jeux)
Origines d’incidents :
CGI s’engage à proposer tout l’aide à disposition.
29
Université Privé de Fès CGI Technologies et Solutions
L’anomalie est gérée en conformité avec les niveaux de service validés lié au domaine de
responsabilité d’ORANGE.
La gestion des incidents cherche à rétablir au plus vite le service, donc il peut intervenir en deux
temps :
- Un premier permettant la mise en place d’un contournement acceptable.
- Le deuxième permettant la mise en place de la solution définitive.
Dans certains cas, la résolution d’un incident peut conduire à la gestion d’une évolution.
Une fois les spécifications fonctionnelles validées, elles sont traduites en spécifications
techniques détaillées (STD). Les spécifications techniques décrivent de manière très détaillée
l’ensemble des traitements à effectuer.
Dans les spécifications techniques, on retrouve les détails des modifications à apporter à un
programme (la ligne à laquelle il faut modifier le code, les nouvelles structures appelées dans
le programme, les nouvelles variables, etc…).
Les spécifications techniques détaillées doivent être validées avant de passer à la modification
effective du programme ou à la création du nouveau programme.
Les développeurs utilisent les Test cases ou la fiche des tests unitaires (FTU), en général c’est
un fichier Excel, pour tracer et effectuer les tests unitaires, ainsi que le résultat des test-cases
réalisés.
II.5.4.2 Le développement
Les entrants et les moyens nécessaires pour la réussite de la phase développement sont :
Le planning détaillé.
Les spécifications techniques (STD).
Les normes de codage.
Vérification/ Validation : la version validée de la STD.
30
Université Privé de Fès CGI Technologies et Solutions
Analyse d’impact (Devis).
Une fois les développements terminés, une revue du code est faire. Ce processus se base sur les
spécifications techniques et les normes de codage. Il a pour objectif de corriger le code.
La mise à jour du développement nécessite la revue des Test unitaires et implique des futurs
tests, afin de s’assurer que le code modifié n’a pas impacté une partie déjà existante, ou une
modification déjà fonctionnelle. Si le résultat des tests est OK on doit mettre à jour le statut en
« ok » dans le test-cases.
L’analyste utilise le Test-cases pour mettre en place les tests d’intégration. Ces tests sont
vérifiés en se référant aux SFD et STD.
II.5.4.5 La livraison
Après la phase des tests d’intégration, il faut livrer le projet réalisé. Mais les tests continuent
toujours au niveau du client : ce sont les tests client. Ainsi, le client peut détecter une anomalie
au niveau du programme, si celui-ci ne prend pas en compte un ou plusieurs points des
spécifications.
31
Université Privé de Fès CGI Technologies et Solutions
II.5.5. Les outils utilisés
II.5.5.1 Mantis Bug Tracker
L’outil utiliser par l’équipe TMA afin de faire le suivie des différents demandes clients, à savoir
la correction des bugs, le suivies des évolutions, le traitement des taches ordonnées.
Mantis est un système de suivi d'anomalies logicielles basé sur une interface web. Il est écrit en
PHP et requiert une base de données (MySQL, SQL Server, PostgreSQL et DB2) supportée et
un serveur web. Mantis peut être utilisé sur Microsoft Windows, Mac OS, OS/2 et sur de
nombreux OS du type Unix.
Le principe de cet outil consiste à enregistrer la déclaration d'un bug informatique, puis pour
les techniciens de maintenance informatique concernés, à mettre à jour l'avancement de sa
résolution, jusqu'à sa clôture.
Le déclarant de l'anomalie peut s'informer à tout moment sur l'avancement du traitement de son
problème, ceci se fait via le serveur Web.
Ceci se fait à travers l’implémentation d’un workflow décrivant les différentes étapes par
lesquelles pas une demande peut passer en identifiant les différents états, pouvant être atténuer
puis l’état actuel.
Un Workflow et la progression des étapes (tâches, événements, interactions) qui constituent un
processus de travail, impliquent deux personnes ou plus, et créent ou ajoutent de la valeur aux
activités de l'organisation.
Dans un flux de travail séquentiel : chaque étape dépend de l'occurrence de l'étape précédente.
Dans un flux de travail parallèle : deux étapes ou plus peuvent être exécutées simultanément.
32
Université Privé de Fès CGI Technologies et Solutions
Figure 8 : Flux de travail pour Mantis BT
II.5.5.2 GIT
Le leader mondial des logiciels de gestion des versions (Versioning) distribués, ces logiciels
sont utilisés principalement par les développeurs. En effet, ils sont exclusivement utilisés pour
gérer des codes sources, car ils sont capables de suivre l’évolution d’un fichier texte ligne par
ligne en présentant un outil traquant tous les changements.
GIT est fortement conseillés pour gérer un projet informatique d’une grande envergure. Car il
permet de suivre l’évolution des fichiers source et gardent les anciennes versions de chacun
d’eux. Son opérabilité ne s’arrête pas qu’à cela, Sion il va s’agir que d’un simple outil de backup
(sauvegarde). Cependant, il propose de nombreuses fonctionnalités qui s'avèrent très utiles tout
au long de l’évolution d’un projet informatique :
- Il garde qui a effectué chaque modification de chaque fichier et pourquoi. Il est
par conséquent capables de dire qui a écrit chaque ligne de code de chaque
fichier et dans quel but.
- Il est capable d’assembler (de fusionner) leurs modifications et d’éviter que le
travail d’une de ces personnes ne soit écrasé.
33
Université Privé de Fès CGI Technologies et Solutions
- Travailler à plusieurs, sans risquer de se marcher sur les pieds. Si deux personnes
modifient un même fichier en même temps, leurs modifications doivent pouvoir être
fusionnées sans perte d’information.
II.5.5.3 JENKINS
Jenkins est un serveur d'intégration continue open source, capable d'orchestrer une chaîne
d'actions permettant de mener à bien le processus d'intégration continue de manière
automatisée. Jenkins est entièrement écrit en Java, est une application largement utilisée dans
le monde. [10]
Il s’agit d’une application serveur qui nécessite un serveur Web tel qu’Apache Tomcat. La
raison pour laquelle Jenkins est devenue populaire est son suivi des tâches répétitives au cours
du développement d’un projet. Par exemple, au cours de développement ou de l’évolution d’une
application, Jenkins testera en permanence ses constructions de votre projet et vous montrera
les erreurs aux premières étapes de votre développement.
En utilisant Jenkins, les éditeurs de logiciels peuvent accélérer leur processus de
développement, car Jenkins peut automatiser la création et les tests à un rythme rapide. Jenkins
prend en charge le cycle de vie complet du développement d'un logiciel, qu'il s'agisse de la
construction, du test, de la documentation, du déploiement ou d'autres étapes du cycle de
développement d'un logiciel.
Dans l'intégration continue après la validation du code, le logiciel est construit et testé
immédiatement. Dans un grand projet avec de nombreux développeurs, les commits sont
effectués plusieurs fois par jour. Avec chaque code de validation est construit et testé. Si le test
est réussi, la construction est testée pour le déploiement. Si le déploiement aboutit, le code est
poussé en production. Cette validation, construction, test et déploiement est un processus
continu, d'où le nom d'intégration / déploiement continu.
34
Université Privé de Fès CGI Technologies et Solutions
II.6. Conclusion
Ce chapitre, a pu fournir les définitions des termes du jargon utilisés dans le cadre du projet
TMA CCS, dont la définition de la TMA, CCS. Initialisées les structures des CCS qu’on va
entamés dans le prochain chapitre, ainsi que décrire le procès de qualité sur lequel les différents
échanges entre le client et l’équipe s’effectueront.
35
Université Privé de Fès CGI Technologies et Solutions
Chapitre III : Analyse fonctionnelle et technique du projet
TMA-CCS
III.1. Introduction
Par le contrat TMA CCS, ORANGE confie à CGI les activités de service en matière
d’assistance technique, de suivi de production, de conception, de développement et de
maintenance des logiciels en maîtrise d'œuvre. Ce chapitre va mettre l’accent sur les aspects
fonctionnelles et techniques reliés aux projets, décrire plus en détails les architectures sur les
quelles sont basées les différentes applications ainsi que les technologies avec lesquelles sont
développées.
Le projet TMA CCS se déroule sous le cadre de la méthode d’organisation du cycle en V qui
est une méthode très connue dont l’origine remonte à l’industrie et qui a été adaptée à
l’informatique dans les années 80. C’est l’une des premières méthodes qu’on apprend à l’école
après le cycle en cascade, et elle reste toujours d’actualité. [4]
La grande force du cycle en V, c’est qu’il définit assez précisément la manière dont les choses
devraient se passer. Voici un schéma déceptif des déférentes étapes formant l’architecture de
cette dernière :
36
Université Privé de Fès CGI Technologies et Solutions
peut être réalisée qu’une fois que l’étape précédente est terminée, ce qui diminue les prises de
risque sur le projet.
Ce qui est bien visible sur le diagramme, c’est que chaque étape de conception possède son
alter ego de validation. Il devient alors assez aisé de valider un projet, car le référentiel de test
est connu très précisément.
Les différentes étapes :
Le cycle en V est constitué de 8 étapes qui ont toutes leur importance.
- Expression de besoin : Le client exprime son besoin, en décrivant les usages
correspondant au produit fini tel qu’il peut l’imaginer. Cela doit répondre aux questions
« Que veut-on ? » et « À quel coût ? ».
- Spécifications fonctionnelles : C’est le cahier des charges exact du produit final, tel que
le désire le client. Il doit couvrir l’intégralité des cas d’utilisation du produit, en
expliquant ce qu’il doit faire et non pas comment il va le faire.
- Spécifications techniques : C’est une traduction des spécifications fonctionnelles en
termes techniques. C’est durant l’élaboration des spécifications techniques que sont
choisies les technologies à mettre en œuvre pour développer le produit, et qu’est conçue
l’architecture logicielle du produit.
La phase de validation
Validation : Le produit est à ce moment testé en regard de la spécification fonctionnelle. Toutes
les utilisations qui y ont été définies doivent pouvoir se vérifier dans les faits.
- Tests unitaires : Ces tests interviennent à un niveau « atomique ». Chaque brique
logicielle a été modélisée puis codée durant les étapes précédentes. Les tests unitaires
assurent que ces briques respectent de manière individuelle leur cahier des charges.
- Tests d’intégration : Ce sont là les premiers tests grandeur nature du produit fini. On
s’assure qu’il suit les indications des spécifications techniques.
- Mise en production et recette : Le produit est vérifié une dernière fois en préproduction,
avant d’être mis en production. Le client procède à la recette, pour vérifier que son
expression de besoin est respectée.
La pratique
Malheureusement, si le cycle en V est limpide d’un point de vue théorique, son application
réelle est très difficile. Dans une grande majorité de cas, on voit des organisations qui
ressemblent plutôt à ce schéma :
37
Université Privé de Fès CGI Technologies et Solutions
Figure 12 : Méthodologie en cycle V en pratique
L’application MSD réalise l’interface entre les administrateurs OBS et les administrateurs
clients, ainsi que le suivi et l’historisation des demandes des administrateurs clients.
L’application MSD permet également à OBS d’envoyer des notifications à ses clients sur les
sujets sensibles (par exemple les alertes virales).
38
Université Privé de Fès CGI Technologies et Solutions
III.3.2. Architecture
L’application est divisée en couches logicielles :
- La couche d’accès aux données.
- La couche de services métier.
- La couche présentation.
La couche de présentation :
- Contient les composants évolués spécifiques à l’application (formulaires
paramétrables).
- Génère l’affichage.
- Gère les contrôles de surfaces.
III.3.3. Fonctionnalité
Le portail My Security Desk est composé de deux parties :
Batchs :
- Création des feuillets : les feuillets de configuration (.conf, .xml et .html) décrivent la
configuration de chaque équipement.
- Duplication de la base de données. Cette base est utilisée pour l’usurpation des
utilisateurs.
- Génération des grammaires xslt permettant de visualiser les configurations des
équipements dans MSD
- Gérer les différents fichiers mis à disposition des utilisateurs
- Synchroniser les équipements du référentiel avec MSD
- Purger différentes informations de la base de données : anciennes demandes de
changements terminées, anciennes configurations d’équipements, …
- Construire des données à destination de RSCWeb.
IHM :
- Gérer les administrateurs OBS et client et leurs groupes.
- Gérer les clients et leurs groupes.
- Créer et suivre les demandes de changements sur équipements ou services.
- Gérer des formulaires préconstruits sous la forme d’un catalogue.
- Mettre à disposition des fichiers pour les utilisateurs.
39
Université Privé de Fès CGI Technologies et Solutions
- Créer et consulter des notifications à destination des utilisateurs.
- Consulter rapidement via une page d’accueil (panorama) la listes des notifications,
clients, demandes de changement et de visualiser les équipements sur une map monde.
- Gérer des demandes d’archivage de configurations.
- Gérer une liste de bookmarks à destination des utilisateurs.
40
Université Privé de Fès CGI Technologies et Solutions
III.5. Technologies utilisées
III.5.1. Un Framework
Un Framework est un ensemble d’APIs, de bibliothèques, d’outils et de règles à suivre (Design
Patterns), basé sur l’inversion du contrôle qui support le développement d’applications. Les
frameworks sont développés par des programmeurs système.
Un Framework est composé de plusieurs briques/composants qui sont en interaction les uns
avec les autres. Les applications peuvent être écrites de manière plus efficace si nous utilisons
un Framework adapté au projet au lieu d’être obligé de réinventer à chaque fois la roue. Un
Framework Java fournit un ensemble de fonctionnalités à partir d’une implémentation objet.
Lors de développement à grande échelle et au cours de la conception par équipe, les frameworks
sont alors très utiles, voire indispensables.
Le cœur de fonctionnement d’un ORM vise à rendre abstraite la couche d’accès à la base de
données afin de ne manipuler que des objets Java (Beans ou POJO pour Plain Old Java Objects)
dans les couches de service de l’applicatif.
A minima, cette couche d’accès aux données ou DAL (Data Access Layer) doit permettre
d’effectuer les opérations « basiques » de type CRUD (Create Read Update Delete) Les
principes fondamentaux d’un ORM sont :
- De définir la relation entre un objet Java et son pendant en base de données.
(Généralement un bean par table en base de données)
- De fournir une classe d’abstraction gérant les accès à la base de données (Session
Hibernate, session ibatis, …)
41
Université Privé de Fès CGI Technologies et Solutions
Dans cette classe d’abstraction, fournir à minima les méthodes pour effectuer les opérations de
type CRUD ainsi qu’une méthode pour exécuter du SQL natif.
Les ORM permettent d’effectuer cette abstraction en stockant la relation entre un objet Java et
une table de la base de données.
Ce mapping entre les objets Java et les tables de la base de données sont gérables de deux
manières :
- Via un fichier de mapping (généralement un fichier XML).
- Via les annotations JPA de Java 5 (Java Persistence API).
Hibernate
Hibernate est un Framework open source gérant la persistance des objets en base de données
relationnelle. L’objectif principal était d'offrir des meilleures capacités en persistance que celles
proposées par EJB 2.0 en simplifiant ses complexités et complétant les fonctionnalités
manquantes.
Hibernate apporte une solution aux problèmes d'adaptation entre le paradigme objet et les
SGBD en remplaçant les accès à la base de données par des appels à des méthodes objet de haut
niveau.
Le but d'Hibernate est de libérer le développeur de 95 % des tâches de programmation liées à
la persistance des données communes. Hibernate assure la portabilité de votre application si
vous changer de SGBD. Hibernate propose au développeur des méthodes d’accès aux bases de
données plus efficace ce qui devrait rassurer les développeurs. Hibernate permet d’assurer la
persistance des objets de l’application dans un entrepôt de données. Cet entrepôt de données est
dans la majorité des cas une base de données relationnelle, mais il peut être un fichier XML. Le
Mapping des objets est effectué par Hibernate en se basant sur des fichiers de configuration en
format texte ou souvent XML.
Architecture de Hibernate
L’architecture de Hibernate est découpée en couches afin d’isoler les utilisateurs des API qui
le constitue.
42
Université Privé de Fès CGI Technologies et Solutions
- Hibernate permet d’assurer la persistance des objets de l’application dans un entrepôt
de données.
- Cet entrepôt de données est dans la majorité des cas une base de données relationnelle,
mais il peut être un fichier XML (XML mapping).
- Le mapping des objets est effectué par Hibernate en se basant sur des fichiers de
configuration en format texte ou souvent XML.
III.5.1.2 Framework SOAP
SOAP (Simple Object Access Protocol) est un protocole de RPC (Remote Procedure Call)
orienté objet bâti sur XML. [6]
Il permet la transmission de messages entre objets distants, ce qui veut dire qu'il autorise un
objet à invoquer des méthodes d'objets physiquement situés sur un autre serveur. Le transfert
se fait le plus souvent à l'aide du protocole HTTP, mais peut également se faire par un autre
protocole, comme SMTP.
Le protocole SOAP est composé de deux parties :
- Une enveloppe, contenant des informations sur le message lui-même afin de permettre
son acheminement et son traitement,
- Un modèle de données, définissant le format du message, c'est-à-dire les informations
à transmettre.
Service WEB
Un service web (Web Service) comprend les composants suivants :
- Une implémentation du service, contenu sur un serveur.
- Un protocole de communication pour faire transiter les données SOAP sur http(s).
- Une description du service web pour que le client puisse l’invoquer (WSDL).
- Une API pour invoquer le service WEB (AXIS).
WSDL : Il définit de manière abstraite et indépendante du langage, l’ensemble des opérations
et des messages qui peuvent être transmis vers et depuis un service web donné. En ce sens on
peut définir le WSDL comme une sorte de langage de définition d’interface d’objet, au même
titre que ceux utilisés pour d’autres architectures d’applications à composants, telles que
CORBA ou COM.
WSDL permet de définir le message, les réponses aux messages et les types utilisés.
43
Université Privé de Fès CGI Technologies et Solutions
Figure 16 : Flux de communication des services web
Spring est un Framework open source qui offre une alternative viable aux EJB, plus simple à
utiliser dans le cadre du développement d’applications professionnelles.
Spring est bien distingué du reste des frameworks de la même technologie par le fait qu’il est
un conteneur d’objets Java ordinaires POJO (Plain Old Java Object). Par ailleurs, Spring fournit
une riche API qui simplifie la programmation de certaines tâches et l’utilisation d’outils open
source répandus.
L’architecture de Spring se base sur plusieurs modules pour chaque aspect technologique
comme suit.
Un des autres attraits du conteneur Spring se situe dans l’intégration d’autres frameworks (Axis,
Hibernate, JSF) ainsi que d’autres technologies (JMS, JMX, …).
44
Université Privé de Fès CGI Technologies et Solutions
III.5.1.4 Framework ZK
ZK est un Framework Ajax de type server-centric, contrairement à Google Web Toolit) c'est à-
dire que la logique métier est géré intégralement côté serveur.[2]
Là ou Google Web Toolkit va générer des fichiers JavaScripts qui seront exécutés côté client
(navigateur), ZK ne génère pas de fichiers JavaScripts et utilise Ajax pour gérer les appels entre
le client et le serveur.
Le Framework ZK possède son propre type de fichier avec l’extension .zul dérivé du xul (XML
User Interface Language).
Un fichier zul comprend un ensemble de balises permettant de définir des boutons, des listes,
des menus, ou encore des zones d’édition, bref tous les éléments d’une véritable interface
utilisateur regroupés sous forme arborescente.
Le développement d’une application ZUL se rapproche du développement d’une application
cliente ou client-serveur traditionnelle. A chaque objet graphique sont associés des événements
(clic de souris, double clic, etc.) pour lesquels le développeur doit écrire du code.
45
Université Privé de Fès CGI Technologies et Solutions
- Le modèle comprend des données d'application et des règles métier.
- La vue signifie l'interface utilisateur. La page ZUL qui contient les composants ZK
représente cette partie. L'interaction d'un utilisateur avec des composants déclenche
l'envoi d'événements aux contrôleurs.
- Le contrôleur joue le rôle de coordinateur entre View et Model. Il reçoit des
événements de la vue pour mettre à jour le modèle
III.5.2. Langages
HTML
L’Hypertext Markup Language, est le format de données conçu pour représenter les pages web.
C’est un langage de balisage qui permet d’écrire de l’hypertexte. 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 le langage de programmation JavaScript et des feuilles
de style en cascade (CSS).
CSS
CSS (Cascading Style Sheets), forment un langage informatique qui décrit la présentation des
documents HTML et XML. Les standards définissant CSS sont publiés par le World Wide Web
Consortium (W3C). CSS est utilisé depuis les débuts des applications CCS. La feuille CSS est
la transcription de la charte graphique d'Orange.
LESS
LESS est un langage de feuille de style dynamique qui peut être compilé en feuilles de style en
cascade (CSS) et s'exécuter côté client ou côté serveur. LESS est open source. La syntaxe
indentée de LESS est un métalangage imbriqué. LESS fournit les mécanismes suivants :
variables, imbrication, mixins, opérateurs et fonctions. La principale différence entre les pré
compilateurs CSS LESS et d'autres étant que LESS permet une compilation en temps réel par
le navigateur via less.js.
Javascript
JavaScript est un langage de programmation de scripts principalement utilisé dans les pages
web interactives mais aussi côté serveur.
C'est un langage orienté objet à prototype, c'est-à-dire que les bases du langage et ses principales
interfaces sont fournies par des objets qui ne sont pas des instances de classes, mais qui sont
chacun équipés de constructeurs permettant de créer leurs propriétés, et notamment une
propriété de prototypage qui permet d'en créer des objets héritiers personnalisés. En outre, les
fonctions sont des objets de première classe.
SQL
SQL (Structured Query Language) est un langage informatique normalisé servant à exploiter
des bases de données relationnelles. La partie langage de manipulation des données de SQL
46
Université Privé de Fès CGI Technologies et Solutions
permet de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de
données relationnelles.
Outre le langage de manipulation des données, la partie langage de définition des données
permet de créer et de modifier la structure des données dans la base de données, la partie langage
de contrôle de transaction permet de commencer et de terminer des transactions, et la partie
langage de contrôle des données permet d'autoriser ou d'interdire l'accès à certaines données à
certaines personnes.
III.5.3. Serveurs
Apache HTTP Server
Apache HTTP Server, souvent appelé Apache, est un logiciel de serveur http produit par
l'Apache Software Foundation. C'est le serveur http le plus populaire du Web. Apache est utilisé
par certains applications CCS pour transmettre à l'utilisateur le contenu statique (images, pages
HTML, feuille de style CSS).
Apache Tomcat
Apache Tomcat est un conteneur libre de servlet JEE. Issu du projet Jakarta, Tomcat est
désormais un projet principal de la fondation Apache. Tomcat implémente les spécifications
des servlets et des JSP de Sun Microsystems. Il inclut des outils pour la configuration et la
gestion, mais peut également être configuré en éditant des fichiers de configuration XML.
Comme Tomcat inclut un serveur HTTP interne, il est aussi considéré comme un serveur HTTP.
III.5.4. Logiciels
Eclipse
Eclipse est un projet de la Fondation Eclipse visant à développer tout un environnement de
développement libre, extensible, universel et polyvalent.
Son objectif est de produire et fournir divers outils gravitant autour de la réalisation de logiciel,
englobant les activités de codage logiciel proprement dites mais aussi de modélisation, de
conception, de test, de reporting, etc.
Son environnement de développement notamment vise à la généricité pour lui permettre de
supporter n'importe quel langage de programmation.
MySQL Workbench
MySQL Workbench est un outil visuel unifié pour architectes, développeurs et administrateurs
de base de données. MySQL Workbench fournit la modélisation des données, le développement
47
Université Privé de Fès CGI Technologies et Solutions
SQL et des outils d'administration complets pour la configuration des serveurs, l'administration
des utilisateurs et davantage.
WinSCP
Puisque nous déployons nos applications sur des serveurs distants, nous avions besoin d’utiliser
un outil d’accès à distance.
WinSCP est un client SFTP graphique pour Windows. Il utilise SSH et est open source. Le
protocole SCP est également supporté. Le but de ce programme est de permettre la copie
sécurisée de fichiers entre nos ordinateurs locaux et les serveurs distants.
III.6. Conclusion
Cette partie nous a permis d’apprendre encore plus des différents aspects fonctionnels est
techniques, notamment les parties et les techniques qui vont être les acteurs principaux durant
le chapitre de la réalisation. Ceci nous a préparés d’une certaine manière à savoir et comprendre
comment la partie de développement va être entamée et surtout sur quel niveau va-t-elle agir.
48
Université Privé de Fès CGI Technologies et Solutions
Chapitre IV : Les tâches réalisées
IV.1. Introduction
Après avoir terminé avec l’étude fonctionnelle et techniques du projet TMA CCS, plus
précisément les CCS sur lesquelles j’ai eu l’occasion d’intervenir, ce chapitre va mettre
l’emphase sur la partie de réalisation, souligner les différentes interventions que j’ai dû effectuer
durant toute ma période de stage d’un côté purement technique.
Le principe de cet outil consiste à enregistrer la déclaration d'un bug informatique, puis, pour
les développeurs concernés, à mettre à jour l'avancement de sa résolution, jusqu'à sa clôture. Le
déclarant de l'anomalie peut s'informer à tout moment via le serveur Web de l'avancement du
traitement de son problème.
49
Université Privé de Fès CGI Technologies et Solutions
IV.3. Mettre à niveau le Framework ZK
ZK est un Framework d'interface utilisateur qui vous permet de créer des applications Web et
mobiles étonnantes sans avoir à apprendre JavaScript ou AJAX.
Cette tâche consiste à mettre à niveau le Framework ZK en passant de la version 6.5.5 [7] a une
version plus récente 9.5.0. [8]
- Prendre en charge un moyen de créer un thème personnalisé basé sur des thèmes
intégrés.
- Permet de faire glisser le bouton lorsque MouseDown sur n'importe quelle position dans
Rangeslider / Multislider.
- Soutenir une création de Bean à partir de @BindingParams.
- Radio / Checkbox fournit un nom de classe d'état pour une personnalisation plus facile
du thème.
- Supports audios pour ajouter des pistes.
- Prise en charge vidéo pour ajouter des pistes.
- Supprimer la bordure de l'en-tête div dans List / Tree box / grid.
- L'API des clients prend en charge scrollIntoView et focus à l'aide de la chaîne de
sélection.
- Remplacer les fonctions jQuery obsolètes (bind / unbind -> on / off).
- Implémenter un utilitaire d'interruption de clavier pour les composants en modal.
Parmi les bugs fixés :
- Impossible d'utiliser un tableau de classe comme liste ou modèle de grille.
- Erreur de calcul de la hauteur lors de l'utilisation de vFlex = "min" dans hlayout et
borderlayout.
- L'état sale de ListProxy n'a pas été nettoyé après l'enregistrement.
- Analyse des pourcentages négatifs dans decimalbox.
- jQuery surchargé provoque un mauvais fonctionnement des composants des faces
principales.
- Chosenbox efface et ajoute les éléments sélectionnés provoque une erreur js.
- Masquer redimensionner afficher l'en-tête de la liste reste invisible.
- La zone de recherche initialement désactivée a un style incorrect.
IV.3.2. Réalisation
Avant de commencer la correction des dysfonctionnements on a fait un tour sur les différentes
interfaces de l’application et on a lister tous les dysfonctionnements dans un fichier Excel.
50
Université Privé de Fès CGI Technologies et Solutions
Le problème hflex / vflex
Hflex contrôle la flexibilité dans la direction horizontale, tandis que vflex dans la direction
verticale.
Les composants flexibles grandissent et rétrécissent pour s'adapter à leur espace donné. Les
composants avec des valeurs de flex plus élevées seront rendus plus grands que les composants
avec des valeurs de flex plus faibles, au rapport déterminé par les deux composants.
Pour corriger ce genre d’erreur on a fait un tour sur l’ensemble des fichiers .zul de l’application
et on modifie leurs attributs :
Comme vous voyez dans cette capture au niveau de la balise window on a gardé le width et
height et au niveau de la balise hbox on a gardé vflex.
51
Université Privé de Fès CGI Technologies et Solutions
Quelques interfaces avant et après la modification
Page Login
L'écran de connexion permet à l'utilisateur de remplir son identifiant et son mot de passe pour
se connecter à MSD.
La capture ci-dessous nous montre la page authentification avant la correction de
dysfonctionnement.
52
Université Privé de Fès CGI Technologies et Solutions
Page Gérer Panorama
Le menu Panorama représente la page d’accueil. Il permet de visualiser certains widgets comme
la carte des sites, la liste des changements et aussi la liste des notifications. Les widgets sont
paramétrables (statut, type de notification …).
Pour ajouter widget, vous cliquez sur le bouton « Ajouter » en haut à droite dans l'onglet «
Panorama »
53
Université Privé de Fès CGI Technologies et Solutions
Figure 27 : Fenêtre ajouter widget avant la modification
Après avoir appliqué les modifications nécessaires tous les dysfonctionnements sont corrigé.
54
Université Privé de Fès CGI Technologies et Solutions
Après la correction des dysfonctionnement la page devient :
Pour accéder à la fenêtre de création d'un nouvel administrateur, cliquez sur le bouton Créer un
administrateur.
Cet écran permet de créer un nouvel administrateur.
Il est composé de quatre onglets :
55
Université Privé de Fès CGI Technologies et Solutions
Figure 30 : Fenêtre ajouter administrateurs avant la modification
56
Université Privé de Fès CGI Technologies et Solutions
Figure 32 : Menu configurations et demandes avant la modification
57
Université Privé de Fès CGI Technologies et Solutions
Figure 34 : Menu suivi des changements avant la modification
Après la correction des hflex / vflex et l’application de style nécessaire on a obtenu le résultat
suivant.
Notez bien que je me suis contenté de présenter quelques captures d'écrans puisque la correction
mise en place couvre la totalité de l’application.
Après la finalisation des dysfonctionnements on a passé à faire les tests d’intrusion.
58
Université Privé de Fès CGI Technologies et Solutions
Dans le contexte de la sécurité des applications Web, les tests de pénétration sont couramment
utilisés pour augmenter un pare-feu d'application Web.
ZAP (Zed Attack Proxy) c'est un outil qui détecte les tests d’intrusion.[11]
Installation de ZAP
1. Téléchargement de ZAP via google.
2. Lancement de l’installation.
3. Démarrer ZAP Aller dans Outils > Options Sélectionner « Local Proxies » et configurer
l’adresse (localhost) et choisir un port (bien le noter).
4. Dans le navigateur de votre choix (Firefox ou Chromium) récupérer une extension qui
permet de configurer plusieurs proxy (par exemple switchyOmega sur Chromium ou
FoxyProxy Standard).
Plusieurs façons de le configurer :
Ajouter nécessairement une entrée « ZAP » pour passer par le proxy ZAP :
59
Université Privé de Fès CGI Technologies et Solutions
5. Activer manuellement le proxy ZAP quand nécessaire
Vers la fin des tests du chantier ZK, chacun va générer un rapport ZAP sous forme d’HTML,
qui sera communiqué au client via la livraison.
60
Université Privé de Fès CGI Technologies et Solutions
IV.5. Création des procédures stockées
IV.5.1. Définition
- La procédure stockée est un groupe logique d'instructions SQL et PL / SQL qui
exécutent une action spécifique.[12]
- Stocké dans la base de données en tant qu'objets de base de données.
- Sont compilés uniquement au moment de leur création ou modification.
- Accepter les paramètres d'entrée et les valeurs de retour.
- Retourne la valeur de statut pour indiquer la réussite ou l'échec.
IV.5.2. Avantages
- Améliorez les performances de la base de données : Réduire les informations envoyées
sur le réseau.[15]
- Allocation de mémoire : Une seule copie de la procédure stockée est chargée en
mémoire pour être exécutée par plusieurs utilisateurs.
- Productivité : Le code redondant peut être évité.
- Intégrité : Un ensemble commun de procédures réduit les erreurs de codage commises.
IV.5.3. Problématiques
La suppression des données au niveau de l’IHM se fait physiquement par contre les données
reste dans la base donnée c’est pour ça on a créé des procédures stockées pour supprimer les
données logiquement.
IV.5.4. Solutions
Pour nettoyer les données on a pensé à créer des procédures stockées pour supprimer les
données logiquement on prend l’exemple des clients.
Pour qu’on puisse supprimer un client il faut supprimer ses données.
61
Université Privé de Fès CGI Technologies et Solutions
Cette procédure fait la suppression des données lié au client après on va supprimer la structure
liée à ses données.
Cette procédure prend en paramètre id de client comme entré et on a fait appel aux deux
procédures précédentes pour que la suppression fait sans problème on a utilisé cette technique
car dans la base donnée il y a l’option de référence No action.
62
Université Privé de Fès CGI Technologies et Solutions
Figure 43 : PS supprimer client
IV.6.1. Problématique
Actuellement, après la modification de la structure d’un client, le recalcule des permissions de
tous les administrateurs liés à ce dernier se lance en arrière-plan. En revanche, si le calcul des
permissions de l’administrateur avec lequel on est connecté n’a pas terminé, l’administrateur
n’a plus les droits sur le client modifié. Il ne s’affiche plus dans les panels clients existant dans
l’application.
63
Université Privé de Fès CGI Technologies et Solutions
IV.6.2. Solution
Autorisé l’affichage des clients sur le panneau clients lors du calcul des permissions avec :
Un arrière-plan grisé non sélectionnable.
Un icône « help » à droite. Au survol de ce dernier on affiche le message suivant :
Vos permissions sur ce client sont en cours de calcul. Vous ne pouvez pas travailler
dessus pour l'instant. Merci de patienter avant de pouvoir y avoir de nouveau accès".
Apres on va Ajouter une méthode qui permet de récupérer les droits liés à un user donner en
paramètre.
Ajout d’une méthode qui permet de faire la modification coté BD de la colonne allowed à
« false ».
64
Université Privé de Fès CGI Technologies et Solutions
Modifier l’implémentation de la méthode dessous afin de modifier la valeur du nouvel attribut
allowed à « false » pour les clients qui ont le calcul des permissions en cours.
Changement de style (arrière-plan grisé non sélectionnable...) de l’affichage des clients dont les
permissions sont en cours de calcul sur le panneau clients.
Affichage du pop-up d'erreur après la recherche et la sélection d’un client pour lequel les
permissions sont en cours de recalcule.
65
Université Privé de Fès CGI Technologies et Solutions
IV.6.3. Résultat
L’affichage des clients lors de recalcule des permissions sera :
66
Université Privé de Fès CGI Technologies et Solutions
opération. On le traduit la plupart du temps par le terme "lot" en français et par l'expression
"traitement par lots".[14]
On utilise le batch pour automatiser certaines tâches comme la gestion des comptes, ou l'arrêt
planifié des ordinateurs, en particulier dans le monde des entreprises qui possèdent un parc
informatique important. La technique du traitement par lots s'oppose alors aux programmes
interactifs ou transactionnels. On peut employer le terme pour le différencier d'un traitement en
temps réel.
IV.7.2. Problématique
Un grand nombre de vieux changes restent dans des états non-clos. Ça pollue l'affichage et ça
peut générer des problèmes de charges. Il faudrait donc pouvoir clôturer des vieux changes.
IV.7.3. Solution
Actuellement la suppression des changes se fait à l’aide d’un script de purge de data, les critères
valables pour lancer un purge est le délai (Nombre de jours avant la suppression physique des
données).
La nouvelle demande vise à améliorer les critères de sélection des changes à supprimer, en
ajoutant les deux critères délai et état. Pour cela on créer les classes suivantes :
SynchroChangeLauncher, SynchroChangeContext, SynchroChangeTask,
SynchroChangeProcess et CloseOlderChangesTask pour :
Après on fait la Configuration de l’envoie de mail automatique en commençant par l’ajout d’un
nouveau paramètre qui contiendra la liste des personnes qui recevront le mail accompagné des
informations :
- Nombre total de changes clôturés.
- Liste des références des changes clôturés.
- Statut final du traitement (OK, KO).
67
Université Privé de Fès CGI Technologies et Solutions
IV.8. Conclusion
Dans ce chapitre nous avons pu voir les différentes taches réalisées aux profils des applications
CCS de notre client, les problématiques affrontés ainsi que les solutions adoptées afin de donner
un travail de qualité qui répond aux exigences d’OBS.
68
Université Privé de Fès CGI Technologies et Solutions
Conclusion générale
La Tierce maintenance Applicative aide à externaliser la maintenance de tout ou partie des
applications d'une entreprise auprès d'un prestataire. Dans le cadre de notre stage, celui-ci se
voit transférer la responsabilité applicative des portails CCS (Customer Care Services) du client
OBS (Orange Business Services). Dans ce cadre de cette prestation, l’entreprise d’accueil CGI
a la charge également d'ajuster les applications aux besoins de l'OBS avec qui il est sous contrat.
Le projet TMA CCS consiste à réaliser, évoluer et maintenir plusieurs applications d’OBS en
suivant plusieurs démarches et méthodologies de travail telle que Cycle en V. Le respect de ces
démarches aide l’équipe à améliorer sa productivité vis-à-vis du travail demandé.
Le résultat de ce stage est donc des applications maintenues et évoluées dans le respect de
plusieurs règles de bonnes pratiques de programmation, qui permettent de les optimiser Surtout
en ce qui touche le volet de la sécurité. Pour compléter ces bonnes pratiques et autres démarches
adoptées, l’accent a été mis sur le choix de plusieurs outils connus et faciles d’apprentissage
pour permettre une maintenance plus efficace. En effet la maintenance d’une application
représentant la plus grande partie de son temps de vie, et les gains pour une application de cette
taille n’étant visibles que sur le long terme. Il est important de permettre à l’application d’être
maintenue facilement et rapidement.
Les évolutions développées sont ajoutées dans le code source de l’application MSD, elles sont
actuellement fonctionnelles et prêtes à être déployées, mais n’ont pas encore été validées par le
client car il doit passer par sa phase de test avant de confirmer le déploiement sur ses serveurs
de production.
De plus, il est nécessaire de rappeler qu’à la date de rendu de ce rapport, le stage n’est pas
encore terminé, puisqu’il se termine le 31 Juillet 2021. Ainsi donc, pendant la période qui reste,
je vais basculer vers un autre projet sur lequel je suivrai une formation obligatoire de 8 jours.
Cette expérience m'a permis d’apprendre profondément des nouvelles techniques avec des
nouveaux outils. De plus, c’était une opportunité pour améliorer mes compétences et mes
connaissances sur des langages de programmation.
En outre, ce stage était une occasion de mettre en pratique mes connaissances acquises et mon
savoir-faire, de se rapprocher des difficultés du marché de travail, et vivre une expérience
professionnelle valorisante et encourageante pour moi dans l’avenir
69
Université Privé de Fès CGI Technologies et Solutions
Bibliographie
[1] https://www.cgi.com/fr/profil-entreprise/cgi-histoire
[2] https://www.zkoss.org/documentation
[3] https://www.cgi.com/france/fr-fr/secteur-public
[4] https://www.geek-directeur-technique.com/2009/02/04/le-cycle-en-v
[5] https://www.journaldunet.fr/web-tech/dictionnaire-du-webmastering/1445246-spring-
en-informatique-definition-concrete-et-caracteristiques/
[6] https://whatis.techtarget.com/fr/definition/SOAP-Simple-Object-Access-Protocol
[7] https://www.zkoss.org/product/zk/releasenote/6.5.5
[8] https://www.zkoss.org/product/zk/releasenote/9.5.0
[9] https://www.vaadata.com/blog/fr/test-dintrusion-approche-methodologie-types-de-
tests-et-prix/
[10] https://www.journaldunet.fr/web-tech/guide-de-l-entreprise-digitale/1443820-
jenkins-logiciel-star-de-l-integration-continue-open-source-gratuit/
[11] https://www.zaproxy.org/getting-started/
[12] https://sql.sh/cours/procedure-stockee
[13] https://fr.wikipedia.org/wiki/Tierce_maintenance_applicative
[14] https://www.journaldunet.fr/web-tech/dictionnaire-du-webmastering/1203563-
batch-definition-
traduction/#:~:text=Le%20terme%20batch%20d%C3%A9signe%20en,expression%20
%22traitement%20par%20lots%22
[15] https://fr.slideshare.net/amritkaur1023611/5-stored-procedure-and-functions
[16] https://wiki.en.itprocessmaps.com/index.php/Checklist_Request_for_Change_
RFC
70
Université Privé de Fès CGI Technologies et Solutions