Software Modernization
-
Upload
javier-canovas -
Category
Documents
-
view
720 -
download
2
description
Transcript of Software Modernization
Software Modernization
Javier Luis Cánovas [email protected]
Universidad Autónoma de MadridNoviembre de 2012
René Magritte
Who am I?
Where am I from?
The team
AtlanMod people
Our place
Our place in MDD
My place
Outline
fotopedia/DVIDSHUB
Jean Christophe Prunet
Software modernization
Mauro Cateb
Callingthings
properly
Calling things properly
Reengineering"The examination and alteration of a software system to reconstitute it in a new form and the subsequent implementation of a new form. Generally includes some form of reverse engineering, followed by some form of forward engineering or restructuring."
E. Chikofsky and J. Cross, “Reverse engineering and design recovery: A taxonomy,” Software, IEEE, vol. 7, no. 1, pp. 13–17, 1990.
Calling things properly
Reverse Engineering"Process of analyzing a subject system to identify its components and their relationships and to create representations of the systems in another form or at a higher level of abstraction. Generally involves extracting design artifacts and building or synthesizing abstractions that are less implementation- dependent..."
E. Chikofsky and J. Cross, “Reverse engineering and design recovery: A taxonomy,” Software, IEEE, vol. 7, no. 1, pp. 13–17, 1990.
Calling things properly
Restructuring"Transformation for one representation form to another, at the same abstraction level, while preserving the subject system external behavior (functionality and semantics)"
E. Chikofsky and J. Cross, “Reverse engineering and design recovery: A taxonomy,” Software, IEEE, vol. 7, no. 1, pp. 13–17, 1990.
Calling things properly
Forward Engineering"The traditional process of moving from high level abstractions & logical or implementation independent designs (e.g. models) to the physical implementation of a system (e.g. source code)."
E. Chikofsky and J. Cross, “Reverse engineering and design recovery: A taxonomy,” Software, IEEE, vol. 7, no. 1, pp. 13–17, 1990.
Everything together
R. Kazman, S. G. Woods, and S. J. Carrière, “Requirements for Integrating Software Architecture and Reengineering Models : CORUM II,” in WCRE conf., 1998, pp. 154–163.
Everything together (reloaded)
R. Kazman, S. G. Woods, and S. J. Carrière, “Requirements for Integrating Software Architecture and Reengineering Models : CORUM II,” in WCRE conf., 1998, pp. 154–163.
flickr/a_ninjamonkey
Modernization
"It is a form of software evolution which relies on an existing system as input."
R. C. Seacord, D. Plakosh and G. A. Lewis, “Modernizing Legacy Systems”. Addison-Wesley, 2003
flickr/mark.hogan
ModernizationExamples
Reverse engineering goal models
Y. Yu, Y. Wang, J. Mylopoulos, S. Liaskos, A. Lapouchnian, and J. C. Sampaio do Prado Leite, “Reverse engineering goal models from legacy code,” in RE conf., 2005.
Reverse engineering goal models
Y. Yu, Y. Wang, J. Mylopoulos, S. Liaskos, A. Lapouchnian, and J. C. Sampaio do Prado Leite, “Reverse engineering goal models from legacy code,” in RE conf., 2005.
SOA migration
M. Razavian and P. Lago, “Towards a conceptual framework for legacy to soa migration,” in ICSOC workshop, 2010, vol. 6275, pp. 445–455.
flickr/roger4336
MDD in Software modernization
The classical Horse-shoe model
The MDD-based Horse-shoe model
The MDD-based Horse-shoe model
Alan Pennington
MDD-based ModernizationExamples
Struts to JSF migration
J. L. Cánovas Izquierdo, O. Sánchez Ramón, J. Sánchez Cuadrado, and J. García Molina, “DSLs para la extracción de modelos en modernización,” in DSDM workshop, 2008.
Maintainer script modernization
D. D. Ruscio and P. Pelliccione, “Towards maintainer script modernization in FOSS distributions,” OCE workshop, 2009.
Maintainer script modernization
D. D. Ruscio and P. Pelliccione, “Towards maintainer script modernization in FOSS distributions,” OCE workshop, 2009.
Modernization business
T. Clark and P.-A. Muller, “Exploiting model driven technology: a tale of two startups,” Software & Systems Modeling, vol. 11, no. 4, pp. 481–493, Aug. 2012.
fotopedia/Mirco Wilheim
Architecture-Driven Modernization
What is it?
What is it?
What is it?
What is it?
What is it?
From OMG's specification"ADM refers to the process of understanding and evolving existing software assets in order to maintain their business value"
ADM metamodels
ADM metamodels
Alex Proimos
Going into the metamodels
ADM metamodels
What is it?
From OMG's specification"...the ASTM supports a direct 1-to-1 mapping of all code-level software language statements into low-level software models."
What for?
From OMG's specification"This mapping is intended to provide a framework for:
1. A high-fidelity invertible representation of code written in any software language...
2. Attachment of low-level software semantics produced by a constraint analysis, specifically scope analysis..."
Abstract syntax tree
Levels of conformance
GASTM
SASTM
Levels of conformance
Levels of conformance
Example
Example
Example
Example
Summary
ADM metamodels
What is it?
From OMG's specification"...a meta-model for representing existing software, its elements, associations, and operational environments... KDM facilitates projects that involve existing software systems by ensuring interoperability and exchange of data between tools provided by different vendors..."
KDM packages
Compliant levels
Core Package
Kdm Package
Kdm Package
● KDM metamodel structure
Kdm Package
● KDM metamodel structure● Audit mechanism
Kdm Package
● KDM metamodel structure● Audit mechanism● Extension mechanism
Kdm Package
● KDM metamodel structure● Audit mechanism● Extension mechanism● Tag mechanism
Source Package
Code Package
Action Package
Micro-KDM package
● Action semantic
● Action types
● Comparison(equals, notequals, lessthan,…)
● Numerical (add, multiply, divide,…)
● Binary operations (bitAnd, bitNot, leftShift,…)
● Control (if, assign, condition,…)
● Data type access (fieldSelect, …)
● Data type conversion (sizeof,…)
● String operations (tail, append,…)
● ...
Example
Example
Example
Example
Example
And the other packages?
Summary
ASTM vs. KDM
ASTM
KDM
ASTM vs. KDM
ASTM
KDM
ADM metamodels
What is it?
From OMG's specification"...meta-model for representing measurement information related to any model structured information with an initial focus on software, its operation, and its design.... ...this specification is an extensible meta-model for exchanging both measures and measurement information concerning artifacts contained or expressed by structured models, such as MOF..."
Core elements
Measures hierarchy
Measurements hierarchy
Hierarchy mirrored
Example
Example
The classical Horse-shoe model
ADM-based horse shoe model
Modernization scenarios
OMG, “Architecture-driven modernization scenarios,” 2006.
ADM Modernization business
flickr/jonrus
ADM-based modernizationexamples
Calculating metrics from PL/SQL
J. L. Cánovas Izquierdo and J. García Molina, “An Architecture-Driven Modernization Tool for Calculating Metrics,” IEEE Software, vol. 27, no. 4, pp. 37–43, 2010.
Calculating metrics from PL/SQL
J. L. Cánovas Izquierdo and J. García Molina, “An Architecture-Driven Modernization Tool for Calculating Metrics,” IEEE Software, vol. 27, no. 4, pp. 37–43, 2010.
Recovering Web Services
R. Pérez-Castillo, I. G. D. Guzmán, and I. Caballero, “Software modernization by recovering Web services from legacy databases,” Journal of Software: Evolution and Process, 2012.
Recovering Web Services
R. Pérez-Castillo, I. G. D. Guzmán, and I. Caballero, “Software modernization by recovering Web services from legacy databases,” Journal of Software: Evolution and Process, 2012.
photopedia/marfis75
MoDisco
MoDisco = Model Discovery
"An Eclipse framework to support the elaboration of Model-Driven Reverse Engineering solutions."
MoDisco in the Horse-shoe model
MoDisco in the Horse-shoe model
Reverse Engineering in MoDisco
Discover
Technical Spaces
Definition:"A technological space is a working context with a set of associated concepts, body of knowledge, tools, required skills, and possibilities. It is often associated to a given user community with shared know-how, educational support, common literature and even workshop and conference meetings."
I. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces : an Initial Appraisal,” in DOA, 2002
Technical Spaces
Bridging Technical Spaces
"...no TS is an island. There are bridges between various spaces and these bridges also have particular properties. Some may be bi-directional and some may be one-way bridges. Some operations may be performed easier in one space and the result may then be imported into other space."
I. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces : an Initial Appraisal,” in DOA, 2002
Why bridging?
Jean Bézivin. Model Engineering for Software Modernization. In WCRE - Guest Talk, 2004
Bridging Technical Spaces
I. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces : an Initial Appraisal,” in DOA, 2002
Technical Spaces
Technical Spaces
Reverse Engineering in MoDisco
MoDisco support for Java
MoDisco support for XML
MoDisco support for JSP
Discovery manager
New discoverers
Understand
Reverse Engineering in MoDisco
Model Browser
Transform
Transform
Reverse Engineering in MoDisco
MoDisco Architecture
flickr/-staci-
MoDiscoexamples
JUnit migration
Java source codeJUnit3 code
Java modelJUnit3
Java metamodel
conforms to
MoDiscoJava
Discoverer
MoDiscoModel
Browser
JUnit migration
MoDiscoModelBrowser
Java modelJUnit3
JavaCustomization
JUnit3Queries
JUnit3Facets
uses
JUnit migration
Java source codeJUnit4 code
JUnit3 to JUnit4M2M Transformation
Java modelJUnit4
Java modelJUnit3
MoDisco Java
Generator
JUnit3Facets
Calculating metrics from code
Viewpoints from source code
flickr/peterzen