This Article 
 Bibliographic References 
 Add to: 
Iterative Reengineering of Legacy Systems
March 2003 (vol. 29 no. 3)
pp. 225-241
Alessandro Bianchi, IEEE Computer Society
Danilo Caivano, IEEE Computer Society

Abstract—During its life, a legacy system is subjected to many maintenance activities, which cause degradation of the quality of the system: When this degradation exceeds a critical threshold, the legacy system needs to be reengineered. In order to preserve the asset represented by the legacy system, the familiarity with it gained by the system's maintainers and users, and the continuity of execution of current operations during the reengineering process, the system needs to be reengineered gradually. Moreover, each program needs to be reengineered within a short period of time. The paper proposes a reengineering process model, which is applied to an in-use legacy system to confirm that the process satisfies previous requirements and to measure its effectiveness. The reengineered system replaced the legacy one to the satisfaction of all the stakeholders; the reengineering process also had a satisfactory impact on the quality of the system. Finally, this paper contributes to validate the cause-effect relationship between the reengineering process and overcoming the aging symptoms of a software system.

[1] J. Bisbal, D. Lawless, B. Wu, and J. Grimson, “Legacy Information Systems: Issues and Directions,” IEEE Software, vol. 16, no. 5, pp. 103-111, Sept./Oct. 1999.
[2] G. Visaggio, “Ageing of a Data Intensive Legacy System: Symptoms and Remedies,” J. Software Maintenance and Evolution, vol. 13, no. 5, pp. 281-308, 2001.
[3] M.M. Lehman and L.A. Belady, Program Evolution: Processes of Software Change.London: Academic Press, 1985.
[4] W.B. Noffsinger, R. Niedbalski, M. Blanks, and N. Emmart, “Legacy Object Modeling Speeds Software Integration,” Comm. the ACM, vol. 41, no. 12, pp. 80-89, Dec. 1998.
[5] P. Robertson, “Integrating Legacy Systems with Modern Corporate Applications,” Comm. the ACM, vol. 40, no. 5, pp. 39-46, May 1997.
[6] T. Biggerstaff, "Design Recovery for Maintenance and Reuse," Computer, July 1989.
[7] A.J. Brown, “Specification and Reverse Engineering,” Software Maintenance Research and Practice, vol. 5, pp 147-153, 1993.
[8] M.R. Blaha, “On Reverse Engineering of Vendor Databases,” Proc. IEEE Fifth Working Conf. Reverse Eng., pp. 183-190, 1998.
[9] M.R. Blaha, “An Industrial Example of Database Reverse Engineering,” Proc. IEEE Sixth Working Conf. Reverse Eng., pp. 196-203, 1999.
[10] H. Sneed, "Planning the Reengineering of Legacy Systems," IEEE Software, vol. 12, no. 1, pp. 24-34, Jan. 1995.
[11] H.M. Sneed, “Encapsulating Legacy Software for Use in Client/Server System,” Proc. IEEE Third Working Conf. On Reverse Eng., pp. 104-119, 1996.
[12] F.P. Coyle, “Does COBOL Exist?” IEEE Software, vol. 17, no. 2, pp. 22-36, Mar./Apr. 2000.
[13] F.P. Coyle, “Legacy Integration Changing Perspectives,” IEEE Software, vol. 17, no. 2, pp. 37-41, Mar./Apr. 2000.
[14] A. Quilici, “Reverse Engineering of Legacy Systems: A Path Toward Success,” Proc. 17th Int'l Conf. Software Eng., pp. 333-336, Apr. 1995.
[15] E.R. Hughes, R.S. Hyland, S.D. Litvintchouk, A.S. Rosenthal, A.L. Schafer, and S.L. Surer, “A Methodology for Migration of Legacy Applications to Distributed Object Management,” Proc. Int'l Enterprise Distributed Object Computing Conf., pp. 236-244, 1997.
[16] E.J. Chifosky and J.H. Cross II, “Reverse Engineering and Design Recovery: A Taxonomy,” IEEE Software, Jan. 1990.
[17] H.M. Sneed, “Encapsulation of Legacy Software: A Technique for Reusing Legacy Software Components,” Annals Software Eng., vol. 9, pp. 293-313, 2000.
[18] S. Comella-Dorda, R.C. Seacord, K. Wallnau, and J. Robert, “A Survey of Black-Box Modernization Approaches for Information Systems,” Proc. Int'l Conf. Software Maintenance, pp. 173-183, Oct. 2000.
[19] M. Brodie and M. Stonebraker, Migrating Legacy Systems: Gateways, Interfaces, and the Incremental Approach. San Francisco: Morgan Kaufman, 1995.
[20] B. Wu, D. Lawless, J. Bisbal, R. Richardson, J. Grimson, V. Wade, and D. O'Sullivan, “The Butterfly Methodology: A Gateway-Free Approach for Migrating Legacy Information System,” Proc. Int'l Conf. Eng. Complex Computer Systems, pp. 200-205, 1997.
[21] H.M. Sneed, “Risks Involved in Reengineering Projects,” Proc. IEEE Sixth Working Conf. Reverse Eng., pp. 204-211, 1999.
[22] A. Bianchi, D. Caivano, and G. Visaggio, “Method and Process for Iterative Reengineering Data in a Legacy System,” Proc. Seventh IEEE Working Conf. Reverse Eng., pp. 86-96, 2000.
[23] A. Bianchi, D. Caivano, V. Marengo, and G. Visaggio, “Iterative Reengineering of Legacy Functions,” Proc. IEEE Int'l Conf. Software Maintenance, pp. 632-641, 2001.
[24] M.R. Blaha and W.J. Premerlani, “Observed Idiosyncracies of Relational Database Designs,” Proc. IEEE Second Working Conf. Reverse Eng., pp. 116-125, 1995.
[25] UML Revision Task Force, “OMG Unified Modeling Language Specification, version 1.3,” Technical Report, document ad/99-06-08. Object Management Group, June 1999.
[26] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide. Addison Wesley, 1999.
[27] MERANT, “MicroFocus Products—Revolve,” revolve/, 2000.
[28] E.F. Codd,“A relational model of data for large shared data banks,” Comm. ACM, vol. 13, no. 6, June 1970.
[29] R. Fagin, "Normal Forms and Relational Database Operators," Proc. ACM SIGMOD Conf. Management of Data, 1979.
[30] W. Kent, “A Simple Guide to Five Normal Forms in Relational Database Theory,” Comm. the ACM, vol. 26, no. 2, pp. 120-125, 1983.
[31] H.C. Smith, “Database Design: Composing Fully Normalized Tables from a Rigorous Dependency Diagram,” Comm. the ACM, vol. 28, no. 8, pp. 826-838, 1985.
[32] AcuCORP, “AcuCOBOL—GT,” Solutionsacucobol-gt.html , 2000.
[33] J. Preece et al., Human-Computer Interaction, Addison-Wesley Longman, Reading, Mass., 1994.
[34] B. Beizer, Software Testing Techniques, second ed. Boston, Mass.: Int'l Thomson Computer Press, 1990.
[35] G. Visaggio, “Value-Based Decision Model for Renewal Processes in Software Maintenance,” Annals of Software Eng., vol. 9, pp. 215-233, 2000.
[36] A.H. Watson and T.J. McCabe, “Structured Testing: A Design Methodology Using the Cyclomatic Complexity Metric,” NIST Special Publication 500-235, D.R. Wallace, ed., NIST Contract 43NANB517266, Sept. 1996.
[37] M. Fowler et al., Refactoring: Improving the Design of Existing Code, Addison Wesley Longman, Reading, Mass., 1999.

Index Terms:
Reengineering, legacy system rejuvenation.
Alessandro Bianchi, Danilo Caivano, Vittorio Marengo, Giuseppe Visaggio, "Iterative Reengineering of Legacy Systems," IEEE Transactions on Software Engineering, vol. 29, no. 3, pp. 225-241, March 2003, doi:10.1109/TSE.2003.1183932
Usage of this product signifies your acceptance of the Terms of Use.