论文标题

使用NSGA-III进行多目标软件重塑

Many-Objective Software Remodularization using NSGA-III

论文作者

Mkaouer, Mohamed Wiem, Kessentini, Marouane, Shaout, Adnan, Koligheu, Patrice, Bechikh, Slim, Deb, Kalyanmoy, Ouni, Ali

论文摘要

如今,由于持续变化和不良设计选择,软件系统很复杂且难以维护。为了处理系统的复杂性,通常,软件产品在包含依赖类的包装/模块方面被分解。但是,自动重塑系统以提高其可维护性是一项挑战。大多数现有的重塑工作主要满足一个目标,该目标是通过优化耦合和凝聚力来改善包装结构。此外,大多数现有研究仅限于少数几种操作类型,例如移动类和拆分软件包。许多其他目标,例如设计语义,减少了变化的数量并最大程度地提高了与开发变化历史的一致性,对于通过重塑软件来提高软件的质量很重要。在本文中,我们提出了一种新型的基于NSGA-III的基于多方搜索的方法。该过程旨在找到最佳的重塑解决方案,以改善包装结构,最大程度地减少变化的数量,保持语义连贯性并重新利用变化的历史。我们使用四个不同的开源系统和一个由我们的工业合作伙伴提供的汽车行业项目评估了我们方法的效率,该项目通过与软件工程师进行的定量和定性研究一起评估了我们的工业合作伙伴。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源