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

Post on 11-May-2015

687 views 2 download

Tags:

description

This work has been presented in RuleML Symposium held in conjunction with ECAI 2012, the 20th biennial European Conference on Artificial Intelligence , in Montpellier; The goal of this work is to identify and extract the business logic (expressed as a set of business rules) within a Java application. 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, where each actor animal or human can act and move according to its nature. Two di fferent functionalities are implemented in this application: one represents the business logic and describes how predator-prey interactions a ffect population sizes. The second one is used to store statistical information about the actors participating in the simulation. The business rule extraction process is based on MDE and it's composed by four activities: Model Discovery -> to pass from the source code to a model representation), it uses the discovery component of Modisco (http://www.eclipse.org/MoDisco/) Variable Classification -> to identify the domain variables and the container classes Business Rule Identification -> to isolate the part of code related to the variables identified in the previous step Business Rule Representation -> to present the extracted BRs using graphs or textual representations.

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

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 - valerio.cosentino@fr.ibm.comJordi Cabot - AtlanMod, INRIA & EMN, Nantes - jordi.cabot@mines-nantes.frPatrick Albert – IBM - albertpa@fr.ibm.comPhilippe Bauquel – IBM - bauquel.p@fr.ibm.comJacques Perronnet – IBM - jacques_perronnet@fr.ibm.com

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

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 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

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 rules are scattered in the source code

old age

starvation

13 © 2009 IBM Corporation

Introduction - example

rabbit killed by a fox

14 © 2009 IBM Corporation

Introduction - example

rabbit killed by a hunter

15 © 2009 IBM Corporation

Introduction - example

overcrowding

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)

Modisco discovery component(http://www.eclipse.org/MoDisco/)

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 classificationeach link represents a type dependency.ex.: the link connecting Simulator and AnimatedView means that the class Simulator uses the type AnimatedView

21 © 2009 IBM Corporation

Framework overview - variable classificationthe algorithm starts from the classes

containing a graphical import (awt, swing, ..)

22 © 2009 IBM Corporation

Framework overview - variable classification

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

23 © 2009 IBM Corporation

Framework overview - variable classification

24 © 2009 IBM Corporation

Framework overview - variable classificationthe green set (business domain) contains the classes representing the logic modelling how

the actors act/interact each other

25 © 2009 IBM Corporation

Framework overview - variable classificationfor the same application we may find several

business domains (in blue the classes related to the stats of the simulation)

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

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

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

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

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

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

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

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

43 © 2009 IBM Corporation

Framework overview - business rule identificationA method is annotated as «Reachable» if one of its invocations occurs in a «Related» statement or in another «Reachable» method.

44 © 2009 IBM Corporation

Framework overview - business rule identification

45 © 2009 IBM Corporation

Framework overview - business rule identification

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

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

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

53 © 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 annotations2 – executing the business rules model extraction, reducing the slicing information just for the classes inside the business domain (green or blue set)

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

Structure represents the statements annotated as

« Related »

following and follower represent the granularity value

RelatedVariable represents Variable Declaration

annotated as « RELATED-VARIABLE »

ReachableMethod represents methods annotated as

« Reachable »Action represents the

statements annotated as « Rule »

60 © 2009 IBM Corporation

Framework overview - business rule identification - metamodelall 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

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

2 kind of representation are provided (text or graph) and for each of them the domain model vocabulary can be used

62 © 2009 IBM Corporation

Framework overview

Text:

text representation without model domain vocabulary information

63 © 2009 IBM Corporation

Framework overview

Graph:

graph representation with model domain vocabulary information

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