Dynamic Inference of Change Contracts

Publication Type

Conference Proceeding Article

Publication Date



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 Engineering

Research Areas

Software and Cyber-Physical Systems


2014 IEEE International Conference on Software Maintenance and Evolution (ICSME): 28 September - 3 October 2014, Victoria, Canada

First Page


Last Page






City or Country

Piscataway, NJ

Additional URL