Dynamic Inference of Change Contracts
Conference Proceeding Article
Software evolves and thus developers frequently make changes to systems that are logged in version control systems. These changes are often poorly documented -- often commit logs are empty or only contain minimal information. Thus, it is often a challenge to understand why certain changes are made especially if they were introduced many months or even years ago. Understanding these changes is important when pertinent questions are raised during future bug fixing or software evolution efforts. Thus, there is a need for an automated approach that can help developers better document changes with little or minimal effort. To address this need, we propose a dynamic inference framework that automatically infers change contracts. Recently, change contract is proposed as a formalism to capture the semantics of changes. Different from standard program contract, change contract focuses in expressing the changed behavior between two versions of software systems. Our system infers candidate contracts based on actual changes and developers can further modify these contracts to reflect intended changes. We have performed a preliminary evaluation of our dynamic inference framework on a set of 15 real bug fixing changes from AspectJ with promising results.
Software and Cyber-Physical Systems
2014 IEEE International Conference on Software Maintenance and Evolution (ICSME): 28 September - 3 October 2014, Victoria, Canada
City or Country
LE, Tien-Duy B.; Yi, Jooyong; LO, David; THUNG, Ferdian; and Roychoudhury, Abhik.
Dynamic Inference of Change Contracts. (2014). 2014 IEEE International Conference on Software Maintenance and Evolution (ICSME): 28 September - 3 October 2014, Victoria, Canada. 451-455. Research Collection School Of Information Systems.
Available at: http://ink.library.smu.edu.sg/sis_research/2429