SlideShare a Scribd company logo
Software
Modernization
 Javier Luis Cánovas Izquierdo
    javier.canovas@inria.fr


    Universidad Autónoma de Madrid
          Noviembre de 2012
Who am I?




René Magritte
Where am I from?
The team
AtlanMod people
Our place
Our place in MDD
My place
Outline




fotopedia/DVIDSHUB
Software modernization




Jean Christophe Prunet
Calling
                things
              properly




Mauro Cateb
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
Modernization
                       Examples




flickr/mark.hogan
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.
MDD in
                   Software modernization




flickr/roger4336
The classical Horse-shoe model
The MDD-based Horse-shoe model
The MDD-based Horse-shoe model
MDD-based Modernization
                               Examples




Alan Pennington
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.
Architecture-Driven Modernization




fotopedia/Mirco Wilheim
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
Going into the metamodels




Alex Proimos
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
ADM-based modernization
                             examples




flickr/jonrus
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.
MoDisco




photopedia/marfis75
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
MoDisco
                 examples




flickr/-staci-
JUnit migration

                              Java
                              metamodel

                  MoDisco
                    Java
                                     conforms to
                 Discoverer



                                 Java
Java source code                 model
   JUnit3 code                    JUnit3


                                                   MoDisco
                                                    Model
                                                   Browser
JUnit migration


                   Java model
                     JUnit3



    Java                        JUnit3
Customization                   Facets


                                    uses

             MoDisco
           ModelBrowser         JUnit3
                                Queries
JUnit migration



              JUnit3 to JUnit4
             M2M Transformation
                                           Mo
                                              D
                                           Ge isc
                                             ne o J
Java model                    Java model        ra av
                                  JUnit4
                                                  to a
  JUnit3                                            r


  JUnit3
  Facets

                                           Java source code
                                              JUnit4 code
Calculating metrics from code
Viewpoints from source code
flickr/peterzen

More Related Content

PPTX
Building a DevOps organization
PPTX
Emerging Trends of Software Engineering
PDF
Hans Eckman: 7 Agile and DevOps Insights I Wish I Knew Earlier
PPTX
Cloud Computing Fundamental Course Preview
PDF
DevOps - The Future of Application Lifecycle Automation
PDF
Product Engineering - Distributed Agile
PDF
DevOps: What is the Right Speed?
PPTX
Software architecture in an agile environment
Building a DevOps organization
Emerging Trends of Software Engineering
Hans Eckman: 7 Agile and DevOps Insights I Wish I Knew Earlier
Cloud Computing Fundamental Course Preview
DevOps - The Future of Application Lifecycle Automation
Product Engineering - Distributed Agile
DevOps: What is the Right Speed?
Software architecture in an agile environment

What's hot (19)

PPT
Orion Systems Integrators Presentation
PDF
Ahmed okasha linked_in
ODP
Agile Software Development - Making Programming Fun Again
PDF
[StepTalks2011] CMMI and tools for efficiency - Cristina Henriques
PPTX
What do the "Cool Kids" know about DevOps?
PDF
IBM Rational
PPTX
TestOps and Shift Left
PDF
[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap
PDF
Digital Engineering: Top 5 Imperatives for Communications, Media and Technolo...
PDF
TriconInfotech
PPT
Digite Overview - IT Services
PPTX
SOFTWARE DEVELOPMENT BUSINESS PLAN
PPTX
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
PDF
Forrester_Agile_Development_And_Customer_Experience
PPTX
4 Maps of DevOps
PPTX
Jan Bosch | Agile Product Development: From Hunch to Hard Data
PDF
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
DOCX
Swati Dubey QA 6 Yrs
PPTX
Introducing agilealm
Orion Systems Integrators Presentation
Ahmed okasha linked_in
Agile Software Development - Making Programming Fun Again
[StepTalks2011] CMMI and tools for efficiency - Cristina Henriques
What do the "Cool Kids" know about DevOps?
IBM Rational
TestOps and Shift Left
[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap
Digital Engineering: Top 5 Imperatives for Communications, Media and Technolo...
TriconInfotech
Digite Overview - IT Services
SOFTWARE DEVELOPMENT BUSINESS PLAN
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
Forrester_Agile_Development_And_Customer_Experience
4 Maps of DevOps
Jan Bosch | Agile Product Development: From Hunch to Hard Data
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
Swati Dubey QA 6 Yrs
Introducing agilealm
Ad

Viewers also liked (6)

PPT
The KDM Advantage
PPT
Architecting Your Enterprise
ODP
11g Identity Management - InSync10
PPT
Introduction to MDA
PPT
Software Modernization
PPT
The Modernization of Application
The KDM Advantage
Architecting Your Enterprise
11g Identity Management - InSync10
Introduction to MDA
Software Modernization
The Modernization of Application
Ad

Similar to Software Modernization (20)

PDF
Future Research Challenges in Software Evolution
PDF
PDF
Analyze your software assets with Modisco par Frédéric Madiot
PPTX
Software evolution and maintenance basic concepts and preliminaries
PPTX
5 chap - MAINTENANCE
PPT
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
PPT
Architectural Design in Software Engineering SE10
PDF
7 - Architetture Software - Software product line
PDF
Devnology back toschool software reengineering
PDF
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
PDF
SWE-401 - 11. Software maintenance overview
PPT
Software Re-Engineering in Software Engineering SE28
PPTX
Software maintenance real world maintenance cost
PPT
Web technologies: Model Driven Engineering
PDF
PPT
Slides chapter 9
PDF
MSR 2013 Preview
PDF
01_Program
PPTX
Reengineering including reverse & forward Engineering
PDF
Object oriented analysis and design unit- v
Future Research Challenges in Software Evolution
Analyze your software assets with Modisco par Frédéric Madiot
Software evolution and maintenance basic concepts and preliminaries
5 chap - MAINTENANCE
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
Architectural Design in Software Engineering SE10
7 - Architetture Software - Software product line
Devnology back toschool software reengineering
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITY
SWE-401 - 11. Software maintenance overview
Software Re-Engineering in Software Engineering SE28
Software maintenance real world maintenance cost
Web technologies: Model Driven Engineering
Slides chapter 9
MSR 2013 Preview
01_Program
Reengineering including reverse & forward Engineering
Object oriented analysis and design unit- v

More from Javier Canovas (20)

PDF
On the Analysis of Non-Coding Roles in Open Source Development
PDF
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
PDF
A Model-based Chatbot Generation Approach to Converse with Open Data Sources
PPTX
Chatbots to Democratize the Access to Information and Internet Services
PPTX
Analysis and Modeling of the Governance in General Programming Languages
PPTX
Automatic Generation of Test Cases for REST APIs: a Specification-Based Approach
PPTX
A UML Profile for Privacy Enforcement
PPTX
The Role of Foundations in Open Source Projects
PPTX
An Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
PPTX
Example-driven Web API Specification Discovery
PPTX
Software Modernization Revisited: Challenges and Prospects
PPTX
Findings from GitHub. Methods, Datasets and Limitations
PPTX
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
PPTX
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
PPTX
Composing JSON-based Web APIs
PPTX
Retos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
PPTX
Discovering Implicit Schemas in JSON Data
PPTX
Enabling the Collaborative Definition of DSMLs
PPTX
Domain-Specific Languages
PDF
Modernization in Eclipse
On the Analysis of Non-Coding Roles in Open Source Development
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
A Model-based Chatbot Generation Approach to Converse with Open Data Sources
Chatbots to Democratize the Access to Information and Internet Services
Analysis and Modeling of the Governance in General Programming Languages
Automatic Generation of Test Cases for REST APIs: a Specification-Based Approach
A UML Profile for Privacy Enforcement
The Role of Foundations in Open Source Projects
An Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
Example-driven Web API Specification Discovery
Software Modernization Revisited: Challenges and Prospects
Findings from GitHub. Methods, Datasets and Limitations
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
Composing JSON-based Web APIs
Retos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
Discovering Implicit Schemas in JSON Data
Enabling the Collaborative Definition of DSMLs
Domain-Specific Languages
Modernization in Eclipse

Software Modernization