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 different functionalities are implemented in this application: one represents the business logic and describes how predator-prey interactions affect 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.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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
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
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.
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
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
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
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)
Variables Classification identifies the domain variables together with their containing classes – Input: PSM– Output: model containing all domain's classes and their inner
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
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.
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)
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
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