Maintainability defects detection and correction: a multi-objective approach
genetic algorithms in search optimization and machine learning .