Software engineering (3rd ed.): a practitioner's approach
Software engineering (3rd ed.): a practitioner's approach
Software salvaging and the call dominance tree
Journal of Systems and Software
Identifying objects using cluster and concept analysis
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Software engineering (6th ed.)
Software engineering (6th ed.)
Concept Analysis for Module Restructuring
IEEE Transactions on Software Engineering
Supporting program comprehension using semantic and structural information
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Approaches to clustering for program comprehension and remodularization
Advances in software engineering
Modern Information Retrieval
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Object Oriented Reengineering Patterns
Object Oriented Reengineering Patterns
A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
Using Clustering Algorithms in Legacy Systems Remodularization
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Experiments with Clustering as a Software Remodularization Method
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Restructuring Legacy C Code into C++
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
A Method to Re-Organize Legacy Systems via Concept Analysis
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Moral Dominance Relations for Program Comprehension
IEEE Transactions on Software Engineering
The Journal of Machine Learning Research
Supporting Architectural Restructuring by Analyzing Feature Models
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
Search-based improvement of subsystem decompositions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Object-Oriented Metrics in Practice
Object-Oriented Metrics in Practice
The Conceptual Cohesion of Classes
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Comparison of Clustering Algorithms in the Context of Software Evolution
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Search-Based Software Maintenance
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
Revisiting the ΔIC approach to component recovery
Science of Computer Programming - Software analysis, evolution and re-engineering
Proceedings of the 8th annual conference on Genetic and evolutionary computation
The Conceptual Coupling Metrics for Object-Oriented Systems
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
Semantic clustering: Identifying topics in source code
Information and Software Technology
Programming-in-the-Large Versus Programming-in-the-Small
IEEE Transactions on Software Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
A theory of aspects as latent topics
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Using information retrieval based coupling measures for impact analysis
Empirical Software Engineering
Mining search topics from a code search engine usage log
MSR '09 Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories
Automatic Package Coupling and Cycle Minimization
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
On the Equivalence of Information Retrieval Methods for Automated Traceability Link Recovery
ICPC '10 Proceedings of the 2010 IEEE 18th International Conference on Program Comprehension
Architectural layer recovery for software system understanding and evolution
Software—Practice & Experience
Validating the Use of Topic Models for Software Evolution
SCAM '10 Proceedings of the 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation
Using Relational Topic Models to capture coupling among classes in object-oriented software systems
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
TopicXP: Exploring topics in source code using Latent Dirichlet Allocation
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Software Re-Modularization Based on Structural and Semantic Metrics
WCRE '10 Proceedings of the 2010 17th Working Conference on Reverse Engineering
A Probabilistic Based Approach towards Software System Clustering
CSMR '10 Proceedings of the 2010 14th European Conference on Software Maintenance and Reengineering
Legacy Software Restructuring: Analyzing a Concrete Case
CSMR '11 Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering
Investigating the Use of Lexical Information for Software System Clustering
CSMR '11 Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering
Software Module Clustering as a Multi-Objective Search Problem
IEEE Transactions on Software Engineering
Modeling the evolution of topics in source code histories
Proceedings of the 8th Working Conference on Mining Software Repositories
Identifying method friendships to remove the feature envy bad smell (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
CodeTopics: which topic am I coding now?
Proceedings of the 33rd International Conference on Software Engineering
Can Better Identifier Splitting Techniques Help Feature Location?
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
Improving IR-based Traceability Recovery Using Smoothing Filters
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
On integrating orthogonal information retrieval methods to improve traceability recovery
ICSM '11 Proceedings of the 2011 27th IEEE International Conference on Software Maintenance
Using Topic Models to Support Software Maintenance
CSMR '12 Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering
On understanding laws, evolution, and conservation in the large-program life cycle
Journal of Systems and Software
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
Oftentimes, during software maintenance the original program modularization decays, thus reducing its quality. One of the main reasons for such architectural erosion is suboptimal placement of source-code classes in software packages. To alleviate this issue, we propose an automated approach to help developers improve the quality of software modularization. Our approach analyzes underlying latent topics in source code as well as structural dependencies to recommend (and explain) refactoring operations aiming at moving a class to a more suitable package. The topics are acquired via Relational Topic Models (RTM), a probabilistic topic modeling technique. The resulting tool, coined as R3 (Rational Refactoring via RTM), has been evaluated in two empirical studies. The results of the first study conducted on nine software systems indicate that R3 provides a coupling reduction from 10% to 30% among the software modules. The second study with 62 developers confirms that R3 is able to provide meaningful recommendations (and explanations) for move class refactoring. Specifically, more than 70% of the recommendations were considered meaningful from a functional point of view.