Restructuring Object-Oriented Software Systems Using Various Aspects of Class Information

被引:0
作者
Amarjeet Prajapati
Anshu Parashar
Jitender Kumar Chhabra
机构
[1] JIIT Noida,Computer Engineering and IT
[2] TIET Patiala,Computer Science and Engineering Department
[3] NIT Kurukshetra,Computer Engineering
来源
Arabian Journal for Science and Engineering | 2020年 / 45卷
关键词
Software engineering; Object-oriented systems; Restructuring; Genetic algorithm; Coupling metrics;
D O I
暂无
中图分类号
学科分类号
摘要
Frequent modifications in a software system generally deteriorate the design of the source code and consequently increase the complexity of the system. In object-oriented software, one of the symptoms of design degradation is that the package structure of the source code drifts away from design principles. To improve the deteriorated design, systems are generally restructured by reorganizing the classes into packages based on good design principles. Coupling and cohesion are the two important package design principles widely used to assess software design quality. Most of the existing package restructuring approaches use either structural, lexical, or change history class information to compute coupling and cohesion of software system. Moreover, these approaches compute coupling and cohesion without considering multiple dimensions of structural, lexical, and change history information. In this article, we utilize different types of structural, lexical and change history class information and integrate them as per their relative importance to compute coupling and cohesion. To automate the restructuring process, we formulate the restructuring problem as a multi-objective optimization problem and solve it by using non-dominated sorting genetic algorithm (NSGA-II). The proposed approach is applied to five object-oriented software applications. The obtained restructuring is compared with authoritative restructuring and restructuring suggested by external developers. The obtained restructuring is also compared with some existing multi-objective software restructuring approaches. Overall, findings indicate that the proposed approach can be a good approach to improve the design of software systems whose quality is under suspicion.
引用
收藏
页码:10433 / 10457
页数:24
相关论文
共 97 条
[1]  
Ahmed KN(2012)Emerging interdisciplinary fields in the coming intelligence/convergence era Cent. Eur. J. Eng. 2 315-324
[2]  
Luo Y(2016)Metrics design for safety assessment Inf. Softw. Technol. 73 151-163
[3]  
Brand MVD(1989)Software restructuring Proc. IEEE 77 607-617
[4]  
Arnold R(2005)Information-theoretic software clustering IEEE Trans. Softw. Eng. 31 150-165
[5]  
Andritsos P(2002)A fast and elitist multi-objective genetic algorithm: NSGA-II Trans. Evolut. Comput. 6 182-197
[6]  
Tzerpos V(2007)Hierarchical clustering for software architecture recovery IEEE Trans. Softw. Eng. 33 759-780
[7]  
Deb K(2017)Harmony search based remodularization for object-oriented software systems Comput. Lang. Syst. Struct. 47 53-169
[8]  
Pratap A(2017)Improving modular structure of software system using structural and lexical dependency Inf. Softw. Technol. 82 96-120
[9]  
Agarwal S(2007)Semantic clustering: identifying topics in source code Inf. Softw. Technol. 49 230-243
[10]  
Meyarivan T(2014)Data stream mining for predicting software build outcomes using source code metrics Inf. Softw. Technol. 56 183-198