Role of Structural and Semantic Relations in Determining Coupling among Software Elements
Randeep Singh · International Journal of Performability Engineering · 2019
Software maintenance, as a long-term, cost-intensive activity and an unmanaged structure of a software system, further increases maintenance efforts and thereby development costs.A well-structured software system must achieve an optimal balance between cohesion and coupling among different software elements.Therefore, in this paper, a coupling measurement technique is proposed.This technique helps measure the conceptual similarity between different elements (classes) of a software system.It utilizes two kinds of relations, structural and semantic, in order to obtain more accurate coupling measures.In particular, our proposed approach mainly extracts lexical information from four portions of the underlying source code of a software element.The four main parts are comments, Javadoc, signatures, and member variable zone.Similarly, the structural coupling is measured by counting calls to member functions of other classes generated from a given class.The proposed approach is first tested on a student record management system software and finally applied to three standard open source Java software systems.While applying on standard open source software systems, three coupling measurement schemes are designed (including the proposed one): structural, semantic, and structural+semantic (proposed).Finally, the results are presented.The results obtained are very promising and reflect the actual coupling present between classes.