5M lines of code migration

1,630 views

Published on

Every company has legacy applications.
And every framework, language, technology will dead or will become legacy.

How to modernise them without the need to rewrite everything by hand?
Does an automatic migration of source code is realistic on large applications?
Does Eclipse technologies help for these tasks?

This talk will answer these questions through a real use case executed for a french ministry: the migration of a large scale application (5 millions of line of code) from Forte to Java.

We will explain our project process to insure 99,9999% of garanties to migrated code and how we create a custom migration factory with:

EMF to represent source code as a structured model
CDO to store several Gigabits of datas with very good performances
Agility to reverse existing source code
GMF and ATL for Software Mining and cartography
Acceleo for translating
The talk will also show demos of this migration tooling applied to other technologies and other needs of legacy analysis:

ADA to C++
VB to DotNet
OracleForms to JavaEE
Natural Sonar (quality checker)
Cobol cartography

Published in: Technology
  • Be the first to comment

  • Be the first to like this

5M lines of code migration

  1. 1. 5M lines of code to migrate Howto with Eclipse Modeling Étienne Juliot [email_address] Mikaël Barbero [email_address]
  2. 2. Objective
  3. 4. DEMO
  4. 5. Migration Step by Step
  5. 6. BIRD'S EYE VIEW Parse the code Define translation dictionnary Implement the translator Process iteratively
  6. 7. PARSE THE CODE
  7. 8. DEMO
  8. 9. ESTABLISH EQUIVALENCE RULES
  9. 10. ESTABLISH EQUIVALENCE RULES Specificy and document Define elements to translate first
  10. 11. DEMO
  11. 12. TEST DRIVEN IMPLEMENTATION Model of source code Transformation templates Source code BEFORE Source code AFTER Metamodel of source code
  12. 13. DEMO
  13. 14. ITERATIVE PROCESS Equivalence rules definition Migrated code evaluation OBEO PARTNER
  14. 15. # compilation errors in migrated code helps mesuring output quality Achieving 'good' quality requires lots of back and forth THE LESSON? FOLLOW THE QUALITY
  15. 16. BUT WHEN?
  16. 17. Defining a target may be somewhat difficult
  17. 18. USE INDICATORS TECHNICAL DEBT SOFTWARE MINING
  18. 19. DEMO
  19. 20. Does it Scale?
  20. 21. Project for a French administration Success THE FACTS 10 years old critical application Made with declared EOL Forté UDS 5,000,000 LOC Iso functional migration Same performance (30,000 users) 4 errors / 10,000 migrated LOC (99.96%) THE GOALS
  21. 22. Available technologies COBOL (GCOS / MVS UNIX / CICS) DELPHI C/C++ ASP ABAP JHTML (ATG) JSP Java 5 FORTÉ Flex Omnis Oracle Forms NSDK NATURAL LTR3 Power Builder Pro C PL1 PL/SQL Pascal VB 6 VB .NET Struts SQL Progress
  22. 23. [email_address]

×