<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0717-5000</journal-id>
<journal-title><![CDATA[CLEI Electronic Journal]]></journal-title>
<abbrev-journal-title><![CDATA[CLEIej]]></abbrev-journal-title>
<issn>0717-5000</issn>
<publisher>
<publisher-name><![CDATA[Centro Latinoamericano de Estudios en Informática]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0717-50002013000100005</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[Web Service interface quality through conventional object-oriented metrics]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Ordiales Coscia]]></surname>
<given-names><![CDATA[José Luis]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Crasso]]></surname>
<given-names><![CDATA[Marco]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Mateos]]></surname>
<given-names><![CDATA[Cristian]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Zunino]]></surname>
<given-names><![CDATA[Alejandro]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,UNICEN University ISISTAN Research Institute ]]></institution>
<addr-line><![CDATA[Tandil Buenos Aires]]></addr-line>
<country>Argentina</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>04</month>
<year>2013</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>04</month>
<year>2013</year>
</pub-date>
<volume>16</volume>
<numero>1</numero>
<fpage>5</fpage>
<lpage>5</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_arttext&amp;pid=S0717-50002013000100005&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_abstract&amp;pid=S0717-50002013000100005&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_pdf&amp;pid=S0717-50002013000100005&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[Historically, software engineers have conceived metric suites as valuable tools to estimate the quality of their software artifacts. Recently, a fresh computing paradigm called Service-Oriented Computing (SOC) has emerged at the crossing of massively distributed and heterogeneous software. This paper presents a statistical correlation analysis showing that classic software engineering metrics can be used to predict the most relevant quality attributes of WSDL documents, the essential software artifact when materializing this novel computing paradigm with Web-based technologies. For the experiments, two recent WSDL-level metrics catalogs and 154 real world WSDL documents have been employed.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[Históricamente, los ingenieros de software han concebido a los catálogos de métricas como una herramienta importante para estimar la calidad de sus artefactos de software. Recientemente, ha emergido un paradigma de computación denominado Computación Orientada a Servicios (COS), pensado para diseñar software heterogéneo y masivamente distribuido. El presente paper introduce un análisis de correlación estadística que muestra que ciertas métricas clásicas de la ingeniería de software son útiles para predecir los atributos de calidad más relevantes de los documentos WSDL, vale decir, el artefacto de software por excelencia al materializar COS utilizando tecnologías Web. En los experimentos, se utilizaron dos catálogos recientes de métricas para documentos WSDL y un conjunto de 154 documentos WSDL provinientes de sistemas reales.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[Service-oriented Computing]]></kwd>
<kwd lng="en"><![CDATA[Web Services]]></kwd>
<kwd lng="en"><![CDATA[Code-first]]></kwd>
<kwd lng="en"><![CDATA[Web Service Quality]]></kwd>
<kwd lng="en"><![CDATA[Object-oriented Metrics]]></kwd>
<kwd lng="en"><![CDATA[Early Detection]]></kwd>
<kwd lng="es"><![CDATA[Computación Orientada a Servicios]]></kwd>
<kwd lng="es"><![CDATA[Servicios Web]]></kwd>
<kwd lng="es"><![CDATA[code-first]]></kwd>
<kwd lng="es"><![CDATA[Calidad en Servicios Web]]></kwd>
<kwd lng="es"><![CDATA[Métricas Orientadas a Objetos]]></kwd>
<kwd lng="es"><![CDATA[Detección temprana]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <div class="maketitle"> <b><font face="Verdana" size="4">Estimating Web Service interface quality through conventional object-oriented metrics<span class="thank-mark"><a href="#tk-1"><img  src="/img/revistas/cleiej/v16n1/1a050x.png" alt="* " class="math"></a></span></font></b>    <div class="author">   <font face="Verdana" size="2"><span class="t1xb-x-x-120">Jos&eacute; Luis Ordiales Coscia, Marco Crasso, Cristian Mateos, Alejandro Zunino</span>     <br> <span class="t1xr-x-x-120">ISISTAN Research Institute - UNICEN University,</span>     <br> <span class="t1xr-x-x-120">Tandil, Buenos Aires, Argentina</span>     <br> <span class="t1xr-x-x-120">Consejo Nacional de Investigaciones Cient&iacute;ficas y T&eacute;cnicas (CONICET)</span>     <br> <span class="t1xi-x-x-120">e-mails [<a  href="mailto:mcrasso@conicet.gov.ar"> mcrasso</a>|<a href="mailto:cmateos@conicet.gov.ar">cmateos</a>|<a  href="mailto:azunino@conicet.gov.ar">azunino</a>]@conicet.gov.ar</span></font></div> <font face="Verdana" size="2">     <br> </font>     <div class="date"></div>     <div class="thanks"><font face="Verdana" size="2">    <br> <a id="tk-1"></a><span class="thank-mark"><img  src="/img/revistas/cleiej/v16n1/1a051x.png" alt="* " class="math"></span>This paper is an extended version of the paper presented at the XV Ibero-American Conference on Software Engineering - CIbSE 2012</font></div> </div>     ]]></body>
<body><![CDATA[<div class="abstract">     <div class="center">     <div class="minipage">     <div class="center">     <p><font face="Verdana" size="2"><span class="t1xb-">Abstract</span></font></p> </div> <font face="Verdana" size="2">Historically, software engineers have conceived metric suites as valuable tools to estimate the quality of their software artifacts. Recently, a fresh computing paradigm called Service-Oriented Computing&nbsp;(SOC) has emerged at the crossing of massively distributed and heterogeneous software. This paper presents a statistical correlation analysis showing that classic software engineering metrics can be used to predict the most relevant quality attributes of WSDL documents, the essential software artifact when materializing this novel computing paradigm with Web-based technologies. For the experiments, two recent WSDL-level metrics catalogs and 154&nbsp;real world WSDL documents have been employed.&nbsp; </font>     <p><font face="Verdana" size="2">Spanish abstract:&nbsp;</font></p>     <p><font face="Verdana" size="2">Hist&oacute;ricamente, los ingenieros de software han concebido a los cat&aacute;logos de m&eacute;tricas como una herramienta importante para estimar la calidad de sus artefactos de software. Recientemente, ha emergido un paradigma de computaci&oacute;n denominado Computaci&oacute;n Orientada a Servicios (COS), pensado para dise&ntilde;ar software heterog&eacute;neo y masivamente distribuido. El presente paper introduce un an&aacute;lisis de correlaci&oacute;n estad&iacute;stica que muestra que ciertas m&eacute;tricas cl&aacute;sicas de la ingenier&iacute;a de software son &uacute;tiles para predecir los atributos de calidad m&aacute;s relevantes de los documentos WSDL, vale decir, el artefacto de software por excelencia al materializar COS utilizando tecnolog&iacute;as Web. En los experimentos, se utilizaron dos cat&aacute;logos recientes de m&eacute;tricas para documentos WSDL y un conjunto de 154 documentos WSDL provinientes de sistemas reales.&nbsp;</font></p>     <p><font face="Verdana" size="2"><span class="t1xb-">Keywords: </span>Service-oriented Computing, Web Services, Code-first, Web Service Quality, Object-oriented Metrics, Early Detection    <br> <br class="newline"> Spanish Keywords: Computaci&oacute;n Orientada a Servicios, Servicios Web, code-first, Calidad en Servicios Web, M&eacute;tricas Orientadas a Objetos, Detecci&oacute;n temprana     <br> <br class="newline"> Received 2012-07-09, Revised 2012-12-13, Accepted 2012-12-13 </font> </p> </div> <!--l. 45--> </div> </div>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><span class="titlemark">1 </span> <a  id="x1-10001"></a>Introduction</font></p> <font face="Verdana" size="2">     <br> </font>     <p><font face="Verdana" size="2">The Service-Oriented Computing&nbsp;(SOC) paradigm has been steadily gaining territory in the software industry. With SOC, the composition of loosely coupled pieces of software, called <span  class="t1xi-">services</span>, drives software construction. A key to SOC is that services may be provided by third-parties who only expose services interfaces to the outer world.&nbsp;</font></p>     <p> <font face="Verdana" size="2">This basic idea has been present in the software industry for a long time. However, the advances in distributed system technologies nowadays encourage engineers to implement the SOC paradigm in environments with higher levels of distribution and heterogeneity. For instance, broadband and ubiquitous connections enable to reach the Internet from everywhere and at every time, enabling a global scale marketplace of software services. In such a marketplace, providers may offer their services interfaces and consumers may invoke them regardless of geographical aspects, using the current Web infrastructure as the communication channel. When services are implemented using standard Web languages and protocols &ndash;which is the most common scenario&ndash; they are called <span class="t1xi-">Web Services</span>. Nowadays, Web Services are the leading character in diverse contexts. For example, they are the chosen technology usually employed when migrating legacy systems&nbsp;<span class="cite">(<a  href="#XIC-RodriguezCMZC2011">1</a>)</span><a name="1."></a> or the technological protocol stack used when accessing remote information from smartphones&nbsp;<span class="cite">(<a href="#XOrtiz2010">2</a>)</span><a  name="2."></a>.&nbsp;</font></p>     <p> <font face="Verdana" size="2">Like programs or in general any other software artifact, service interface descriptions have a size, complexity and quality, all of which can be measured&nbsp;<span class="cite">(<a  href="#XWSE-Sneed10">3</a>)</span><a name="3."></a>. Previous research has emphasized on the importance of services interfaces and more specifically their non-functional concerns. Particularly, the work of&nbsp;<span class="cite">(<a href="#XSCICO-RodriguezCZC10">4</a>)<a  name="4."></a></span> identifies common bad practices found in services interfaces, which impact on the understandability and discoverability of described services. In this context, understandability is the ability of a service interface description of being self-explanatory, i.e., a software engineer can effectively reason about a service purpose just by looking at its associated interface description. Discoverability, on the other hand, refers to the ability of a service of being easily retrieved, from a registry or repository, based on a partial description of its functionality, i.e., a query. At the same time, in&nbsp;<span class="cite">(<a href="#XWSE-Sneed10">3</a>)</span> the author describes a suite of metrics to assess the complexity and quality of services interfaces.&nbsp;</font></p>     <p> <font face="Verdana" size="2">In an attempt to study the relationships between understandability and discoverability problems associated with services interfaces, such as&nbsp;<span class="cite">(<a  href="#XSCICO-RodriguezCZC10">4</a>)</span>, and service implementation metrics, such as&nbsp;<span class="cite">(<a  href="#XChidamber1994">5</a><a name="5."></a>,&nbsp;<a  href="#XBansiya2002">6</a><a name="6."></a>)</span>, in&nbsp;<span  class="cite">(<a href="#XIJWGS-MateosCZOC11">7</a><a name="7."></a>)</span> a statistical correlation analysis has been reported. The rationale behind the study is that in practice services interfaces are not build by hand, but instead they are automatically generated by mapping programming languages constructors onto service interface descriptions expressed in Web Service Definition Language (WSDL). WSDL is an XML-based format for describing a service as a set of operations, whose invocation is based on message exchange. For services implemented in Java, this mapping is usually achieved by tools such as Axis&rsquo; Java2WSDL, Java2WS, EasyWSDL, and WSProvide.&nbsp;</font></p>     <p> <font face="Verdana" size="2">As a complement, in this paper we study the feasibility of obtaining less <span class="t1xi-">complex</span>, of the highest possible <span class="t1xi-">quality</span>, and more <span class="t1xi-">maintainable </span>services by exploiting Object-Oriented metrics (OO) values from the code implementing services. Similar to&nbsp;<span class="cite">(<a  href="#XIJWGS-MateosCZOC11">7</a>)</span>, the approach behind this work relies on employing these metrics as early indicators to warn software engineers about the possibility of obtaining services interfaces with high complexity, low quality or low maintainability at development time. For the purposes of this paper, the terms complexity, quality and maintainability are used as follows. Complexity refers to lingual, data, and structural aspects of WSDL documents. Furthermore, the term quality refers to Modularity, Adaptability, Reusability, Testability, Portability, and Conformity attributes. Each quality attribute will be explained later in this paper. Finally, maintainability estimates the effort required to understand the messages that are responsible for representing services operations inputs/outputs.&nbsp;</font></p>     <p> <font face="Verdana" size="2">Interestingly, we have found that there is a statistical significant, somewhat high correlation between several traditional (source code-level) OO metrics and the catalog of (WSDL-level) service metrics described in&nbsp;<span class="cite">(<a  href="#XWSE-Sneed10">3</a>)</span> and&nbsp;<span class="cite">(<a href="#XIET-BaskiM11">8</a><a name="8."></a>)</span>. To date, these are the most comprehensive catalog of metrics for measuring complexity/quality and maintainability, respectively, of WSDL interfaces. All in all, we argue that based on these indicators, software engineers could consider applying simple early code refactorings to avoid obtaining services interfaces with the mentioned problems.&nbsp;</font></p>     <p> <font face="Verdana" size="2">It is worth noting that although our approach to correlation does not depend on the programming language in which services are implemented, we limit the scope of our research to Java, which is very popular in back-end and hence service development. To evaluate our approach, we performed experiments by employing a data-set of real services, and one of the most popular Java-to-WSDL generation tool, namely Java2WSDL(<a  href="http://ws.apache.org/axis/java" class="url"><span class="t1xtt-">http://ws.apache.org/axis/java</span></a>).&nbsp;</font></p>     <p> <font face="Verdana" size="2">The rest of the paper is structured as follows. Section&nbsp;<a href="#x1-20002">2</a> gives some background necessary to understand the goals and results of the study presented in this paper. Section&nbsp;<a  href="#x1-30003">3</a> surveys relevant related works. Section&nbsp;<a href="#x1-60004">4</a> presents detailed analytical experiments that evidence the correlation of OO metrics with the Web Service metrics both proposed in&nbsp;<span class="cite">(<a  href="#XWSE-Sneed10">3</a>)</span> and&nbsp;<span class="cite">(<a  href="#XIET-BaskiM11">8</a>)</span>. Finally, Section&nbsp;<a href="#x1-110005">5</a> concludes the paper.&nbsp;</font></p>     ]]></body>
<body><![CDATA[<p> </p>     <p><font face="Verdana" size="2"><span class="titlemark">2 </span> <a  id="x1-20002"></a>Background</font></p> <font face="Verdana" size="2">     <br> </font>     <p><font face="Verdana" size="2">WSDL allows providers to describe a service from two main angles, namely what it does (its functionality) and how to invoke it. Following the version&nbsp;1.1 of the WSDL specification, the former part reveals the service interface that is offered to potential consumers. The latter part specifies technological aspects, such as transport protocols and network addresses. Consumers use the functional descriptions to match third-party services against their needs, and the technological details to invoke the selected service. With WSDL, service functionality is described as a <span  class="t1xi-">port-type</span>&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a052x.png"  alt="W = {O0(I0,R0),..,ON(IN,RN )} " class="math">, which arranges different operations&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a053x.png" alt="Oi  " class="math"> that exchange input and return messages&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a054x.png" alt="Ii  " class="math"> and&nbsp;<img src="/img/revistas/cleiej/v16n1/1a055x.png" alt="Ri  "  class="math">, respectively. Port-types, operations and messages must be labeled with unique names. Optionally, these WSDL elements might contain some documentation in the form of comments.&nbsp;</font></p>     <p> <font face="Verdana" size="2">Messages consist of <span class="t1xi-">parts </span>that transport data between providers and consumers of services, and vice-versa. Exchanged data is represented by using XML but according to specific data-type definitions in XML Schema Definition&nbsp;(XSD), a language to define the structure of an XML document. XSD offers constructors for defining simple types (e.g., integer and string), restrictions, and both encapsulation and extension mechanisms to define complex constructs. XSD code might be included in a WSDL document using the <span class="t1xi-">types </span>element, but alternatively it might be put into a separate file and imported from the WSDL document or external WSDL documents in order to achieve type reuse.&nbsp;</font></p>     <p> <font face="Verdana" size="2">A requirement inherent to manually creating and manipulating WSDL and XSD definitions is that services are built in a <span class="t1xi-">contract-first </span>manner, a methodology that encourages designers to first specify the WSDL-based interface of a service and then supply an implementation for it. However, the most used approach to build Web Services by the industry is <span class="t1xi-">code-first</span>, which means that one first implements a service and then generates the corresponding service interface by automatically deriving the WSDL document from the implemented code. This means that WSDL documents are not directly created by humans but are instead automatically derived via language-dependent tools. Such a tool performs a mapping <span class="t1xi-">T</span>&nbsp;<span  class="cite">(<a href="#XIJWGS-MateosCZOC11">7</a>)</span>, formally: </font> </p> <table class="equation">   <tbody>     <tr>       <td><font face="Verdana" size="2"><a id="x1-2001r1"></a>       </font>       <center class="math-display"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a056x.png" alt="T : C &rarr; W,"  class="math-display"></font></center>       </td>       <td class="equation-label"><font face="Verdana" size="2">(1)</font></td>     </tr>   </tbody> </table> <font face="Verdana" size="2">     <br> </font>     <p></p>     <p> <font face="Verdana" size="2">Mapping&nbsp;<span class="t1xi-">T </span>from <img  src="/img/revistas/cleiej/v16n1/1a057x.png"  alt="C = {M (I0,R0),..,MN (IN,RN)} " class="math">&nbsp;to <img  src="/img/revistas/cleiej/v16n1/1a058x.png"  alt="W = {O0(I0,R0),..,ON(IN,RN)} " class="math">, being <img  src="/img/revistas/cleiej/v16n1/1a059x.png" alt="C " class="math"> the front-end class implementing a service and <img  src="/img/revistas/cleiej/v16n1/1a0510x.png" alt="W " class="math"> the WSDL document describing the service, generates a WSDL document containing a port-type for the service implementation class, having as many operations&nbsp;<img src="/img/revistas/cleiej/v16n1/1a0511x.png"  alt="O " class="math"> as public methods&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0512x.png" alt="M " class="math"> are defined in the class. Moreover, each operation of&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0513x.png" alt="W " class="math"> is associated with one input message&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0514x.png" alt="I " class="math"> and another return message<span class="t1xi-">&nbsp;</span><img  src="/img/revistas/cleiej/v16n1/1a0515x.png" alt="R " class="math">, while each message conveys an XSD type that stands for the parameters of the corresponding class method. Tools like WSDL.exe, Java2WSDL, and gSOAP&nbsp;<span class="cite">(<a href="#XVanEngelen2002">9</a>)</span><a  name="9."></a> are based on a mapping&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0516x.png" alt="T " class="math"> for generating WSDL documents from C#, Java and C++, respectively, though each tool implements&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0517x.png" alt="T " class="math"> in a particular manner mostly because of the different characteristics of the involved programming languages.&nbsp;</font></p>     <p> <font face="Verdana" size="2">Figure&nbsp;<a href="#x1-20021">1</a> shows the generation of a WSDL document using Java2WSDL. It can be noted that the mapping&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0518x.png" alt="T " class="math"> maps each public method from the service code to an <span class="t1xi-">operation </span>containing two <span class="t1xi-">messages </span>in the WSDL document and these, in turn, are associated with an XSD type containing the parameters of that operation. As shown in&nbsp;<span class="cite">(<a  href="#XIJWGS-MateosCZOC11">7</a>)</span>, depending on the tool used, however, some minor differences between the generated WSDL documents may arise. For instance, for the same service Java2WSDL generates only one port-type with all the operations of the Web Service, whereas WSDL.exe generates three port-types (one for each transport protocol). As we mentioned before, these differences are a result of the implementation each tool uses when applying the mapping to the service code. </font> </p> <hr class="figure">     ]]></body>
<body><![CDATA[<div class="figure"><font face="Verdana" size="2">&nbsp; </font>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v16n1/1a05f1.png"  alt="PIC" class="graphics" height="453" width="516">    <br> </font> </p>     <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;1: </span><span  class="content">WSDL generation in Java</span></font></div>   <font face="Verdana" size="2">     <br>   </font>     <p> </p> </div> <hr class="endfigure"><font face="Verdana" size="2">    <br> </font>     <p> <font face="Verdana" size="2">There are metrics for assessing WSDL documents size, cohesion, understandability, discoverability, complexity and quality, just to name a few characteristics. Precisely, the fact underpinning our study is that WSDL metrics in the general sense are strongly associated with API design attributes&nbsp;<span  class="cite">(<a href="#XIJWGS-MateosCZOC11">7</a>,&nbsp;<a  href="#XSCICO-RodriguezCZC10">4</a>)</span>. These latter have been throughly studied by the software engineering community and as a result suites of OO class-level metrics exist, such as the Chindamber and Kemerer&rsquo;s metric catalog&nbsp;<span class="cite">(<a  href="#XChidamber1994">5</a>)</span>. Consequently, these metrics tell providers about how a service implementation conforms to specific design attributes. For example, the LCOM&nbsp;(Lack of Cohesion Methods) metric provides a mean to measure how well the methods of a class are semantically related to each other, or the <span class="t1xi-">cohesion </span>design attribute.&nbsp;</font></p>     <p> <font face="Verdana" size="2">An interesting approach is then to assess whether a desired design attribute as measured by OO metrics is maintained after WSDL generation as measured by one or more WSDL-level metrics (e.g., <span  class="cite">(<a href="#XWSE-Sneed10">3</a>,&nbsp;<a  href="#XIET-BaskiM11">8</a>)</span>) suitable for the attribute. As a corollary, by using well-known software engineering metrics on a service code<span  class="t1xi-">&nbsp;</span><img  src="/img/revistas/cleiej/v16n1/1a0520x.png" alt="C " class="math">, a provider might have an estimation of how the resulting WSDL document&nbsp;<img src="/img/revistas/cleiej/v16n1/1a0521x.png"  alt="W " class="math"> will be like in terms of understandability, discoverability, complexity and so on, since a known mapping&nbsp;<img src="/img/revistas/cleiej/v16n1/1a0522x.png" alt="T "  class="math"> relates <img  src="/img/revistas/cleiej/v16n1/1a0523x.png" alt="C " class="math">&nbsp;with&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0524x.png" alt="W " class="math">. If indeed such code metric/anti-pattern relationships exist, then it would be possible to determine a wider range of metric values for&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0525x.png" alt="C " class="math"> so that <img src="/img/revistas/cleiej/v16n1/1a0526x.png" alt="T "  class="math"><span class="t1xi-">&nbsp;</span>generates <img  src="/img/revistas/cleiej/v16n1/1a0527x.png" alt="W " class="math"><span  class="t1xi-">&nbsp;</span>without undesirable WSDL-level metric values in the best case. </font> </p>     <p><font face="Verdana" size="2"><span class="titlemark">3 </span> <a  id="x1-30003"></a>Related work</font></p> <font face="Verdana" size="2">     ]]></body>
<body><![CDATA[<br> </font>     <p><font face="Verdana" size="2">It can be found in the literature that researchers have been using traditional OO metrics at development time of conventional software to predict the number of defects or other quality attributes&nbsp;<span class="cite">(<a href="#XTSE-SubramanyamK03">10</a><a  name="10."></a>,&nbsp;<a href="#XTSE-GyimothyFS05">11</a><a name="11."></a>,&nbsp;<a  href="#XMeirelles2010">12</a><a name="12."></a>)</span>. With respect to Web Services, though there has been a substantial amount of research concerning improving services interfaces quality&nbsp;<span class="cite">(<a  href="#XWSE-Sneed10">3</a>,&nbsp;<a href="#XSCICO-RodriguezCZC10">4</a>,&nbsp;<a  href="#XIET-BaskiM11">8</a>)</span>, the approach to associate implementation metrics with services interfaces has been recently and exclusively explored in&nbsp;<span class="cite">(<a href="#XIJWGS-MateosCZOC11">7</a>)</span>.&nbsp;</font></p>     <p> <font face="Verdana" size="2">In&nbsp;<span class="cite">(<a  href="#XIJWGS-MateosCZOC11">7</a>)</span> the authors collect a publicly available data-set of Web Services projects, which by itself has been a valuable contribution to the field, and analyze the statistical relationships between metrics that were taken from services implementations and metrics taken from corresponding WSDL documents. In particular, the authors employed a sub-set of the WSDL metrics presented in&nbsp;<span class="cite">(<a  href="#XSCICO-RodriguezCZC10">4</a>)</span>, as it subsumes those research works focused on obtaining more legible, clear and discoverable WSDL documents&nbsp;<span class="cite">(<a  href="#XFan2005">13</a><a name="13."></a>,&nbsp;<a href="#XBlake2008">14</a><a  name="14."></a>,&nbsp;<a href="#XPasley2006">15</a><a name="15."></a>)</span>. Therefore, <span class="cite">(<a href="#XIJWGS-MateosCZOC11">7</a>)</span>&nbsp;studies the relationships between service implementation metrics and the discoverability of target services interfaces in WSDL. Complementary, this paper presents the statistical relationships between Object-Oriented metrics (OO) values from the code implementing services and the WSDL metrics values of two metrics suites, namely Sneed&rsquo;s suite&nbsp;<span class="cite">(<a  href="#XWSE-Sneed10">3</a>)</span> and Basci &amp; Misra&rsquo;s&nbsp;suite&nbsp;<span class="cite">(<a  href="#XIET-BaskiM11">8</a>)</span>.&nbsp;</font></p>     <p> </p>     <p><font face="Verdana" size="2"><span class="titlemark">3.1 </span> <a  id="x1-40003.1"></a>Harry M. Sneed&rsquo;s metrics</font></p> <font face="Verdana" size="2">The suite of metrics proposed by H. Sneed&nbsp;<span class="cite">(<a  href="#XWSE-Sneed10">3</a>)</span> broadly comprises metrics to assess the complexity of services interfaces and to determine their size for estimating testing effort. The suite consists of different kinds of metrics, which range from common size measurements like lines of code and number of statements, to metrics for measuring the complexity and quality of Web Services. All the involved metrics can be statically computed from a service interface in WSDL, since the metric suite is purely based on WSDL schema elements occurrences. For the purposes of this work, we focus on two groups of metrics, namely 6&nbsp;complexity metrics: Interface Data Complexity&nbsp;(Chapin&rsquo;s metric&nbsp;<span class="cite">(<a  href="#X10.1109/AFIPS.1979.11">16</a>)</span><a name="16."></a>), Interface Relation Complexity, Interface Format Complexity, Interface Structure Complexity&nbsp;(Henry et al.&rsquo;s metric&nbsp;<span class="cite">(<a href="#X1702877">17</a>)</span><a  name="17."></a>), Data Flow Complexity (Elshof&rsquo;s Metric), Language Complexity (Halstead&rsquo;s Metric), and 6&nbsp;quality metrics: Modularity, Adaptability, Reusability, Testability, Portability, and Conformity. It is worth noting that the terms used to denote quality metrics are known in the literature as properties, factors or characteristics&nbsp;<span class="cite">(<a href="#XIEEEGlossary">18</a><a  name="18."></a>)</span>. However, we are here strictly following the terminology of Harry S. Sneed, which proposed these quality metrics.&nbsp; </font>     <p> <font face="Verdana" size="2">Sneed defines the complexity of a service interface as the median value of its lingual complexity and its structural complexity. By basing on Halstead&rsquo;s metric&nbsp;<span class="cite">(<a  href="#XHalstead:1977:ESS:540137">19</a>)</span><a name="19."></a>, Sneed defines the lingual complexity of a service interface as <img src="/img/revistas/cleiej/v16n1/1a0528x.png"  alt="   --statementtypes- 1 -statementoccurrence  " class="math">. WSDL schema operators and operands are the types of a statement that can be found in a service interface. At the same time, Sneed defines structural complexity as <img  src="/img/revistas/cleiej/v16n1/1a0529x.png"  alt="     Entities 1 - Relationships  " class="math">, in which entities are the instances of the data-types, messages, operations, parameters, bindings and ports defined in the schema and occurring in the target interface, and a relationship (vertical or horizontal) refers to compositions and cross-references, respectively. An example of vertical relationship is when a complex data-type definition groups XSD built-in data-types. Another example is when a message groups several parts, or a port-type that arranges two or more operations. Instead, horizontal relationships in a WSDL schema are the cross references from one schema to another and from one data-type to another. </font> </p>     <div class="table"> <hr class="float">     <div class="float">     <div class="caption"><font face="Verdana" size="2"><span class="id">Table&nbsp;1: </span><span  class="content">Service interface quality metrics (from&nbsp;<span  class="cite">(<a href="#XWSE-Sneed10">3</a>)</span>).</span></font></div> <!--tex4ht:label?: x1-40011 -->     <div class="pic-tabular"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a05t1.png"></font></div> </div> <hr class="endfloat"> </div> <!--l. 381-->     ]]></body>
<body><![CDATA[<p> <font face="Verdana" size="2">Regarding the service interface quality aspects that can be statically measured from a WSDL document, Sneed defines an intuitive metric suite purely based on WSDL schema elements occurrences. The notation used by Sneed for his metrics refers to group data-types to those XSD elements that are composed of smaller elements, e.g., a complex element with a sequence of built-in elements like int and string. Built-in elements are called <span class="t1xi-">elementary </span>ones. User data-types are those elements originally defined in the WSDL types section. Table&nbsp;<a href="#x1-40011">1</a> summarizes these metrics.&nbsp;</font></p>     <p> <font face="Verdana" size="2">All metrics results, except for Conformity, are expressed as a value on a scale of 0 to 1. For complexity metrics, 0 to 0.4 indicates low complexity, 0.4 to 0.6 indicates average complexity, 0.6 to 0.8 indicates high complexity and over 0.8 indicates that the code is not well designed. Instead, for quality metrics 0 to 0.2 indicates no quality, 0.2 to 0.4 indicates low quality, 0.4 to 0.6 indicates median quality, 0.6 to 0.8 indicates high quality, and 0.8 to 1.0 indicates very high quality&nbsp;<span class="cite">(<a  href="#XSneed1999">20</a>)</span><a name="20."></a>. Additionally, we employed two more metrics that represent the average of either previous groups, namely Average Interface Complexity and Average Interface Quality.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The Conformity metric result is a list of non-conformed rules. The higher the number of non-conformed rules the worse the quality of the WSDL document. Set of rules employed for the Conformity metric has been extrapolated from the work of&nbsp;<span class="cite">(<a href="#XTayi:1998">21</a>)<a  name="21."></a></span>, and consists of 12&nbsp;rules, namely Adherence to the current standard, Use of prescribed name spaces, Use of in source documentation, Avoidance of any data type, Adherence to the naming convention, Hiding of elementary data types, Restricting the size of data groups, Limiting interface width, Enforcing the first normal form, Minimizing the number of requests, Not exceeding a give size limit, and Limiting the use of links. </font> </p>     <p><font face="Verdana" size="2"><span class="titlemark">3.2 </span> <a  id="x1-50003.2"></a>Dilek Basci &amp; Sanjay Misra&rsquo;s metrics</font></p> <font face="Verdana" size="2">In the same direction, this paper analyzes whether there are relations between service implementation metrics and the suite of metrics proposed by Basci &amp; Misra&nbsp;<span class="cite">(<a  href="#XIET-BaskiM11">8</a>)</span>, which comprises novel metrics for measuring Web Service maintainability by computing the complexity of the information exchanged by Web Services. These metrics can be statically computed from a service interface in WSDL, since this metric suite is purely based on WSDL and XSD schema elements occurrences.&nbsp; </font>     <p> <font face="Verdana" size="2">Basci &amp; Misra&nbsp;<span class="cite">(<a  href="#XIET-BaskiM11">8</a>)</span> define the <span class="t1xi-">data complexity </span>of a Web Service as &ldquo;the complexity of data flowed to and from the interfaces of a Web service and can be characterized by an effort required to understand the structures of the messages that are responsible for exchanging and conveying the data&rdquo;. The definition of the Data Weight&nbsp;(DW) metric is based on the above, and computes the complexity of the data-types conveyed in services messages. To the sake of brevity, we will refer to the complexity of a message&nbsp;<img src="/img/revistas/cleiej/v16n1/1a0531x.png"  alt="C(m)  " class="math"> as an indicator of the effort required to understand, extend, adapt, and test&nbsp;<img  src="/img/revistas/cleiej/v16n1/1a0532x.png" alt="m " class="math">, by basing on its structure. <img src="/img/revistas/cleiej/v16n1/1a0533x.png" alt="C (m )  "  class="math"> counts how many elements, complex types, restrictions and simple types are exchanged by messages parts, as it is deeply explained in&nbsp;<span class="cite">(<a href="#XIET-BaskiM11">8</a>)</span>. Formally: </font> </p> <table class="equation">   <tbody>     <tr>       <td><font face="Verdana" size="2"><a id="x1-5001r2"></a>       </font>       <center class="math-display"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a0534x.png"  alt="          &sum;nm DW (wsdl) =   C(mi)           i=1"  class="math-display"></font></center>       </td>       <td class="equation-label"><font face="Verdana" size="2">(2)</font></td>     </tr>   </tbody> </table>     <p><font face="Verdana" size="2">where <img  src="/img/revistas/cleiej/v16n1/1a0535x.png" alt="n  m  " class="math"> is the number of messages that the WSDL document exchanges. For the purposes of this paper, we have assumed <img src="/img/revistas/cleiej/v16n1/1a0536x.png" alt="n  m  "  class="math"> to consider only those messages that are linked to an offered operation of the WSDL document, thus it does not take into account dangling messages. The DM metric always returns a positive integer. The bigger the DM of a WSDL document, the more complex its operations messages are.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The Distinct Message Ratio&nbsp;(DMR) metric complements DW by attenuating the impact of having similar-structured messages within a WSDL document. As the number of similar-structured messages increases the complexity of a WSDL document decreases, since it is easier to understand similar-structured messages than that of various-structured ones as a result of gained familiarity with repetitive messages&nbsp;<span class="cite">(<a  href="#XIET-BaskiM11">8</a>)</span>. Formally: </font> </p> <table class="equation">   <tbody>     <tr>       <td><font face="Verdana" size="2"><a id="x1-5002r3"></a>       </font>       <center class="math-display"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a0537x.png"  alt="DMR (wsdl) = DMC-(wsdl)                nm" class="math-display"></font></center>       </td>       <td class="equation-label"><font face="Verdana" size="2">(3)</font></td>     </tr>   </tbody> </table>     <p><font face="Verdana" size="2">where the Distinct Message Count&nbsp;(DMC) metric can be defined as the number of distinct-structured messages represented by <img src="/img/revistas/cleiej/v16n1/1a0538x.png" alt="(C(m),nargs]  "  class="math"> pair, i.e., the complexity value <img  src="/img/revistas/cleiej/v16n1/1a0539x.png" alt="C(m)  " class="math"> and total number of arguments <img  src="/img/revistas/cleiej/v16n1/1a0540x.png" alt="nargs  " class="math"> that the message contains&nbsp;<span class="cite">(<a  href="#XIET-BaskiM11">8</a>)</span>. The DMR metric always returns a number in the range of [0,1], where 0&nbsp;means that all defined messages are similar-structured, and 1&nbsp;means that messages variety increases.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The Message Entropy&nbsp;(ME) metric exploits the probability of similar-structured messages to occur within a given WSDL document. Compared with the DMR metric, ME also bases on the fact that repetition of the same messages makes a developer more familiar with the WSDL document and results in ease of maintainability, but ME provides better differentiation among WSDL documents in terms of complexity. Formally: </font> </p>     <div class="pic-eqnarray"> <font face="Verdana" size="2"> <img  src="/img/revistas/cleiej/v16n1/1a0541x.png"  alt="              DMC&sum; (wsdl) ME (wsdl) =  -       P(mi)*log2P (mi)                         (4)                  i=1              nomi     P(mi) =   nm"><a  id="x1-50004"></a></font></div> <font face="Verdana" size="2">where <img src="/img/revistas/cleiej/v16n1/1a0542x.png"  alt="nom     i  " class="math"> is the number of occurrences of the <img  src="/img/revistas/cleiej/v16n1/1a0543x.png" alt="ith  " class="math"> message, and in turn <img src="/img/revistas/cleiej/v16n1/1a0544x.png"  alt="P(m )    i  " class="math"> represents the probability that such a message occurs within the given WSDL document. The ME metric outputs values greater or equal than zero. A low ME value shows that the messages are consistent in structure, which means that data complexity of a WSDL document is lower than that of the others having equal DMR values.&nbsp; </font>     ]]></body>
<body><![CDATA[<p> <font face="Verdana" size="2">The Message Repetition Scale&nbsp;(MRS) metric analyses variety in structures of WSDL documents. By considering frequencies of <img src="/img/revistas/cleiej/v16n1/1a0545x.png"  alt="[C (m ),n  ]       args  " class="math">&nbsp;pairs, MRS measures the consistency of messages as follows: </font> </p> <table class="equation">   <tbody>     <tr>       <td><font face="Verdana" size="2"><a id="x1-5003r5"></a>       </font>       <center class="math-display"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a0546x.png"  alt="            DMC&sum;(wsdl)nom 2 MRS (wsdl) =      ----i               i=1   nm"  class="math-display"></font></center>       </td>       <td class="equation-label"><font face="Verdana" size="2">(5)</font></td>     </tr>   </tbody> </table>     <p> <font face="Verdana" size="2">The possible values for MRS are in the range <img  src="/img/revistas/cleiej/v16n1/1a0547x.png" alt="1 &le; MRS &le; nm  "  class="math">. When comparing two or more WSDL documents, a higher MRS and lower ME show that the developer makes less effort to understand the messages structures owing to the repetition of similar-structured messages.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The next section presents the performed statistical analysis.&nbsp;</font></p>     <p> </p>     <p><font face="Verdana" size="2"><span class="titlemark">4 </span> <a  id="x1-60004"></a>Statistical analysis and experiments</font></p> <font face="Verdana" size="2">We used regression and correlation methods to analyze whether OO metrics taken on service implementations are correlated with metrics from the associated WSDL documents or not. Broadly, we gathered OO metrics from open source Web Services, calculating Sneed&rsquo;s complexity and quality metrics and Basci &amp; Misra&rsquo;s maintainability metrics from WSDL documents, and analyzing the correlation among all pairs of metrics. To perform the analysis, we employed the newest version available of the data-set described in&nbsp;<span  class="cite">(<a href="#XIJWGS-MateosCZOC11">7</a>)</span> at the time of writing this article. The criteria employed for conforming the experimental data-set consisted of 3&nbsp;basis: (1) projects should be open source, because we needed to assess metrics from service implementations code; (<a  href="#XOrtiz2010">2</a>) projects source code should be in Java; (3) projects should be self-contained, in the sense that all the resources needed for compiling a project were available. Accordingly, this data-set consists of 154&nbsp;WSDL documents from open source projects, which were collected via the Merobase component filter, the Exemplar engine and the Google Code Web site. It is worth noting that the data-set used in the experiments is available upon request. All projects are written in Java, and each project offers at least one Axis&rsquo; Java2WSDL Web Service description. The data-set is self-contained in the sense that for each service, its implementation code and dependency libraries needed for compiling and generating WSDL documents are in the data-set. All in all, the generated data-set provided the means to perform a significant evaluation in the sense that the different Web Service implementations came from real-life software engineers.&nbsp; </font>     <p> <font face="Verdana" size="2">We used 11&nbsp;metrics for measuring services implementations, which played the role of independent variables. WMC, CBO, RFC, and LCOM have been selected from the work of Chindamber and Kemerer&nbsp;<span class="cite">(<a href="#XChidamber1994">5</a>)</span>. The WMC (Weighted Methods Per Class) metric counts the methods of a class. CBO (Coupling Between Objects) counts how many methods or instance variables defined by other classes are accessed by a given class. RFC (Response for Class) counts the methods that can potentially be executed in response to a message received by an object of a given class. LCOM&nbsp;(Lack of Cohesion Methods) provides a mean to measure how well the methods of a class are related to each other. From the work of Bansiya and Davis&nbsp;<span class="cite">(<a  href="#XBansiya2002">6</a>)</span> we picked CAM (Cohesion Among Methods of Class) metric. CAM computes the relatedness among methods based upon the parameter list of these methods. Additionally, we used a number of ad-hoc measures we thought could be related to the WSDL metrics, namely TPC (Total Parameter Count), APC (Average Parameter Count), ATC (Abstract Type Count), VTC (Void Type Count), and EPM (Empty Parameters Methods). The last employed metric was the well-known lines of code (LOC) metric. </font> </p>     <div class="table"><font face="Verdana" size="2">    <br>   </font>     <p> <font face="Verdana" size="2"> <a id="x1-60012"></a></font></p> <hr class="float">     <div class="float">     ]]></body>
<body><![CDATA[<div class="caption"><font face="Verdana" size="2"><span class="id">Table&nbsp;2: </span><span  class="content">Descriptive statistics</span></font></div> <font face="Verdana" size="2">     <br> </font>     <div class="pic-tabular"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a05t2.png"></font></div> </div> <hr class="endfloat"> </div> <font face="Verdana" size="2">     <br> </font>     <p> <font face="Verdana" size="2">On the other hand, the dependent variables were the metrics at the WSDL-level, i.e., those proposed in&nbsp;<span  class="cite">(<a href="#XWSE-Sneed10">3</a>)</span> and&nbsp;<span  class="cite">(<a href="#XIET-BaskiM11">8</a>)</span>. Table&nbsp;<a href="#x1-60012">2</a> statistically describes both independent and dependent variables. As shown in Std. Dev. column all dependent variables values were concentrated around the central tendency (i.e., Mean column), while this phenomenon persisted for independent variables values with some exceptions namely LCOM, WMC, and TPC. The Skewness column characterizes the location for metrics values distribution, in particular these results showed that most distributions are skewed to the right since their means were higher than their median. Furthermore, the skewness of three metrics was very near to&nbsp;0, which is the skewness of the Normal distribution. The Kurtosis column shows that most metrics values did not tend to have a flat top near the mean rather than a distinct peak near the mean, decline rather rapidly, and have heavy tails. These results and the correlation analysis were obtained by using Apache&rsquo;s Commons Math library(Apache&rsquo;s Commons Math library, <a href="http://commons.apache.org/math" class="url"><span  class="t1xtt-">http://commons.apache.org/math</span></a>).&nbsp;</font></p>     <p> <font face="Verdana" size="2">It is worth noting that all the employed OO metrics have been automatically gathered by using an extended version of the <span class="t1xi-">ckjm</span>&nbsp;<span class="cite">(<a  href="#XSpinellis2005">22</a>)<a name="22."></a></span> tool. At the same time, we use Sneed&rsquo;s SoftAUDIT tool&nbsp;<span class="cite">(<a  href="#XWSE-Sneed10">3</a>)</span> to automate the recollection of the WSDL metrics proposed in&nbsp;<span class="cite">(<a href="#XWSE-Sneed10">3</a>)</span>. SoftAUDIT receives a given WSDL document as input, and returns a metric report in a structured text file. Moreover, to compute DW, DMC, DMR, ME and MRS metrics&nbsp;<span  class="cite">(<a href="#XIET-BaskiM11">8</a>)</span> we used a software library of our own(WSDL maintainability metric suite, <a  href="http://code.google.com/p/wsdl-metrics-soc-course/" class="url"><span  class="t1xtt-">http://code.google.com/p/wsdl-metrics-soc-course/</span></a>) that automates the recollection of these WSDL metrics.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The next section presents the correlation analysis results. </font> </p>     <p><font face="Verdana" size="2"><span class="titlemark">4.1 </span> <a  id="x1-70004.1"></a>Correlation analysis between OO and WSDL metrics</font></p>     <div class="table"><font face="Verdana" size="2">    <br>   </font>     ]]></body>
<body><![CDATA[<p> <font face="Verdana" size="2"> <a id="x1-70013"></a></font></p> <hr class="float">     <div class="float">     <div class="caption"><font face="Verdana" size="2"><span class="id">Table&nbsp;3: </span><span  class="content">Correlation between OO metrics and WSDL ones</span></font></div> <font face="Verdana" size="2">     <br> </font>     <div class="pic-tabular"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a05t3.png"></font></div> </div> <hr class="endfloat"> </div> <font face="Verdana" size="2">     <br> </font>     <p> <font face="Verdana" size="2">We used the Spearman&rsquo;s rank correlation coefficient in order to establish the existing relations between the two kind of variables of our model, i.e., the OO metrics (independent variables) and the WSDL metrics (dependent variables). Table&nbsp;<a  href="#x1-70013">3</a> shows the correlation between the employed OO and WSDL metrics.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The cell values in bold are those coefficients which are statistically significant at the 5% level, i.e., p-value <img  src="/img/revistas/cleiej/v16n1/1a0550x.png" alt="&lt; " class="math"> 0.05, which is a common choice when performing statistical studies&nbsp;<span  class="cite">(<a href="#XStigler2008">23</a>)<a name="23."></a></span>. The sign of the correlation coefficients defines the direction of the relationship, i.e., positive or negative. A positive relation means that when the independent variable grows, the dependent variable grows too, and when the independent variable falls the dependent goes down as well. Instead, a negative relation means that when independent variables grow, the dependent metrics fall, and vice versa. The absolute value, or correlation factor, indicates the intensiveness of the relation regardless of its sign.&nbsp;</font></p>     <p> </p> <hr class="figure">     <div class="figure">     ]]></body>
<body><![CDATA[<p> <font face="Verdana" size="2"> <span class="t1xr-x-x-80"><img  style="width: 347px; height: 273px;" alt=""  src="/img/revistas/cleiej/v16n1/1a05f2.png">(a) Sneed&rsquo;s WSDL metrics</span>&nbsp; <img src="/img/revistas/cleiej/v16n1/1a05f3.png" alt="PIC"  class="graphics" height="118" width="225"><span class="t1xr-x-x-80">(b) Basci &amp; Misra&rsquo;s WSDL metrics</span>     <br> </font> </p>     <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;2: </span><span  class="content">Graphical representation of the correlation between OO and WSDL metrics</span></font></div> <font face="Verdana" size="2">     <br> </font>     <p> </p> </div> <hr class="endfigure"><font face="Verdana" size="2">    <br> </font>     <p> <font face="Verdana" size="2">Additionally, for the sake of readability, we have employed a different approach to depict the correlation matrix, which is shown in Figure&nbsp;<a href="#x1-70042">2</a>. In the Figure, blank cells stand for not statistically significant correlations, whereas cells with circles represent correlation factors at the 5% level. The diameter of a circle represents a correlation factor, i.e., the bigger the correlation factor the bigger the diameter. The color of a circle stands for the correlation sign, being black used for positive correlations and white for negative ones. </font> </p>     <p><font face="Verdana" size="2"><span class="titlemark">4.2 </span> <a  id="x1-80004.2"></a>Exploiting correlation results for improving WSDL documents</font></p> <font face="Verdana" size="2">     <br> </font>     <p><font face="Verdana" size="2">From both Table&nbsp;<a href="#x1-70013">3</a> and Figure&nbsp;<a href="#x1-70042">2</a>, it can be observed that there is a somewhat high statistical correlation between a sub-set of the analyzed OO metrics and some of the Sneed&rsquo;s and Basci &amp; Misra&rsquo;s WSDL metrics. Although correlation between two variables does not necessarily imply that one causes the other, for the purposes of this paper we may assume that this fact allows us to determine which OO metrics could be somehow &ldquo;controlled&rdquo; by a software engineer attempting to assure the quality of his/her target WSDL documents. However, for the scope of this paper we will focus on determining a minimalist sub-set of OO metrics in each case, because determining the best set of metrics would deserve a deeper analysis.&nbsp;</font></p>     ]]></body>
<body><![CDATA[<p> <font face="Verdana" size="2">By basing on the previous assumption and since all OO metrics correlate to at least one WSDL metric, one could argue that every independent variable should be <span class="t1xi-">controllable</span>. However, the study presented in&nbsp;<span class="cite">(<a  href="#XIJWGS-MateosCZOC11">7</a>)</span> shows that some OO metrics are not statistically independent among them and, therefore, capture redundant information. In other words, if a group of variables in a data-set are strongly correlated, these variables are likely to measure the same underlying dimension (i.e., cohesion, complexity, coupling, etc.). Because of this, we also calculated the statistical correlation among OO metrics for the employed version of the data-set. Table&nbsp;<a href="#x1-80014">4</a> shows the results, which confirm that OO metrics are not statistically independent. Then, RFC, LCOM and LOC can be removed while keeping WMC, since these are statistically correlated at the 5%&nbsp;level with the maximum correlation factor. To understand why this happens it is worth considering that, in most cases, the WSDL generation tool input is a code facade containing only the signatures of the services&rsquo; operations. Therefore, each new method added to the facade contributes with exactly one new line of code, which explains the perfect correlation between WMC and LOC. Similarly, since LCOM measures the cohesion of a class based on its instance variables but the services&rsquo; facades contain no such variables, the value of these metrics increases in the same proportion as WMC does. Finally, RFC is defined as the set of all methods and constructors that can be invoked as a result of a message sent to an object of the class. This set includes the methods in the class and methods that can be invoked on other objects. Since methods signatures contain no logic, no invocations are made from the class methods. Therefore, for these facades, the value of RFC is exactly the same of WMC, thus resulting in a maximum correlation factor between the two. </font> </p>     <div class="table"> <hr class="float">     <div class="float">     <div class="caption"><font face="Verdana" size="2"><span class="id">Table&nbsp;4: </span><span  class="content">Correlation among OO metrics</span></font></div> <font face="Verdana" size="2">     <br> </font>     <div class="pic-tabular"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a05t4.png"></font></div> </div> <hr class="endfloat"> </div> <font face="Verdana" size="2">     <br> </font>     <p> <font face="Verdana" size="2">Once the number of independent metrics has been reduced the next two subsections focus on describing the correlation relationships found. </font> </p>     <p><font face="Verdana" size="2"><span class="titlemark">4.2.1 </span> <a  id="x1-90004.2.1"></a>Sneed&rsquo;s WSDL metrics</font></p> <font face="Verdana" size="2">     <br> </font>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2">By analyzing the correlation between OO and Sneed&rsquo;s WSDL metrics, it can be seen that the values of two WSDL metrics can be computed based on the values of a different sub-set of WSDL metrics. Average Interface Complexity is the average value of complexity metrics, and Average Interface Quality is the average value of quality metrics. Then, these two metrics may be removed by basing on the fact that their statistical relationships are represented by base metrics. Furthermore, if we want to keep only highest correlated pairs of variables, the correlation factors below <img src="/img/revistas/cleiej/v16n1/1a0554x.png" alt="|0.6| "  class="math"> at the 5%&nbsp;level can be removed. Then, the OO metrics APC, GTC, and VTC can be removed. Then, from Table&nbsp;<a href="#x1-70013">3</a>, a new 4x7 table (see Table&nbsp;<a href="#x1-90015">5</a>) can be obtained, which represents a minimalist sub-set of correlated metrics. </font> </p>     <div class="table"><font face="Verdana" size="2">    <br>   </font>     <p> <font face="Verdana" size="2"> <a id="x1-90015"></a></font></p> <hr class="float">     <div class="float">     <div class="caption"><font face="Verdana" size="2"><span class="id">Table&nbsp;5: </span><span  class="content">Minimalist sub-set of correlated OO and Sneed&rsquo;s metrics</span></font></div> <font face="Verdana" size="2">     <br> </font>     <div class="pic-tabular"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a05t5.png"  alt="----------------------------------------------- --------------------Metric--WMC---CBO--CAM---TPC-- ----------------------------------------------- ------------InterfaceConformity--------0.62------------          InterfaceDataComplexity   -0.83    -   0.64  -0.61 ----------------------------------------------- -------InterfaceStructureComplexity---0.83--------0.62------- --DataFlow-Complexity(Elshof&rsquo;smetric)---0.75-------------0.63-  LanguageComplexity(Halstead&rsquo;smetric)     -  0.70     -    - ----------------------------------------------- ------------InterfaceAdaptability---0.61-----------------             InterfaceReusability   -0.60    -     -    - -----------------------------------------------"></font></div> </div> <hr class="endfloat"> </div> <font face="Verdana" size="2">     <br> </font>     <p> <font face="Verdana" size="2">In order to analyze the minimalist sub-set shown in Table&nbsp;<a href="#x1-90015">5</a>, it is worth remembering the importance of correlation factor signs, since the higher the value of a WSDL metric the higher its complexity or the best its quality is. To clarify this, let us take for example the case of the TPC metric, which is positively correlated to Data Flow Complexity (Elshof&rsquo;s metric), but negatively correlated to Interface Data Complexity. This means that if a software engineer modifies his/her service implementation and in turn this produces an increment in the TPC metric, such an increment will cause an increment in Data Flow Complexity (Elshof&rsquo;s metric), but a fall in Interface Data Complexity. Clearly, incrementing Data Flow Complexity (Elshof&rsquo;s metric) would be undesirable. However the presented evidence shows that this could be the side-effect of pursuing an improvement in the Interface Data Complexity metric. From now on, we will refer to this kind of situations as <span class="t1xi-">trade-offs</span>. As in software literature in general, here a trade-off represents a situation in which the software engineer should analyze and select among different metric-driven implementation alternatives.&nbsp;</font></p>     ]]></body>
<body><![CDATA[<p> <font face="Verdana" size="2">As shown in Table&nbsp;<a href="#x1-90015">5</a>, the resulting OO metrics are correlated with at least two WSDL metrics, and the signs of the correlations within one metric are always opposite, with the exception of the CBO metric. Therefore, some metrics represent trade-off opportunities. For example, the CAM metric is negatively related to Interface Structure Complexity, but positively related to Interface Data Complexity. Then, by incrementing the CAM metric, resulting WSDL documents will present a better value for Interface Structure Complexity metric than the original WSDL document. However, this will cause a deterioration of Interface Data Complexity metric, since the latter and CAM statistically grow together.&nbsp;</font></p>     <p> <font face="Verdana" size="2">Controlling the CBO metric is safe, in the sense that it does not present trade-off situations and by modifying its value no undesired collateral effects will be generated. This metric is positively correlated to Interface Conformity and Interface Data Complexity. Therefore, a WSDL document may be improved in terms of conformity and data complexity alike by decrementing the CBO metric from its associated service implementation.&nbsp;</font></p>     <p> <font face="Verdana" size="2">Finally, the WMC metric is correlated to 5&nbsp;of the 7&nbsp;WSDL metrics in Table&nbsp;<a href="#x1-90015">5</a>. The correlation factor signs indicate that the metric is positively related to Interface Adaptability, Interface Structure Complexity, and Data Flow Complexity. This means that by decrementing WMC on a service implementation, the corresponding WSDL document may present improvements with regard to Interface Adaptability, Interface Structure Complexity, and Data Flow Complexity metrics. However, there are two negative correlations, i.e., with Interface Reusability and Interface Data Complexity metrics, respectively. Therefore, WMC presents different 3x2 trade-offs. </font> </p>     <p><font face="Verdana" size="2"><span class="titlemark">4.2.2 </span> <a  id="x1-100004.2.2"></a>Basci &amp; Misra&rsquo;s</font></p> <font face="Verdana" size="2">We also employed two criteria for reducing the number of OO metrics that particularly explain these WSDL metrics. First, by basing on the data of Table&nbsp;<a href="#x1-80014">4</a> that shows the existence of groups of statistically dependent OO metrics, we select one representative metric for each group for measuring the same underlying dimension. This is, RFC, LCOM and LOC can be removed while keeping WMC, since these are statistically correlated at the 5%&nbsp;level with correlation factor of&nbsp;1. Second, we removed the APC, GTC, VTC, and EPM metrics because they do not have at least one relationship with its correlation factor above <img src="/img/revistas/cleiej/v16n1/1a0556x.png" alt="|0.6| "  class="math"> at the 5%&nbsp;level. The rationale of this criterion reduction was, again, to keep only the highest correlated pairs of variables. </font>     <div class="table"> <hr class="float">     <div class="float">     <div class="caption"><font face="Verdana" size="2"><span class="id">Table&nbsp;6: </span><span  class="content">Minimalist sub-set of correlated OO and Basci &amp; Misra&rsquo;s metrics</span></font></div> <font face="Verdana" size="2">     <br> </font>     <div class="pic-tabular"><font face="Verdana" size="2"><img  src="/img/revistas/cleiej/v16n1/1a05t6.png"></font></div> </div> <hr class="endfloat"> </div> <font face="Verdana" size="2">     <br> </font>     ]]></body>
<body><![CDATA[<p> <font face="Verdana" size="2">Table&nbsp;<a href="#x1-100016">6</a> represents a minimalist sub-set of correlated metrics, and shows that the DW metric depends on two OO metrics, i.e., CBO and TPC. Then, the DW of a service may be influenced by the number of classes coupled to its implementation, and by the number of parameters their operations exchange. The results also show that DW is not highly influenced by cohesion related metrics, such as LCOM and CAM, neither by how many methods its implementation invokes (RFC) or methods complexity (WMC).&nbsp;</font></p>     <p> <font face="Verdana" size="2">The DMC and ME metrics may be decreased by reducing the complexity of service implementation methods. This means that if a software developer modifies his/her service implementation and in turn this reduces the WMC, RFC and LOC metrics, such a fall will cause a decrement in DMC and ME. At the same time, DMC and ME may be reduced by improving the cohesion of services implementations. This is because when the cohesion of services implementations is improved, LCOM falls and CAM rises, which may produce a lower value for DMC and ME, by basing on the signs of their respective statistical relations. ME is influenced by CBO as well.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The DMR metric has negative correlations with WMC, RFC, and LOC. Surprisingly, this means that when the complexity of services implementations methods grows, the ratio of distinct messages falls. Also, DMR has a positive correlation with TPC, which means that the higher the number of operations parameters the higher the ratio of distinct messages. The MRS metric presents high correlations with 3&nbsp;complexity and 1&nbsp;cohesion service implementation metrics.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The presented evidence shows that pursuing an improvement in the DMR metric may conflict with other metric-driven goals. This means that if a software developer modifies his/her service implementation and in turn this produces an increment in the WMC, RFC, LOC or LCOM metrics, such an increment will cause that DMC, ME, and MRS alert about an increment in the WSDL document complexity, however the DMR will fall. Clearly, incrementing DMC and ME would be undesirable, but this could be the side-effect of a gaining in the DMR metric. As mentioned before, this kind of situations could be treated as <span class="t1xi-">trade-offs</span>, in which the software engineer should analyze and select among different metric-driven implementation alternatives for his/her Web Services. </font> </p>     <p><font face="Verdana" size="2"><span class="titlemark">5 </span> <a  id="x1-110005"></a>Conclusions</font></p> <font face="Verdana" size="2">     <br> </font>     <p><font face="Verdana" size="2">In this article, we have empirically shown that when developing code-first Web Services, there is a significant statistical correlation between several traditional OO metrics and some WSDL-related metrics that measure complexity/quality and maintainability at the service interface (i.e., WSDL) level. It is worth noting that a correlation between two variables does not imply causation. In other words, former variable values are not a sufficient condition for latter variable ones. However, such a correlation means that the former variable values are a necessary condition for latter ones&nbsp;<span class="cite">(<a  href="#XAldrich1995">24</a>)<a name="24."></a></span>. In other words, we are not stating that certain levels of WSDL complexity, quality and maintainability are strictly caused by OO metrics values in their associated implementations, but we state that the mentioned WSDL qualitative aspects require certain OO metrics values to be present on services implementations. This enforces the findings reported in&nbsp;<span class="cite">(<a  href="#XIJWGS-MateosCZOC11">7</a>)</span>, in which a correlation between some OO metrics and metrics that measure service discoverability was also found. Interestingly, these facts allow software engineers to early adjust OO metrics, for example via M. Fowler&rsquo;s code refactorings, so that resulting WSDL documents and hence services are less complex, have better quality and are more maintainable.&nbsp;</font></p>     <p> <font face="Verdana" size="2">However, these findings open the door to extra research questions regarding how to increase/reduce a single OO metric, and how to deal with the various trade-offs that arise. With respect to the former issue, modern IDEs provide specific refactorings that can be employed to adjust the value of metrics such as WMC, CBO and RFC. For metrics which are not that popular among developers/IDEs and therefore have not associated a refactoring (e.g., CAM), indirect refactorings may be performed. For example, from Table&nbsp;<a href="#x1-80014">4</a>, CAM is negatively correlated to WMC, so refactoring for WMC means indirect refactoring for CAM. In principle, a complete catalog of refactoring actions for each metric regardless popularity levels could thus be built.&nbsp;</font></p>     <p> <font face="Verdana" size="2">The trade-off problem is on the other hand largely more challenging as we have found that refactoring for a particular OO metric may yield good results as measured by some WSDL metrics but bad results with respect to other WSDL metrics in the same target catalog. For example, for the metrics catalog of&nbsp;<span  class="cite">(<a href="#XWSE-Sneed10">3</a>)</span>, it can be seen from Table&nbsp;<a href="#x1-90015">5</a> that reducing the WMC metric positively impacts on Interface Reusability, but negatively affects Interface Structure Complexity. However, the absolute correlation between WMC and Interface Reusability is weaker than the correlation between WMC and Interface Structure Complexity (i.e., 0.60 against 0.83). It is then necessary to determine to what extent WMC is modified upon code refactoring so that a balance with respect to (ideally) all WSDL metrics in a catalog is achieved. Such trade-off situations also apply to the WSDL maintainability metrics studied. The empirical evidence shows that pursuing an improvement in the DMR metric may conflict with other metric-driven goals. This means that an increment in the WMC, RFC, LOC or LCOM metrics will cause that DMC, ME, and MRS alert about a decrement in the WSDL document maintainability, however the DMR will fall. Then, incrementing DMC and ME would be undesirable, but this could be the side-effect of having gains with respect to the DMR metric.&nbsp;</font></p>     <p> <font face="Verdana" size="2">Note that this problem is even more difficult when trying to balance the values of metrics of different catalogs, i.e., when attempting to build a service that is of better quality, and lower complexity, but also maintainable. Therefore, addressing this issue is subject of further research.&nbsp;</font></p>     ]]></body>
<body><![CDATA[<p> <font face="Verdana" size="2">The present study has at least one treat to validity, which can be classified as &ldquo;Internal validity&rdquo; according to&nbsp;<span class="cite">(<a href="#XWohlin:2000:ESE:330775">25</a>)<a  name="25."></a></span>. This is because there can be one more factor that has influenced the correlation between services implementations metrics and services interfaces ones, and we have not measured this factor until now. This factor is the tool employed for mapping from services implementations onto WSDL documents. Changing the code-first tools is not always a smooth process, and we have to place effort on preparing each project of the data-set for the specific requirements of each selected tool. For example, for using WSProvide a developer requires to place proper annotations on a service implementation. This is the main reason because in this study code-first tools influence has not been measured. Therefore, in a follow-up study, we will analyze the correlation when WSDL documents are generated via code-first tools other than Java2WSDL, particularly Java2WS, EasyWSDL, and WSProvide. This will allow us to assess the effect of the associated code-WSDL mappings in the correlation tables reported so far.&nbsp;</font></p>     <p><font face="Verdana" size="2"><a id="x1-120005"></a>Acknowledgments</font></p> <font face="Verdana" size="2">We acknowledge the financial support provided by ANPCyT through grant PAE-PICT 2007-02311. We thank the reviewers for their helpful comments to improve this paper, and the CIbSE 2012 reviewers for their suggestions regarding the conference version of this paper. We deeply thank Harry M. Sneed and Sanjay Misra for their predisposition and valuable help towards building this article, whom provided us with several relevant documents and articles. Moreover, Harry M. Sneed facilitated us a working copy of the SoftAUDIT tool used in our experiments. We also thank Taiyun Wei, the author of the <span class="t1xi-">R </span>script for drawing the graphical correlation matrixes.&nbsp; </font>     <p> </p>     <p><font face="Verdana" size="2"><a id="x1-130005"></a>References</font></p> <font face="Verdana" size="2"> <span class="biblabel"><span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#1.">(1)</a> J.&nbsp;M. Rodriguez, M.&nbsp;Crasso, C.&nbsp;Mateos, A.&nbsp;Zunino, and M.&nbsp;Campo, &ldquo;Bottom-up and top-down COBOL system migration to Web Services: An experience report,&rdquo; <span class="t1xi-">IEEE Internet Computing</span>, 2011, to appear.<a href="#1." id="XIC-RodriguezCMZC2011"> </a> </font>     <div class="thebibliography"><font face="Verdana" size="2"><a id="XIC-RodriguezCMZC2011"> </a>   </font>     <p><font face="Verdana" size="2"><span class="biblabel"><a id="XIC-RodriguezCMZC2011"><span  class="bibsp">&nbsp;&nbsp;&nbsp;</span></a></span><a href="#2."  id="XOrtiz2010">(2)</a> G.&nbsp;Ortiz and A.&nbsp;G.&nbsp;D. Prado, &ldquo;Improving device-aware Web Services and their mobile clients through an aspect-oriented, model-driven approach,&rdquo; <span  class="t1xi-">Information and Software Technology</span>, vol.&nbsp;52, no.&nbsp;10, pp. 1080&ndash;1093, 2010. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#3." id="XWSE-Sneed10">(3) </a>H.&nbsp;M. Sneed, &ldquo;Measuring Web Service interfaces,&rdquo; in <span class="t1xi-">12th IEEE International Symposium on Web Systems</span> <span class="t1xi-">Evolution (WSE), 2010</span>, Sep. 2010, pp. 111 &ndash;115. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#4." id="XSCICO-RodriguezCZC10">(4)</a> J.&nbsp;M. Rodriguez, M.&nbsp;Crasso, A.&nbsp;Zunino, and M.&nbsp;Campo, &ldquo;Improving Web Service descriptions for effective service discovery,&rdquo; <span  class="t1xi-">Science of Computer Programming</span>, vol.&nbsp;75, no.&nbsp;11, pp. 1001&ndash;1021, 2010. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#5." id="XChidamber1994">(5)</a>S.&nbsp;Chidamber and C.&nbsp;Kemerer, &ldquo;A metrics suite for Object Oriented design,&rdquo; <span class="t1xi-">IEEE Transactions on Software</span> <span class="t1xi-">Engineering</span>, vol.&nbsp;20, no.&nbsp;6, pp. 476&ndash;493, 1994. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#6." id="XBansiya2002">(6)</a>J.&nbsp;Bansiya and C.&nbsp;G. Davis, &ldquo;A hierarchical model for Object-Oriented design quality assessment,&rdquo; <span class="t1xi-">IEEE</span> <span class="t1xi-">Transactions on Software Engineering</span>, vol.&nbsp;28, pp. 4&ndash;17, January 2002. </font> </p>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#7." id="XIJWGS-MateosCZOC11">(7)</a>C.&nbsp;Mateos, M.&nbsp;Crasso, A.&nbsp;Zunino, and J.&nbsp;L.&nbsp;O. Coscia, &ldquo;Detecting WSDL bad practices in code-first Web Services,&rdquo; <span  class="t1xi-">International Journal of Web and Grid Services</span>, vol.&nbsp;7, pp. 357&ndash;387, 2011. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#8." id="XIET-BaskiM11">(8)</a>D.&nbsp;Baski and S.&nbsp;Misra, &ldquo;Metrics suite for maintainability of extensible markup language Web Services,&rdquo; <span class="t1xi-">IET</span> <span  class="t1xi-">Software</span>, vol.&nbsp;5, no.&nbsp;3, pp. 320&ndash;341, 2011. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#9." id="XVanEngelen2002">(9)</a>R.&nbsp;A. Van Engelen and K.&nbsp;A. Gallivan, &ldquo;The gsoap toolkit for web services and peer-to-peer computing networks,&rdquo; in <span class="t1xi-">2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID &rsquo;02)</span>. Washington, DC, USA: IEEE Computer Society, 2002, pp. 128&ndash;135. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#10." id="XTSE-SubramanyamK03">(10)</a>R.&nbsp;Subramanyam and M.&nbsp;S. Krishnan, &ldquo;Empirical analysis of ck metrics for Object-Oriented design complexity: Implications for software defects,&rdquo; <span class="t1xi-">IEEE Transactions on Software Engineering</span>, vol.&nbsp;29, no.&nbsp;4, pp. 297&ndash;310, 2003. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#11." id="XTSE-GyimothyFS05">(11)</a>T.&nbsp;Gyimothy, R.&nbsp;Ferenc, and I.&nbsp;Siket, &ldquo;Empirical validation of Object-Oriented metrics on open source software for fault prediction,&rdquo; <span class="t1xi-">IEEE Transactions on Software Engineering</span>, vol.&nbsp;31, no.&nbsp;10, pp. 897&ndash;910, 2005. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#12." id="XMeirelles2010">(12)</a>P.&nbsp;Meirelles, C.&nbsp;S. Jr., J.&nbsp;Miranda, F.&nbsp;Kon, A.&nbsp;Terceiro, and C.&nbsp;Chavez, &ldquo;A study of the relationships between source code metrics and attractiveness in free software projects,&rdquo; in <span  class="t1xi-">Brazilian Symposium on Software</span> <span  class="t1xi-">Engineering (SBES &rsquo;10)</span>, vol.&nbsp;0. Los Alamitos, CA, USA: IEEE Computer Society, 2010, pp. 11&ndash;20. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#13." id="XFan2005">(13)</a>J.&nbsp;Fan and S.&nbsp;Kambhampati, &ldquo;A snapshot of public Web Services,&rdquo; <span class="t1xi-">SIGMOD Record</span>, vol.&nbsp;34, no.&nbsp;1, pp. 24&ndash;32, 2005. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#14." id="XBlake2008">(14)</a>M.&nbsp;B. Blake and M.&nbsp;F. Nowlan, &ldquo;Taming Web Services from the wild,&rdquo; <span  class="t1xi-">IEEE Internet Computing</span>, vol.&nbsp;12, pp. 62&ndash;69, September 2008. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#15." id="XPasley2006">(15)</a>J.&nbsp;Pasley, &ldquo;Avoid XML schema wildcards for Web Service interfaces,&rdquo; <span class="t1xi-">IEEE Internet Computing</span>, vol.&nbsp;10, pp. 72&ndash;79, 2006. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#16." id="X10.1109/AFIPS.1979.11">(16)</a>N.&nbsp;Chapin, &ldquo;A measure of software complexity,&rdquo; <span class="t1xi-">Managing Requirements Knowledge, International</span> <span class="t1xi-">Workshop on</span>, vol.&nbsp;0, p. 995, 1979. </font> </p>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#17." id="X1702877">(17)</a>S.&nbsp;Henry and D.&nbsp;Kafura, &ldquo;Software structure metrics based on information flow,&rdquo; <span  class="t1xi-">Software Engineering,</span> <span class="t1xi-">IEEE Transactions on</span>, vol. SE-7, no.&nbsp;5, pp. 510 &ndash; 518, sept. 1981. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#18." id="XIEEEGlossary">(18)</a>IEEE Computer Society, &ldquo;610.12-1990 - IEEE standard glossary of software engineering terminology,&rdquo; <a  href="http://standards.ieee.org/findstds/standard/610.12-1990.html"  class="url">http://standards.ieee.org/findstds/standard/610.12-1990.html</a>, 1990. </font> </p>     <!-- ref --><p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#19." id="XHalstead:1977:ESS:540137">(19)</a>M.&nbsp;H. Halstead, <span class="t1xi-">Elements of Software Science (Operating and programming systems series)</span>. New York, NY, USA: Elsevier Science Inc., 1977.     </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;<a  href="#20.">&nbsp;</a></span></span><a href="#20." id="XSneed1999">(20)</a>H.&nbsp;M. Sneed, &ldquo;Applying size complexity and quality metrics to an Object-Oriented application,&rdquo; in <span class="t1xi-">Proceedings of the European Software Control and Metrics Conference</span>, 1999. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#21." id="XTayi:1998">(21)</a>G.&nbsp;K. Tayi and D.&nbsp;P. Ballou, &ldquo;Examining data quality,&rdquo; <span class="t1xi-">Commun. ACM</span>, vol.&nbsp;41, pp. 54&ndash;57, February 1998. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#22." id="XSpinellis2005">(22)</a>D.&nbsp;Spinellis, &ldquo;Tool writing: A forgotten art?&rdquo; <span class="t1xi-">IEEE Software</span>, vol.&nbsp;22, pp. 9&ndash;11, 2005. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"><a href="#23."> (23)</a><span  class="bibsp"><a href="#23.">&nbsp;</a>&nbsp;&nbsp;</span></span>S.&nbsp;Stigler, &ldquo;Fisher and the 5% level,&rdquo; <span class="t1xi-">Chance</span>, vol.&nbsp;21, pp. 12&ndash;12, 2008. </font> </p>     <p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;<a  href="#24.">&nbsp;</a></span></span><a href="#24." id="XAldrich1995">(24)</a>J.&nbsp;Aldrich, &ldquo;Correlations genuine and spurious in pearson and yule,&rdquo; <span  class="t1xi-">Statistical Science</span>, no.&nbsp;10, pp. 364&ndash;376, 1995. </font> </p>     <!-- ref --><p><font face="Verdana" size="2"><span class="biblabel"> <span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span><a  href="#25." id="XWohlin:2000:ESE:330775">(25)</a>C.&nbsp;Wohlin, P.&nbsp;Runeson, M.&nbsp;H&ouml;st, M.&nbsp;C. Ohlsson, B.&nbsp;Regnell, and A.&nbsp;Wessl&eacute;n, <span class="t1xi-">Experimentation in</span> <span class="t1xi-">software engineering: an introduction</span>. Norwell, MA, USA: Kluwer Academic Publishers, 2000.     </font> </p> </div>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>(1)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rodriguez]]></surname>
<given-names><![CDATA[J. M.]]></given-names>
</name>
<name>
<surname><![CDATA[Crasso]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Mateos]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Zunino]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Campo]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Bottom-up and top-down COBOL system migration to Web Services: An experience report]]></article-title>
<source><![CDATA[IEEE Internet Computing]]></source>
<year>2011</year>
</nlm-citation>
</ref>
<ref id="B2">
<label>(2)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ortiz]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Prado]]></surname>
<given-names><![CDATA[A. G. D.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Improving device-aware Web Services and their mobile clients through an aspect-oriented, model-driven approach]]></article-title>
<source><![CDATA[Information and Software Technology]]></source>
<year>2010</year>
<volume>52</volume>
<numero>10</numero>
<issue>10</issue>
<page-range>1080-1093</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>(3)</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sneed]]></surname>
<given-names><![CDATA[H. M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Measuring Web Service interfaces]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[12 IEEE International Symposium on Web Systems Evolution (WSE)]]></conf-name>
<conf-date>Sep. 2010</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B4">
<label>(4)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rodriguez]]></surname>
<given-names><![CDATA[J. M.]]></given-names>
</name>
<name>
<surname><![CDATA[Crasso]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Zunino]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Campo]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Improving Web Service descriptions for effective service discovery]]></article-title>
<source><![CDATA[Science of Computer Programming]]></source>
<year>2010</year>
<volume>75</volume>
<numero>11</numero>
<issue>11</issue>
<page-range>1001-1021</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>(5)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chidamber]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Kemerer]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A metrics suite for Object Oriented design]]></article-title>
<source><![CDATA[IEEE Transactions on Software Engineering]]></source>
<year>1994</year>
<volume>20</volume>
<numero>6</numero>
<issue>6</issue>
<page-range>476-493</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>(6)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bansiya]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Davis]]></surname>
<given-names><![CDATA[C. G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A hierarchical model for Object-Oriented design quality assessment]]></article-title>
<source><![CDATA[IEEE Transactions on Software Engineering]]></source>
<year>Janu</year>
<month>ar</month>
<day>y </day>
<volume>28</volume>
<page-range>4-17</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>(7)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mateos]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Crasso]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Zunino]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Coscia]]></surname>
<given-names><![CDATA[J. L. O]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Detecting WSDL bad practices in code-first Web Services]]></article-title>
<source><![CDATA[International Journal of Web and Grid Services]]></source>
<year>2011</year>
<volume>7</volume>
<page-range>357-387</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>(8)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Baski]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Misra]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Metrics suite for maintainability of extensible markup language Web Services]]></article-title>
<source><![CDATA[IET Software]]></source>
<year>2011</year>
<volume>5</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>320-341</page-range></nlm-citation>
</ref>
<ref id="B9">
<label>(9)</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Van Engelen]]></surname>
<given-names><![CDATA[R. A]]></given-names>
</name>
<name>
<surname><![CDATA[Gallivan]]></surname>
<given-names><![CDATA[K. A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The gsoap toolkit for web services and peer-to-peer computing networks]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[2 IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID &#8217;02)]]></conf-name>
<conf-date>2002</conf-date>
<conf-loc>Washington </conf-loc>
</nlm-citation>
</ref>
<ref id="B10">
<label>(10)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Subramanyam]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Krishnan]]></surname>
<given-names><![CDATA[M. S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Empirical analysis of ck metrics for Object-Oriented design complexity: Implications for software defects]]></article-title>
<source><![CDATA[IEEE Transactions on Software Engineering]]></source>
<year>2003</year>
<volume>29</volume>
<numero>4,</numero>
<issue>4,</issue>
<page-range>297-310</page-range></nlm-citation>
</ref>
<ref id="B11">
<label>(11)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gyimothy]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Ferenc]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Siket]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Empirical validation of Object-Oriented metrics on open source software for fault prediction]]></article-title>
<source><![CDATA[IEEE Transactions on Software Engineering]]></source>
<year>2005</year>
<volume>31</volume>
<numero>10</numero>
<issue>10</issue>
<page-range>897-910</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>(12)</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Meirelles]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Miranda]]></surname>
<given-names><![CDATA[C. S. Jr J]]></given-names>
</name>
<name>
<surname><![CDATA[Kon]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Terceiro]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Chavez]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A study of the relationships between source code metrics and attractiveness in free software projects]]></article-title>
<source><![CDATA[Brazilian Symposium on Software Engineering (SBES &#8217;10)]]></source>
<year>2010</year>
<page-range>11-20</page-range><publisher-loc><![CDATA[Los Alamitos^eCA CA]]></publisher-loc>
<publisher-name><![CDATA[IEEE Computer Society]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<label>(13)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fan]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Kambhampati]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A snapshot of public Web Services]]></article-title>
<source><![CDATA[SIGMOD Record]]></source>
<year>2005</year>
<volume>34</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>24-32</page-range></nlm-citation>
</ref>
<ref id="B14">
<label>(14)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Blake]]></surname>
<given-names><![CDATA[M. B]]></given-names>
</name>
<name>
<surname><![CDATA[Nowlan]]></surname>
<given-names><![CDATA[M. F]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Taming Web Services from the wild]]></article-title>
<source><![CDATA[IEEE Internet Computing]]></source>
<year>Sept</year>
<month>em</month>
<day>be</day>
<volume>12</volume>
<page-range>62-69</page-range></nlm-citation>
</ref>
<ref id="B15">
<label>(15)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pasley]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Avoid XML schema wildcards for Web Service interfaces]]></article-title>
<source><![CDATA[IEEE Internet Computing]]></source>
<year>2006</year>
<volume>10</volume>
<page-range>72-79</page-range></nlm-citation>
</ref>
<ref id="B16">
<label>(16)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chapin]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A measure of software complexity]]></article-title>
<source><![CDATA[Managing Requirements Knowledge, International Workshop on]]></source>
<year>1979</year>
<volume>0</volume>
<page-range>995</page-range></nlm-citation>
</ref>
<ref id="B17">
<label>(17)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Henry]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Kafura]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Software structure metrics based on information flow]]></article-title>
<source><![CDATA[Software Engineering, IEEE Transactions on]]></source>
<year>sept</year>
<month>. </month>
<day>19</day>
<volume>SE-7</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>510 - 518</page-range></nlm-citation>
</ref>
<ref id="B18">
<label>(18)</label><nlm-citation citation-type="">
<collab>IEEE Computer Society</collab>
<source><![CDATA[610.12-1990 - IEEE standard glossary of software engineering terminology]]></source>
<year>1990</year>
</nlm-citation>
</ref>
<ref id="B19">
<label>(19)</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Halstead]]></surname>
<given-names><![CDATA[M. H]]></given-names>
</name>
</person-group>
<source><![CDATA[Elements of Software Science (Operating and programming systems series)]]></source>
<year>1977</year>
<publisher-loc><![CDATA[New York^eNY NY]]></publisher-loc>
<publisher-name><![CDATA[Elsevier Science Inc]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<label>(20)</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sneed]]></surname>
<given-names><![CDATA[H. M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Applying size complexity and quality metrics to an Object-Oriented application]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the European Software Control and Metrics Conference]]></conf-name>
<conf-date>1999</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B21">
<label>(21)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tayi]]></surname>
<given-names><![CDATA[G. K]]></given-names>
</name>
<name>
<surname><![CDATA[Ballou]]></surname>
<given-names><![CDATA[D. P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Examining data quality]]></article-title>
<source><![CDATA[Commun. ACM]]></source>
<year>Febr</year>
<month>ua</month>
<day>ry</day>
<volume>41</volume>
<page-range>54-57</page-range></nlm-citation>
</ref>
<ref id="B22">
<label>(22)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Spinellis]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Tool writing: A forgotten art?]]></article-title>
<source><![CDATA[IEEE Software]]></source>
<year>2005</year>
<volume>. 22</volume>
<page-range>9-11</page-range></nlm-citation>
</ref>
<ref id="B23">
<label>(23)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Stigler]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Fisher and the 5% level]]></article-title>
<source><![CDATA[Chance]]></source>
<year>2008</year>
<volume>21</volume>
<page-range>12-12</page-range></nlm-citation>
</ref>
<ref id="B24">
<label>(24)</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Aldrich]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Correlations genuine and spurious in pearson and yule]]></article-title>
<source><![CDATA[Statistical Science]]></source>
<year>1995</year>
<numero>10</numero>
<issue>10</issue>
<page-range>364-376</page-range></nlm-citation>
</ref>
<ref id="B25">
<label>(25)</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wohlin]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Runeson]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Höst]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Ohlsson]]></surname>
<given-names><![CDATA[M. C]]></given-names>
</name>
<name>
<surname><![CDATA[Regnell]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Wesslén]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Experimentation in software engineering: an introduction]]></source>
<year>2000</year>
<publisher-loc><![CDATA[Norwell^eMA MA]]></publisher-loc>
<publisher-name><![CDATA[Kluwer Academic Publishers]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
