IP Library Patent Application 11011283
Patent Application
App. No. 11/011,283

System and method for deriving an object oriented design from the business rules of a legacy application

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/011,283
Abstract

A method and system serves to derive class definitions from the program code of a legacy system. The objects of the legacy application are identified, and separately all the business rules of the application are identified. Each object has a data structure which describes its properties. The fields in this data structure are used to derive the candidate data attributes of the object. All the business rules which use some of the data attributes of the object either as input or output are grouped together as candidate methods of the object. The user selects some of the candidate data attributes and some of the candidate methods and uses them to designate a new class. The user may also decide if the data elements used in the methods are method parameters or global data attributes of the class.

Claims (39)

1 . A method of grouping variables in legacy program code of a program to describe the program, comprising:

identifying objects in the program code;

for each object identified, identifying data elements in the program which refer to each object;

identifying what business rules deal with the identified data elements;

selecting data elements and business rules to be associated with each identified object; and

creating a class for each identified object which is comprised of the object and data elements and business rules selected for association with the respective object.

2 . The method of claim 1 , wherein said business rules are identified by:

identifying all input ports in the program code;

determining the data structure associated with each input port;

for each field in each input port, determining the outgoing data flow;

for each field in the data flow, determining if there is a test used to create an error message or a warning message about that data element; and

if a test exists, creating a validation rule, and storing the rule.

3 . The method of claim 1 , wherein said class for each object is created by selecting all of the data elements and all of the business rules related to each object.

4 . The method of claim 1 , wherein said class for each object is created by selecting only some of the data elements and some of the business rules related to the object, and deselecting those identified business rules and data elements which are not intrinsically related to the object or which is redundant.

5 . The method of claim 1 , further comprising creating data attributes for each object by abstraction from the related data elements, and forming said class as an association between the object and the data attributes.

6 . The method of claim 1 , further comprising creating methods for each object by abstraction from the selected business rules, and forming said class as an association between the object and the methods.

7 . The method of claim 1 , further comprising creating data attributes for each object by abstraction from the related data attributes for each object by abstraction from the selected data elements, creating methods for each object by abstraction from the selected business rules, and forming said class as an association between the object, the data attributes and the methods.

8 . The method of claim 1 , further comprising assembling all classes created into a class diagram.

9 . The method of claim 8 , further comprising creating said class diagram as a UML model.

10 . The method of claim 9 , wherein said class diagram comprises an object oriented design for a legacy program.

11 . A system for grouping variables in legacy program code of a program to describe the program, comprising:

means for identifying objects in the program code;

means for identifying data elements in the program which refer to each object identified in the program;

means for identifying business rules which deal with the identified data elements;

means for selecting data elements and business rules to be associated with each identified object; and

means for creating a class for each identified object comprised of the object, data elements and business rules selected for association with the respective object.

12 . The system of claim 11 , further comprised of means for identifying said business rules, said means for identifying comprising:

an interface constructed for displaying all input ports and all output ports in the program code;

said interface further comprising, means for determining the data structure associated with each input port and with each output port, means for determining the outgoing data flow for each field in each input port and means for determining the computation path for each field in each output port;

means for determining if there is a test used to branch in the program for each field in the input port outgoing data flow, and storing the validation rule if a test exists; and

means for determining if the computation path is not empty for each computation path of each output data port, and means for creating a computation rule and for storing the computation rule if the computation path is not empty.

13 . The system of claim 11 , wherein said means for creating said class further comprises means for selecting all of the data elements and all of the business rules related to each object.

14 . The system of claim 11 , wherein said means for creating said class for each object further comprises means for selecting only some of the data elements and some of the business rules related to the object, and for deselecting those identified business rules and data elements which not intrinsically related to the object or which is redundant.

15 . The system of claim 11 , further comprising means for creating data attributes for each object by abstraction from the selected data elements, and for forming said class as an association between the object and the data attributes.

16 . The system of claim 11 , further comprising means for creating methods for each object by abstraction from the selected business rules, and for forming said class as an association between the object and the methods.

17 . The system of claim 11 , wherein said means for creating said class for each object further comprises means for creating data attributes for each object by abstraction from the selected data elements, and for creating methods for each object by abstraction from the selected business rules, and forming said class as an association between the object, the data attributes and the methods.

18 . The system of claim 1 , further comprising means for assembling all classes created into a class diagram.

19 . The system of claim 18 , wherein said means for assembling is configured for assembly class diagram as a UML model.

20 . The system of claim 19 , wherein said class diagram comprises an object oriented design for a legacy program.

Assignments (5)
MERGER Recorded Dec 7, 2009
From: RELATIVITY TECHNOLOGIES, INC.
To: MICRO FOCUS (US), INC.
Reel/Frame 023607/0533 →
RELEASE Recorded Jan 15, 2009
From: SILICON VALLEY BANK
To: RELATIVITY TECHNOLOGIES INC.
Reel/Frame 022115/0098 →
SECURITY AGREEMENT Recorded Apr 20, 2007
From: RELATIVITY TECHNOLOGIES, INC.
To: PARTNERS FOR GROWTH II, L.P.
Reel/Frame 019190/0919 →
SECURITY AGREEMENT Recorded Jan 10, 2006
From: RELATIVITY TECHNOLOGIES, INC.
To: SILICON VALLEY BANK
Reel/Frame 016993/0019 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2004
From: OARA, IOAN M.; RUKHLIN, ALEX; FLOREA, FLORIN
To: RELATIVITY TECHNOLOGIES, INC.
Reel/Frame 016065/0323 →