Documenting frameworks using patterns
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Visualizing the behavior of object-oriented systems
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Creating abstract superclasses by refactoring
CSC '93 Proceedings of the 1993 ACM conference on Computer science
Reverse engineering: progress along many dimensions
Communications of the ACM
Program understanding and the concept assignment problem
Communications of the ACM
Object-oriented software metrics: a practical guide
Object-oriented software metrics: a practical guide
Succeeding with objects: decision frameworks for project management
Succeeding with objects: decision frameworks for project management
Interactive visualization of design patterns can help in framework understanding
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Object-oriented metrics: measures of complexity
Object-oriented metrics: measures of complexity
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Software metrics (2nd ed.): a rigorous and practical approach
Software metrics (2nd ed.): a rigorous and practical approach
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Pattern-based reverse-engineering of design components
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Smalltalk Developer's Guide to VisualWorks
Smalltalk Developer's Guide to VisualWorks
Software Visualization in the Large
Computer
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
An Incremental Class Reorganization Approach
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Assessment of Large Object Oriented Software Systems - A Metric Based Process
ECOOP '98 Workshop ion on Object-Oriented Technology
Using Object-Oriented Metrics for Automatic Design Flaws Detection in Large Scale Systems
ECOOP '98 Workshop ion on Object-Oriented Technology
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
Patterns Generate Architectures
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Evolving Object-Oriented Designs with Refactorings
ASE '99 Proceedings of the 14th IEEE international conference on Automated software engineering
On the Computer Aided Introduction of Design Pattern into Object-Oriented Systems
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Evaluation Experiments on the Detection of Programming Patterns Using Software Metrics
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
A Hybrid Reverse Engineering Approach Combining Metrics and Program Visualization
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Assessing the Benefits of Incorporating Function Clone Detection in a Development Process
ICSM '97 Proceedings of the International Conference on Software Maintenance
Recovering High-Level Views of Object-Oriented Applications from Static and Dynamic Information
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Visualizing Software Release Histories: The Use of Color and Third Dimension
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
A Language Independent Approach for Detecting Duplicated Code
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Future trends in software evolution metrics
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Latitudinal and longitudinal process diversity
Journal of Software Maintenance: Research and Practice - Special issue: Process diversity
Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture
SEW '02 Proceedings of the 27th Annual NASA Goddard Software Engineering Workshop (SEW-27'02)
Dimensions of reengineering environment infrastructures
Journal of Software Maintenance: Research and Practice
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
A reverse engineering tool for precise class diagrams
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Using Origin Analysis to Detect Merging and Splitting of Source Code Entities
IEEE Transactions on Software Engineering
Design mentoring based on design evolution analysis
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
The story of moose: an agile reengineering environment
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Error detection by refactoring reconstruction
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Using refactorings to automatically update component-based applications
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using refactorings to automatically update component-based applications
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Analyzing the Evolutionary History of the Logical Design of Object-Oriented Software
IEEE Transactions on Software Engineering
UMLDiff: an algorithm for object-oriented design differencing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
How do APIs evolve? A story of refactoring: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
Modeling history to analyze software evolution: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
Program element matching for multi-version program analyses
Proceedings of the 2006 international workshop on Mining software repositories
Are refactorings less error-prone than other changes?
Proceedings of the 2006 international workshop on Mining software repositories
Proceedings of the 2006 ACM symposium on Applied computing
Common refactorings, a dependency graph and some code smells: an empirical study of Java OSS
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Mining a Change-Based Software Repository
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Refactoring--Does It Improve Software Quality?
WoSQ '07 Proceedings of the 5th International Workshop on Software Quality
Differencing logical UML models
Automated Software Engineering
Refactoring test suites versus test behaviour: a TTCN-3 perspective
Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting
Automated detection of api refactorings in libraries
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Mining framework usage changes from instantiation code
Proceedings of the 30th international conference on Software engineering
Scalable visualization of model differences
Proceedings of the 2008 international workshop on Comparison and versioning of software models
A Case Study on the Impact of Refactoring on Quality and Productivity in an Agile Team
Balancing Agility and Formalism in Software Engineering
A Model to Identify Refactoring Effort during Maintenance by Mining Source Code Repositories
PROFES '08 Proceedings of the 9th international conference on Product-Focused Software Process Improvement
Design Pattern Detection by Using Meta Patterns
IEICE - Transactions on Information and Systems
Code smell eradication and associated refactoring
ECC'08 Proceedings of the 2nd conference on European computing conference
An Application of Intelligent Data Analysis Techniques to a Large Software Engineering Dataset
IDA '09 Proceedings of the 8th International Symposium on Intelligent Data Analysis: Advances in Intelligent Data Analysis VIII
Gathering refactoring data: a comparison of four methods
Proceedings of the 2nd Workshop on Refactoring Tools
Design pattern density defined
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
AURA: a hybrid approach to identify framework evolution
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Is a strategy for code smell assessment long overdue?
Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics
Do metrics help to identify refactoring?
Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE)
An exploratory study of identifier renamings
Proceedings of the 8th Working Conference on Mining Software Repositories
Comparison of similarity metrics for refactoring detection
Proceedings of the 8th Working Conference on Mining Software Repositories
Software defect prediction based on source code metrics time series
Transactions on rough sets XIII
Rank-based refactoring decision support: two studies
Innovations in Systems and Software Engineering
The need for richer refactoring usage data
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Does refactoring improve reusability?
ICSR'06 Proceedings of the 9th international conference on Reuse of Off-the-Shelf Components
Issues arising from refactoring studies: an experience report
ACM SIGSOFT Software Engineering Notes
Empirical support for two refactoring studies using commercial C# software
EASE'09 Proceedings of the 13th international conference on Evaluation and Assessment in Software Engineering
A history-based matching approach to identification of framework evolution
Proceedings of the 34th International Conference on Software Engineering
Reconstructing complex metamodel evolution
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
Is it dangerous to use version control histories to study source code evolution?
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
A posteriori operation detection in evolving software models
Journal of Systems and Software
Identification of generalization refactoring opportunities
Automated Software Engineering
Comparing approaches to analyze refactoring activity on software repositories
Journal of Systems and Software
Search-based refactoring detection
Proceedings of the 15th annual conference companion on Genetic and evolutionary computation
Assessing technical debt by identifying design flaws in software systems
IBM Journal of Research and Development
A comparative study of manual and automated refactorings
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Investigating the evolution of code smells in object-oriented systems
Innovations in Systems and Software Engineering
Hi-index | 0.00 |
Reverse engineering is the process of uncovering the design and the design rationale from a functioning software system. Reverse engineering is an integral part of any successful software system, because changing requirements lead to implementations that drift from their original design. In contrast to traditional reverse engineering techniques ---which analyse a single snapshot of a system--- we focus the reverse engineering effort by determining where the implementation has changed. Since changes of object-oriented software are often phrased in terms of refactorings, we propose a set of heuristics for detecting refactorings by applying lightweight, object-oriented metrics to successive versions of a software system. We validate our approach with three separate case studies of mature object-oriented software systems for which multiple versions are available. The case studies suggest that the heuristics support the reverse engineering process by focusing attention on the relevant parts of a software system.