The developers often inspect program differences between two versions. A team lead reviews modifications done by her team members to check whether the intended change is implemented correctly. Questions developers ask about code changes are often of the following style. To enable developers to reason about program differences at a high level and to help answer these kinds of high-level questions about program modifications, rule-based program differencing approach that automatically discovers and summarizes systematic code changes as logic rules. This rule inference approach is based on the observation that high-level changes such as refactorings, feature additions, and updates to code clones are often systematic edits—a group of related edits is required in multiple places to ensure consistency and completeness of the high-level change. The goals of these transformations can be stated concisely in natural language, existing program differencing tools, such as diff, would report modified lines per file, enumerating moved methods and modified interfaces. To demonstrate the viability of our rule-based program differencing approach, instantiated change-rules at two different abstraction levels in Java. The first level of changerules describes changes to method-header names and signatures. The API-level changes in the preceding scenario. The second level of change-rules captures changes to code elements (packages, types, methods, and fields) and structural dependences (method-calls, field-accesses, overriding, subtyping, and containment). For each level of change-rules, They developed a rule-inference algorithm that explores the space of candidate change-rules. The tool implementation of the second rule inference algorithm as Logical Structural Diff (LSdiff). applied our rule-based program differencing approach to the histories of six software projects. They also conducted a focus group study with professional developers in a large e-commerce company to understand the target users’ perspectives on our approach.
You are here: Home / ieee projects 2013 / API Change-Rule at a Method-Header Level using a wild card pattern-matching operator