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...

Full description

Bibliographic Details
Main Authors: Amarjeet, Jitender Kumar Chhabra
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