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 was adapted to its own changes. In a study of the evolution of one open source framework and three client programs, our approach recommended relevant adaptive changes with a high level of precision. In a second study of the evolution of two frameworks, we found that related change detection approaches were better at discovering systematic changes and that SemDiff was complementary to these approaches by detecting non-trivial changes such as when a functionality is imported from an external library.
- Boulanger, J.-S. and Robillard, M. P. 2006. Managing concern interfaces. In Proceedings of the 22nd IEEE International Conference on Software Maintenance. 14--23. Google ScholarDigital Library
- Bruch, M., Schäfer, T., and Mezini, M. 2006. FrUiT: IDE support for framework understanding. In Proceedings of the OOPSLA Workshop on Eclipse Technology eXchange. 55--59. Google ScholarDigital Library
- Chow, K. and Notkin, D. 1996. Semi-automatic update of applications in response to library changes. In Proceedings of the International Conference on Software Maintenance. 359--369. Google ScholarDigital Library
- Dagenais, B. and Hendren, L. 2008. Enabling static analysis for partial java programs. In Proceedings of the Conference on Object Oriented Programming Systems and Applications. 313--328. Google ScholarDigital Library
- Dagenais, B. and Robillard, M. P. 2008. Recommending adaptive changes for framework evolution. In Proceedings of the 30th International Conference on Software Engineering. 481--490. Google ScholarDigital Library
- Dagenais, B. and Robillard, M. P. 2009. SemDiff: Analysis and recommendation support for api evolution. In Proceedings of the 31st International Conference on Software Engineering (Formal Demonstration). 599--602. Google ScholarDigital Library
- Daniel, B., Dig, D., Garcia, K., and Marinov, D. 2007. Automated testing of refactoring engines. In Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the Symposium on the Foundations of Software Engineering. 185--194. Google ScholarDigital Library
- des Rivières, J. 2007. Evolving Java-based APIs. . (accessed 7/09).Google Scholar
- Dig, D. and Johnson, R. 2006. How do APIs evolve? A story of refactoring. J. Softw. Maint. Evol.: Resear. Prac. 18, 2, 83--107. Google ScholarDigital Library
- Dig, D., Comertoglu, C., Marinov, D., and Johnson, R. 2006. Automated detection of refactorings in evolving components. In Proceedings of the European Conference on Object-Oriented Programming. 404--428. Google ScholarDigital Library
- Dig, D., Manzoor, K., Johnson, R., and Nguyen, T. N. 2007. Refactoring-aware configuration management for object-oriented programs. In Proceedings of the 29th International Conference on Software Engineering. 427--436. Google ScholarDigital Library
- Fluri, B., Würsch, M., Pinzger, M., and Gall, H. C. 2007. Change distilling: Tree differencing for fine-grained source code change extraction. IEEE Trans. Softw. Engin. 33, 11, 725--743. Google ScholarDigital Library
- Fowler, M. 2002. Public versus published interfaces. IEEE Softw. 19, 2, 18--19. Google ScholarDigital Library
- Godfrey, M. W. and Zou, L. 2005. Using origin analysis to detect merging and splitting of source code entities. IEEE Trans. Softw. Engin. 31, 2, 166--181. Google ScholarDigital Library
- Henkel, J. and Diwan, A. 2005. Catchup!: Capturing and replaying refactorings to support API evolution. In Proceedings of the 27th International Conference on Software Engineering. 274--283. Google ScholarDigital Library
- Holmes, R., Walker, R. J., and Murphy, G. C. 2006. Approximate structural context matching: An approach for recommending relevant examples. IEEE Trans. Softw. Engin. 32, 12, 952--970. Google ScholarDigital Library
- Jagannath, V., Lee, Y. Y., Daniel, B., and Marinov, D. 2009. Reducing the costs of bounded-exhaustive testing. In Fundamental Approaches to Software Engineering. 171--185. Google ScholarDigital Library
- Kersten, M. and Murphy, G. C. 2006. Using task context to improve programmer productivity. In Proceedings of the 14th International Symposium on Foundations of Software Engineering. 1--11. Google ScholarDigital Library
- Kim, M. and Notkin, D. 2009. Discovering and representing systematic code changes. In Proceedings of the 31st International Conference on Software Engineering. 309--319. Google ScholarDigital Library
- Kim, M., Notkin, D., and Grossman, D. 2007. Automatic inference of structural changes for matching across program versions. In Proceedings of the 29th International Conference on Software Engineering. 333--343. Google ScholarDigital Library
- Kim, S., Pan, K., and E. James Whitehead, J. 2005. When functions change their names: Automatic detection of origin relationships. In Proceedings of the 12th Working Conference on Reverse Engineering. 143--152. Google ScholarDigital Library
- Larman, C. 2001. Protected variation: The importance of being closed. IEEE Softw., 98--90. Google ScholarDigital Library
- Lientz, B. P. and Swanson, E. B. 1980. Software Maintenance Management. Addison-Wesley Longman Publishing Co., Inc., Boston, MA. Google ScholarDigital Library
- Nystrom, N., Clarkson, M. R., and Myers, A. C. 2003. Polyglot: An extensible compiler framework for java. In Proceedings of the 12th International Conference on Compiler Construction. 138--152. Google ScholarDigital Library
- Ratzinger, J., Sigmund, T., Vorburger, P., and Gall, H. C. 2007. Mining software evolution to predict refactoring. In Proceedings of the International Symposium on Empirical Software Engineering and Measurement. Google ScholarDigital Library
- Robillard, M. P. and Dagenais, B. 2008. Retrieving task-related clusters from change history. In Proceedings of the 15th Working Conference on Reverse Engineering. 17--26. Google ScholarDigital Library
- Schäfer, T., Jonas, J., and Mezini, M. 2008. Mining framework usage changes from instantiation code. In Proceedings of the 30th International Conference on Software Engineering. Google ScholarDigital Library
- Weissgerber, P. and Diehl, S. 2006. Identifying refactorings from source-code changes. In Proceedings of the 21st IEEE International Conference on Automated Software Engineering. 231--240. Google ScholarDigital Library
- Xing, Z. and Stroulia, E. 2006. Understanding the evolution and co-evolution of classes in object-oriented systems. Int. J. Softw. Engin. Knowl. Engin. 16, 1, 23--51.Google ScholarCross Ref
- Zelkowitz, M. V. and Wallace, D. R. 1998. Experimental models for validating technology. IEEE Comput. 31, 5, 23--31. Google ScholarDigital Library
- Zimmermann, T. and Weissgerber, P. 2004. Preprocessing cvs data for fine-grained analysis. In Proceedings of the International Workshop on Mining Software Repositories.Google Scholar
- Zimmermann, T., Zeller, A., Weissgerber, P., and Diehl, S. 2005. Mining version histories to guide software changes. IEEE Trans. Softw. Engin. 31, 6, 429--445. Google ScholarDigital Library
Index Terms
- Recommending Adaptive Changes for Framework Evolution
Recommendations
Recommending adaptive changes for framework evolution
ICSE '08: Proceedings of the 30th international conference on Software engineeringIn 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 ...
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 ...
Towards a Framework to Assess Legacy Systems
SMC '13: Proceedings of the 2013 IEEE International Conference on Systems, Man, and CyberneticsMany organizations nowadays own a number of legacy software systems and maintain them functional to fulfill their daily business operations. However, legacy systems cannot always accommodate newly emerging business needs, thus might negatively impact ...
Comments