Int J Performability Eng ›› 2019, Vol. 15 ›› Issue (5): 1279-1288.doi: 10.23940/ijpe.19.05.p3.12791288

Previous Articles     Next Articles

Role of Structural and Semantic Relations in Determining Coupling among Software Elements

Randeep Singh* and Ashok Kumar   

  1. Department of Computer Science & Engineering, Maharishi Markandeshwar University, Mullana-Ambala, 133-207 (Haryana), India
  • Submitted on ;
  • Contact: * E-mail address: randeeppoonia@gmail.com

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

Key words: class dependence, coupling, lexical, restructuring, reverse engineering, semantic, structural