WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et déploiement d'une application sécurisée pour la gestion du personnel des forces de défense


par Hervé Michel TCHEUTOU
Université de Douala - Master 2 professionnel MIAGE (Méthodes Informatiques Appliquées à la Gestion d'Entreprises) 2018
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

CONCLUSION

Dans ce chapitre, nous avons mis en exergue l'état de l'art en nous plaçant dans le contexte afin de soulever la problématique qui ne pourra être mieux cernée que par l'étude de l'existant traduisant d'un côté, le vide logiciel et de l'autre côté, des logiciels de gestion du personnel civil. Malgré l'efficacité de ces logiciels, la majorité repose sur le Cloud et l'Armée ne saurait confier ses informations secrètes à une tierce entreprise. De plus, la gestion du personnel militaire repose sur un paradigme métier propre aux forces de défense.

P a g e 17 | 74

Chapitre 3

METHODOLOGIES ET CHOIX DES

SOLUTIONS

INTRODUCTION

Une application, bien que conçue pour répondre efficacement aux besoins fonctionnels des entreprises, doit répondre à un éventail d'exigences aussi bien techniques, infrastructurelles que sécuritaires en fonction de son environnement de production. Cela dit, quelles sont les bonnes pratiques pour concilier les fonctionnalités, la sécurité et l'ergonomie de l'application ? Comment optimiser le niveau de sécurité des applications web et maitriser les risques y afférents ? Comment évaluer la résistance de notre application face à la montée en charge des attaques cybernétiques ?

I. BONNES PRATIQUES DE DEVELOPPEMENT

Une application doit répondre à des exigences techniques à l'instar de la portabilité, la robustesse, la maintenance, l'efficacité et la sécurité. Le respect des bonnes pratiques de programmation repose sur l'inversion de contrôle. Dans Cette approche efficiente, le développeur s'occupe de la partie métier et la partie technique est à la charge des Framework afin de séparer la logique métier de la logique traitement.

P a g e 18 | 74

1. PERSISTANCE JPA ET IMPLEMENTATION DES FRAMEWORK

Grace aux spécifications du standard JPA, les applications sont développées indépendamment des Framework ; autrement dit, on peut intégrer dans une application le Framework HIBERNATE, OPENJPA, TOPLINK ou ECLIPSELINK sans changement du code source selon le choix de l'entreprise ou du développeur. La persistance de données consiste à la sauvegarde continue des données dans une base de données via une application de manière à ne pas disparaitre à l'arrêt de l'application.

Figure 4: Implémentation du Standard JPA

2. LE MAPPING OBJET RELATIONNEL

HIBERNATE, TOPLINK ou ECLIPSELINK sont des Framework de mapping objet relationnel (ORM) chargés de faire la correspondance entre une base de données relationnelle et une application orientée Objet. Ce sont des implémentations du standard JPA. Ils assurent la persistance des données.

P a g e 19 | 74

3. DÉMARCHE MÉTHODIQUE DE L'INGÉNIERIE DU LOGICIEL

Le succès des projets informatiques demeure critique et est étroitement lié à l'art du développement logiciel. La proportion d'échecs des projets informatiques alimente

une mise en cause permanente de la méthodologie utilisée dans l'atelier de
développement logiciel.

a) Approche traditionnelle

Avec le retour d'expérience plutôt macabre des développeurs, le constat des méthodes antérieures dites en cascade et en V a été le suivant :

? Le besoin ne peut pas être complètement connu tant que les utilisateurs ne l'ont pas utilisé

? L'incertitude inévitable

Figure 5: Méthode en V

P a g e 20 | 74

Dans le souci compétitif de rapidité de développement, de faible coût de développement et d'application de grande qualité, la méthode du RAD a vu le jour en 1991 pour s'opposer au principe successif de négociation, analyse, développement et test.

b) La méthodologie du RAD

Un projet RAD se découpe en 5 phases :

1- L'initialisation (6% de l'effort projet), correspond à la préparation de l'organisation et à la communication

2-Le cadrage (9% de l'effort projet) définit les besoins.

3- Le Design (23% de l'effort projet), correspond à la conception et à la modélisation

4- La Construction (50% de l'effort projet) est la phase de l'implémentation ou codage

5- La finalisation (12% de l'effort projet) est la phase de déploiement.

Malgré les prouesses du RAD, l'incertitude demeurait toujours sur la réussite des projets de développement à cause de l'incompréhension des besoins du client et la résistance au changement.

c) La méthode Agile

Fort de l'incapacité du client de définir ses besoins de manière exhaustive dès le début du projet, l'instabilité de l'environnement technologique et la résistance au changement, les méthodes de développement dites agiles sont des corrections à cette tare. La méthode agile consiste à réduire de manière considérable la durée du cycle de vie en développant une version minimale puis en intégrant les fonctionnalités par un processus itératif basé sur l'écoute client et des tests tout au long du cycle de développement. Le terme agile fait ainsi référence à la capacité d'adaptation au changement de contexte et aux modifications de spécifications intervenant pendant le

P a g e 21 | 74

processus de développement. D'après le manifeste des méthodes agiles [16], les principes suivants sont énoncés :

> Les individus et les interactions plutôt que des procédures et outils

> Un logiciel qui fonctionne plutôt qu'une documentation abondante

> La collaboration avec le client plutôt que la négociation du contrat

> L'accueil du changement plutôt que le respect du plan

Il existe plusieurs méthodes agiles parmi lesquelles :

> SCRUM

> XP (Extreme Programming)

> FDD (Feature Driven Development)

> KANBAN

> DSDM (Dynamic Software Development Method)

d) Comparaison des méthodes agiles

 

SCRUM

XP

KANBAN

FDD

Processus de
developpement

Iterative et
incrementale

Iterative et
incrementale

incrementale

iterative

Temps
d'iteration

2 à 4
semaines

1 à 6

semaines

En flux tendu

2 jours à 2
semaines

Equipe

10 personnes
maximun

20 personnes
maximun

3 à 4 personnes
par groupe

Plusieurs
personnes

P a g e 22 | 74

Taille du projet

Mêlée
quotidienne

Mêlée
quotidienne

Pas de procédure
imposée

Documentation,
toute l equipe

Participation du
client

Directe et
continue

Directe et
continue

Directe et continue

feedbacks

Tableau 2: Comparaison des méthodes agiles[17]

e) Cas d'une méthode agile : Scrum

Scrum, empruntée du rugby signifie « mêlée » est une méthode agile qui implique les utilisateurs durant tout le cycle du développement et les considérés comme des membres à part entière du projet. Une mêlée est une réunion quotidienne des membres d'un projet pour faire le point sur son avancement. Sa particularité réside dans le développement itératif et incrémental afin de livrer une application en adéquation avec le métier du client.

Figure 6:Processus Sprint

P a g e 23 | 74

4. ENVIRONNEMENT DE DÉVELOPPEMENT

Dans la plupart des cas, une application nécessite un setup qui doit être installé dans tous les postes de travail ; quant aux applications intranet, elles nécessitent uniquement un navigateur internet sur tous les postes de travail et sont accessibles en permanence. Sur le marché du développement des applications web, plusieurs technologies existent mais trois d'entre elles se font la part belle, ce sont : PHP et JAVA EE et ASP.Net

a) Le JAVA EE

Java est un langage de programmation orienté objet utilisé pour créer des applications desktop, smart phones et embarquées dans des cartes à puce. Ces applications sont portables, c'est-à-dire, on peut créer une application java dans une plateforme donnée et on peut l'exécuter sur n'importe quelle autre plateforme. Le Java est beaucoup oriente entreprise et très strict et est axé sur la gestion des transactions et la sécurité. Les plateformes java sont complexes et les hebergeurs qui les implémentent ne sont pas assez nombreux. Les applications java nécessitent beaucoup de rigueur pour le développeur. Java est beaucoup utilisé pour les applications de back office robuste autour des transactions.

b) Le PHP

PHP est un langage de script côté serveur le plus utilisé et le plus facile à mettre en oeuvre. Sa facilité d'utilisation permet au développeur de gagner en temps et simplicité de réalisation. Les plateformes PHP sont simples et permet une multiplicité d'hébergeur capable de les implémenter. PHP est dédié pour du front office nécessitant une vélocité de réalisation.

P a g e 24 | 74

5. ARCHITECTURE MVC

Figure 7: Architecture MVC [14J

6. Mode de fonctionnement du modèle MVC

> Le client envoie la requête au contrôleur.

> Le contrôleur instancie le modèle.

> Le contrôleur stocke les données de la requête dans le modèle puis vérifie la

validité des données.

> Le contrôleur fait appel à la couche métier pour faire le traitement

> Le contrôleur stocke les résultats du traitement dans le modèle

> Le contrôleur fait un forward vers la vue

> La vue récupère les résultats du modèle

> Le contrôleur affiche au client le résultat de la vue

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Là où il n'y a pas d'espoir, nous devons l'inventer"   Albert Camus