skip to main content
10.1145/1368088.1368150acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Impact analysis of database schema changes

Published:10 May 2008Publication History

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.

References

  1. A. V. Aho, R. Sethi, and J. D. Ullmann. Compilers ? Principles, Techniques and Tools. Addison Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. W. Ambler and P. J. Sadalage. Refactoring Databases: Evolutionary Database Design. Addison Wesley, Apr. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. R. Arnold and S. Bohner. Software Change Impact Analysis. IEEE Computer Society Press, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Beyer, A. Noack, and C. Lewerentz. Efficient Relational Calculation for Software Analysis. IEEE TSE, 31(2):137--149, Feb. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Binkley, N. Gold, and M. Harman. An empirical study of static program slice size. ACM TOSEM, 16(2):8, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. F. Biscotti, C. Graham, and D. Sommer. Market Share: Database Management Systems Software, EMEA, 2005. Technical report, Gartner, June 2006.Google ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Fowler. Patterns of Enterprise Application Architecture. Addison Wesley, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Software. Addison Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflow analysis. SIGSOFT Softw. Eng. Notes, 20(4):104--115, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Karahasanovic. Supporting Application Consistency in Evolving Object-Oriented Systems by Impact Analysis and Visualisation. PhD thesis, University of Oslo, 2002.Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Liang and M. Harrold. Slicing objects using system dependence graphs. icsm, 00:358, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. Phoenix Framework. http://research.microsoft.com/phoenix, 2007.Google ScholarGoogle Scholar
  22. S. L. Pfleeger. Software engineering: theory and practice. Prentice-Hall, Inc., 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. B. Ryder. Dimensions of precision in reference analysis of object-oriented programming languages. Lecture Notes of Computer Science, 137:126--137, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. O. G. Shivers. Control-flow analysis of higher-order languages or taming lambda. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. D. I. Sjoberg. Quantifying schema evolution. IST, 35(1):35--44, 1993.Google ScholarGoogle Scholar
  28. F. Tip. A survey of program slicing techniques. Technical report, Centre for Mathematics and Computer Science, Amsterdam, Netherlands, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. B. Wiedermann and W. R. Cook. Extracting queries by static analysis of transparent persistence. SIGPLAN Not., 42(1):199--210, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle Scholar

Index Terms

  1. Impact analysis of database schema changes

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in
                  • Published in

                    cover image ACM Conferences
                    ICSE '08: Proceedings of the 30th international conference on Software engineering
                    May 2008
                    558 pages
                    ISBN:9781605580791
                    DOI:10.1145/1368088

                    Copyright © 2008 ACM

                    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 10 May 2008

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Author Tags

                    Qualifiers

                    • research-article

                    Acceptance Rates

                    ICSE '08 Paper Acceptance Rate56of370submissions,15%Overall Acceptance Rate276of1,856submissions,15%

                    Upcoming Conference

                    ICSE 2025

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader