Mais conteúdo relacionado Semelhante a A Model Driven Reverse Engineering framework for extracting business rules out of a Java application (20) Mais de Valerio Cosentino (18) A Model Driven Reverse Engineering framework for extracting business rules out of a Java application1. 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
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
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
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
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
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
45. Framework overview - business rule identification
This attribute defines the distance from the method containing the
«Rule» statement
45 © 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