Identifying syntactic differences between two programs
Software—Practice & Experience
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Maintaining software through intentional source-code views
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
A rule-based language for programming software updates
Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Structural Manipulations of Software Architecture Using Tarski Relational Algebra
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Detection of Logical Coupling Based on Product Release History
ICSM '98 Proceedings of the International Conference on Software Maintenance
Mining Version Histories to Guide Software Changes
Proceedings of the 26th International Conference on Software Engineering
Predicting Source Code Changes by Mining Change History
IEEE Transactions on Software Engineering
A Differencing Algorithm for Object-Oriented Programs
Proceedings of the 19th IEEE international conference on Automated software engineering
Chianti: a tool for change impact analysis of java programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Crisp: A Debugging Tool for Java Programs
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
UMLDiff: an algorithm for object-oriented design differencing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Learning the structure of Markov logic networks
ICML '05 Proceedings of the 22nd international conference on Machine learning
Program element matching for multi-version program analyses
Proceedings of the 2006 international workshop on Mining software repositories
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Aligning development tools with the way programmers think about code changes
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Information Needs in Collocated Software Development Teams
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Inferring structural patterns for concern traceability in evolving software
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Documenting and automating collateral evolutions in linux device drivers
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
Defining and continuous checking of structural program dependencies
Proceedings of the 30th international conference on Software engineering
Mining framework usage changes from instantiation code
Proceedings of the 30th international conference on Software engineering
Recommending adaptive changes for framework evolution
Proceedings of the 30th international conference on Software engineering
Analyzing and inferring the structure of code change
Analyzing and inferring the structure of code change
A survey of automated code-level aspect mining techniques
Transactions on aspect-oriented software development IV
CodeQuest: scalable source code queries with datalog
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Tracking code patterns over multiple software versions with Herodotos
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Using twinning to adapt programs to alternative APIs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Actively comparing clones inside the code editor
Proceedings of the 4th International Workshop on Software Clones
LSdiff: a program differencing tool to identify systematic structural differences
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Automatically documenting program changes
Proceedings of the IEEE/ACM international conference on Automated software engineering
CodePad: interactive spaces for maintaining concentration in programming environments
Proceedings of the 5th international symposium on Software visualization
Ref-Finder: a refactoring reconstruction tool based on logic query templates
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Managing technical debt in software-reliant systems
Proceedings of the FSE/SDP workshop on Future of software engineering research
Differential static analysis: opportunities, applications, and challenges
Proceedings of the FSE/SDP workshop on Future of software engineering research
An empirical investigation into the role of API-level refactorings during software evolution
Proceedings of the 33rd International Conference on Software Engineering
Non-essential changes in version histories
Proceedings of the 33rd International Conference on Software Engineering
Identifying program, test, and environmental changes that affect behaviour
Proceedings of the 33rd International Conference on Software Engineering
Proceedings of the 33rd International Conference on Software Engineering
Recovering traceability links between source code and fixed bugs via patch analysis
Proceedings of the 6th International Workshop on Traceability in Emerging Forms of Software Engineering
Systematic editing: generating program transformations from an example
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Recommending Adaptive Changes for Framework Evolution
ACM Transactions on Software Engineering and Methodology (TOSEM)
Mining evolution of object usage
Proceedings of the 25th European conference on Object-oriented programming
iDiff: Interaction-based program differencing tool
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Specifying and detecting meaningful changes in programs
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Crosscutting revision control system
Proceedings of the 34th International Conference on Software Engineering
How much does unused code matter for maintenance?
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
How do software engineers understand code changes?: an exploratory study in industry
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
How do developers react to API deprecation?: the case of a smalltalk ecosystem
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Identification of generalization refactoring opportunities
Automated Software Engineering
Detecting missing method calls as violations of the majority rule
ACM Transactions on Software Engineering and Methodology (TOSEM)
LASE: locating and applying systematic edits by learning from examples
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
Software engineers often inspect program differences when reviewing others' code changes, when writing check-in comments, or when determining why a program behaves differently from expected behavior after modification. Program differencing tools that support these tasks are limited in their ability to group related code changes or to detect potential inconsistencies in those changes. To overcome these limitations and to complement existing approaches, we built Logical Structural Diff (LSdiff), a tool that infers systematic structural differences as logic rules. LSdiff notes anomalies from systematic changes as exceptions to the logic rules. We conducted a focus group study with professional software engineers in a large E-commerce company; we also compared LSdiff's results with textual differences and with structural differences without rules. Our evaluation suggests that LSdiff complements existing differencing tools by grouping code changes that form systematic change patterns regardless of their distribution throughout the code, and its ability to discover anomalies shows promise in detecting inconsistent changes.