ABSTRACT
In the course of a framework's evolution, changes ranging from a simple refactoring to a complete rearchitecture can break client programs. Finding suitable replacements for framework elements that were accessed by a client program and deleted as part of the framework's evolution can be a challenging task. We present a recommendation system, SemDiff, that suggests adaptations to client programs by analyzing how a framework adapts to its own changes. In a study of the evolution of the Eclipse JDT framework and three client programs, our approach recommended relevant adaptive changes with a high level of precision, and detected non-trivial changes typically undiscovered by current refactoring detection techniques.
- J.-S. Boulanger and M. P. Robillard. Managing concern interfaces. In Proc. of the 22nd IEEE Int'l Conference on Software Maintenance, pages 14--23, 2006. Google ScholarDigital Library
- M. Bruch, T. Schäfer, and M. Mezini. FrUiT: IDE support for framework understanding. In Proc. of the 2006 OOPSLA workshop on eclipse technology eXchange, pages 55--59, 2006. Google ScholarDigital Library
- K. Chow and D. Notkin. Semi-automatic update of applications in response to library changes. In Proc. of the Int'l Conference on Software Maintenance, pages 359--369, 1996. Google ScholarDigital Library
- B. Daniel, D. Dig, K. Garcia, and D. Marinov. Automated testing of refactoring engines. In Proc. of the the 6th joint meeting of the European software engineering conference and the symposium on The foundations of software engineering, pages 185--194, 2007. Google ScholarDigital Library
- D. Dig, C. Comertoglu, D. Marinov, and R. Johnson. Automated detection of refactorings in evolving components. In Proc. of the European Conference on Object-Oriented Programming, pages 404--428, 2006. Google ScholarDigital Library
- D. Dig and R. Johnson. How do APIs evolve? A story of refactoring. Journal of software maintenance and evolution: Research and Practice, 18(2):83--107, 2006. Google ScholarDigital Library
- D. Dig, K. Manzoor, R. Johnson, and T. N. Nguyen. Refactoring-aware configuration management for object-oriented programs. In Proc. of the 29th Int'l Conference on Software Engineering, pages 427--436, 2007. Google ScholarDigital Library
- B. Fluri, M. Würsch, M. Pinzger, and H. C. Gall. Change distilling: Tree differencing for fine-grained source code change extraction. IEEE Transactions on Software Engineering, 33(11):725--743, 2007. Google ScholarDigital Library
- M. W. Godfrey and L. Zou. Using origin analysis to detect merging and splitting of source code entities. IEEE Transactions on Software Engineering, 31(2):166--181, 2005. Google ScholarDigital Library
- J. Henkel and A. Diwan. Catchup!: capturing and replaying refactorings to support API evolution. In Proc. of the 27th international conference on Software engineering, pages 274--283, 2005. Google ScholarDigital Library
- R. Holmes, R. J. Walker, and G. C. Murphy. Approximate structural context matching: An approach for recommending relevant examples. IEEE Transactions on Software Engineering, 32(12):952--970, 2006. Google ScholarDigital Library
- M. Kersten and G. C. Murphy. Using task context to improve programmer productivity. In Proc. of the 14th international symposium on Foundations of software engineering, pages 1--11, 2006. Google ScholarDigital Library
- M. Kim, D. Notkin, and D. Grossman. Automatic inference of structural changes for matching across program versions. In Proc. of the 29th Int'l Conference on Software Engineering, pages 333--343, 2007. Google ScholarDigital Library
- S. Kim, K. Pan, and J. E. James Whitehead. When functions change their names: Automatic detection of origin relationships. In Proc. of the 12th Working Conference on Reverse Engineering, pages 143--152, 2005. Google ScholarDigital Library
- B. P. Lientz and E. B. Swanson. Software Maintenance Management. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1980. Google ScholarDigital Library
- N. Nystrom, M. R. Clarkson, and A. C. Myers. Polyglot: An extensible compiler framework for java. In Proc. of the 12th Int'l Conference on Compiler Construction, pages 138--152, 2003. Google ScholarDigital Library
- J. Ratzinger, T. Sigmund, P. Vorburger, and H. C. Gall. Mining software evolution to predict refactoring. In Proc. of the Int'l Symposium on Empirical Software Engineering and Measurement, 2007. Google ScholarDigital Library
- T. Schäfer, J. Jonas, and M. Mezini. Mining framework usage changes from instantiation code. In To appear in Proc. of the 30th Int'l Conference on Software Engineering, 2008. Google ScholarDigital Library
- V. Sundaresan, P. Lam, E. Gagnon, R. Vallée-Rai, L. Hendren, and P. Co. Soot - a java optimization framework. In Proc. of CASCON, pages 125--135, 1999.Google Scholar
- P. Weißgerber and S. Diehl. Identifying refactorings from source-code changes. In Proc. of the 21st IEEE Int'l Conference on Automated Software Engineering, pages 231--240, 2006. Google ScholarDigital Library
- Z. Xing and E. Stroulia. Understanding the evolution and co-evolution of classes in object-oriented systems. Int'l Journal of Software Engineering and Knowledge Engineering, 16(1):23--51, 2006.Google ScholarCross Ref
- T. Zimmermann and P. Weißgerber. Preprocessing cvs data for fine-grained analysis. In Proc. of the Int'l Workshop on Mining Software Repositories, 2004.Google ScholarCross Ref
- T. Zimmermann, A. Zeller, P. Weißgerber, and S. Diehl. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 31(6):429--445, 2005. Google ScholarDigital Library
Index Terms
- Recommending adaptive changes for framework evolution
Recommendations
Recommending Adaptive Changes for Framework Evolution
In the course of a framework’s evolution, changes ranging from a simple refactoring to a complete rearchitecture can break client programs. Finding suitable replacements for framework elements that were accessed by a client program and deleted as part ...
Studying the laws of software evolution in a long-lived FLOSS project
Some free, open-source software projects have been around for quite a long time, the longest living ones dating from the early 1980s. For some of them, detailed information about their evolution is available in source code management systems tracking ...
A framework for acquisition and application of software architecture evolution knowledge: 14
Software systems continuously evolve as a consequence of frequent changes in their functional requirements and the environment surrounding them. Architecture-centric software evolution (ACSE) enables changes in software structure and behaviour while ...
Comments