- The paper proposes a novel search-based software engineering approach using the NSGA-III algorithm to address software remodularization as a many-objective optimization problem.
- It introduces a comprehensive model considering seven objectives, including structural factors, semantic coherence, and leveraging past code change history, to find improved remodularization solutions.
- Evaluation on real-world systems demonstrates NSGA-III's superior performance in balancing multiple objectives, achieving better solutions in package structure, reduced code change, and semantic coherence compared to existing methods.
Many-Objective Software Remodularization using NSGA-III
The paper "Many-objective software remodularization using NSGA-III" addresses the complexity of software system maintenance by proposing a novel approach based on the Non-dominated Sorting Genetic Algorithm III (NSGA-III). This work advances the field of software remodularization by framing it as a many-objective optimization problem—optimizing more than three objectives—rather than the more traditionally approached single or multi-objective problems.
Overview and Methodology
Software remodularization, a technique used to improve the maintainability of complex software systems by rearranging their modular structures, is essential to ensure long-term sustainability and performance. Previous approaches have primarily focused on enhancing structural qualities such as coupling and cohesion while neglecting essential factors like semantic coherence and change history utilization. This paper introduces a comprehensive model that addresses these limitations by utilizing a search-based software engineering (SBSE) approach with seven distinct objectives:
- Optimizing structural aspects such as the number of classes per package and the number of packages.
- Enhancing package cohesion and minimizing coupling.
- Preserving semantic coherence by maintaining logical class distributions.
- Minimizing the extent of code changes needed.
- Leveraging the history of past code changes to guide decisions.
The NSGA-III algorithm is adapted to manage these objectives through its capability to handle problems with a large number of objectives, proving more scalable and efficient than its predecessor NSGA-II. NSGA-III incorporates a new reference point strategy and niche preservation techniques, significantly improving solution diversity and convergence towards optimal remodularization solutions.
Evaluation and Results
The researchers evaluated their approach using four open-source systems and one proprietary system from the automotive industry. Their approach demonstrated substantial improvements over existing methodologies. The system's restructured outputs from NSGA-III showed significant advancements in package structure, reduced code change, and enhanced semantic coherence compared to solutions derived from single and multi-objective approaches. In particular, the approach excelled at achieving consistency with development history, highlighting the significance of considering historical context in remodularization.
Quantitative metrics like Inverted Generational Distance (IGD) confirmed NSGA-III's superior performance in finding well-distributed and quality solutions, particularly in managing up to seven competing objectives simultaneously. Additionally, qualitative assessments involving software engineers highlighted the utility and validity of the remodularization suggestions, corroborating the approach's practical applicability.
Implications and Future Work
This paper provides a compelling case for integrating diverse objectives into software remodularization practices, which is a crucial insight for software engineering researchers and practitioners alike. It illustrates that balancing structural, semantic, and historical aspects can result in more effective and maintainable software architectures.
The proposed approach's implications extend beyond just remodularization. This research sets a precedent for applying many-objective optimization algorithms in other software engineering domains, pushing the boundaries of traditional SBSE techniques. Future work could explore adapting NSGA-III to different software engineering challenges or integrating it with dynamic analysis techniques to further improve remodularization effectiveness. Furthermore, investigating user-driven objective weighting during search processes would offer additional customization and control, enhancing the applicability of this versatile approach in various development contexts.
In summary, this paper contributes a novel perspective on handling software remodularization challenges with many competing objectives, showcasing the effectiveness and scalability of NSGA-III in real-world applications. It opens new research avenues and practical possibilities within the field of SBSE, emphasizing the importance of considering multifaceted remodularization goals for sustained software maintenance success.