SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
Valerio Cosentino - IBM, AtlanMod, INRIA & EMN, Nantes - valerio.cosentino@fr.ibm.com
Jordi Cabot - AtlanMod, INRIA & EMN, Nantes - jordi.cabot@mines-nantes.fr
Patrick Albert – IBM - albertpa@fr.ibm.com
Philippe Bauquel – IBM - bauquel.p@fr.ibm.com
Jacques Perronnet – IBM - jacques_perronnet@fr.ibm.com




          A Model Driven Reverse Engineering
           framework for extracting business
              rules out of a Java application




                                                                                                       1

                          RuleML 2012, Montpellier, France – 29 August
                                                                                        © 2009 IBM Corporation
Outline

 Introduction
   – Context & problem
   – Example
   – Business rule extraction process
 Framework overview
   – Model discovery
   – Variable classification
   – Business rule identification
   – Business rule representation
 Conclusion & Future work




2                                       © 2009 IBM Corporation
Introduction - context & problem

 Context: every organization needs to periodically reevaluate and evolve
  its company policies enforced in its Information System (IS) by means of
  a set of business rules




3                                                                © 2009 IBM Corporation
Introduction - context & problem

 Context: every organization needs to periodically reevaluate and evolve
  its company policies enforced in its Information System (IS) by means of
  a set of business rules
 Business rule:
   – « Relevant action aiming at constraining some precise aspect of a
     business »
   – Key component for ISs




4                                                                © 2009 IBM Corporation
Introduction - context & problem

 Context: every organization needs to periodically reevaluate and evolve
  its company policies enforced in its Information System (IS) by means of
  a set of business rules
 Business rule:
   – « Relevant action aiming at constraining some precise aspect of a
     business »
   – Key component for ISs
 Problem: policies and rules must be aligned at all time, but in most of
  ISs business rules are scattered among the source code.




5                                                                  © 2009 IBM Corporation
Introduction - context & problem

 Context: every organization needs to periodically reevaluate and evolve
  its company policies enforced in its Information System (IS) by means of
  a set of business rules
 Business rule:
   – « Relevant action aiming at constraining some precise aspect of a
     business »
   – Key component for ISs
 Problem: policies and rules must be aligned at all time, but in most of
  ISs business rules are scattered among the source code.


Hard to find the business rules within the IS even for small application




6                                                                  © 2009 IBM Corporation
Introduction - context & problem

 Context: every organization needs to periodically reevaluate and evolve
  its company policies enforced in its Information System (IS) by means of
  a set of business rules
 Business rule:
   – « Relevant action aiming at constraining some precise aspect of a
     business »
   – Key component for ISs
 Problem: policies and rules must be aligned at all time, but in most of
  ISs business rules are scattered among the source code.


Hard to find the business rules within the IS even for small application
         Hard to evolve (quickly and safely) company policies



7                                                                  © 2009 IBM Corporation
We use as running example a small application representing the predator-
                         prey problem. The application simulates the behaviour of animals (foxes,
                         rabbits, birds) and humans (hunters) in a meadow.
                          Each actor animal or human can act and move according to its nature.
                         Two different functionalities are implemented in this application: one
Introduction - example   represents the business logic and describes how predator-prey interactions
                         affect the population size. The second one is used to store statistical
                         information about the actors participating in the simulation




8                                                                                                © 2009 IBM Corporation
Introduction - example




9                        © 2009 IBM Corporation
Introduction - example

 Rules modeling the application:
   – Hunters:
      
        Never die
      
        Hunt animals
   – Rabbits & Birds:
      
        Can die by being eaten by foxes, hunted by hunters, of
        starvation, old age or overcrowding
      
        Can breed when they reach their breeding age
      
        Eat grass
   – Foxes:
      
        Can die by being eaten by hunters, of starvation, old age or
        overcrowding
      
        Can breed when they reach their breeding age
      
        Eat rabbits and birds




10                                                               © 2009 IBM Corporation
Introduction - example

 Rules modeling the application:
   – Hunters:
      
        Never die
      
        Hunt animals
   – Rabbits & Birds:
      
        Can die by being eaten by foxes, hunted by hunters, of
        starvation, old age or overcrowding
      
        Can breed when they reach their breeding age
      
        Eat grass
   – Foxes:
      
        Can die by being eaten by hunters, of starvation, old age or
        overcrowding
      
        Can breed when they reach their breeding age
      
        Eat rabbits and birds




11                                                               © 2009 IBM Corporation
Introduction – example     rules are scattered in the source code




               old age




              starvation




12                                                                  © 2009 IBM Corporation
Introduction - example




          rabbit killed by a fox




13                                 © 2009 IBM Corporation
Introduction - example




        rabbit killed by a
             hunter




14                           © 2009 IBM Corporation
Introduction - example




                         overcrowding




15                                      © 2009 IBM Corporation
Introduction - business rule extraction process

 Business rule extraction (BREX) process:
   – Allows extracting business rules out of an IS, isolating the code
     segments which are directly related to business
   – Three major activities:
      
         Variable Classification → finds variables related to
         domain/business concepts and hintining at BRs
      
         Business rule identification → collects chunks of code related to
         the variables identified in the previous step
      
         Business rule representation → presents the extracted BRs by
         means of artifacts (graphs, textual representations, …)




16                                                                © 2009 IBM Corporation
Introduction - business rule extraction process

 Business rule extraction (BREX) process:
   – Allows extracting business rules out of an IS, isolating the code
     segments which are directly related to business
   – Three major activities:
      
         Variable Classification → finds variables related to
         domain/business concepts and hintining at BRs
      
         Business rule identification → collects chunks of code related to
         the variables identified in the previous step
      
         Business rule representation → presents the extracted BRs by
         means of artifacts (graphs, textual representations, …)

 Model Driven Engineering techniques:
   – Abstract & homogeneous representation
   – Modular solving process
   – Non-intrusive solution


17                                                                © 2009 IBM Corporation
Framework overview - model discovery
                   Modisco discovery component
                 (http://www.eclipse.org/MoDisco/)




 A new operation (Model Discovery) is added to the BRE process to
  move the problem from a grammarware technological space to the
  modelware one.
   – Input: source code
   – Output: platform specific model (PSM)




18                                                             © 2009 IBM Corporation
Framework overview - variable classification




 Variables Classification identifies the domain variables together with
  their containing classes
   – Input: PSM
   – Output: model containing all domain's classes and their inner
      variables




19                                                                 © 2009 IBM Corporation
Framework overview - variable classification
                               each link represents a type dependency.
                                               ex.: the link connecting Simulator and
                                               AnimatedView means that the class Simulator
                                               uses the type AnimatedView




20                                                                                           © 2009 IBM Corporation
Framework overview - variable classification
                                  the algorithm starts from the classes
                               containing a graphical import (awt, swing, ..)




21                                                                              © 2009 IBM Corporation
Framework overview - variable classification




                                          for each of those classes, a set of connected
                                                classes is calculated (recursively)




22                                                                           © 2009 IBM Corporation
Framework overview - variable classification




23                                             © 2009 IBM Corporation
Framework overview - variable classification
            the green set (business domain) contains the
            classes representing the logic modelling how
                  the actors act/interact each other




24                                                         © 2009 IBM Corporation
Framework overview - variable classification
            for the same application we may find several
                business domains (in blue the classes
                 related to the stats of the simulation)




25                                                         © 2009 IBM Corporation
Framework overview - variable classification - metamodel

 For each class in a group, its variables are classified in:
   – Single-access: class attributes occurring at most once on the left
     side of an assignment
   – Multi-access: class attributes occurring more than once on the left
     side of an assignment
   – Potentials: variables declarated in methods and occurring on the left
     side of an assignment




26                                                                © 2009 IBM Corporation
Framework overview - variable classification - metamodel

 For each class in a group, its variables are classified in:
   – Single-access: class attributes occurring at most once on the left
     side of an assignment
   – Multi-access: class attributes occurring more than once on the left
     side of an assignment
   – Potentials: variables declarated in methods and occurring on the left
     side of an assignment




     – Traceability: relates the classified variables to the source code
27                                                                    © 2009 IBM Corporation
Framework overview - business rule identification




28                                                  © 2009 IBM Corporation
Framework overview - business rule identification

 Domain model extraction:
   – Input: PSM, the domain variables model
   – Output:
       
         Model conforming to the Business Object Model/Vocabulary
         [BOM/VOC] metamodel of IBM WebSphere ILOG Jrules

     – Extracts method signatures and class attributes from the classes
       containing the domain variables identified in the variables
       classification step
     – Provides a default vocabulary for these entities to be reused in the
       description of the business rules
     – The user can tune the process and define its verbalization




29                                                                  © 2009 IBM Corporation
Framework overview - business rule identification

 Domain model extraction:




30                                                  © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i




31                                                             © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i (ex: alive)




32                                                             © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i
                                                                                A statement is marked as « Rule » if it modifies the value of the
                                                                                                          variable i




         Alive is the name of the variable we are slicing



                                                     Id to identify each business rule



                                                                                The granularity index is the distance of a statement from the statement
                                                                                                 that modifies the value of the variable i




33                                                                                                                                      © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i




                                 A method is marked as «Related» if it contains a rule statement




34                                                                                                 © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i




35                                                             © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i




                                     A statement containing a method invocation that allows reaching the
                                    statement that modifies the value of the variable i is annoted as «Rule»


36                                                                                                 © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i




37                                                             © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i




38                                                             © 2009 IBM Corporation
Framework overview - business rule identification

 Slicing operation:
   – Input: PSM, a variable i contained in the domain variables model
   – Output:
       
         PSM enriched with annotations (PSMA) on all the statements,
         variable declarations and methods relevant for i




39                                                             © 2009 IBM Corporation
Framework overview - business rule identification




40                                                  © 2009 IBM Corporation
Framework overview - business rule identification




41                                                  © 2009 IBM Corporation
Framework overview - business rule identification




                                     A variable declaration is marked as «RELATED-VARIABLE»
                                         if it is used inside a «Related» or «Rule» statement.




42                                                                                 © 2009 IBM Corporation
Framework overview - business rule Aidentification if one of its invocations occurs
                                     method is annotated as «Reachable»
                                                  in a «Related» statement or in another «Reachable» method.




43                                                                                            © 2009 IBM Corporation
Framework overview - business rule identification




44                                                  © 2009 IBM Corporation
Framework overview - business rule identification




                                    This attribute defines the distance from the method containing the
                                                             «Rule» statement




45                                                                                     © 2009 IBM Corporation
Framework overview - business rule identification




46                                                  © 2009 IBM Corporation
Framework overview - business rule identification




47                                                  © 2009 IBM Corporation
Framework overview - business rule identification




48                                                  © 2009 IBM Corporation
Framework overview - business rule identification




49                                                  © 2009 IBM Corporation
Framework overview - business rule identification




50                                                  © 2009 IBM Corporation
Framework overview - business rule identification




51                                                  © 2009 IBM Corporation
Framework overview - business rule identification




                                          the slicing generates annotations even for the
                                               classes outside the business domain




52                                                                          © 2009 IBM Corporation
Framework overview - business rule identification

 Business rules model extraction:




     once the slicing operation is over, two options are
     proposed:
     1 - regenerating the application putting as comments
     the slicing annotations
     2 – executing the business rules model extraction,
     reducing the slicing information just for the classes
     inside the business domain (green or blue set)




53                                                           © 2009 IBM Corporation
Framework overview - business rule identification

 Business rules model extraction:
     – Input: Domain model and PSM enriched with annotations (PSMA) on
       all the statements, variable declarations and methods relevant for i
     – Output:
         
            Business rule model for the variable i

     – PSMA contains information of classes outside the business domain.
       The domain model is used to exclude them




54                                                                © 2009 IBM Corporation
Framework overview - business rule identification

 Classes related to the variable alive:




55                                                  © 2009 IBM Corporation
Framework overview - business rule identification

 Classes outside the domain:




56                                                  © 2009 IBM Corporation
Framework overview - business rule identification

 Classes inside the domain:




57                                                  © 2009 IBM Corporation
Framework overview - business rule identification

 Intersection with the domain classes:




58                                                  © 2009 IBM Corporation
Framework overview - business rule identification - metamodel



                                                                             ReachableMethod represents
                                                                                methods annotated as
                                                                                   « Reachable »
          Action represents the
        statements annotated as
                « Rule »



           Structure represents the
           statements annotated as
                 « Related »




                                      following and follower represent the
                                                granularity value




                                                                             RelatedVariable represents
                                                                                Variable Declaration
                                                                             annotated as « RELATED-
                                                                                    VARIABLE »


59                                                                                     © 2009 IBM Corporation
Framework overview - business rule identification - metamodel
       all the elements of this metamodel are Traces, that
       means that for each of them we know exactly the
       relative Java source code element.
       In this way we implement the traceability of the
       extracted business rules




60                                                           © 2009 IBM Corporation
Framework overview                         2 kind of representation are
                                           provided (text or graph) and for
                                           each of them the domain model
                                           vocabulary can be used

 Business rules representation:




 Business rules representation provides human-understandable artifacts
  (text and graph) for the extracted BRs.
    – Input: domain model (optional), business rule model-i
    – Output: text or graph




61                                                                            © 2009 IBM Corporation
Framework overview   text representation without model
                      domain vocabulary information




 Text:




62                                                       © 2009 IBM Corporation
Framework overview   graph representation with model
                      domain vocabulary information




 Graph:




63                                                     © 2009 IBM Corporation
Conclusion & Future work

 MDE benefits:
   – Non-intrusive approach
   – Modular framework
   – Internal/external representation of BRs
   – Traceability
 Test on a real use case:
     – IBM Rational Programming Patterns :
         
           > 5000 classes, 476 system variables
         
           Variable classification step improved with new heuristics
         
           Optimization of the slicing operation
 Future works:
     – Extend the framework to other languages
     – Identify BRs in the other layers composing an application



64                                                                     © 2009 IBM Corporation
Questions




65          © 2009 IBM Corporation

Más contenido relacionado

La actualidad más candente

Moving 5.4 to 7.1 AB
Moving 5.4 to 7.1 ABMoving 5.4 to 7.1 AB
Moving 5.4 to 7.1 ABCOMMON Europe
 
Paris Java User Group : Enabling Agile Business and IT Collaboration
Paris Java User Group : Enabling Agile Business  and IT CollaborationParis Java User Group : Enabling Agile Business  and IT Collaboration
Paris Java User Group : Enabling Agile Business and IT CollaborationDan Selman
 
S200743 storage-announcements-ist2020-v2001a
S200743 storage-announcements-ist2020-v2001aS200743 storage-announcements-ist2020-v2001a
S200743 storage-announcements-ist2020-v2001aTony Pearson
 
Stand and deliver bpm v4
Stand and deliver   bpm v4Stand and deliver   bpm v4
Stand and deliver bpm v4David Cabassa
 
Warsaw Seminar Diem Ho 2
Warsaw Seminar Diem Ho 2Warsaw Seminar Diem Ho 2
Warsaw Seminar Diem Ho 2Youth Agora
 
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...Dan Selman
 
Swot analysis ibm
Swot analysis ibmSwot analysis ibm
Swot analysis ibmTrack Works
 
IBM i and digital transformation
IBM i and digital transformationIBM i and digital transformation
IBM i and digital transformationGerard Suren
 
IBM i Trends & Directions Common Europe 2012
IBM i Trends & Directions Common Europe 2012IBM i Trends & Directions Common Europe 2012
IBM i Trends & Directions Common Europe 2012COMMON Europe
 
IBM PowerNet Marketing Material
IBM PowerNet Marketing MaterialIBM PowerNet Marketing Material
IBM PowerNet Marketing MaterialWill Scott
 
Move up to POWER7 and IBM i 7, IBM Power Event
Move up to POWER7 and IBM i 7, IBM Power EventMove up to POWER7 and IBM i 7, IBM Power Event
Move up to POWER7 and IBM i 7, IBM Power EventIBM Danmark
 
z/VSE Connectors Introduction, Use Cases, and News
z/VSE Connectors Introduction, Use Cases, and Newsz/VSE Connectors Introduction, Use Cases, and News
z/VSE Connectors Introduction, Use Cases, and NewsIBM
 
z/VSE Networking Options and News
z/VSE Networking Options and Newsz/VSE Networking Options and News
z/VSE Networking Options and NewsIBM
 
Smarter Computing: Expert Integrated System
Smarter Computing: Expert Integrated SystemSmarter Computing: Expert Integrated System
Smarter Computing: Expert Integrated SystemIBM Danmark
 

La actualidad más candente (16)

Top brand ibm
Top brand ibmTop brand ibm
Top brand ibm
 
Moving 5.4 to 7.1 AB
Moving 5.4 to 7.1 ABMoving 5.4 to 7.1 AB
Moving 5.4 to 7.1 AB
 
Paris Java User Group : Enabling Agile Business and IT Collaboration
Paris Java User Group : Enabling Agile Business  and IT CollaborationParis Java User Group : Enabling Agile Business  and IT Collaboration
Paris Java User Group : Enabling Agile Business and IT Collaboration
 
S200743 storage-announcements-ist2020-v2001a
S200743 storage-announcements-ist2020-v2001aS200743 storage-announcements-ist2020-v2001a
S200743 storage-announcements-ist2020-v2001a
 
Stand and deliver bpm v4
Stand and deliver   bpm v4Stand and deliver   bpm v4
Stand and deliver bpm v4
 
Warsaw Seminar Diem Ho 2
Warsaw Seminar Diem Ho 2Warsaw Seminar Diem Ho 2
Warsaw Seminar Diem Ho 2
 
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
 
Swot analysis ibm
Swot analysis ibmSwot analysis ibm
Swot analysis ibm
 
IBM i and digital transformation
IBM i and digital transformationIBM i and digital transformation
IBM i and digital transformation
 
IBM i Trends & Directions Common Europe 2012
IBM i Trends & Directions Common Europe 2012IBM i Trends & Directions Common Europe 2012
IBM i Trends & Directions Common Europe 2012
 
IBM PowerNet Marketing Material
IBM PowerNet Marketing MaterialIBM PowerNet Marketing Material
IBM PowerNet Marketing Material
 
Move up to POWER7 and IBM i 7, IBM Power Event
Move up to POWER7 and IBM i 7, IBM Power EventMove up to POWER7 and IBM i 7, IBM Power Event
Move up to POWER7 and IBM i 7, IBM Power Event
 
z/VSE Connectors Introduction, Use Cases, and News
z/VSE Connectors Introduction, Use Cases, and Newsz/VSE Connectors Introduction, Use Cases, and News
z/VSE Connectors Introduction, Use Cases, and News
 
z/VSE Networking Options and News
z/VSE Networking Options and Newsz/VSE Networking Options and News
z/VSE Networking Options and News
 
Smarter Computing: Expert Integrated System
Smarter Computing: Expert Integrated SystemSmarter Computing: Expert Integrated System
Smarter Computing: Expert Integrated System
 
What is the latest from the IBM OMEGAMON portfolio?
What is the latest from the IBM OMEGAMON portfolio?What is the latest from the IBM OMEGAMON portfolio?
What is the latest from the IBM OMEGAMON portfolio?
 

Similar a IBM Model Driven Reverse Engineering Framework

From COBOL to Models: an MDE framework to extract business logic out of legac...
From COBOL to Models: an MDE framework to extract business logic out of legac...From COBOL to Models: an MDE framework to extract business logic out of legac...
From COBOL to Models: an MDE framework to extract business logic out of legac...Jordi Cabot
 
NRB MAINFRAME DAY 04 - Yann Kindelberger - New generation of application arch...
NRB MAINFRAME DAY 04 - Yann Kindelberger - New generation of application arch...NRB MAINFRAME DAY 04 - Yann Kindelberger - New generation of application arch...
NRB MAINFRAME DAY 04 - Yann Kindelberger - New generation of application arch...NRB
 
Continuous Deployment for Deep Learning
Continuous Deployment for Deep LearningContinuous Deployment for Deep Learning
Continuous Deployment for Deep LearningDatabricks
 
Improving Defence Program Execution
Improving Defence Program ExecutionImproving Defence Program Execution
Improving Defence Program ExecutionIBMGovernmentCA
 
IBM Cloud Private and IBM Power Systems: Overview and Real-World Scenarios
IBM Cloud Private and IBM Power Systems: Overview and Real-World ScenariosIBM Cloud Private and IBM Power Systems: Overview and Real-World Scenarios
IBM Cloud Private and IBM Power Systems: Overview and Real-World ScenariosJoe Cropper
 
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...William Holmes
 
Unisanta - Visão Geral de hardware Servidor IBM System z
Unisanta - Visão Geral de hardware Servidor IBM System zUnisanta - Visão Geral de hardware Servidor IBM System z
Unisanta - Visão Geral de hardware Servidor IBM System zAnderson Bassani
 
zEnterpise integration of Linux and traditional workload
zEnterpise integration of Linux and traditional workloadzEnterpise integration of Linux and traditional workload
zEnterpise integration of Linux and traditional workloadIBM India Smarter Computing
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...Carl Tyler
 
Convergências, Integração e Desempenho no IBM System z Enterprise
Convergências, Integração e Desempenho no IBM System z Enterprise Convergências, Integração e Desempenho no IBM System z Enterprise
Convergências, Integração e Desempenho no IBM System z Enterprise Impacta Eventos
 
Ds roi tc_world
Ds roi tc_worldDs roi tc_world
Ds roi tc_worldvsrtwin
 
O leary2012 comp_ppt_ch05
O leary2012 comp_ppt_ch05O leary2012 comp_ppt_ch05
O leary2012 comp_ppt_ch05Dalia Saeed
 
Ria Event Lisbon Jan 2010
Ria Event Lisbon Jan 2010Ria Event Lisbon Jan 2010
Ria Event Lisbon Jan 2010joaogoncalves
 
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...SocialBiz UserGroup
 
Become an IBM Cloud Architect in 40 Minutes
Become an IBM Cloud Architect in 40 MinutesBecome an IBM Cloud Architect in 40 Minutes
Become an IBM Cloud Architect in 40 MinutesAndrew Ferrier
 
IBM - Lotusphere 2012: Messaging and Collaboration Strategy
IBM - Lotusphere 2012: Messaging and Collaboration StrategyIBM - Lotusphere 2012: Messaging and Collaboration Strategy
IBM - Lotusphere 2012: Messaging and Collaboration StrategyEd Brill
 
Deploying End-to-End Deep Learning Pipelines with ONNX
Deploying End-to-End Deep Learning Pipelines with ONNXDeploying End-to-End Deep Learning Pipelines with ONNX
Deploying End-to-End Deep Learning Pipelines with ONNXDatabricks
 
IBM z/VSE V4.3 in modern solutions with Linux on System z
IBM z/VSE V4.3 in modern solutions with Linux on System zIBM z/VSE V4.3 in modern solutions with Linux on System z
IBM z/VSE V4.3 in modern solutions with Linux on System zIBM India Smarter Computing
 
Relatório Anual IBM 2013 v1
Relatório Anual IBM 2013 v1Relatório Anual IBM 2013 v1
Relatório Anual IBM 2013 v1Anderson Bassani
 

Similar a IBM Model Driven Reverse Engineering Framework (20)

From COBOL to Models: an MDE framework to extract business logic out of legac...
From COBOL to Models: an MDE framework to extract business logic out of legac...From COBOL to Models: an MDE framework to extract business logic out of legac...
From COBOL to Models: an MDE framework to extract business logic out of legac...
 
NRB MAINFRAME DAY 04 - Yann Kindelberger - New generation of application arch...
NRB MAINFRAME DAY 04 - Yann Kindelberger - New generation of application arch...NRB MAINFRAME DAY 04 - Yann Kindelberger - New generation of application arch...
NRB MAINFRAME DAY 04 - Yann Kindelberger - New generation of application arch...
 
Continuous Deployment for Deep Learning
Continuous Deployment for Deep LearningContinuous Deployment for Deep Learning
Continuous Deployment for Deep Learning
 
Improving Defence Program Execution
Improving Defence Program ExecutionImproving Defence Program Execution
Improving Defence Program Execution
 
IBM Cloud Private and IBM Power Systems: Overview and Real-World Scenarios
IBM Cloud Private and IBM Power Systems: Overview and Real-World ScenariosIBM Cloud Private and IBM Power Systems: Overview and Real-World Scenarios
IBM Cloud Private and IBM Power Systems: Overview and Real-World Scenarios
 
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
 
Unisanta - Visão Geral de hardware Servidor IBM System z
Unisanta - Visão Geral de hardware Servidor IBM System zUnisanta - Visão Geral de hardware Servidor IBM System z
Unisanta - Visão Geral de hardware Servidor IBM System z
 
Breaking down the Monowhat
Breaking down the MonowhatBreaking down the Monowhat
Breaking down the Monowhat
 
zEnterpise integration of Linux and traditional workload
zEnterpise integration of Linux and traditional workloadzEnterpise integration of Linux and traditional workload
zEnterpise integration of Linux and traditional workload
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
 
Convergências, Integração e Desempenho no IBM System z Enterprise
Convergências, Integração e Desempenho no IBM System z Enterprise Convergências, Integração e Desempenho no IBM System z Enterprise
Convergências, Integração e Desempenho no IBM System z Enterprise
 
Ds roi tc_world
Ds roi tc_worldDs roi tc_world
Ds roi tc_world
 
O leary2012 comp_ppt_ch05
O leary2012 comp_ppt_ch05O leary2012 comp_ppt_ch05
O leary2012 comp_ppt_ch05
 
Ria Event Lisbon Jan 2010
Ria Event Lisbon Jan 2010Ria Event Lisbon Jan 2010
Ria Event Lisbon Jan 2010
 
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...
 
Become an IBM Cloud Architect in 40 Minutes
Become an IBM Cloud Architect in 40 MinutesBecome an IBM Cloud Architect in 40 Minutes
Become an IBM Cloud Architect in 40 Minutes
 
IBM - Lotusphere 2012: Messaging and Collaboration Strategy
IBM - Lotusphere 2012: Messaging and Collaboration StrategyIBM - Lotusphere 2012: Messaging and Collaboration Strategy
IBM - Lotusphere 2012: Messaging and Collaboration Strategy
 
Deploying End-to-End Deep Learning Pipelines with ONNX
Deploying End-to-End Deep Learning Pipelines with ONNXDeploying End-to-End Deep Learning Pipelines with ONNX
Deploying End-to-End Deep Learning Pipelines with ONNX
 
IBM z/VSE V4.3 in modern solutions with Linux on System z
IBM z/VSE V4.3 in modern solutions with Linux on System zIBM z/VSE V4.3 in modern solutions with Linux on System z
IBM z/VSE V4.3 in modern solutions with Linux on System z
 
Relatório Anual IBM 2013 v1
Relatório Anual IBM 2013 v1Relatório Anual IBM 2013 v1
Relatório Anual IBM 2013 v1
 

Más de Valerio Cosentino

Tracking counterfeiting on the web with python and ml
Tracking counterfeiting on the web with python and mlTracking counterfeiting on the web with python and ml
Tracking counterfeiting on the web with python and mlValerio Cosentino
 
GrimoireLab: Measuring the health of your software project with Python
GrimoireLab: Measuring the health of your software project with PythonGrimoireLab: Measuring the health of your software project with Python
GrimoireLab: Measuring the health of your software project with PythonValerio Cosentino
 
Perceval, Graal and Arthur: The Quest for Software Project Data
Perceval, Graal and Arthur: The Quest for Software Project DataPerceval, Graal and Arthur: The Quest for Software Project Data
Perceval, Graal and Arthur: The Quest for Software Project DataValerio Cosentino
 
SortingHat: Wizardry on Software Project Members
SortingHat: Wizardry on Software Project MembersSortingHat: Wizardry on Software Project Members
SortingHat: Wizardry on Software Project MembersValerio Cosentino
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLabValerio Cosentino
 
Graal The Quest for Source Code Knowledge
Graal  The Quest for Source Code KnowledgeGraal  The Quest for Source Code Knowledge
Graal The Quest for Source Code KnowledgeValerio Cosentino
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLabValerio Cosentino
 
Perceval: Software Project Data at Your Will
Perceval: Software Project Data at Your WillPerceval: Software Project Data at Your Will
Perceval: Software Project Data at Your WillValerio Cosentino
 
A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...
A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...
A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...Valerio Cosentino
 
Gitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository InspectorGitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository InspectorValerio Cosentino
 
Assessing the Bus Factor of Git Repositories
Assessing the Bus Factor of Git RepositoriesAssessing the Bus Factor of Git Repositories
Assessing the Bus Factor of Git RepositoriesValerio Cosentino
 
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIsA Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIsValerio Cosentino
 
Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...
Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...
Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...Valerio Cosentino
 

Más de Valerio Cosentino (18)

Tracking counterfeiting on the web with python and ml
Tracking counterfeiting on the web with python and mlTracking counterfeiting on the web with python and ml
Tracking counterfeiting on the web with python and ml
 
GrimoireLab: Measuring the health of your software project with Python
GrimoireLab: Measuring the health of your software project with PythonGrimoireLab: Measuring the health of your software project with Python
GrimoireLab: Measuring the health of your software project with Python
 
Perceval, Graal and Arthur: The Quest for Software Project Data
Perceval, Graal and Arthur: The Quest for Software Project DataPerceval, Graal and Arthur: The Quest for Software Project Data
Perceval, Graal and Arthur: The Quest for Software Project Data
 
Gamification oss
Gamification ossGamification oss
Gamification oss
 
SortingHat: Wizardry on Software Project Members
SortingHat: Wizardry on Software Project MembersSortingHat: Wizardry on Software Project Members
SortingHat: Wizardry on Software Project Members
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLab
 
Graal The Quest for Source Code Knowledge
Graal  The Quest for Source Code KnowledgeGraal  The Quest for Source Code Knowledge
Graal The Quest for Source Code Knowledge
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLab
 
Crossminer and GrimoireLab
Crossminer and GrimoireLabCrossminer and GrimoireLab
Crossminer and GrimoireLab
 
Perceval: Software Project Data at Your Will
Perceval: Software Project Data at Your WillPerceval: Software Project Data at Your Will
Perceval: Software Project Data at Your Will
 
Extending grimoirelab
Extending grimoirelabExtending grimoirelab
Extending grimoirelab
 
Perceval
PercevalPerceval
Perceval
 
Gamification pres-scme-2017
Gamification pres-scme-2017Gamification pres-scme-2017
Gamification pres-scme-2017
 
A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...
A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...
A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...
 
Gitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository InspectorGitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository Inspector
 
Assessing the Bus Factor of Git Repositories
Assessing the Bus Factor of Git RepositoriesAssessing the Bus Factor of Git Repositories
Assessing the Bus Factor of Git Repositories
 
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIsA Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
 
Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...
Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...
Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...
 

Último

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Último (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

IBM Model Driven Reverse Engineering Framework

  • 1. Valerio Cosentino - IBM, AtlanMod, INRIA & EMN, Nantes - valerio.cosentino@fr.ibm.com Jordi Cabot - AtlanMod, INRIA & EMN, Nantes - jordi.cabot@mines-nantes.fr Patrick Albert – IBM - albertpa@fr.ibm.com Philippe Bauquel – IBM - bauquel.p@fr.ibm.com Jacques Perronnet – IBM - jacques_perronnet@fr.ibm.com A Model Driven Reverse Engineering framework for extracting business rules out of a Java application 1 RuleML 2012, Montpellier, France – 29 August © 2009 IBM Corporation
  • 2. Outline  Introduction – Context & problem – Example – Business rule extraction process  Framework overview – Model discovery – Variable classification – Business rule identification – Business rule representation  Conclusion & Future work 2 © 2009 IBM Corporation
  • 3. Introduction - context & problem  Context: every organization needs to periodically reevaluate and evolve its company policies enforced in its Information System (IS) by means of a set of business rules 3 © 2009 IBM Corporation
  • 4. Introduction - context & problem  Context: every organization needs to periodically reevaluate and evolve its company policies enforced in its Information System (IS) by means of a set of business rules  Business rule: – « Relevant action aiming at constraining some precise aspect of a business » – Key component for ISs 4 © 2009 IBM Corporation
  • 5. Introduction - context & problem  Context: every organization needs to periodically reevaluate and evolve its company policies enforced in its Information System (IS) by means of a set of business rules  Business rule: – « Relevant action aiming at constraining some precise aspect of a business » – Key component for ISs  Problem: policies and rules must be aligned at all time, but in most of ISs business rules are scattered among the source code. 5 © 2009 IBM Corporation
  • 6. Introduction - context & problem  Context: every organization needs to periodically reevaluate and evolve its company policies enforced in its Information System (IS) by means of a set of business rules  Business rule: – « Relevant action aiming at constraining some precise aspect of a business » – Key component for ISs  Problem: policies and rules must be aligned at all time, but in most of ISs business rules are scattered among the source code. Hard to find the business rules within the IS even for small application 6 © 2009 IBM Corporation
  • 7. Introduction - context & problem  Context: every organization needs to periodically reevaluate and evolve its company policies enforced in its Information System (IS) by means of a set of business rules  Business rule: – « Relevant action aiming at constraining some precise aspect of a business » – Key component for ISs  Problem: policies and rules must be aligned at all time, but in most of ISs business rules are scattered among the source code. Hard to find the business rules within the IS even for small application Hard to evolve (quickly and safely) company policies 7 © 2009 IBM Corporation
  • 8. We use as running example a small application representing the predator- prey problem. The application simulates the behaviour of animals (foxes, rabbits, birds) and humans (hunters) in a meadow. Each actor animal or human can act and move according to its nature. Two different functionalities are implemented in this application: one Introduction - example represents the business logic and describes how predator-prey interactions affect the population size. The second one is used to store statistical information about the actors participating in the simulation 8 © 2009 IBM Corporation
  • 9. Introduction - example 9 © 2009 IBM Corporation
  • 10. Introduction - example  Rules modeling the application: – Hunters:  Never die  Hunt animals – Rabbits & Birds:  Can die by being eaten by foxes, hunted by hunters, of starvation, old age or overcrowding  Can breed when they reach their breeding age  Eat grass – Foxes:  Can die by being eaten by hunters, of starvation, old age or overcrowding  Can breed when they reach their breeding age  Eat rabbits and birds 10 © 2009 IBM Corporation
  • 11. Introduction - example  Rules modeling the application: – Hunters:  Never die  Hunt animals – Rabbits & Birds:  Can die by being eaten by foxes, hunted by hunters, of starvation, old age or overcrowding  Can breed when they reach their breeding age  Eat grass – Foxes:  Can die by being eaten by hunters, of starvation, old age or overcrowding  Can breed when they reach their breeding age  Eat rabbits and birds 11 © 2009 IBM Corporation
  • 12. Introduction – example rules are scattered in the source code old age starvation 12 © 2009 IBM Corporation
  • 13. Introduction - example rabbit killed by a fox 13 © 2009 IBM Corporation
  • 14. Introduction - example rabbit killed by a hunter 14 © 2009 IBM Corporation
  • 15. Introduction - example overcrowding 15 © 2009 IBM Corporation
  • 16. Introduction - business rule extraction process  Business rule extraction (BREX) process: – Allows extracting business rules out of an IS, isolating the code segments which are directly related to business – Three major activities:  Variable Classification → finds variables related to domain/business concepts and hintining at BRs  Business rule identification → collects chunks of code related to the variables identified in the previous step  Business rule representation → presents the extracted BRs by means of artifacts (graphs, textual representations, …) 16 © 2009 IBM Corporation
  • 17. Introduction - business rule extraction process  Business rule extraction (BREX) process: – Allows extracting business rules out of an IS, isolating the code segments which are directly related to business – Three major activities:  Variable Classification → finds variables related to domain/business concepts and hintining at BRs  Business rule identification → collects chunks of code related to the variables identified in the previous step  Business rule representation → presents the extracted BRs by means of artifacts (graphs, textual representations, …)  Model Driven Engineering techniques: – Abstract & homogeneous representation – Modular solving process – Non-intrusive solution 17 © 2009 IBM Corporation
  • 18. Framework overview - model discovery Modisco discovery component (http://www.eclipse.org/MoDisco/)  A new operation (Model Discovery) is added to the BRE process to move the problem from a grammarware technological space to the modelware one. – Input: source code – Output: platform specific model (PSM) 18 © 2009 IBM Corporation
  • 19. Framework overview - variable classification  Variables Classification identifies the domain variables together with their containing classes – Input: PSM – Output: model containing all domain's classes and their inner variables 19 © 2009 IBM Corporation
  • 20. Framework overview - variable classification each link represents a type dependency. ex.: the link connecting Simulator and AnimatedView means that the class Simulator uses the type AnimatedView 20 © 2009 IBM Corporation
  • 21. Framework overview - variable classification the algorithm starts from the classes containing a graphical import (awt, swing, ..) 21 © 2009 IBM Corporation
  • 22. Framework overview - variable classification for each of those classes, a set of connected classes is calculated (recursively) 22 © 2009 IBM Corporation
  • 23. Framework overview - variable classification 23 © 2009 IBM Corporation
  • 24. Framework overview - variable classification the green set (business domain) contains the classes representing the logic modelling how the actors act/interact each other 24 © 2009 IBM Corporation
  • 25. Framework overview - variable classification for the same application we may find several business domains (in blue the classes related to the stats of the simulation) 25 © 2009 IBM Corporation
  • 26. Framework overview - variable classification - metamodel  For each class in a group, its variables are classified in: – Single-access: class attributes occurring at most once on the left side of an assignment – Multi-access: class attributes occurring more than once on the left side of an assignment – Potentials: variables declarated in methods and occurring on the left side of an assignment 26 © 2009 IBM Corporation
  • 27. Framework overview - variable classification - metamodel  For each class in a group, its variables are classified in: – Single-access: class attributes occurring at most once on the left side of an assignment – Multi-access: class attributes occurring more than once on the left side of an assignment – Potentials: variables declarated in methods and occurring on the left side of an assignment – Traceability: relates the classified variables to the source code 27 © 2009 IBM Corporation
  • 28. Framework overview - business rule identification 28 © 2009 IBM Corporation
  • 29. Framework overview - business rule identification  Domain model extraction: – Input: PSM, the domain variables model – Output:  Model conforming to the Business Object Model/Vocabulary [BOM/VOC] metamodel of IBM WebSphere ILOG Jrules – Extracts method signatures and class attributes from the classes containing the domain variables identified in the variables classification step – Provides a default vocabulary for these entities to be reused in the description of the business rules – The user can tune the process and define its verbalization 29 © 2009 IBM Corporation
  • 30. Framework overview - business rule identification  Domain model extraction: 30 © 2009 IBM Corporation
  • 31. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i 31 © 2009 IBM Corporation
  • 32. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i (ex: alive) 32 © 2009 IBM Corporation
  • 33. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i A statement is marked as « Rule » if it modifies the value of the variable i Alive is the name of the variable we are slicing Id to identify each business rule The granularity index is the distance of a statement from the statement that modifies the value of the variable i 33 © 2009 IBM Corporation
  • 34. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i A method is marked as «Related» if it contains a rule statement 34 © 2009 IBM Corporation
  • 35. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i 35 © 2009 IBM Corporation
  • 36. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i A statement containing a method invocation that allows reaching the statement that modifies the value of the variable i is annoted as «Rule» 36 © 2009 IBM Corporation
  • 37. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i 37 © 2009 IBM Corporation
  • 38. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i 38 © 2009 IBM Corporation
  • 39. Framework overview - business rule identification  Slicing operation: – Input: PSM, a variable i contained in the domain variables model – Output:  PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i 39 © 2009 IBM Corporation
  • 40. Framework overview - business rule identification 40 © 2009 IBM Corporation
  • 41. Framework overview - business rule identification 41 © 2009 IBM Corporation
  • 42. Framework overview - business rule identification A variable declaration is marked as «RELATED-VARIABLE» if it is used inside a «Related» or «Rule» statement. 42 © 2009 IBM Corporation
  • 43. Framework overview - business rule Aidentification if one of its invocations occurs method is annotated as «Reachable» in a «Related» statement or in another «Reachable» method. 43 © 2009 IBM Corporation
  • 44. Framework overview - business rule identification 44 © 2009 IBM Corporation
  • 45. Framework overview - business rule identification This attribute defines the distance from the method containing the «Rule» statement 45 © 2009 IBM Corporation
  • 46. Framework overview - business rule identification 46 © 2009 IBM Corporation
  • 47. Framework overview - business rule identification 47 © 2009 IBM Corporation
  • 48. Framework overview - business rule identification 48 © 2009 IBM Corporation
  • 49. Framework overview - business rule identification 49 © 2009 IBM Corporation
  • 50. Framework overview - business rule identification 50 © 2009 IBM Corporation
  • 51. Framework overview - business rule identification 51 © 2009 IBM Corporation
  • 52. Framework overview - business rule identification the slicing generates annotations even for the classes outside the business domain 52 © 2009 IBM Corporation
  • 53. Framework overview - business rule identification  Business rules model extraction: once the slicing operation is over, two options are proposed: 1 - regenerating the application putting as comments the slicing annotations 2 – executing the business rules model extraction, reducing the slicing information just for the classes inside the business domain (green or blue set) 53 © 2009 IBM Corporation
  • 54. Framework overview - business rule identification  Business rules model extraction: – Input: Domain model and PSM enriched with annotations (PSMA) on all the statements, variable declarations and methods relevant for i – Output:  Business rule model for the variable i – PSMA contains information of classes outside the business domain. The domain model is used to exclude them 54 © 2009 IBM Corporation
  • 55. Framework overview - business rule identification  Classes related to the variable alive: 55 © 2009 IBM Corporation
  • 56. Framework overview - business rule identification  Classes outside the domain: 56 © 2009 IBM Corporation
  • 57. Framework overview - business rule identification  Classes inside the domain: 57 © 2009 IBM Corporation
  • 58. Framework overview - business rule identification  Intersection with the domain classes: 58 © 2009 IBM Corporation
  • 59. Framework overview - business rule identification - metamodel ReachableMethod represents methods annotated as « Reachable » Action represents the statements annotated as « Rule » Structure represents the statements annotated as « Related » following and follower represent the granularity value RelatedVariable represents Variable Declaration annotated as « RELATED- VARIABLE » 59 © 2009 IBM Corporation
  • 60. Framework overview - business rule identification - metamodel all the elements of this metamodel are Traces, that means that for each of them we know exactly the relative Java source code element. In this way we implement the traceability of the extracted business rules 60 © 2009 IBM Corporation
  • 61. Framework overview 2 kind of representation are provided (text or graph) and for each of them the domain model vocabulary can be used  Business rules representation:  Business rules representation provides human-understandable artifacts (text and graph) for the extracted BRs. – Input: domain model (optional), business rule model-i – Output: text or graph 61 © 2009 IBM Corporation
  • 62. Framework overview text representation without model domain vocabulary information  Text: 62 © 2009 IBM Corporation
  • 63. Framework overview graph representation with model domain vocabulary information  Graph: 63 © 2009 IBM Corporation
  • 64. Conclusion & Future work  MDE benefits: – Non-intrusive approach – Modular framework – Internal/external representation of BRs – Traceability  Test on a real use case: – IBM Rational Programming Patterns :  > 5000 classes, 476 system variables  Variable classification step improved with new heuristics  Optimization of the slicing operation  Future works: – Extend the framework to other languages – Identify BRs in the other layers composing an application 64 © 2009 IBM Corporation
  • 65. Questions 65 © 2009 IBM Corporation