arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2005.06510cs.SEcs.AI
收藏

基于NSGA- III的多目标软件再模块化

Many-Objective Software Remodularization using NSGA-III

University of Michigan(密歇根大学);Michigan State University(密歇根州立大学)

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

摘要:

由于不断的变化和糟糕的设计选择,当今的软件系统非常复杂且难以维护。为了处理系统的复杂性,软件产品通常被分解为包含依赖类的包/模块。然而,它是具有挑战性的自动重新调整系统,以提高其可维护性。现有的大多数再模块化工作主要满足一个目标,即通过优化耦合和内聚来改善包的结构。此外,现有的研究大多局限于少数几种操作类型,如移动类和拆分包。许多其他目标,例如设计语义、减少变更数量以及最大限度地提高与开发变更历史的一致性,对于通过重新调整软件来提高软件质量非常重要。在本文中,我们提出了一种新的基于多目标搜索的方法使用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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑