Vous êtes sur la page 1sur 52

La Réingénierie Des Logiciels

vers de nouvelles technologies


(Software Reengineering towards new technologies)

Présenté par : Seridi Ali

29 Novembre 2021

Université 8 Mai 1945– Guelma–


2
Plan

Introduction
1 Introduction (Ingénierie et Réingénierie)

2 SOA et BPM

3 Les approches de modernisations vers une SOA

4 Solution proposée pour la réingénierie vers SOA

5 Cas d’étude
Conclusion
Introduction

3 Historique

• Absence d’approche et Crise - 1968 sous le parrainage de


méthodique de développement. du l’OTAN, un groupe de
• Les logiciels de plus en plus logiciel
chercheur et de praticiens crée
complexe
le génie logiciel (software
• Délais et budgets non respectés
(compilateur PL1 abandonné , IBM
engineering)
0S360 livré très en retard et plein
de bogues, projet Multics) - Prolifération des méthodes
• Besoins non complètement satisfaits d’analyse, des techniques
• Produit difficile à maintenir et à de conception et des
évoluer procédures de
maintenances
Introduction
Le génie logiciel
4

Le génie logiciel est défini comme un domaine qui couvre:


- les méthodes (étapes enchainées et logiques couvrant chacune une ou
plusieurs activités)
- Les techniques (de conception et les procédés ou façons de réaliser
chaque activité)
- Les langages de programmation
- Les outils pour automatiser chaque activité.
Qui permettent le développement (production) et la maintenance du
logiciel:

- De bonne qualité
- Dans les meilleurs délai
- A moindre coût.
Introduction

5 Constations sur la vie des logiciels


Malgré que le logiciel peut être fiable

L’évolution des logiciels est inévitable si on veut que le logiciel


reste utile (utilisable)
• De nouveaux besoins qui émergent

• L’environnement commercial qui change

• Des erreurs découvertes et doivent être corrigées

• La performance ou la fiabilité du système peuvent être améliorées

• De nouvelles technologies sont utilisées (nouvelles normes, de nouveaux

OS, nouvelles versions du logiciel, …).


Introduction

6 ● La maintenance du logiciel est coûteuse

● La majorité du budget de logiciels dans les grandes entreprises est consacrée à


l'adaptation des logiciels existants plutôt que de développer un nouveau logiciel

Coût développement

Coût maintenance

10/05/2012
Introduction

7 Qui est concerné par la modernisation

Systèmes Patrimoniaux (Legacy System)

Systèmes
Résistent à la
SP maintenance
= Anciens et à
opérationnels
l’évolution

“C’est n’importe quelle SI qui résiste Significativement aux


modifications et à l’évolution” [Brodie and Stonebraker]

[Sneed ] considère que n’importe quel organisme qui a utilisé une


technologie d’information pour plus de cinq ans est concerné par un
problème de logiciel patrimonial.
Introduction

8 Le dilemme des systèmes patrimoniaux


 Continuer à utiliser le système accroit les couts de maintenance
 Remplacer le système coûte cher, avec le risque d’être moins
efficace que l’ancien
 on cherche Généralement à allonger la durée de vie du logiciel

 4 options possibles
 Abandonner le système complètement
 Remplacer le système par un nouveau système
 Continuer a maintenir le système
 Transformer le système pour faciliter la maintenance et adopter les

nouvelles technologies (Réingénierie logicielle)


Introduction

9 Réingénierie logicielle
 ● Définition
 – l'examen et la modification d'un système pour le
reconstituer sous une nouvelle forme et l’implémenter
ultérieurement
(Chikofsky)[ElliotChikofsky and JamesCross, Reverse Engineering and Design
Recovery: A Taxonomy, IEEE Software 7(1):13-17, 1990.]

 la définition comporte trois étapes clés :


 1) L’analyse et l’examen du système afin de récupérer les
informations pertinentes
 2) La modification du système pour répondre aux nouvelles
exigences.
 3) La mise en œuvre de la nouvelle implémentation.

 –Elle est appliquée pour l’évolution et pour la maintenance


des logiciels
Introduction

10 Le modèle général de la réingénierie logicielle


Introduction

11 Le modèle général de la réingénierie logicielle

L'ingénierie inverse
« C’est le processus d'analyse d'un système sujet à
deux objectifs : (reverse engeneering)
 (1) identifier les composants du système et leurs interrelations ; et,
 (2) créer des représentations du système sous une autre forme ou à
un niveau d'abstraction plus élevé."

L’ingénierie de reconstruction
Cette phase débute par l’étape de restructuration logicielle qui
correspond à une restructuration du code et des données, c’est-à-dire,
une constitution du logiciel sous une
nouvelle forme et qui peut comprendre le développement de nouvelles
fonctionnalités
Introduction

12 Questions à répondre Pour la Réingénierie

 L’objectif de la Réingénierie Est de Moderniser le


système pour:
- faciliter la maintenance
- et augmenter la durée de sa vie.

 Quelle nouvelle architectures choisir?


 Architectures plus agiles,
 plus flexibles
 et moins couteuses en maintenance,

 Une méthode Agile recommande de se fixer des objectifs à court terme. Le projet est donc divisé
en plusieurs sous-projets. Une fois l'objectif atteint, on passe au suivant jusqu'à l'accomplissement
de l'objectif final. Cette approche est plus flexible. Puisqu'il est impossible de tout prévoir et de
tout anticiper, elle laisse la place aux imprévus et aux changements.
Introduction

13 Réingénierie vers une SOA

- Pratique
- Automatique
- Adaptable
- Conformes aux exigence de la SOA

13
14
Plan

2 SOA
SOA

15 SOA
SOA est apparu en 1996 dans une note de recherche du Gartner Group.

« L’architecture orientée service est un style architectural basé sur le


principe de séparation de l’activité métier en une série de services.

Ces services peuvent être assemblés et liés entre eux selon le principe
de couplage lâche pour exécuter l’application désirée. »

Gartner – Septembre 2005

Gartner, Inc., fondée en1979, Entreprise américaine de conseil et de recherche dans le domaine de la technologie
SOA

SOA et les autres paradigmes

objets
Langages machine

Langages *
procéduraux **
Assembleur

services
composants services

01011
10100
11000
01011

 Niveaux d’abstraction grandissant


16
Objets et encapsulation
 Granularité encore trop fine
 Mal adaptée à la programmation à grande échelle

 Couplage fort
 Rend difficile la réutilisation
 Accroît la complexité des Systèmes OO

- 17 -
Encore plus de structuration avec les
composants logiciels
Analogie avec les composants
électroniques, legos, puzzles

- 18 -
SOA

SOA & Service


Une application SOA est un ensemble de services qui interagissent
les uns avec les autres par l’envoie des messages.

Le service est l'unité atomique de la SOA.


Un service est une fonction qui est bien
défini, autonome, et ne dépend pas du
Service contexte ou de l'état des autres services.

Un service métier est la représentation d’une


activité métier élémentaire ou complexe, il
Service fournit des capacités commerciales par le biais
métier de regroupements logiques d'opérations. Ces
opérations seront implémentées par un ou
plusieurs services informatiques.
19
SOA

20 4 propriétés du service à retenir


 Un Service est Autonome  Un Service expose un
sans état Contrat
Conditions Générales de Vente
Règlement Intérieur
in Vos droits/Vos devoirs

out

 Un services est
 Les services communiquent
interopérable
par messages
01011
10100
11000
01011

L’objectif final c’est favoriser la réutilisabilité


ConceptsSOA
et Définition

21 Propriétés des services

- Codé dans n'importe quelle langage


- Fonctionne sur n'importe quelle plate-forme (matériel et logiciel).
- Fournit un ensemble d'opérations dont les interfaces sont publiées ;
- Autonome (dispose de toutes les informations nécessaires à son
exécution : pas de notion d'état) ;
- Doit suivre un ensemble de contrats (règles de fonctionnement).
- Large granularité: encapsulent plusieurs fonctions et fonctionnent sur un
large éventail de données.
- Couplage faible: c'est-à-dire la réduction des dépendances.
ConceptsSOA
et Définition

22

Un service web est une application accessible à partir du web.

Service
SOA
Web

C’est un ensembe C’est une


des concepts: technologie:
Une SOA peut se On peut utiliser les
mettre en œuvre Services sans faire
sans Web Services. de SOA.

WS constituent la meilleure solution standardisée disponible


22
Les Acteurs de la SOA
23
• 3 acteurs
• Annuaire de service, Fournisseurs de services, Demandeurs de
services

Service
Registry
lookup

register

Service invoke Service


Requester Provider
Service
Provider
Standards de l’architecture
Les standards sont un élément clé d’une SOA, ils assurent
l’interopérabilité

SOAP WSDL UDDI BPEL


W3C W3C Microsoft, IBM, HP Oasis
Simple Object Web Services Universal Description Business Process
Access Protocol Description Language Discovery and Integration Execution Language

Transporte Décrit le contrat Spec pour Décrit les


Repository/Registry processus métier

Les trois piliers des Services Web

- 24 -
ConceptsSOA
et Définition

25 Avantage du passage vers une SOA

Améliorer l’agilité et la flexibilité


A

Réduire en temps de développement B

Faciliter la maintenabilité C

intégration standardisée et support de clients hétérogènes D

Construire les services une seule fois et les utiliser fréquemment E

25
SOA

26 Exemple d’Application à base de SOA

Meteo ……..
Air Algerie
Meteo R- Avion Alitalia
R-Meteo

Autentification

R-Hotel
Agence

R-Bank
……etc
R-Assurance Bank- CPA
Hotel
Hotel Bank-BNA

Assurance
Assurance

Agence de voyage
27
Plan

3 Les approches de modernisations vers une SOA


28 Les approches de modernisations vers une SOA

Top Down
des services réutilisables de
point de vue métier

Outside In
(Meet In The Middle)

des services à partir des


applications existantes pour
supporter les services métiers
Bottom Up
29 Les approches de modernisations vers une SOA

Remplacement
1
Redéveloppement

2
Migration

3
30 Les approches de modernisations vers une SOA

Remplacement
1
• retirer complètement l’application
• remplacer carrément par une nouvelle récupérée sur
étagère.

• Cela est faisable lorsque les fonctionnalités et les règles


métiers sont bien compréhensibles et le SP est obsolète ou
difficilement maintenable.
31 Les approches de modernisations vers une SOA

Redéveloppement
2
• Application de l’approche de réingénierie et de retro-ingénierie afin
d’ajouter des fonctionnalités orientées service aux systèmes patrimoniaux.
• inclue des activités telles que la retro-ingénierie, la restructuration, la re-
conception, et la ré-implémentation.

• trois principaux enjeux à prendre en charge: l’identification des services,


le packaging des services et le déploiement des services.
32 Les approches de modernisations vers une SOA
Wrapping
3• fournit une nouvelle interface orientée service aux composants du SP existant,
les rendant facilement accessible par d’autres composants logiciels.

• Technique de modernisation à boîte-noire , se concentre sur l'interface de


l'ancien système tout en cachant la complexité de son fonctionnement interne.

• Utilisée lorsque le code du LS est:


 trop coûteux pour le réécrire
 Relativement petit, et peut être réutilisé
 lorsqu’une solution rapide et économique est nécessaire.
 De valeur commerciale élevée et le code étant de bonne qualité.

• Pb: ne change pas les caractéristiques fondamentales des applications


existantes et ne va pas résoudre les problèmes maintenance et de mise à
niveau.
33
Plan

4 Solution proposée pour la


réingénierie vers SOA
Introduction

34 Réingénierie vers une SOA

 Comment procéder ?
Répondre au questions:
 Moderniser tout ou une partie du système?
 quelle granularité choisir pour les services ?
 Laquelle des approches choisir pour migrer vers une
SOA ?
 Comment identifier les services ?
 Comment définir des critères d’identification ?
 Quel est le degré d’automatisation du processus
d’identification ?
35 Approche Top-Down
Point de vue
Entreprise
Diagramme BPMN
Systèmes existant

Comment ?

Service
Service
Les services candidats Service
Service
Service
SOA et Définition
Concepts BMP

36 BPM et SOA ?
L’approche processus et la SOA visent le même objectif qui est la
representation du point de vue de l’entreprise que se soit à travers des
processus métiers ou des service IT
BPM

Business Process Management approche consistant à modéliser


informatiquement les processus métiers de l'entreprise

L’un des objectif de BPM est de la standardisation de la représentation des


processus
BPMN
Business Process Model and Notation est une norme pour la
modélisation de processus métier
37 BPM et SOA ?

Processus Métier

est un enchainement d'activités exécutées par un ou plusieurs acteurs. Chaque


acteur possède un rôle et participe à la satisfaction d'un objectif

La modélisation des processus concerne aussi bien les processus


automatisables ainsi que ceux non automatisable (ex : processus
organisationnels), par contre la conception de services IT,
concerne uniquement les services automatisables
SOA et Définition
Concepts BMP

38
39 Critère de la solution
 Une solution réaliste et réalisable
 respecte l’orientation service
 Une solution flexible et adaptable dynamiquement
 Automatique, en minimisant au maximum les interventions manuelles

 En entrée : c’est l’ensemble des fonctionnalités implémentées par les systèmes


existants modélisées en BPMN.
 Les résultats : ce sont des services candidats identifiés à partir des diagrammes
BPMN englobant les fonctionnalités en entrée et proposés pour être mis en
œuvre.

 Une évaluation des services candidats identifiés est faite suivant deux façons
(manuelle par les experts/ automatique par les métriques)
Solution proposée

40 Rappel des Objectifs


 Automatiser la phase d’identification des services à partir des systèmes et applications
existantes.
 L’approche choisie :

 Descendante (Top-down), Processus métier BPMN- Services

 En suivant un processus d’intégration incrémental.


Solution proposée

41 Modélisation des processus métiers


Analyse des Systèmes Menus et états de
Documentation Existants sortie

Extraction des
fonctionnalités forte cohésion
Couplage faible
Ajout de Autonomie
fonctionnalités
complémentaires réutilisabilité

raffinement des regroupement des


processus fonctionnalités Diagrammes BPMN
Des processus Métiers

MAJ des modélisation


fonctionnalités des processus

Modélisation
42
Plan

5 le cas d’étude
Cas d’étude

43 Etude de cas sur les systèmes e-learning


E-learning & LMS
E-E-learning : l'utilisation de moyens technologiques (Internet/Intranet/Extranet)
pour permettre aux gens d'apprendre à tout moment et en tout lieu.

Un système de gestion de l'apprentissage (LMS) : est une application


logicielle ou une technologie basée sur le Web utilisée pour planifier, mettre en
œuvre et évaluer un processus d'apprentissage spécifique..

- Avantage
- Apprendre à tout moment et en tout (flexibilité)
- Rentabilité et gain de temps : Réduire les coûts et le temps de déplacement,
supprimer les documents imprimés, économiser de l'argent et augmenter la
productivité du lieu de travail. Etc.
- C'est discret : Tout le monde n'est pas à l'aise pour apprendre dans un grand groupe.
Cas d’étude

44 Objectif
La réingénierie logicielle: La réingénierie logicielle est un
processus qui a pour objectif la transformation et
l’amélioration d’un logiciel à partir du modèle existant.

service service

Plateforme
E-learning Réingénierie Plateforme
classique E-learning basée SOA

service service

monolithique SOA

décomposer l’applications en un ensemble de modules indépendants,


distribués et réutilisables, appelés services.
Cas d’étude

45 Etapes d’application de la solutions

Comment procéder
• Analyser le LMS existant
• Identifier les activités et fonctionnalités indépendantes qui peuvent être transformées en services.
• Modélisation des fonctionnalités retenues en BPMN
• Identification des service à travers le Framework,
• Évaluation des services candidats
• Développement des service retenus
• Intégrer les fonctionnalité de façon progressive sous forme de SW
• Rendre les services accessibles partageables avec d'autres systèmes

Acteurs & activités d’un LMS


tuteur Gestion des
Apprenant
cours
évaluation
Gestion du
profil
d’apprenant
Outils de
Communication
inscription
LMS

collaboration
……etc
tutorat
administrateur Enseignant
Cas d’étude

46 Analyser le LMS existant

Fonctionnalités Analyze LMS

• Fonctionnalité de test de niveau initial Profil


Apprenant
• Fonctionnalités gestion des cours externe
Module Etc….
• Fonctionnalités d’ aide au tutorat administrateur

• Fonctionnalité gestion de la bibliothèque


• Fonctionnalités relatives à la collaboration Inscription /
authentication
• Fonctionnalités de regroupement des Regroup
apprenants ement
LMS
Cours externes
Cours
Tutorat

Test N
Collaboration

services
Cas d’étude

47 Processus métier Aide au tutorat

S2

S3

S4
S6

S5
S1
Cas d’étude

48 Le SW Aide Au tutorat

10/05/2012
Cas d’étude

49 Le SW Collaboration
Cas d’étude

50 Elearning à base de SOA


Conclusion
51

La réingénierie est une bonne solution pour améliorer les systèmes


existant et faciliter leur maintenance.

Le choix de la nouvelle architecture est très important, elle doit être


flexible, agile et doit minimiser les coûts de maintenance.

l’automatisation du processus de réingénierie faciliterai la


modernisation des logiciels existants.

L’architecture orientée service est un bon candidat pour la réingénierie


surtout pour les applications web.

Le cas d’étude sur les systèmes e-learning, a démontré la faisabilité de


la réingénierie sur un cas concret.
52

Vous aimerez peut-être aussi