PRIORITY CLAIM

This U.S. patent application claims priority under 35 U.S.C. § 119 to: India Application No. 201821023591, filed on Jun. 25 2018. The entire contents of the aforementioned application are incorporated herein by reference.

TECHNICAL FIELD

The disclosure herein generally relates to extraction of rules, more particularly, to automated extraction of rules embedded in a software application code using machine learning.

BACKGROUND

Transformation of many software applications, developed using legacy code, has become important to meet current generation business requirements and improving efficiency of many business applications. Many applications such as insurance applications dealing with products, rating, underwriting, policy services, bills, document management, regulatory reporting, claims, and actuary are a decade old and have rules embedded in the legacy code.

Traditionally, transformation of the software applications involved studying the software application code and extracting business knowledge or rules from the application source code. Rule extraction is the process of identifying implementation of independent (business) logic that comprises basic essence of applications. Such a logic is normally characterized by a combination of conditional and imperative source code commands that affect a change on a business data entity. Conventional methods require a lot of manual effort and time for transformation of the software applications. There exist solutions such as automating the transformation of the software applications to some extent. However, the process of extracting rules implemented by the existing solutions is a computationally tedious and time-consuming task.

Further, rules embedded in the application source code are often more complex than simple conditional statements. The application source code comprises tangled rule flows with a combination of rule constructs evolved over a period of time. Thus, the complexity involved in extracting and transforming the rules is very high resulting in missing of many important rules embedded over a period of years/decades.

SUMMARY

Embodiments of the present disclosure present technological improvements as solutions to one or more of the above-mentioned technical problems recognized by the inventors in conventional systems. For example, in one aspect, there is provided a processor implemented method, comprising: receiving, a plurality of inputs from one or more application source code components associated with one or more software applications, wherein the plurality of inputs includes one or more source codes pertaining to the one or more software applications; extracting, based on a control flow and data flow analysis, a set of rules embedded in the application source codes of the one or more software applications, wherein the control and data flow analysis generates a hierarchical call structure of one or more programs comprised in application source code of the one or more software applications; translating, one or more rules from the extracted set of rules into a target defined format, wherein the one or more rules are translated based on mapping one or more parameters associated with the one or more rules using one or more machine learning techniques with a pre-stored meta data and classifying the mapped one or more parameters into one or more categories; and analyzing, by one or more processors, the translated set of rules to obtain a validated set of rules.

In an embodiment, the step of classifying the mapped one or more parameters into the one or more categories is utilized to derive relevant information from the one or more parameters associated with extracted set of rules. In an embodiment, the relevant information for the one or more parameters is derived using data acquired by performing a static code analysis on the received plurality of inputs. Further, the data acquired by performing a static code analysis includes data type and usage of the one or more parameters associated with the one or more rules, type of impact of a rule in which the one or more parameters are used, and scope of the impact. In an embodiment, the step of translating is preceded by performing at least one of (i) a merging mechanism or (ii) a splitting mechanism on the extracted set of rules.

In another aspect, there is provided a system comprising: a memory storing instructions; one or more communication interfaces; and one or more hardware processors coupled to the memory through the one or more communication interfaces, wherein the one or more hardware processors are configured by the instructions to receive, a plurality of inputs from one or more application source code components associated with one or more software applications, wherein the plurality of inputs includes one or more source codes pertaining to the one or more software applications; extract, based on a control flow and data flow analysis, a set of rules embedded in the application source codes of the one or more software applications, wherein the control and data flow analysis generates a hierarchical call structure of one or more programs comprised in rules from the extracted set of rules into a target defined format, wherein the one or more rules are translated based on mapping one or more parameters associated with the one or more rules using one or more machine learning techniques with a pre-stored meta data and classifying the mapped one or more parameters into one or more categories; and analyze, by one or more processors, the translated set of rules to obtain a validated set of rules.

In an embodiment, the step of classifying the mapped one or more parameters into the one or more categories is utilized to derive relevant information from the one or more parameters associated with extracted set of rules. In an embodiment, the relevant information for the one or more parameters is derived using data acquired by performing a static code analysis on the received plurality of inputs. Further, the data acquired by performing a static code analysis includes data type and usage of the one or more parameters associated with the one or more rules, type of impact of a rule in which the one or more parameters are used, and scope of the impact. In an embodiment, prior to obtaining the translated set of rules, the one or more hardware processors are configured to perform at least one of (i) a merging mechanism or (ii) a splitting mechanism on the extracted set of rules.

In yet another aspect, there are provided one or more non-transitory machine readable information storage mediums comprising one or more instructions which when executed by one or more hardware processors cause receiving, a plurality of inputs from one or more application source code components associated with one or more software applications, wherein the plurality of inputs includes one or more source codes pertaining to the one or more software applications; extracting, based on a control flow and data flow analysis, a set of rules embedded in the application source codes of the one or more software applications, wherein the control and data flow analysis generates a hierarchical call structure of one or more programs comprised in application source code of the one or more software applications; translating, one or more rules from the extracted set of rules into a target defined format, wherein the one or more rules are translated based on mapping one or more parameters associated with the one or more rules using one or more machine learning techniques with a pre-stored meta data and classifying the mapped one or more parameters into one or more categories; and analyzing, by one or more processors, the translated set of rules to obtain a validated set of rules.

In an embodiment, the step of classifying the mapped one or more parameters into the one or more categories is utilized to derive relevant information from the one or more parameters associated with extracted set of rules. In an embodiment, the relevant information for the one or more parameters is derived using data acquired by performing a static code analysis on the received plurality of inputs. Further, the data acquired by performing a static code analysis includes data type and usage of the one or more parameters associated with the one or more rules, type of impact of a rule in which the one or more parameters are used, and scope of the impact. In an embodiment, prior to obtaining the translated set of rules, the instructions may further cause performing at least one of (i) a merging mechanism or (ii) a splitting mechanism on the extracted set of rules.

It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.

