Analyzing the Evolution of WSDL Interfaces using Metrics

More Info
expand_more

Abstract

Recent studies have investigated the use of source code metrics to predict the change- and defect-proneness of source code. While the indicative power of these metrics was validated for several systems, it has not been tested on Service-Oriented Architectures (SOA). In particular, the SOA paradigm prescribes the development of systems through the composition of services, i.e., network-accessible components. In one implementation of SOA which is very popular in industry, services are specified using WSDL interface descriptions. Thus, service consumers are highly affected by the changes performed on an evolving WSDL interface. This fact reveals the importance of assessing the change-proneness of interfaces in SOA. This work aims at investigating the correlation between several cohesion and data type complexity metrics and the change-proneness of a WSDL interface. We empirically investigate the correlation between the number of fine-grained interface changes and complexity and cohesion metrics including a newly defined data type cohesion (DTC) metric. Furthermore, we perform a manual analysis of the interfaces to gain better insight to our conclusions. We performed these measurements on multiple versions of ten widely used, open-source WSDL interfaces. Our results show that data type complexity expressed in number of nodes is an appropriate metric to represent data type complexity but not sufficient to predict the change-proneness of an interface. In addition, we investigate three other cohesion metrics: LCOS, SFCI and SIDC presented in the literature and the newly designed DTC metric. Our empirical study shows that among the tested metrics it is the DTC cohesion metric that exhibits the strongest correlation with the number of fine-grained changes performed in subsequent versions of WSDLs. Finally, based on the DTC metric results about the cohesion in data types, we manually analyzed the examined WSDLs and we conclude that highly referenced data types are less change-prone.