Object-oriented design
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
AntiPatterns: refactoring software, architectures, and projects in crisis
AntiPatterns: refactoring software, architectures, and projects in crisis
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Estimating software costs
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Detecting defects in object-oriented designs: using reading techniques to increase software quality
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Towards an Ontology of software maintenance
Journal of Software Maintenance: Research and Practice
Problems in application software maintenance
Communications of the ACM
Simulating multiple inheritance in Java
Journal of Systems and Software
Types of software evolution and software maintenance
Journal of Software Maintenance: Research and Practice
Supporting program comprehension using semantic and structural information
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Software Engineering: Theory and Practice
Software Engineering: Theory and Practice
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Object-Oriented Design Heuristics
Object-Oriented Design Heuristics
Managing Risk in Software Maintenance
IEEE Software
Software Quality Analysis by Code Clones in Industrial Legacy Software
METRICS '02 Proceedings of the 8th International Symposium on Software Metrics
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
An empirical investigation of an object-oriented design heuristic for maintainability
Journal of Systems and Software
Java Quality Assurance by Detecting Code Smells
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
A Taxonomy and an Initial Empirical Study of Bad Smells in Code
ICSM '03 Proceedings of the International Conference on Software Maintenance
Refactoring Workbook
Incremental Change in Object-Oriented Programming
IEEE Software
IEEE Transactions on Software Engineering
Bad Smells " Humans as Code Critics
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Quantifying the Quality of Object-Oriented Design: The Factor-Strategy Model
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Object-Oriented Metrics in Practice
Object-Oriented Metrics in Practice
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
A Risk Taxonomy Proposal for Software Maintenance
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Measurement and Quality in Object-Oriented Design
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Subjective evaluation of software evolvability using code smells: An empirical study
Empirical Software Engineering
Automatic Generation of Detection Algorithms for Design Defects
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Journal of Systems and Software
Mining Software Repositories with iSPAROL and a Software Evolution Ontology
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Difficulties experienced by students in maintaining object-oriented systems: an empirical study
ACE '07 Proceedings of the ninth Australasian conference on Computing education - Volume 66
Journal of Systems and Software
Detection and correction of design defects in object-oriented designs
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
MimEc: intelligent user notification of faults in the eclipse IDE
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
Journal of Software Maintenance and Evolution: Research and Practice
"Cloning considered harmful" considered harmful: patterns of cloning in software
Empirical Software Engineering
Journal of Systems and Software
Dependency analysis for component-based software systems
ACM SIGSOFT Software Engineering Notes
JDeodorant: Identification and Removal of Type-Checking Bad Smells
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Identification of Move Method Refactoring Opportunities
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
A Metric Extraction Framework Based on a High-Level Description Language
SCAM '09 Proceedings of the 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation
IBM Systems Journal
An Exploratory Study of the Impact of Code Smells on Software Change-proneness
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
DECOR: A Method for the Specification and Detection of Code and Design Smells
IEEE Transactions on Software Engineering
Identification of refactoring opportunities introducing polymorphism
Journal of Systems and Software
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
Domain-specific tailoring of code smells: an empirical study
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
On the Impact of Design Flaws on Software Defects
QSIC '10 Proceedings of the 2010 10th International Conference on Quality Software
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Investigating the Evolution of Bad Smells in Object-Oriented Code
QUATIC '10 Proceedings of the 2010 Seventh International Conference on the Quality of Information and Communications Technology
Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures
Journal of Systems and Software
CSMR '11 Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering
Code Bad Smells: a review of current knowledge
Journal of Software Maintenance and Evolution: Research and Practice
Identification of extract method refactoring opportunities for the decomposition of methods
Journal of Systems and Software
A Study of Cloning in the Linux SCSI Drivers
SCAM '11 Proceedings of the 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation
Multi-criteria detection of bad smells in code with UTA method
XP'05 Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering
Leveraging code smell detection with inter-smell relations
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
CSMR '12 Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering
Evaluating the Lifespan of Code Smells using Software Repository Mining
CSMR '12 Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering
Identification and application of Extract Class refactorings in object-oriented systems
Journal of Systems and Software
Identification of generalization refactoring opportunities
Automated Software Engineering
Do code smells reflect important maintainability aspects?
ICSM '12 Proceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)
Hi-index | 0.00 |
Context: Code smells are indicators of poor coding and design choices that can cause problems during software maintenance and evolution. Objective: This study is aimed at a detailed investigation to which extent problems in maintenance projects can be predicted by the detection of currently known code smells. Method: A multiple case study was conducted, in which the problems faced by six developers working on four different Java systems were registered on a daily basis, for a period up to four weeks. Where applicable, the files associated to the problems were registered. Code smells were detected in the pre-maintenance version of the systems, using the tools Borland Together and InCode. In-depth examination of quantitative and qualitative data was conducted to determine if the observed problems could be explained by the detected smells. Results: From the total set of problems, roughly 30% percent were related to files containing code smells. In addition, interaction effects were observed amongst code smells, and between code smells and other code characteristics, and these effects led to severe problems during maintenance. Code smell interactions were observed between collocated smells (i.e., in the same file), and between coupled smells (i.e., spread over multiple files that were coupled). Conclusions: The role of code smells on the overall system maintainability is relatively minor, thus complementary approaches are needed to achieve more comprehensive assessments of maintainability. Moreover, to improve the explanatory power of code smells, interaction effects amongst collocated smells and coupled smells should be taken into account during analysis.