Upload
adrian-giurca
View
678
Download
0
Tags:
Embed Size (px)
Citation preview
1
© 2009 IBM Corporation
A Model Driven Reverse Engineering framework for extracting business
rules out of a Java application
Valerio Cosentino - IBM, AtlanMod, INRIA & EMN, Nantes - [email protected] Cabot - AtlanMod, INRIA & EMN, Nantes - [email protected] Albert – IBM - [email protected] Bauquel – IBM - [email protected] Perronnet – IBM - [email protected]
RuleML 2012, Montpellier, France – 29 August
2 © 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
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
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
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.
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
7 © 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 applicationHard to evolve (quickly and safely) company policies
8 © 2009 IBM Corporation
Introduction - example
9 © 2009 IBM Corporation
Introduction - example
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 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
12 © 2009 IBM Corporation
Introduction – example
13 © 2009 IBM Corporation
Introduction - example
14 © 2009 IBM Corporation
Introduction - example
15 © 2009 IBM Corporation
Introduction - example
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, …)
17 © 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
18 © 2009 IBM Corporation
Framework overview - model discovery
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)
19 © 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
20 © 2009 IBM Corporation
Framework overview - variable classification
21 © 2009 IBM Corporation
Framework overview - variable classification
22 © 2009 IBM Corporation
Framework overview - variable classification
23 © 2009 IBM Corporation
Framework overview - variable classification
24 © 2009 IBM Corporation
Framework overview - variable classification
25 © 2009 IBM Corporation
Framework overview - variable classification
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
27 © 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
28 © 2009 IBM Corporation
Framework overview - business rule identification
29 © 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
30 © 2009 IBM Corporation
Framework overview - business rule identification
Domain model extraction:
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
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 (ex: alive)
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
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
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
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
40 © 2009 IBM Corporation
Framework overview - business rule identification
41 © 2009 IBM Corporation
Framework overview - business rule identification
42 © 2009 IBM Corporation
Framework overview - business rule identification
43 © 2009 IBM Corporation
Framework overview - business rule identification
44 © 2009 IBM Corporation
Framework overview - business rule identification
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
52 © 2009 IBM Corporation
Framework overview - business rule identification
53 © 2009 IBM Corporation
Framework overview - business rule identification
Business rules model extraction:
54 © 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
55 © 2009 IBM Corporation
Framework overview - business rule identification
Classes related to the variable alive:
56 © 2009 IBM Corporation
Framework overview - business rule identification
Classes outside the domain:
57 © 2009 IBM Corporation
Framework overview - business rule identification
Classes inside the domain:
58 © 2009 IBM Corporation
Framework overview - business rule identification
Intersection with the domain classes:
59 © 2009 IBM Corporation
Framework overview - business rule identification - metamodel
60 © 2009 IBM Corporation
Framework overview - business rule identification - metamodel
61 © 2009 IBM Corporation
Framework overview
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
62 © 2009 IBM Corporation
Framework overview
Text:
63 © 2009 IBM Corporation
Framework overview
Graph:
64 © 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
– Rational Programming Patterns :
65 © 2009 IBM Corporation
Questions