Genetic programming: on the programming of computers by means of natural selection
Genetic programming: on the programming of computers by means of natural selection
Applications of inductive logic programming
Communications of the ACM
Software metrics (2nd ed.): a rigorous and practical approach
Software metrics (2nd ed.): a rigorous and practical approach
AntiPatterns: refactoring software, architectures, and projects in crisis
AntiPatterns: refactoring software, architectures, and projects in crisis
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Advances in Inductive Logic Programming
Advances in Inductive Logic Programming
Genetic Algorithms in Search, Optimization and Machine Learning
Genetic Algorithms in Search, Optimization and Machine Learning
Software Engineering Economics
Software Engineering Economics
Software Cost Estimation with Cocomo II with Cdrom
Software Cost Estimation with Cocomo II with Cdrom
Evolving legacy system features into fine-grained components
Proceedings of the 24th International Conference on Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study
PPSN V Proceedings of the 5th International Conference on Parallel Problem Solving from Nature
Metrics in software quality assurance
ACM '81 Proceedings of the ACM '81 conference
Applying design-metrics to object-oriented frameworks
METRICS '96 Proceedings of the 3rd International Symposium on Software Metrics: From Measurement to Empirical Results
Automated Support for Program Refactoring using Invariants
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Can Metrics Help to Bridge the Gap Between the Improvement of OO Design Quality and Its Automation?
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
A Pattern-Based Framework for Software Anomaly Detection
Software Quality Control
Detection Strategies: Metrics-Based Rules for Detecting Design Flaws
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Metrics Are Fitness Functions Too
METRICS '04 Proceedings of the Software Metrics, 10th International Symposium
Proceedings of the 8th annual conference on Genetic and evolutionary computation
"Cloning Considered Harmful" Considered Harmful
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Selecting Best Practices for Effort Estimation
IEEE Transactions on Software Engineering
Pareto optimal search based refactoring at the design level
Proceedings of the 9th annual conference on Genetic and evolutionary computation
Search-based refactoring: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Search Based Software Engineering [SBSE]
Visual Detection of Design Anomalies
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Facilitating software refactoring with appropriate resolution order of bad smells
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
DECOR: A Method for the Specification and Detection of Code and Design Smells
IEEE Transactions on Software Engineering
A Bayesian Approach for the Detection of Code and Design Smells
QSIC '09 Proceedings of the 2009 Ninth International Conference on Quality Software
Deviance from perfection is a better criterion than closeness to evil when identifying risky code
Proceedings of the IEEE/ACM international conference on Automated software engineering
A fast and elitist multiobjective genetic algorithm: NSGA-II
IEEE Transactions on Evolutionary Computation
Proceedings of the 15th annual conference on Genetic and evolutionary computation
Towards extensive software architecture erosion repairs
ECSA'13 Proceedings of the 7th European conference on Software Architecture
Towards flexible automated software architecture erosion diagnosis and treatment
Proceedings of the WICSA 2014 Companion Volume
Hi-index | 0.00 |
Software defects often lead to bugs, runtime errors and software maintenance difficulties. They should be systematically prevented, found, removed or fixed all along the software lifecycle. However, detecting and fixing these defects is still, to some extent, a difficult, time-consuming and manual process. In this paper, we propose a two-step automated approach to detect and then to correct various types of maintainability defects in source code. Using Genetic Programming, our approach allows automatic generation of rules to detect defects, thus relieving the designer from a fastidious manual rule definition task. Then, we correct the detected defects while minimizing the correction effort. A correction solution is defined as the combination of refactoring operations that should maximize as much as possible the number of corrected defects with minimal code modification effort. We use the Non-dominated Sorting Genetic Algorithm (NSGA-II) to find the best compromise. For six open source projects, we succeeded in detecting the majority of known defects, and the proposed corrections fixed most of them with minimal effort.