Analyzing Error-Prone System Structure
IEEE Transactions on Software Engineering
Mining frequent patterns without candidate generation
SIGMOD '00 Proceedings of the 2000 ACM SIGMOD international conference on Management of data
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The structure and value of modularity in software design
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Design Rules: The Power of Modularity Volume 1
Design Rules: The Power of Modularity Volume 1
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Identifying the Starting Impact Set of a Maintenance Request: A Case Study
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
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
Improving evolvability through refactoring
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Using dependency models to manage complex software architecture
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fine-Grained Analysis of Change Couplings
SCAM '05 Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation
Modularity Analysis of Logical Design Models
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Modularity in design: formal modeling and automated analysis
Modularity in design: formal modeling and automated analysis
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Automatic modularity conformance checking
Proceedings of the 30th international conference on Software engineering
JDeodorant: Identification and Removal of Type-Checking Bad Smells
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Identification of Extract Method Refactoring Opportunities
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Identifying Architectural Bad Smells
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Identification of Move Method Refactoring Opportunities
IEEE Transactions on Software Engineering
Fair and balanced?: bias in bug-fix datasets
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Software Dependencies, Work Dependencies, and Their Impact on Failures
IEEE Transactions on Software Engineering
Design Rule Hierarchies and Parallelism in Software Development Tasks
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
A domain analysis to specify design defects and generate detection algorithms
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
AURA: a hybrid approach to identify framework evolution
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
On the interplay of architecture and collaboration on software evolutjion and maintenance
On the interplay of architecture and collaboration on software evolutjion and maintenance
Topology analysis of software dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Using automatic static analysis to identify technical debt
Proceedings of the 34th International Conference on Software Engineering
A formal model for automated software modularity and evolvability analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
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
Modular specification and checking of structural dependencies
Proceedings of the 12th annual international conference on Aspect-oriented software development
Measuring architecture quality by structure plus history analysis
Proceedings of the 2013 International Conference on Software Engineering
Reusability of open-source program code: a conceptual model and empirical investigation
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
This paper presents Clio, an approach that detects modularity violations, which can cause software defects, modularity decay, or expensive refactorings. Clio computes the discrepancies between how components should change together based on the modular structure, and how components actually change together as revealed in version history. We evaluated Clio using 15 releases of Hadoop Common and 10 releases of Eclipse JDT. The results show that hundreds of violations identified using Clio were indeed recognized as design problems or refactored by the developers in later versions. The identified violations exhibit multiple symptoms of poor design, some of which are not easily detectable using existing approaches.