ABSTRACT
Software frameworks and libraries are indispensable to today's software systems. As they evolve, it is often time-consuming for developers to keep their code up-to-date, so approaches have been proposed to facilitate this. Usually, these approaches cannot automatically identify change rules for one-replaced-by-many and many-replaced-by-one methods, and they trade off recall for higher precision using one or more experimentally-evaluated thresholds. We introduce AURA, a novel hybrid approach that combines call dependency and text similarity analyses to overcome these limitations. We implement it in a Java system and compare it on five frameworks with three previous approaches by Dagenais and Robillard, M. Kim et al., and Schäfer et al. The comparison shows that, on average, the recall of AURA is 53.07% higher while its precision is similar, e.g., 0.10% lower.
- G. Antoniol, M. D. Penta, and E. Merlo. An automatic approach to identify class evolution discontinuities. In IWPSE '04: Proceedings of the Principles of Software Evolution, 7th International Workshop, pages 31--40. IEEE Computer Society, 2004. Google ScholarDigital Library
- I. Balaban, F. Tip, and R. Fuhrer. Refactoring support for class library migration. In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 265--279, New York, NY, USA, 2005. ACM. Google ScholarDigital Library
- K. Chow and D. Notkin. Semi-automatic update of applications in response to library changes. In ICSM '96: Proceedings of the 1996 International Conference on Software Maintenance, page 359, Washington, DC, USA, 1996. IEEE Computer Society. Google ScholarDigital Library
- J. Cohen. Statistical power analysis for the behavioral sciences. L. Earlbaum Associates, 1988.Google Scholar
- B. Dagenais and M. P. Robillard. Recommending adaptive changes for framework evolution. In ICSE '08: Proceedings of the 30th international conference on Software engineering, pages 481--490, New York, NY, USA, 2008. ACM. Google ScholarDigital Library
- S. Demeyer, S. Ducasse, and O. Nierstrasz. Finding refactorings via change metrics. In OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented, programming, systems, languages, and applications, pages 166--177, New York, NY, USA, 2000. ACM. Google ScholarDigital Library
- D. Dig, C. Comertoglu, D. Marinov, and R. Johnson. Automated detection of refactorings in evolving components. In ECOOP '06: Proceedings of the 20th European Conference on Object-Oriented Programming. Springer Berlin / Heidelberg, July 2006. Google ScholarDigital Library
- D. Dig and R. Johnson. How do apis evolve? a story of refactoring: Research articles. J. Softw. Maint. Evol, 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 ICSE '07: Proceedings of the 29th international conference on Software Engineering, pages 427--436, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- B. Fluri and H. C. Gall. Classifying change types for qualifying change couplings. In ICPC '06: Proceedings of the 14th IEEE International Conference on Program, Comprehension, pages 35--45, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarDigital Library
- D. M. German and A. E. Hassan. License integration patterns: Addressing license mismatches in component-based development. In ICSE '09: Proceedings of the 2009 IEEE 31st International Conference on, Software Engineering, pages 188--198, Washington, DC, USA, 2009. IEEE Computer Society. Google ScholarDigital Library
- M. W. Godfrey and L. Zou. Using origin analysis to detect merging and splitting of source code entities. IEEE Trans. Softw. Eng., 31 (2): 166--181, 2005. Google ScholarDigital Library
- J. Henkel and A. Diwan. Catchup!: capturing and replaying refactorings to support api evolution. In ICSE '05: Proceedings of the 27th international conference on, Software engineering, pages 274--283, New York, NY, USA, 2005. ACM. Google ScholarDigital Library
- Y. Kataoka, M. D. Ernst, W. G. Griswold, and D. Notkin. Automated support for program refactoring using invariants. In ICSM '01: Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01), page 736, Washington, DC, USA, 2001. IEEE Computer Society. Google ScholarDigital Library
- C. Kemper and C. Overbeck. What's new with jbuilder. In JavaOne Sun's 2005 Worldwide Java, Developer Conference, 2005.Google Scholar
- M. Kim, D. Notkin, and D. Grossman. Automatic inference of structural changes for matching across program versions. In ICSE '07: Proceedings of the 29th international conference on Software Engineering, pages 333--343, Washington, DC, USA, Not Available 2007. IEEE Computer Society. Google ScholarDigital Library
- S. Kim, K. Pan, and E. J. Whitehead, Jr. When functions change their names: Automatic detection of origin relationships. In WORE '05: Proceedings of the 12th Working Conference on, Reverse Engineering, pages 143--152, Washington, DC, USA, 2005. IEEE Computer Society. Google ScholarDigital Library
- D. Lawrie, H. Feild, and D. Binkley. Syntactic identifier conciseness and consistency. In Sixth, IEEE International Workshop on Source Code Analysis and Manipulation., pages 139--148, Sept. 2006. Google ScholarDigital Library
- G. Malpohl, J. J. Hunt, and W. E. Tichy. Renaming detection, page 73, 2000. Google ScholarDigital Library
- T. Schäfer, J. Jonas, and M. Mezini. Mining framework usage changes from instantiation code. In ICSE '08: Proceedings of the 30th international conference on, Software engineering, pages 471--480, New York, NY, USA, May 2008. ACM. Google ScholarDigital Library
- P. Steyaert, C. Lucas, K. Mens, and T. D'Hondt. Reuse contracts: managing the evolution of reusable assets. SIGPLAN Not., 31(10):268--285, 1996. Google ScholarDigital Library
- P. Weißgerber and S. Diehl. Identifying refactorings from source-code changes. In ASE '06: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, pages 231--240, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarDigital Library
- Z. Xing and E. Stroulia. Refactoring detection based on umldiff change-facts queries. In WCRE '06: Proceedings of the 13th Working Conference on, Reverse Engineering, pages 263--274, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarDigital Library
- Z. Xing and E. Stroulia. API-evolution support with diff-CatchUp. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 33(12):818--836, December 2007. Google ScholarDigital Library
- R. K. Yin. Case Study Research: Design and Methods - Third, Edition. SAGE Publications, 3 edition, 2002.Google Scholar
Recommendations
A hybrid approach for searching in the semantic web
WWW '04: Proceedings of the 13th international conference on World Wide WebThis paper presents a search architecture that combines classical search techniques with spread activation techniques applied to a semantic model of a given domain. Given an ontology, weights are assigned to links based on certain properties of the ...
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 ...
A graph-based approach to API usage adaptation
OOPSLA '10Reusing existing library components is essential for reducing the cost of software development and maintenance. When library components evolve to accommodate new feature requests, to fix bugs, or to meet new standards, the clients of software libraries ...
Comments