ABSTRACT
We propose static program analysis techniques for identifying the impact of relational database schema changes upon object-oriented applications. We use dataflow analysis to extract all possible database interactions that an application may make. We then use this information to predict the effects of schema change. We evaluate our approach with a case-study of a commercially available content management system, where we investigated 62 versions of between 70k-127k LoC and a schema size of up to 101 tables and 568 stored procedures. We demonstrate that the program analysis must be more precise, in terms of context-sensitivity than related work. However, increasing the precision of this analysis increases the computational cost. We use program slicing to reduce the size of the program that needs to be analyzed. Using this approach, we are able to analyse the case study in under 2 minutes on a standard desktop machine, with no false negatives and a low level of false positives.
- A. V. Aho, R. Sethi, and J. D. Ullmann. Compilers ? Principles, Techniques and Tools. Addison Wesley, 1986. Google ScholarDigital Library
- S. W. Ambler and P. J. Sadalage. Refactoring Databases: Evolutionary Database Design. Addison Wesley, Apr. 2006. Google ScholarDigital Library
- R. Arnold and S. Bohner. Software Change Impact Analysis. IEEE Computer Society Press, 1996. Google ScholarDigital Library
- D. Beyer, A. Noack, and C. Lewerentz. Efficient Relational Calculation for Software Analysis. IEEE TSE, 31(2):137--149, Feb. 2005. Google ScholarDigital Library
- D. Binkley, N. Gold, and M. Harman. An empirical study of static program slice size. ACM TOSEM, 16(2):8, 2007. Google ScholarDigital Library
- F. Biscotti, C. Graham, and D. Sommer. Market Share: Database Management Systems Software, EMEA, 2005. Technical report, Gartner, June 2006.Google Scholar
- T.-H. Choi, O. Lee, H. Kim, and K.-G. Doh. A practical string analyzer by the widening approach. In N. Kobayashi, editor, APLAS, volume 4279 of LNCS, pages 374--388. Springer, 2006. Google ScholarDigital Library
- A. S. Christensen, A. Møller, and M. I. Schwartzbach. Precise analysis of string expressions. In Proc. 10th International Static Analysis Symposium, SAS ?03, volume 2694 of LNCS, pages 1--18. Springer-Verlag, June 2003. Google ScholarDigital Library
- Y. Cohen and Y. A. Feldman. Automatic high-quality reengineering of database programs by abstraction, transformation and reimplementation. ACM TOSEM, 12(3):285--316, 2003. Google ScholarDigital Library
- M. Fowler. Patterns of Enterprise Application Architecture. Addison Wesley, 2003. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Software. Addison Wesley, 1995. Google ScholarDigital Library
- C. Gould, Z. Su, and P. Devanbu. Static Checking of Dynamically Generated Queries in Database Applications. In ICSE ?04: Proceedings of the 26th International Conference on Software Engineering, pages 645--654. IEEE Computer Society, 2004. Google ScholarDigital Library
- S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflow analysis. SIGSOFT Softw. Eng. Notes, 20(4):104--115, 1995. Google ScholarDigital Library
- S. Jagannathan and S. Weeks. A unified treatment of flow analysis in higher-order languages. In POPL ?95: Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 393--407, New York, NY, USA, 1995. ACM Press. Google ScholarDigital Library
- G. M. Kapfhammer and M. L. Soffa. A family of test adequacy criteria for database-driven applications. In Proc. of the 9th European software engineering conference (ESEC/FSE 2003), pages 98--107, New York, NY, USA, 2003. ACM Press. Google ScholarDigital Library
- A. Karahasanovic. Supporting Application Consistency in Evolving Object-Oriented Systems by Impact Analysis and Visualisation. PhD thesis, University of Oslo, 2002.Google Scholar
- J. Law and G. Rothermel. Whole program Path-Based dynamic impact analysis. In ICSE ?03: Proceedings of the 25th International Conference on Software Engineering, pages 308--318. IEEE Computer Society, 2003. Google ScholarDigital Library
- O. Lhoták and L. Hendren. Context-sensitive points-to analysis: is it worth it? In A. Mycroft and A. Zeller, editors, 15th Int. Conference on Compiler Construction, volume 3923 of LNCS, pages 47--64, Vienna, 2006. Springer. Google ScholarDigital Library
- D. Liang and M. Harrold. Slicing objects using system dependence graphs. icsm, 00:358, 1998. Google ScholarDigital Library
- M. Lindval and K. Sandahl. How well do experienced software developers predict software change? Journal of Systems and Software, 43:19--27(9), October 1998. Google ScholarDigital Library
- Phoenix Framework. http://research.microsoft.com/phoenix, 2007.Google Scholar
- S. L. Pfleeger. Software engineering: theory and practice. Prentice-Hall, Inc., 1998. Google ScholarDigital Library
- X. Ren, F. Shah, F. Tip, B. G. Ryder, and O. Chesley. Chianti: a tool for change impact analysis of Java programs. In Proc. of the 19th Conf. on Object-oriented programming, systems, languages, and applications (OOPSLA ?04), pages 432--448. ACM Press, 2004. Google ScholarDigital Library
- T. Reps, S. Horwitz, M. Sagiv, and G. Rosay. Speeding up slicing. In SIGSOFT ?94: Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering, pages 11--20. ACM Press, 1994. Google ScholarDigital Library
- B. Ryder. Dimensions of precision in reference analysis of object-oriented programming languages. Lecture Notes of Computer Science, 137:126--137, 2003. Google ScholarDigital Library
- O. G. Shivers. Control-flow analysis of higher-order languages or taming lambda. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1991. Google ScholarDigital Library
- D. I. Sjoberg. Quantifying schema evolution. IST, 35(1):35--44, 1993.Google Scholar
- F. Tip. A survey of program slicing techniques. Technical report, Centre for Mathematics and Computer Science, Amsterdam, Netherlands, 1994. Google ScholarDigital Library
- B. Wiedermann and W. R. Cook. Extracting queries by static analysis of transparent persistence. SIGPLAN Not., 42(1):199--210, 2007. Google ScholarDigital Library
- K. Wong. Rigi Users?s manual, Version 5.4.4. Technical report, University of Victoria, Dept of Computer Science, ftp://ftp.rigi.csc.uvic.ca/pub/rigi/doc, 1998.Google Scholar
Index Terms
- Impact analysis of database schema changes
Recommendations
Design of Automatic Database Schema Generator Based on XML Schema
CIS '07: Proceedings of the 2007 International Conference on Computational Intelligence and SecurityWith the recent expansion of e-commerce, B2B has surfaced as an area of substantial interest to the corporate world. B2B refers to economic transactions created among businesses through various networks, including the Internet. Currently, XML documents ...
A comprehensive study of the predictive accuracy of dynamic change-impact analysis
We comprehensively study the predictive accuracy of dynamic change-impact analysis.We assess this accuracy with large numbers of both artificial and repository changes.We found that dynamic impact analyses can suffer from both low precision and low ...
On transformation to redundancy free XML schema from relational database schema
APWeb'03: Proceedings of the 5th Asia-Pacific web conference on Web technologies and applicationsWhile XML is emerging as the universal format for publishing and exchanging data on the Web, most business data is still stored and maintained in relational database management systems. As a result, there is an increasing need to efficiently publish ...
Comments