A method for the manual extraction of business rules from legacy source code

One of the main barriers to the successful migration of legacy systems is lack of information about the system to be migrated.With the complexity of modern information systems, it is rarely the case that an organisation has a complete end-to-endunderstanding of its systems, business processes and information. This is particularly true of the business rules enforced by suchsystems, which are often poorly documented (if at all) and incompletely understood by those who own, use and maintain suchsystems. These business rules must be migrated, along with the other system functionality, but this is difficult when they areburied deep within the source code of the system. In this paper, we propose a method for the discovery of business rules throughinspection of the source code of legacy systems. We also describe the results of a comprehensive evaluation exercise undertakenwithin BT, in which the method was applied to a legacy system about to undergo migration. The results of this study indicatedconsiderable success for the method in extracting valid business rules, but also highlighted some weaknesses. Most significantly,the cost of applying the method is a factor of the size and complexity of the system being analysed, and not of the number ofbusiness rules elicited. In order to address this, we propose a cut-down version of the method that can be used to produce a quickestimate of the likely yield of business rules from a program. Together, these two forms of the method aid personnel engaged insystem migration projects in making maximum use of the scarce resources are available for business rule discovery.

[1]  C. J. Pound,et al.  Extracting Business Rules from Information Systems , 1999 .

[2]  Wei-Tek Tsai,et al.  Business rule extraction from legacy code , 1996, Proceedings of 20th International Computer Software and Applications Conference: COMPSAC '96.

[3]  Harry M. Sneed,et al.  Extracting business rules from source code , 1996, WPC '96. 4th Workshop on Program Comprehension.

[4]  Anna Rita Fasolino,et al.  Recovering the architectural design for software comprehension , 1994, Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94.

[5]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[6]  Michael Stonebraker,et al.  Migrating Legacy Systems: Gateways, Interfaces, and the Incremental Approach , 1995 .

[7]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[8]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[9]  Gordon I. McCalla,et al.  Cliche recognition in legacy software: a scalable, knowledge-based approach , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[10]  Kathryn A. Ingle,et al.  Reverse Engineering , 1996, Springer US.

[11]  Martin P. Ward Derivation of Data Intensive Algorithms by Formal Transformation: The Schnorr-Waite Graph Marking Algorithm , 1996, IEEE Trans. Software Eng..

[12]  Akihiko Matsuo,et al.  A maintenance support system based on high-level control-flow and data dependency , 1995, Proceedings 1995 Asia Pacific Software Engineering Conference.

[13]  Michael R. Blaha Dimensions of database reverse engineering , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[14]  Michael R. Blaha Dimensions of Data ase Reverse Engineering , 1997 .