Service-Oriented Computing (SOC) is emerging as a promising software development paradigm based on the concept of encapsulating application logic within ...
Towards the Definition and Validation of Coupling Metrics for Predicting Maintainability in Service-Oriented Designs Mikhail Perepletchikov, Caspar Ryan, and Keith Frampton RMIT University School of Computer Science and Informational Technology {mikhailp, caspar, keithf}@cs.rmit.edu.au
1 Coupling Metrics for Service-Oriented Designs Service-Oriented Computing (SOC) is emerging as a promising software development paradigm based on the concept of encapsulating application logic within independent, loosely coupled, stateless services that interact via messages using standard communication protocols. The design principles of SOC are yet to be well understood; therefore service-oriented systems are often developed in an ad-hoc fashion, with little support for validating the quality of the service-oriented (SO) design upon which such systems are based. As such, there is a need for mechanisms supporting the measurement of internal structural quality attributes of SO designs (such as coupling and cohesion) in order to predict and enhance the quality of the final product. Although there is a large body of research and practice on metrics for software developed using traditional approaches such as Object-Oriented (OO) and Procedural development, such metrics are not immediately applicable to SO systems. This is due in large to the following three reasons: i) SOC is based on independent, platform agnostic services that exhibit high reuse due to low coupling (coupling through service interfaces only); ii) Services can be implemented by elements belonging to various development paradigms / languages; iii) SOC introduces an additional level of abstraction and encapsulation - a service. In SOC, operations are aggregated into elements (classes/procedures, etc.) that implement the functionality of a service as exposed through its service interface. As such, our current research is concerned with metrics for quantifying the structural coupling of design artefacts in service-oriented systems, where coupling is defined as a measure of the extent to which interdependencies exist between software modules. To date, a suite of design level metrics, covering all of the structural coupling aspects of a formal model of service-oriented design [4], has been derived and validated against the property-based software engineering measurement framework of Briand et al. [1]. These metrics are intended as early indicators/predictors of the quality characteristic of maintainability in service oriented systems, with the aim of enabling organisations to identify problems earlier in the software development lifecycle. The metrics are based on axioms which the authors’ defined to establish connections between the coupling and maintainability of SO designs in terms of analysability, changeability, stability, and testability. The axioms are based on existing literature (e.g. [2]) and the authors’ experience with service-oriented development [3]. R. Meersman, Z. Tari, P. Herrero et al. (Eds.): OTM Workshops 2006, LNCS 4277, pp. 34 – 35, 2006. © Springer-Verlag Berlin Heidelberg 2006
Towards the Definition and Validation of Coupling Metrics
35
There are ten axioms in total but due to space constraints only a single axiom and the definition of a single related metric are shown: Axiom 1: High incoming coupling from service implementation elements1 e1…en belonging to different services, to a given implementation element e of service s, will negatively influence changeability. This is because e1…en will be dependent upon the implementation characteristics of service s and thus the reuse of the external services containing these elements will be limited.
In total, nineteen metrics were derived and classified into three types: i) those directly supporting the axioms; ii) those included for coverage; and iii) those representing aggregations of the former two types of metrics. Below is an example metric based on the previously defined axiom 1. Note that the formal definition, motivation and validation of this metric have been omitted due to space limitations. Metric Name: Weighted Extra-Service Incoming Coupling of Element (WESICE) WESICE for a given service implementation element e of a particular service s is the weighted count of the number of system elements not belonging to the same service that couple to this element. To support the measurement process, a series of weights for different types of relationships defined in [4] was proposed based on the coupling effects described by the axioms. The weights are assigned in two consecutive steps. Firstly, the weights are assigned based on the types of elements involved in the communication. Secondly, the weights are assigned based on the locality and type of communication itself.
2 Future Work The next step of this research involves empirical evaluation in order to test the axioms and quantify the effect of the metrics as predictors of maintainability. This testing will also facilitate the refinement of the metric weights. Following a successful outcome, ongoing work will involve the definition of metrics to measure complexity and cohesion. Finally, in the long term view, tool support for the automated collection of metrics will also be developed. Acknowledgement. This project is funded by the ARC (Australian Research Council), under Linkage scheme no. LP0455234.
References 1. Briand, L.C., Morasca, S. and Basili, V.R. Property-Based Software Engineering Measurement. IEEE Transactions on Software Engineering, 22 (1), 1996. 68-86. 2. Erl, T. Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall PTR, Indiana, USA, 2005. 3. Perepletchikov, M., Ryan, C. and Frampton, K., Comparing the Impact of Service-Oriented and Object-Oriented Paradigms on the Structural Properties of Software. in Second International Workshop on Modeling Inter-Organizational Systems (MIOS'05), (Ayia Napa, Cyprus, 2005). 4. Perepletchikov, M., Ryan, C. and Frampton, K., A formal model of service-oriented design. in 13th Asia Pacific Software Engineering Conference, (Bangalore, India, 2006), submitted for publication. 1
OO classes/interfaces, procedural packages/headers, and business process scripts.