Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
153 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
45 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Many-Objective Software Remodularization using NSGA-III (2005.06510v1)

Published 13 May 2020 in cs.SE and cs.AI

Abstract: Software systems nowadays are complex and difficult to maintain due to continuous changes and bad design choices. To handle the complexity of systems, software products are, in general, decomposed in terms of packages/modules containing classes that are dependent. However, it is challenging to automatically remodularize systems to improve their maintainability. The majority of existing remodularization work mainly satisfy one objective which is improving the structure of packages by optimizing coupling and cohesion. In addition, most of existing studies are limited to only few operation types such as move class and split packages. Many other objectives, such as the design semantics, reducing the number of changes and maximizing the consistency with development change history, are important to improve the quality of the software by remodularizing it. In this paper, we propose a novel many-objective search-based approach using NSGA-III. The process aims at finding the optimal remodularization solutions that improve the structure of packages, minimize the number of changes, preserve semantics coherence, and re-use the history of changes. We evaluate the efficiency of our approach using four different open-source systems and one automotive industry project, provided by our industrial partner, through a quantitative and qualitative study conducted with software engineers.

Citations (243)

Summary

  • 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:

  1. Optimizing structural aspects such as the number of classes per package and the number of packages.
  2. Enhancing package cohesion and minimizing coupling.
  3. Preserving semantic coherence by maintaining logical class distributions.
  4. Minimizing the extent of code changes needed.
  5. 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.