Search-Based Cost-Effective Software Remodularization
Autor: | Rim Mahouachi |
---|---|
Rok vydání: | 2018 |
Předmět: |
Computer science
business.industry Software modularization media_common.quotation_subject 020207 software engineering 02 engineering and technology computer.software_genre Computer Science Applications Theoretical Computer Science Software Computational Theory and Mathematics Code refactoring Hardware and Architecture 0202 electrical engineering electronic engineering information engineering 020201 artificial intelligence & image processing Quality (business) Software system Software engineering business computer media_common |
Zdroj: | Journal of Computer Science and Technology. 33:1320-1336 |
ISSN: | 1860-4749 1000-9000 |
DOI: | 10.1007/s11390-018-1892-6 |
Popis: | Software modularization is a technique used to divide a software system into independent modules (packages) that are expected to be cohesive and loosely coupled. However, as software systems evolve over time to meet new requirements, their modularizations become complex and gradually loose their quality. Thus, it is challenging to automatically optimize the classes’ distribution in packages, also known as remodularization. To alleviate this issue, we introduce a new approach to optimize software modularization by moving classes to more suitable packages. In addition to improving design quality and preserving semantic coherence, our approach takes into consideration the refactoring effort as an objective in itself while optimizing software modularization. We adapt the Elitist Non-dominated Sorting Genetic Algorithm (NSGA-II) of Deb et al. to find the best sequence of refactorings that 1) maximize structural quality, 2) maximize semantic cohesiveness of packages (evaluated by a semantic measure based on WordNet), and 3) minimize the refactoring effort. We report the results of an evaluation of our approach using open-source projects, and we show that our proposal is able to produce a coherent and useful sequence of recommended refactorings both in terms of quality metrics and from the developer’s points of view. |
Databáze: | OpenAIRE |
Externí odkaz: |