Migration VB6 > .Net
-
Upload
vincent-hanniet -
Category
Technology
-
view
2.574 -
download
4
description
Transcript of Migration VB6 > .Net
Evolution d’architecture
Présentation du 26/03/07 au Microsoft Technology Center, Paris
Sodifrance
Evolution d’architecture
Chaîne de modernisation VB vers .NET
Plan
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
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
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
Sodifrance
Evolution d’architecture
Chaîne de modernisation VB vers .NET
Plan
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
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
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
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
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
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.
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
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
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
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, ...)
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
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
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
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
Sodifrance
Evolution d’architecture
Chaîne de modernisation VB vers .NET
Plan
Évolution d’architecture > Conclusion
Merci pour votre attention …