Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Identifying Modules via Concept Analysis
IEEE Transactions on Software Engineering
Multi-Objective Optimization Using Evolutionary Algorithms
Multi-Objective Optimization Using Evolutionary Algorithms
Automatic Clustering of Software Systems Using a Genetic Algorithm
STEP '99 Proceedings of the Software Technology and Engineering Practice
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
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
A heuristic search approach to solving the software clustering problem
A heuristic search approach to solving the software clustering problem
An Effectiveness Measure for Software Clustering Algorithms
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
A language-independent software renovation framework
Journal of Systems and Software - Special issue: Software reverse engineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
Using Interactive GA for Requirements Prioritization
SSBSE '10 Proceedings of the 2nd International Symposium on Search Based Software Engineering
Software Re-Modularization Based on Structural and Semantic Metrics
WCRE '10 Proceedings of the 2010 17th Working Conference on Reverse Engineering
Interactive, Evolutionary Search in Upstream Object-Oriented Class Design
IEEE Transactions on Software Engineering
Software Module Clustering as a Multi-Objective Search Problem
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
This paper proposes the use of Interactive Genetic Algorithms (IGAs) to integrate developer's knowledge in a re-modularization task. Specifically, the proposed algorithm uses a fitness composed of automatically-evaluated factors--accounting for the modularization quality achieved by the solution--and a human-evaluated factor, penalizing cases where the way re-modularization places components into modules is considered meaningless by the developer. The proposed approach has been evaluated to re-modularize two software systems, SMOS and GESA. The obtained results indicate that IGA is able to produce solutions that, from a developer's perspective, are more meaningful than those generated using the full-automated GA. While keeping feedback into account, the approach does not sacrifice the modularization quality, and may work requiring a very limited set of feedback only, thus allowing its application also for large systems without requiring a substantial human effort.