Improving package structure of object-oriented software using multi-objective optimization and weighted class connections
The software maintenance activities performed without following the original design decisions about the package structure usually deteriorate the quality of software modularization, leading to decay of the quality of the system. One of the main reasons for such structural deterioration is inappropri...
Main Authors: | , |
---|---|
Format: | Article |
Language: | English |
Published: |
Elsevier
2017-07-01
|
Series: | Journal of King Saud University: Computer and Information Sciences |
Subjects: | |
Online Access: | http://www.sciencedirect.com/science/article/pii/S1319157815001093 |
_version_ | 1828971032341381120 |
---|---|
author | Amarjeet Jitender Kumar Chhabra |
author_facet | Amarjeet Jitender Kumar Chhabra |
author_sort | Amarjeet |
collection | DOAJ |
description | The software maintenance activities performed without following the original design decisions about the package structure usually deteriorate the quality of software modularization, leading to decay of the quality of the system. One of the main reasons for such structural deterioration is inappropriate grouping of source code classes in software packages. To improve such grouping/modular-structure, previous researchers formulated the software remodularization problem as an optimization problem and solved it using search-based meta-heuristic techniques. These optimization approaches aimed at improving the quality metrics values of the structure without considering the original package design decisions, often resulting into a totally new software modularization. The entirely changed software modularization becomes costly to realize as well as difficult to understand for the developers/maintainers. To alleviate this issue, we propose a multi-objective optimization approach to improve the modularization quality of an object-oriented system with minimum possible movement of classes between existing packages of original software modularization. The optimization is performed using NSGA-II, a widely-accepted multi-objective evolutionary algorithm. In order to ensure minimum modification of original package structure, a new approach of computing class relations using weighted strengths has been proposed here. The weights of relations among different classes are computed on the basis of the original package structure. A new objective function has been formulated using these weighted class relations. This objective function drives the optimization process toward better modularization quality simultaneously ensuring preservation of original structure. To evaluate the results of the proposed approach, a series of experiments are conducted over four real-worlds and two random software applications. The experimental results clearly indicate the effectiveness of our approach in improving the modularization quality of existing package structure by doing very small movement of classes between packages of original software modularization. |
first_indexed | 2024-12-14T13:03:34Z |
format | Article |
id | doaj.art-7d7746d431a540289b3e635ef980b09a |
institution | Directory Open Access Journal |
issn | 1319-1578 |
language | English |
last_indexed | 2024-12-14T13:03:34Z |
publishDate | 2017-07-01 |
publisher | Elsevier |
record_format | Article |
series | Journal of King Saud University: Computer and Information Sciences |
spelling | doaj.art-7d7746d431a540289b3e635ef980b09a2022-12-21T23:00:22ZengElsevierJournal of King Saud University: Computer and Information Sciences1319-15782017-07-0129334936410.1016/j.jksuci.2015.09.004Improving package structure of object-oriented software using multi-objective optimization and weighted class connectionsAmarjeetJitender Kumar ChhabraThe software maintenance activities performed without following the original design decisions about the package structure usually deteriorate the quality of software modularization, leading to decay of the quality of the system. One of the main reasons for such structural deterioration is inappropriate grouping of source code classes in software packages. To improve such grouping/modular-structure, previous researchers formulated the software remodularization problem as an optimization problem and solved it using search-based meta-heuristic techniques. These optimization approaches aimed at improving the quality metrics values of the structure without considering the original package design decisions, often resulting into a totally new software modularization. The entirely changed software modularization becomes costly to realize as well as difficult to understand for the developers/maintainers. To alleviate this issue, we propose a multi-objective optimization approach to improve the modularization quality of an object-oriented system with minimum possible movement of classes between existing packages of original software modularization. The optimization is performed using NSGA-II, a widely-accepted multi-objective evolutionary algorithm. In order to ensure minimum modification of original package structure, a new approach of computing class relations using weighted strengths has been proposed here. The weights of relations among different classes are computed on the basis of the original package structure. A new objective function has been formulated using these weighted class relations. This objective function drives the optimization process toward better modularization quality simultaneously ensuring preservation of original structure. To evaluate the results of the proposed approach, a series of experiments are conducted over four real-worlds and two random software applications. The experimental results clearly indicate the effectiveness of our approach in improving the modularization quality of existing package structure by doing very small movement of classes between packages of original software modularization.http://www.sciencedirect.com/science/article/pii/S1319157815001093Multi-objective optimizationPackage restructuringModularizationWeighting schemeMaintenance |
spellingShingle | Amarjeet Jitender Kumar Chhabra Improving package structure of object-oriented software using multi-objective optimization and weighted class connections Journal of King Saud University: Computer and Information Sciences Multi-objective optimization Package restructuring Modularization Weighting scheme Maintenance |
title | Improving package structure of object-oriented software using multi-objective optimization and weighted class connections |
title_full | Improving package structure of object-oriented software using multi-objective optimization and weighted class connections |
title_fullStr | Improving package structure of object-oriented software using multi-objective optimization and weighted class connections |
title_full_unstemmed | Improving package structure of object-oriented software using multi-objective optimization and weighted class connections |
title_short | Improving package structure of object-oriented software using multi-objective optimization and weighted class connections |
title_sort | improving package structure of object oriented software using multi objective optimization and weighted class connections |
topic | Multi-objective optimization Package restructuring Modularization Weighting scheme Maintenance |
url | http://www.sciencedirect.com/science/article/pii/S1319157815001093 |
work_keys_str_mv | AT amarjeet improvingpackagestructureofobjectorientedsoftwareusingmultiobjectiveoptimizationandweightedclassconnections AT jitenderkumarchhabra improvingpackagestructureofobjectorientedsoftwareusingmultiobjectiveoptimizationandweightedclassconnections |