SlideShare ist ein Scribd-Unternehmen logo
1 von 128
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Ahmed okasha linked_in
Ahmed okasha linked_inAhmed okasha linked_in
Ahmed okasha linked_inAhmed Okasha
 
Agile Software Development - Making Programming Fun Again
Agile Software Development - Making Programming Fun AgainAgile Software Development - Making Programming Fun Again
Agile Software Development - Making Programming Fun AgainCalen Legaspi
 
What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?Bill Holtshouser
 
[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap
[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap
[IBM Pulse 2014] #1579 DevOps Technical Strategy and RoadmapDaniel Berg
 
Digital Engineering: Top 5 Imperatives for Communications, Media and Technolo...
Digital Engineering: Top 5 Imperatives for Communications, Media and Technolo...Digital Engineering: Top 5 Imperatives for Communications, Media and Technolo...
Digital Engineering: Top 5 Imperatives for Communications, Media and Technolo...Cognizant
 
Digite Overview - IT Services
Digite Overview - IT ServicesDigite Overview - IT Services
Digite Overview - IT ServicesDigite, Inc.
 
SOFTWARE DEVELOPMENT BUSINESS PLAN
SOFTWARE DEVELOPMENT BUSINESS PLANSOFTWARE DEVELOPMENT BUSINESS PLAN
SOFTWARE DEVELOPMENT BUSINESS PLANNimble Appgenie LLP
 
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...
Day 1: ICT Strategic Planning, Mr. Soufiane Ben Moussa, CTO, House of Commons...wepc2016
 
Forrester_Agile_Development_And_Customer_Experience
Forrester_Agile_Development_And_Customer_ExperienceForrester_Agile_Development_And_Customer_Experience
Forrester_Agile_Development_And_Customer_ExperienceJake Jacobs-Smith
 
Jan Bosch | Agile Product Development: From Hunch to Hard Data
Jan Bosch | Agile Product Development: From Hunch to Hard DataJan Bosch | Agile Product Development: From Hunch to Hard Data
Jan Bosch | Agile Product Development: From Hunch to Hard DataOptimizely
 
DevOps in the Enterprise
DevOps in the EnterpriseDevOps in the Enterprise
DevOps in the EnterpriseNauman Noor
 
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though PartnershipsTHE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnershipscyberopticgroup
 
Introducing agilealm
Introducing agilealmIntroducing agilealm
Introducing agilealmMatt Holitza
 

Was ist angesagt? (20)

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

Andere mochten auch

The KDM Advantage
The KDM AdvantageThe KDM Advantage
The KDM Advantageamylsavage
 
Architecting Your Enterprise
Architecting Your EnterpriseArchitecting Your Enterprise
Architecting Your EnterpriseEd Seidewitz
 
11g Identity Management - InSync10
11g Identity Management - InSync1011g Identity Management - InSync10
11g Identity Management - InSync10Peter McLarty
 
Software Modernization
Software Modernization Software Modernization
Software Modernization Mark Juras
 
The Modernization of Application
The Modernization of ApplicationThe Modernization of Application
The Modernization of ApplicationRasin Bekkevold
 

Andere mochten auch (6)

The KDM Advantage
The KDM AdvantageThe KDM Advantage
The KDM Advantage
 
Architecting Your Enterprise
Architecting Your EnterpriseArchitecting Your Enterprise
Architecting Your Enterprise
 
11g Identity Management - InSync10
11g Identity Management - InSync1011g Identity Management - InSync10
11g Identity Management - InSync10
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
Software Modernization
Software Modernization Software Modernization
Software Modernization
 
The Modernization of Application
The Modernization of ApplicationThe Modernization of Application
The Modernization of Application
 

Ähnlich wie Software Modernization

Recovery of Traceability Links and Behavior Models for Software Maintenance,...
Recovery of Traceability Links and Behavior Models for Software Maintenance,...Recovery of Traceability Links and Behavior Models for Software Maintenance,...
Recovery of Traceability Links and Behavior Models for Software Maintenance,...Hironori Washizaki
 
CAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsCAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsRicardo Tesoriero
 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...Benoit Combemale
 
Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015Philipp Leitner
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Rejunevating software reengineering processes
Rejunevating software reengineering processesRejunevating software reengineering processes
Rejunevating software reengineering processesmanishthaper
 
February 2024: Top 10 Read Articles in Software Engineering & Applications In...
February 2024: Top 10 Read Articles in Software Engineering & Applications In...February 2024: Top 10 Read Articles in Software Engineering & Applications In...
February 2024: Top 10 Read Articles in Software Engineering & Applications In...ijseajournal
 
Towards Clean Legacy Code
Towards Clean Legacy CodeTowards Clean Legacy Code
Towards Clean Legacy CodeLars Martin
 
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...IncQuery Labs
 
Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...Ganesh Samarthyam
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architectureBiruk Mamo
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David AmellerDavid Ameller
 
Software Systems Requirements Engineering
Software Systems Requirements EngineeringSoftware Systems Requirements Engineering
Software Systems Requirements EngineeringKristen Wilson
 

Ähnlich wie Software Modernization (20)

Recovery of Traceability Links and Behavior Models for Software Maintenance,...
Recovery of Traceability Links and Behavior Models for Software Maintenance,...Recovery of Traceability Links and Behavior Models for Software Maintenance,...
Recovery of Traceability Links and Behavior Models for Software Maintenance,...
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 
Duc le CV
Duc le CVDuc le CV
Duc le CV
 
CAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsCAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environments
 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
 
Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Rejunevating software reengineering processes
Rejunevating software reengineering processesRejunevating software reengineering processes
Rejunevating software reengineering processes
 
February 2024: Top 10 Read Articles in Software Engineering & Applications In...
February 2024: Top 10 Read Articles in Software Engineering & Applications In...February 2024: Top 10 Read Articles in Software Engineering & Applications In...
February 2024: Top 10 Read Articles in Software Engineering & Applications In...
 
ThesisProposal
ThesisProposalThesisProposal
ThesisProposal
 
H1803044651
H1803044651H1803044651
H1803044651
 
Towards Clean Legacy Code
Towards Clean Legacy CodeTowards Clean Legacy Code
Towards Clean Legacy Code
 
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...
Towards the Next Generation of Reactive Model Transformations on Low-Code Pla...
 
Modest Formalization of Software Design Patterns
Modest Formalization of Software Design PatternsModest Formalization of Software Design Patterns
Modest Formalization of Software Design Patterns
 
Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...
 
Software Architecture in an Agile World
Software Architecture in an Agile WorldSoftware Architecture in an Agile World
Software Architecture in an Agile World
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
Software bug prediction
Software bug prediction Software bug prediction
Software bug prediction
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David Ameller
 
Software Systems Requirements Engineering
Software Systems Requirements EngineeringSoftware Systems Requirements Engineering
Software Systems Requirements Engineering
 

Mehr von Javier Canovas

On the Analysis of Non-Coding Roles in Open Source Development
On the Analysis of Non-Coding Roles in Open Source DevelopmentOn the Analysis of Non-Coding Roles in Open Source Development
On the Analysis of Non-Coding Roles in Open Source DevelopmentJavier Canovas
 
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...Javier Canovas
 
A Model-based Chatbot Generation Approach to Converse with Open Data Sources
A Model-based Chatbot Generation Approach to Converse with Open Data SourcesA Model-based Chatbot Generation Approach to Converse with Open Data Sources
A Model-based Chatbot Generation Approach to Converse with Open Data SourcesJavier Canovas
 
Chatbots to Democratize the Access to Information and Internet Services
Chatbots to Democratize the Access to Information and Internet ServicesChatbots to Democratize the Access to Information and Internet Services
Chatbots to Democratize the Access to Information and Internet ServicesJavier Canovas
 
Analysis and Modeling of the Governance in General Programming Languages
Analysis and Modeling of the Governance in General Programming LanguagesAnalysis and Modeling of the Governance in General Programming Languages
Analysis and Modeling of the Governance in General Programming LanguagesJavier Canovas
 
Automatic Generation of Test Cases for REST APIs: a Specification-Based Approach
Automatic Generation of Test Cases for REST APIs: a Specification-Based ApproachAutomatic Generation of Test Cases for REST APIs: a Specification-Based Approach
Automatic Generation of Test Cases for REST APIs: a Specification-Based ApproachJavier Canovas
 
A UML Profile for Privacy Enforcement
A UML Profile for Privacy EnforcementA UML Profile for Privacy Enforcement
A UML Profile for Privacy EnforcementJavier Canovas
 
The Role of Foundations in Open Source Projects
The Role of Foundations in Open Source ProjectsThe Role of Foundations in Open Source Projects
The Role of Foundations in Open Source ProjectsJavier Canovas
 
An Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
An Empirical Study on the Maturity of the Eclipse Modeling EcosystemAn Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
An Empirical Study on the Maturity of the Eclipse Modeling EcosystemJavier Canovas
 
Example-driven Web API Specification Discovery
Example-driven Web API Specification DiscoveryExample-driven Web API Specification Discovery
Example-driven Web API Specification DiscoveryJavier Canovas
 
Software Modernization Revisited: Challenges and Prospects
Software Modernization Revisited:Challenges and ProspectsSoftware Modernization Revisited:Challenges and Prospects
Software Modernization Revisited: Challenges and ProspectsJavier Canovas
 
Findings from GitHub. Methods, Datasets and Limitations
Findings from GitHub. Methods, Datasets and LimitationsFindings from GitHub. Methods, Datasets and Limitations
Findings from GitHub. Methods, Datasets and LimitationsJavier Canovas
 
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...Javier Canovas
 
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...Javier Canovas
 
Composing JSON-based Web APIs
Composing JSON-based Web APIsComposing JSON-based Web APIs
Composing JSON-based Web APIsJavier Canovas
 
Retos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
Retos Actuales en el Desarrollo de Lenguajes Específicos del DominioRetos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
Retos Actuales en el Desarrollo de Lenguajes Específicos del DominioJavier Canovas
 
Discovering Implicit Schemas in JSON Data
Discovering Implicit Schemas in JSON DataDiscovering Implicit Schemas in JSON Data
Discovering Implicit Schemas in JSON DataJavier Canovas
 
Enabling the Collaborative Definition of DSMLs
Enabling the Collaborative Definition of DSMLsEnabling the Collaborative Definition of DSMLs
Enabling the Collaborative Definition of DSMLsJavier Canovas
 
Domain-Specific Languages
Domain-Specific LanguagesDomain-Specific Languages
Domain-Specific LanguagesJavier Canovas
 
Modernization in Eclipse
Modernization in EclipseModernization in Eclipse
Modernization in EclipseJavier Canovas
 

Mehr von Javier Canovas (20)

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

Software Modernization