Transcript
Page 1: Migration VB6 > .Net

Evolution d’architecture

Présentation du 26/03/07 au Microsoft Technology Center, Paris

Page 2: Migration VB6 > .Net

Sodifrance

Evolution d’architecture

Chaîne de modernisation VB vers .NET

Plan

Page 3: Migration VB6 > .Net

Carte d’identité

Chiffres clés SSII créée en 1986

600 collaborateurs

43,2 M€ de CA en 2005

12 implantations : France et Belgique

Cotée Second Marché d’Euronext

Société à Conseil de surveillance et Directoire

Chiffres clés SSII créée en 1986

600 collaborateurs

43,2 M€ de CA en 2005

12 implantations : France et Belgique

Cotée Second Marché d’Euronext

Société à Conseil de surveillance et Directoire

AgenceCentre de Services ou d’infogéranceR&D

Banque; 15,6%Industrie; 6,9%

Commerce et Distribution; 9,6%

Télécoms et Autres Secteur Tertiaire; 15,2%

Administration et Services Publics; 6,1%

Assurance; 46,6%

Une clientèle de grands comptes

Des secteurs d’activités diversifiés

Les 12 premiers clients • MMA• CNP• CREDIT MUTUEL• MAIF• AXA BELGIQUE• MAAF • MEDERIC• CREDIT AGRICOLE• ING SUISSE ET

BELGIQUE• BERGERAT MONNOYEUR• LA POSTE• BANQUE POPULAIRE

Un positionnement affirmé dans le secteur Banque/Assurance

Des clients grands comptes

Une forte fidélisation de nos clients

Stratégie Expertise en développement et

modernisation des systèmes d’information

Développement piloté par les offres à forte valeur ajoutée technologique

Stratégie Expertise en développement et

modernisation des systèmes d’information

Développement piloté par les offres à forte valeur ajoutée technologique

Page 4: Migration VB6 > .Net

Les offres

Système d’information

Système d’information

Modernisation de patrimoines applicatifs•Rétro-documentation

• Transformation en masse• Migration

• Évolution J2EE et .Net • Maintenance / TMA

Edition de logiciel

• MIA Studio• ESSOR

Infrastructure IT• Architecture et Intégration de systèmes

• Sécurité• Infogérance

Études & Développement• Conseil génie logiciel• Développement d’applications• Industrialisation • Projets NT/Approche MDA• Solutions métier

Page 5: Migration VB6 > .Net

Une gestion complète du cycle de vie du logiciel

Comprendre

Comprendre

MesurerMesurer

Application ModernizationApplication Modernization

(Re) développer(Re) développer

Application Portfolio Management

Application Portfolio Management

Migrer

-Langage-

Plateforme

Migrer

-Langage-

Plateforme

Intégrer

- SOA

Intégrer

- SOA

Transformer

-Refactoring

Transformer

-Refactoring

Application DevelopmentApplication Development

ArbitrerArbitrer

Application MaintenanceApplication Maintenance

Migrer

-Langage-

Plateforme

Migrer

-Langage-

Plateforme

CorrigerCorriger Transformer

-Refactoring

Transformer

-Refactoring

Agir

Page 6: Migration VB6 > .Net

Sodifrance

Evolution d’architecture

Chaîne de modernisation VB vers .NET

Plan

Page 7: Migration VB6 > .Net

Problématique de l'évolution d’architecture

Difficultés d'ordre métier/fonctionnel :

-Difficultés à formaliser le besoin

-Evolutions des souhaits des utilisateurs

Difficultés d'ordre technique :

-Obsolescence des technologies

-Complexité des règles de production de code

-Hétérogénéité des technologies utilisées

-Instabilité du socle technique

Pression économique :

-Maitrise coûts/délais/risques

Problème des DSIComment moderniser le patrimoine applicatif ?

Comment suivre les évolutions technologiques ?

Difficultés d'ordre exponentiel par rapport à volume et complexité...

technologietechnologie

métiermétier

Page 8: Migration VB6 > .Net

Quelles solutions ?

Stratégie de ré-ingénierie Avantages Inconvénients

Refonte manuelle :

Nouveaux développements

• Processus connu • Plus cher et plus long

• Sollicitation forte des sachants

Migration outillée :

Transformation automatisée de l’architecture et du code

• Plus économique (-30%)

• Plus rapide (-50%)

• Iso-fonctionnel, iso-ergonomie

• Maintenance MDA possible

• Complètement iso-fonctionnel

Refonte outillée :

Migration outillée + évolution via les modèles

• Combine migration et rénovation

• Maintenance MDA possible

• Moins rapide que Migration

Page 9: Migration VB6 > .Net

Notre solution de migration/refonte outillée

Processus éprouvé

• Résultat de notre capitalisation sur nos projets

Processus outillé

• Rétro-conception, transformation, génération

• Pas de phase de spécification fonctionnelle (le code en fait office)

• Gain important en délai et en charge par rapport à une refonte manuelle

Processus non intrusif

• N’impose pas une cible particulière

• S'intégre dans tout cycle de développement

Processus adaptable

• Migration partielle : par exemple, migration des couches front-office vers le web et conservation des services back-office sur le mainframe

• Réécriture partielle : composants graphiques, d’architecture ou liés aux couches système

Page 10: Migration VB6 > .Net

Notre philosophie :

Adopter une démarche MDA en passant par des modèles

Migration d'une architecture client serveur vers une architecture n-tier

Deux difficultés

Changement d’architecture : passage client-serveur à une architecture 3-tiers

Changement de paradigme de programmation : passage à l ’objet

Notre réponse

Remonter au niveau des modèles : ne pas se limiter à de la transformation de code, mais abstraire la problématique en travaillant au niveau des modèles

Page 11: Migration VB6 > .Net

Intérêts du passage par les modèles

Modèle

Code applicatif

RefactoringChangement desocle technique

Rétro-documentation

CreditCard

cardType : Stringnumber : StringexpiryMonth : StringexpiryYear : String

<<BusinessObject>>

Account

login : Stringpassword : StringfirstName : StringlastName : StringstreetAddress : StringpostalCode : Stringcity : StringstateOrProvince : Stringcountry : StringtelephoneNumber : StringfavoriteLanguage : StringeMail : StringiWantPetTips : booleaniWantMyList : boolean

<<BusinessObject>>

1+creditCard1

Category

advicePhoto : Stringname : String

<<BusinessObject>>

0..1+favoriteCategory0..1

Product

name : Stringdescription : String

<<BusinessObject>>

0..n1

+products

0..n

+category

1

ShoppingCart

isEmpty : boolean/ total : double

Add()RemoveLine()FindLine()FindLine()

<<BusinessObject>>

Item

name : Stringdescription : Stringprice : doublecurrency : Stringphoto : String

<<BusinessObject>>

0..n1

+items

0..n

+product

1

ShoppingCartLine

amount : int/ subTotal : double

ShoppingCartLine()ShoppingCartLine()

<<BusinessObject>>

0..n

+lines

0..n

1 +item1

Rétro-conception

Cartographie applicative

Page 12: Migration VB6 > .Net

Avantages de la démarche MDA

Une capacité supérieure à ré-architecturer les applications à migrer que n’offre pas une « simple » transformation code à code,

Une agilité supplémentaire dans le choix de la cible de migration,

Un accroissement de la valeur ajoutée de la migration au travers la rétro-conception de l’existant,

La possibilité de capitaliser sur les modèles obtenus pour la maintenance des applications migrées,

La possibilité de capitaliser sur la démarche MDA et la mécanique de génération de code pour de nouveaux développements,

Utilisation des standards de l’OMG (MOF, XMI, UML),

Indépendance vis-à-vis de l'outillage de conception/modélisation du client.

Page 13: Migration VB6 > .Net

Le processus

Application existante(Cobol, L4G, VB6, …)

Modèle del'application

Source

Mia-Generation

Rétro-ingénierie

Re-conception

Génération

Evolution

Modèle del'application

CibleMia-Transformation

Système cible(.NET, J2EE, ...)

Parsers code source

Page 14: Migration VB6 > .Net

Phase 1: Rétro-ingénierie

Analyse automatique du code à l’aide d’un parseur

Rétro-modélisation des informations

Instanciation d’un modèle de l’application source (100% des informations de départ)

Application existante(VB6, NSDK, NATSTAR,INFORMIX, PB, COOL:GEN…)

Modèle del'application

Source

Parsers code source

Analysedu code

Page 15: Migration VB6 > .Net

Phase 2 : Transformation

Processus automatisé de transformation de modèles grâce à l’outil Mia-Transformation

Détection de composants particuliers (objets persistants, cinématique, modèles de vue…)

Instanciation d’un modèle de l’application proche de la cible

Modèle del'application

Source

Modèle del'application

Cible

Mia-Transformation

Page 16: Migration VB6 > .Net

Phase 3 : Génération

Processus automatisé de génération grâce à l’outil Mia-Generation

Génération du code de l’application migrée

Intégration dans l’architecture et le cycle de développement cible

Mia-Generation

Modèle del'application

Cible

Système cible(.NET, J2EE, ...)

Page 17: Migration VB6 > .Net

Modèle de l’application cible

Architecture logique et technique cible

Générateurs

Application cible

• L’application migrée respecte les standard d’architecture

• La maintenance est facilitée

Une évolution possible grâce au cycle en Y

Page 18: Migration VB6 > .Net

GO 2Réalisation (par lots) avec parallélisation

Phasage d’un projet de migration

Préparation

GO 1

Industrialisation Réal. Chaîne automatisée : - Adaptations outillage - Règles de transformation - Règles de génération - Lotissement projet Pilote déployable Proposition forfaitaire

Cadrage Macro chiffrage - Analyse rapide Chiffrage ±30% Etude préalable : - Points durs - Cible technique - Ergonomie - Scénarios - POC Proposition Pilote Chiffrage ±20%

Migration industrielle Migration automatisée - Tests de référence - Transformation - Génération - Compléments manuels - Réécritures partielles - Refactoring IHM - Tests de Non Régression Lot migré Intégration - TNR - Tests charge & perf. Lot intégré Recette utilisateur Lot recetté

Déploiement Déploiement

GO 3

~2 semaines ~ 3 mois~ 1 mois X mois

Page 19: Migration VB6 > .Net

Exemples de références

MAAF : Migration NSDKJ2EE d’une application d’assurance auto (50 écrans, 50 000 lignes de code)

AGF :• Migration NSDKJ2EE d’une application d’assurances maritimes (160 écrans, 60 000 lignes)

• Migration NatwebJ2EE de 4 applications

CDC Ixis : Migration NSDK.NET/WinForms (20 écrans, 30 000 lignes de code)

France Telecom : Migration NSDKJ2EE

NSDK .Net

Page 20: Migration VB6 > .Net

La source : CoolGen

La cible : migration mixte J2EE / Cobol

• Services back-office conservés en Cobol

• Couches applicatives en J2EE (framework spécifique)

• Approche SOA

Le périmètre : tout le patrimoine applicatif

• 50 applications, 1000 écrans, 1000 serveurs

Contraintes :

• S’intégrer dans l’architecture

• S’intégrer dans la démarche de développement (le client a déjà initié une démarche MDA)

• Conserver le niveau d’utilisabilité des applications

Le projet

• Charge : 9000 jours (dont 400 d’outillage)

• Délai : 18 mois

Référence Crédit du Nord

Page 21: Migration VB6 > .Net

Sodifrance

Evolution d’architecture

Chaîne de modernisation VB vers .NET

Plan

Page 22: Migration VB6 > .Net

Évolution d’architecture > Conclusion

Merci pour votre attention …


Top Related