model-driven engineering for software migration in a large ... · model-driven engineering for...

21
Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit Baudry, Alain Nicolas, Jean-Marc Jézéquel MoDELS 2007

Upload: others

Post on 04-Apr-2020

11 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

Model-Driven Engineering for Software Migration

in a Large Industrial Context

Franck Fleurey, Erwan Breton, Benoit Baudry, Alain Nicolas,

Jean-Marc Jézéquel

MoDELS 2007

Page 2: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

2

Context and motivations

● Migration of legacy applications– No change in the requirements

– Migration to new technology platforms

– Refactoring in the design

– e.g. banking, assurance, ...

● Two competing approaches– Full re-development (outsourcing)

– Semi-automated migration

SOFT­MAINT uses MDE for automating migration

Con

text

an

d m

oti

vati

on

s

Page 3: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

3

Outline

● Model-based software migration● Migration projects phases● Case Study● Comparison with re-development● Conclusion and limitations

Ou

tlin

e

Page 4: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

4

Model-based software migration

Mod

el-

base

d m

igra

tion

Legacyapplication

code

Newapplication

code

Model ofthe code

Pivot Model(PIM)

ANT

Model of theapplication

UML

Source platform specific tools

Target platform specific tools

L

parsing

reverse­engineering

modeltransformation

codegeneration

Page 5: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

5

1. Parsing the legacy code

Legacyapplication

code

Newapplication

code

Model ofthe code

Pivot Model(PIM)

ANT

Model of theapplication

UML

Source platform specific tools

Target platform specific tools

L

parsing

reverse­engineering

modeltransformation

codegeneration

● Specific parsers● Static analysis tools

– ESSOR for COBOL

● Compete model of the code

– Not just ASTs

Mod

el-

base

d m

igra

tion

Page 6: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

6

2. Reverse engineering

Legacyapplication

code

Newapplication

code

Model ofthe code

Pivot Model(PIM)

ANT

Model of theapplication

UML

Source platform specific tools

Target platform specific tools

L

parsing

reverse­engineering

modeltransformation

codegeneration

● Model transformation● Model-In-Action tools

– MIA Transformation

● Project specific– requires a deep analysis

of the legacy application

Mod

el-

base

d m

igra

tion

Page 7: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

7

The pivot model

Legacyapplication

code

Newapplication

code

Model ofthe code

Pivot Model(PIM)

ANT

Model of theapplication

UML

Source platform specific tools

Target platform specific tools

L

parsing

reverse­engineering

modeltransformation

codegeneration

● Reusable pivot model● Capture all the information

– Static structures (Class diagrams)

– Graphical User Interface

– Application navigation (work flow)

– Actions and algorithms

Mod

el-

base

d m

igra

tion

Page 8: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

8

3. Model transformation

Legacyapplication

code

Newapplication

code

Model ofthe code

Pivot Model(PIM)

ANT

Model of theapplication

UML

Source platform specific tools

Target platform specific tools

L

parsing

reverse­engineering

modeltransformation

codegeneration

● Model transformation● Design refactoring● Target UML models

– uses customer's profile

● Semi-automated

Mod

el-

base

d m

igra

tion

Page 9: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

9

4. Code Generation

Legacyapplication

code

Newapplication

code

Model ofthe code

Pivot Model(PIM)

ANT

Model of theapplication

UML

Source platform specific tools

Target platform specific tools

L

parsing

reverse­engineering

modeltransformation

codegeneration

● Code Generation● Tools

– Case tool code generator

– MIA Generation

● Semi-automated

Mod

el-

base

d m

igra

tion

Page 10: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

10

Implementing the migration process

● Requires generic tools– legacy language specific tools

– model transformation tools

– code generation tools

● Requires project specific tools– reverse-engineering transformations

– design transformations

– code generators

● Significant preliminary work

Mig

rati

on

pro

ject

ph

ase

s

Page 11: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

11

Preliminary phases of migration projects

Mig

rati

on

pro

ject

ph

ase

s

Page 12: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

12

Case study

● Banking system– 1 million lines of COOLGEN code

– 42 applications (800 forms, 7500 events)

– 99 Crystal Report exports

– 990 server services

– 20 batch processes

● Requirements– Servers in COBOL

– Applications in J2EE

– Round-trip custom UML models

Case

Stu

dy

Page 13: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

13

Specific migration processC

ase

Stu

dy

Page 14: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

14

Migration project scheduleC

ase

Stu

dy

● 32 months total● 9315 person-days● 10 month preliminary work

Page 15: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

15

Preliminary tasksC

ase

Stu

dy

● Small developer team (3 to 8 persons)● 10 months● 1000 person-days● 12% of the project cost

Page 16: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

16

Industrial migrationC

ase

Stu

dy

● 3 parallel teams of 15 developers● 19 months● 6800 person-days● 2 deliveries per month in average

Page 17: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

17

Case study results

● Cheaper than re-development– About half the cost

● High level of automation– 70% of the final code is generated

● Validation is expensive– about 50% of the overall cost

Case

Stu

dy

Page 18: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

18

Discussion (1)Profitability vs. project size

Dis

cuss

ion

project size

cost Re­development of the application

Model­driven migration

MDE profitability threshold

Preliminary tasks(study, tools, pilot)

Manual migrationtasks

Test and validation

Page 19: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

19

Discussion (2)Migration time-schedule

Dis

cuss

ion

% code migrated

Model­driven migration

11

2 3 4 5 6 7 82 3 4 5 6 7 8

Manual migration or re­development of the application

time

deliveries

100%

~70%

(1)

(2)

(3)

Page 20: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

20

Summary and conclusion

● Allows for automation● Allows reuse of tools / transformation● Profitable over re-development● Long preliminary phase required

– Commercial limitation

● Test represents 50% of the manual work– Regression testing

Con

clu

sion

Page 21: Model-Driven Engineering for Software Migration in a Large ... · Model-Driven Engineering for Software Migration in a Large Industrial Context Franck Fleurey, Erwan Breton, Benoit

21

Questions ?