Identifying Modifications and Generating Dependency Graphs for Impact Analysis in a Legacy Environment

Large enterprise level systems often have their own application software layer wrapped over large software tools or products from commercial vendors. From time to time, vendors release patches which update or enhance the products to meet various requirements. However, applying the patches often introduces risk that the wrapper software layer might behave incorrectly, especially if the customer has little knowledge of the linkage between the application layer and the vendor provided system (for example, because the application itself is a legacy system). So there is always the need for analyzing the impact of patches and reducing the risk in applying them. Impact analysis depends on two sources of knowledge the physical modifications made by a patch and a dependency graph of the entities in the system. This thesis provides an empirical approach to finding modifications and generating dependency graphs that can be used for impact analysis. The work presented here is actually part of a large reverse engineering project, which deals with a huge system consisting of a legacy customer application layer, Oracle E-Business Suite and Oracle database. To reduce the risk introduced by Oracle patches, the customer currently executes all tests of their current test suite, which is extremely expensive in terms of money and time, with the added drawback that the testing that is performed is not targeted in any way at the entities that have been changed or that depend on entities that have been changed. The ultimate goal of the project is to provide the customer with a reduced and focused test suite after analyzing the impact of patches. Although a lot of work has been carried out to date regarding impact analysis, program dependency graph generation and regression test selection, none of them deals with such a huge domain as involved in the E-Business

[1]  Gregg Rothermel,et al.  Aristotle: a system for development of program analysis based tools , 1995, ACM-SE 33.

[2]  Gregg Rothermel,et al.  An empirical comparison of dynamic impact analysis algorithms , 2004, Proceedings. 26th International Conference on Software Engineering.

[3]  Ken Kennedy,et al.  Constructing the Procedure Call Multigraph , 1990, IEEE Trans. Software Eng..

[4]  Keith H. Bennett,et al.  Legacy Systems: Coping with Success , 1995, IEEE Softw..

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

[6]  Jacques Carette,et al.  Symbolic interpretation of legacy assembly language , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[7]  Gregg Rothermel,et al.  Analyzing Regression Test Selection Techniques , 1996, IEEE Trans. Software Eng..

[8]  Frank Tip,et al.  Chianti: A Prototype Change Impact Analysis Tool for Java , 2003 .

[9]  Gregg Rothermel,et al.  An empirical study of regression test selection techniques , 1998, Proceedings of the 20th International Conference on Software Engineering.

[10]  Gregg Rothermel,et al.  Incremental dynamic impact analysis for evolving software systems , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[11]  Gregg Rothermel,et al.  A comparative study of coarse- and fine-grained safe regression test-selection techniques , 2001, TSEM.

[12]  Hareton Leung,et al.  A firewall concept for both control-flow and data-flow in regression integration testing , 1992, Proceedings Conference on Software Maintenance 1992.

[13]  Malcolm Munro,et al.  An early impact analysis technique for software maintenance , 1994, J. Softw. Maintenance Res. Pract..

[14]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[15]  Zheng Wang,et al.  BMAT - A Binary Matching Tool for Stale Profile Propagation , 2000, J. Instr. Level Parallelism.

[16]  C. P. Satterthwaite,et al.  Impact analysis and change management for avionics software , 1997, Proceedings of the IEEE 1997 National Aerospace and Electronics Conference. NAECON 1997.

[17]  David Chenho Kung,et al.  Change impact identification in object oriented software maintenance , 1994, Proceedings 1994 International Conference on Software Maintenance.

[18]  Gregg Rothermel,et al.  Empirical Studies of a Safe Regression Test Selection Technique , 1998, IEEE Trans. Software Eng..

[19]  David S. Rosenblum,et al.  TESTTUBE: a system for selective regression testing , 1994, Proceedings of 16th International Conference on Software Engineering.

[20]  Anthony Danalis,et al.  Online impact analysis via dynamic compilation technology , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[21]  Barbara G. Ryder,et al.  Constructing the Call Graph of a Program , 1979, IEEE Transactions on Software Engineering.

[22]  Gregg Rothermel,et al.  An empirical study of regression test application frequency , 2005, Softw. Test. Verification Reliab..

[23]  Carlo Ghezzi,et al.  Fundamentals of Software Engineering , 2011, Lecture Notes in Computer Science.

[24]  David Grove,et al.  A framework for call graph construction algorithms , 2001, TOPL.

[25]  Gregg Rothermel,et al.  A safe, efficient regression test selection technique , 1997, TSEM.

[26]  Eric Bodden JAnalyzer, A Visual Static Analyzer for Java , 2003 .

[27]  Alessandro Orso,et al.  A differencing algorithm for object-oriented programs , 2004 .

[28]  Thomas M. Pigoski Practical Software Maintenance: Best Practices for Managing Your Software Investment , 1996 .

[29]  Gregg Rothermel,et al.  Interprocedural control dependence , 2001, TSEM.