<?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>1815-5936</journal-id>
<journal-title><![CDATA[Ingeniería Industrial]]></journal-title>
<abbrev-journal-title><![CDATA[Ing. Ind.]]></abbrev-journal-title>
<issn>1815-5936</issn>
<publisher>
<publisher-name><![CDATA[Facultad de Ingeniería Industrial, Instituto Superior Politécnico José Antonio Echeverría, Cujae.]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1815-59362016000300006</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Pruebas de rendimiento a componentes de software utilizando programación orientada a aspectos]]></article-title>
<article-title xml:lang="en"><![CDATA[Performance tests to software components using aspect-oriented programming]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Verona-Marcos]]></surname>
<given-names><![CDATA[Sandra]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Pérez-Díaz]]></surname>
<given-names><![CDATA[Yasiel]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Torres-Pérez]]></surname>
<given-names><![CDATA[Lisbán]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Delgado-Dapena]]></surname>
<given-names><![CDATA[Martha Dunia]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Yáñez-Márquez]]></surname>
<given-names><![CDATA[Cornelio]]></given-names>
</name>
<xref ref-type="aff" rid="A04"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Instituto Superior Politécnico José Antonio Echeverría, Cujae Facultad de Ingeniería Informática ]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Empresa de Servicios Petroleros  ]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Complejo de Investigaciones Tecnológicas Integradas (CITI)  ]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A04">
<institution><![CDATA[,Centro de Investigación en Computación del Instituto Politécnico Nacional  ]]></institution>
<addr-line><![CDATA[México, D. F. ]]></addr-line>
<country>México</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2016</year>
</pub-date>
<volume>37</volume>
<numero>3</numero>
<fpage>278</fpage>
<lpage>285</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S1815-59362016000300006&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S1815-59362016000300006&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S1815-59362016000300006&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[A pesar de la existencia de modelos y estándares internacionales que permiten evaluar los productos de software desarrollados, continúa siendo un problema para muchas organizaciones que desarrollan software. Las pruebas de software poseen gran importancia dentro del proceso de desarrollo del producto, debido al tiempo y esfuerzo que conlleva realizarlas. Para contribuir a disminuir el tiempo y esfuerzo que se utiliza para la realización de las pruebas se cuenta con herramientas que automatizan partedel proceso de evaluación. Sin embargo, la mayoría de las herramientas están diseñadas para evaluar sistemas de software tradicionales, obviando componentes más pequeños.Este trabajo documenta la creación de un plugin para realizar pruebas de rendimiento a componentes de software; utilizando el paradigma de programación orientada a aspectos en Java. Este plugin se considera relevante dada la necesidad de automatizar las pruebas de rendimiento, que en ocasiones pierden protagonismo ante otros tipos de pruebas como las funcionales.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[In models and standard international existence spite that allow to evaluate the quality that it possess the developed software products, this it constitutes an aspect that continues being a problem for many organizations that develop software. The software tests possess great importance inside the product development process, due to the time and effort that it bears to carry out them. To contribute the time and effort that it is used for the tests realization to diminish it is had tools that automate in some measure the evaluation process. However, a big number of the tools are de-signed to evaluate traditional software systems, obviating those smaller components that conform these systems. This work is centered in the creation of a plugin to carry out performance tests to software components using aspect-oriented programming in Java, given the necessity to automate this system test type that it lose protagonism before other tests types in many occasions like they could be the functional tests.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[calidad de software]]></kwd>
<kwd lng="es"><![CDATA[modelos de calidad]]></kwd>
<kwd lng="es"><![CDATA[componentes de software]]></kwd>
<kwd lng="es"><![CDATA[pruebas de rendimiento]]></kwd>
<kwd lng="es"><![CDATA[programación orientada a aspectos]]></kwd>
<kwd lng="en"><![CDATA[software quality]]></kwd>
<kwd lng="en"><![CDATA[quality models]]></kwd>
<kwd lng="en"><![CDATA[software components]]></kwd>
<kwd lng="en"><![CDATA[performance tests]]></kwd>
<kwd lng="en"><![CDATA[aspect-oriented programming]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  	    <p align="right" ><font face="verdana" size="2"><b>ART&Iacute;CULO ORIGINAL</b></font></p>  	 <font face="verdana" size="2">&nbsp;</font>     <p ><font face="verdana" size="2"><b><font size="4">P</font></b><font size="4"><b>ruebas    de rendimiento a componentes de software utilizando programaci&oacute;n orientada    a aspectos</b></font></font></p>  	    <p ><font face="verdana" size="2"><b>&nbsp;</b></font></p>  	     <p ><font face="verdana" size="2"><b><font size="3">Performance tests to software    components using aspect&#45;oriented programming</font></b></font></p>     <p >&nbsp;</p>     <p>&nbsp;</p>     <p><font face="verdana" size="2"><b>Sandra Verona&#45;Marcos<sup>I</sup>, Yasiel    P&eacute;rez&#45;D&iacute;az<sup>II</sup>, Lisb&aacute;n Torres&#45;P&eacute;rez<sup>III</sup>,    Martha Dunia Delgado&#45;Dapena<sup>I</sup>, Cornelio Y&aacute;&ntilde;ez&#45;M&aacute;rquez<sup>IV</sup></b></font></p>     <p align="justify"><font face="verdana" size="2"></font><font face="verdana" size="2"><sup>I</sup>    Instituto Superior Polit&eacute;cnico Jos&eacute; Antonio Echeverr&iacute;a,    Cujae. Facultad de Ingenier&iacute;a Inform&aacute;tica. La Habana, Cuba</font>    <br>   <font face="verdana" size="2"><sup>II</sup> Empresa de Servicios Petroleros.    La Habana, Cuba    ]]></body>
<body><![CDATA[<br>   </font><font face="verdana" size="2"><sup>III</sup> Complejo de Investigaciones    Tecnol&oacute;gicas Integradas (CITI). La Habana, Cuba    <br>   </font><font face="verdana" size="2"><sup>IV</sup> Centro de Investigaci&oacute;n    en Computaci&oacute;n del Instituto Polit&eacute;cnico Nacional, M&eacute;xico,    D. F. M&eacute;xico</font></p>     <p align="justify">&nbsp;</p>     <p align="justify">&nbsp;</p> <hr>     <p ><font face="verdana" size="2"><b>RESUMEN</b></font></p>     <p ><font face="verdana" size="2">A    pesar de la existencia de modelos y est&aacute;ndares internacionales que permiten    evaluar los productos de software desarrollados, contin&uacute;a siendo un problema    para muchas organizaciones que desarrollan software. Las pruebas de software    poseen gran importancia dentro del proceso de desarrollo del producto, debido    al tiempo y esfuerzo que conlleva realizarlas. Para contribuir a disminuir el    tiempo y esfuerzo que se utiliza para la realizaci&oacute;n de las pruebas se    cuenta con herramientas que automatizan partedel proceso de evaluaci&oacute;n.    Sin embargo, la mayor&iacute;a de las herramientas est&aacute;n dise&ntilde;adas    para evaluar sistemas de software tradicionales, obviando componentes m&aacute;s    peque&ntilde;os.Este trabajo documenta la creaci&oacute;n de un <i>plugin</i>    para realizar pruebas de rendimiento a componentes de software; utilizando el    paradigma de programaci&oacute;n orientada a aspectos en <i>Java</i>. Este <i>plugin</i>    se considera relevante dada la necesidad de automatizar las pruebas de rendimiento,    que en ocasiones pierden protagonismo ante otros tipos de pruebas como las funcionales.&nbsp;</font><font face="verdana" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>  	     <p ><font face="verdana" size="2"><b>Palabras    clave:</b> calidad de software, modelos de calidad, componentes de software,    pruebas de rendimiento, programaci&oacute;n orientada a aspectos.</font></p>  	    <p ><font face="verdana" size="2"><b>ABSTRACT</b></font></p>  	    <p ><font face="verdana" size="2">In models and standard international existence spite that allow to evaluate the quality that it possess the developed software products, this it constitutes an aspect that continues being a problem for many organizations that develop software.</font></p>  	    <p ><font face="verdana" size="2">The software tests possess great importance inside the product development process, due to the time and effort that it bears to carry out them. To contribute the time and effort that it is used for the tests realization to diminish it is had tools that automate in some measure the evaluation process. However, a big number of the tools are de&#45;signed to evaluate traditional software systems, obviating those smaller components that conform these systems.</font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">This work is centered    in the creation of a plugin to carry out performance tests to software components    using aspect&#45;oriented programming in Java, given the necessity to automate    this system test type that it lose protagonism before other tests types in many    occasions like they could be the functional tests.</font></p>  	     <p ><font face="verdana" size="2"><b>Key words:</b>    software quality, quality models, software components, performance tests, aspect&#45;oriented    programming.</font></p> <hr>     <p ><font face="verdana" size="2"><i>&nbsp;</i></font></p>  	     <p ><font face="verdana" size="2"><b>    <font size="3">INTRODUCCI&Oacute;N</font></b></font></p>  	     <p ><font face="verdana" size="2">El aumento de las tecnolog&iacute;as y el desarrollo    de las telecomunicaciones han tra&iacute;do consigo que el mercado del software    se encuentre actualmente en un gran momento. Teniendo en cuenta este auge, se    hace imprescindible que las empresas que desarrollan <i>software</i> prioricen    la calidad, ya que paralelo a la gran demanda de software, se encuentran los    clientes que exigen que este posea cada vez mayor calidad. Los resultados de    una empresa en la actualidad son medidos con mayor frecuencia en t&eacute;rminos    de calidad y satisfacci&oacute;n del cliente. Sin embargo, la compa&ntilde;&iacute;a    <i>Standish Group</i> en su &uacute;ltimo reporte CHAOS en el 2014, emiti&oacute;    la alarmante cifra de que solo el 16,2 % de los proyectos analizados en grandes    y medianas empresas desarrolladoras de <i>software</i> resultaron exitosos &#91;1&#93;.    Entendi&eacute;ndose como exitosos, aquellos proyectos que son entregados en    tiempo, no exceden el presupuesto y que cumplen con los requisitos establecidos    por el cliente, entre otros aspectos.</font></p>  	     <p ><font face="verdana" size="2">Para    evaluar la calidad que poseen los productos de software existen modelos y est&aacute;ndares    entre los que se destacan: el modelo de McCall &#91;2&#93;, el modelo de Boehm    &#91;3&#93;, el modelo propuesto por la norma internacional ISO 9126 adoptado    como norma cubana NC&#45;ISO/IEC 9126:2005 &#91;4&#93; y m&aacute;s recientemente    las familias de normas ISO/IEC 25 000 &#91;5&#93;.</font></p>  	     <p ><font face="verdana" size="2">La    prueba es una actividad necesaria que permite determinar la calidad que poseen    los productos desarrollados. Las pruebas de <i>software</i> juegan un papel    importante en el control y aseguramiento de la calidad, impactando directamente    en la satisfacci&oacute;n del cliente. Pressman en &#91;6&#93;expres&oacute;    acerca de las pruebas de software que: "...son un elemento cr&iacute;tico para    la garant&iacute;a de la calidad y representan una revisi&oacute;n final de    las especificaciones, del dise&ntilde;o y de la codificaci&oacute;n".</font></p>     <p ><font face="verdana" size="2">Incluso las nuevas tecnolog&iacute;as utilizadas    para la creaci&oacute;n de sistemas cumplen con un proceso rigu&#45;roso para    comprobar la calidad de sus productos&#91;7&#93;&#91;8&#93;. Una de estas tecnolog&iacute;as    emergentes es el desarrollo de software basado en componentes (DSBC, por sus    siglas) &#91;9&#93;. El DSBC no es m&aacute;s que el proceso de desarrollo que    utiliza la integraci&oacute;n de componentes para crear productos de software.    Entendi&eacute;ndose por componente de software seg&uacute;n &#91;10&#93; &hellip;    como "una unidad de composici&oacute;n de aplicaciones software, que posee un    conjunto de interfaces y un conjunto de requisitos, y que ha de poder ser desarrollado,    adquirido, incorporado al sistema y compuesto con otros componentes de forma    independiente, en tiempo y espacio".</font></p>  	     <p ><font face="verdana" size="2">Los    componentes de software presentan caracter&iacute;sticas propias que los diferencian    del sistema de software tradicional, entre ellas se pueden encontrar, la ausencia    de interfaz gr&aacute;fica de usuario, la invariabilidad de sus servicios y    una identidad bien definida &#91;11&#93;.</font></p>  	     <p ><font face="verdana" size="2">Existen    varias clasificaciones en cuanto a tipos de componentes de software, entre ellas    se pueden encontrar: los componentes comerciales (COTS, por sus siglas en ingl&eacute;s),    de c&oacute;digo abierto (FOSS, por sus siglas en ingl&eacute;s) y servicios    web &#91;12&#93;.</font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">Los    componentes FOSS son productos de software que tambi&eacute;n se pueden encontrar    en el mercado, sin embargo para su adquisici&oacute;n no es necesario que los    usuarios paguen licencias comerciales. Entre los componentes FOSS se encuentran    las bibliotecas de <i>software</i>. Las bibliotecas son aquellos productos de    software que aportan funcionalidades espec&iacute;ficas, las cuales permiten    resolver problemas puntuales en un determinado sistema &#91;13&#93;.</font></p>  	     <p ><font face="verdana" size="2">En    los componentes de software se destaca la evaluaci&oacute;n de la caracter&iacute;stica    de calidad rendimiento, ya que se debe velar que en el proceso de interconexi&oacute;n    de componentes no sea integrado un componente cuyos servicios presenten un rendimiento    que pueda afectar la estabilidad del sistema. Una estrategia a seguir para evaluar    el rendimiento en los componentes de software son las pruebas de rendimiento    &#91;11&#93;.</font></p>  	    <p ><font face="verdana" size="2">Existen varias herramientas para realizar pruebas de rendimiento como son: <i>JMeter</i>, <i>OpenSTA</i> y <i>Selenium</i>, entre otras. Pero, la mayor&iacute;a est&aacute;n dise&ntilde;adas para entornos web o requieren que los productos a evaluar posean interfaces gr&aacute;fica de usuario, lo que constituye un inconveniente para los componentes de software que no las presenten, como es el caso de las bibliotecas. Las caracter&iacute;sticas de rendimiento que se proponen evaluar estas herramientas no se corresponden con las caracter&iacute;sticas de calidad propuestas para evaluar el rendimiento en componentes de software de manera general.</font></p>  	    <p ><font face="verdana" size="2">Para el desarrollo del presente trabajo los autores se centran en las bibliotecas de software desarrolladas en <i>Java</i> como ejemplo de componentes de software.</font></p>  	    <p ><font face="verdana" size="2">Es por ello que el objetivo del art&iacute;culo lo constituye el desarrollo de un <i>plugin</i> para realizar pruebas de rendimiento a bibliotecas de software desarrolladas en <i>Java</i> con el apoyo del paradigma de la programaci&oacute;n orientada a aspectos.</font></p>  	    <p ><font face="verdana" size="2">&nbsp;</font></p>  	     <p ><font face="verdana" size="2"><b>    <font size="3">M&Eacute;TODOS</font></b></font></p>  	    <p ><font face="verdana" size="2">A continuaci&oacute;n se definen elementos te&oacute;ricos considerados importantes para presentar la propuesta del <i>plugin</i> para&nbsp; realizar pruebas de rendimiento a componentes de software utilizando programaci&oacute;n orientada a aspectos.</font></p>  	    <p ><font face="verdana" size="2"><b>Est&aacute;ndar ISO 9126</b></font></p>  	     <p ><font face="verdana" size="2">Desde    hace varios a&ntilde;os los ingenieros de software han buscado un est&aacute;ndar    que unifique las caracter&iacute;sticas para medir la calidad de un producto    de software. En el a&ntilde;o 1991 se cre&oacute; un est&aacute;ndar para la    evaluaci&oacute;n de la calidad de los productos de software nombrado ISO 9126,    luego fue actualizado en el a&ntilde;o 2001 &#91;14&#93;. En el 2005 fue adoptada    por Cuba como norma cubana (NC, por sus siglas) llam&aacute;ndose a partir de    ese momento NC&#45;ISO/IEC 9126:2005 &#91;4&#93;.</font></p>     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">La    norma ISO&#45;9126 est&aacute; estructurada en cuatro partes las cuales se enumeran    a continuaci&oacute;n &#91;14&#93;:</font></p>  	    <p ><font face="verdana" size="2">a. Modelo de calidad.</font></p>  	    <p ><font face="verdana" size="2">b. Medidas externas.</font></p>  	    <p ><font face="verdana" size="2">c. Medidas internas.</font></p>  	    <p ><font face="verdana" size="2">d. Medidas de la calidad en uso.</font></p>  	    <p ><font face="verdana" size="2">En la primera parte de la norma llamada Modelo de calidad se especifican seis caracter&iacute;sticas de calidad que pueden ser de tipo interna y externa. Estas caracter&iacute;sticas se dividen en subcaracter&iacute;sticas que son el resultado de atributos internos del software.</font></p>  	     <p ><font face="verdana" size="2">Las    medidas internas miden el software en s&iacute; mismo. Las externas miden el    comportamiento del sistema para un contexto basado en los detalles de hardware.    Las medidas en uso se enfocan en los efectos del uso del software, en un contexto    de uso espec&iacute;fico &#91;14&#93;&#91;15&#93;.</font></p>  	    <p ><font face="verdana" size="2"><b>Componentes de Software</b></font></p>  	     <p ><font face="verdana" size="2">Existen    varias definiciones acerca del t&eacute;rmino componente de software, el Instituto    de Ingenier&iacute;a del Software (SEI, por sus siglas en ingl&eacute;s) lo    define como: "una implementaci&oacute;n opaca de funcionalidad, sujeta a composici&oacute;n    por terceros y que cumple con un modelo" &#91;16&#93;.</font></p>  	     <p ><font face="verdana" size="2">Los    componentes de software presentan algunas caracter&iacute;sticas que los hacen    ser representativos, entre ellas se pueden encontrar &#91;17&#93;:</font></p>  	    ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2"><b>Identificables:</b> deben tener una identificaci&oacute;n que permita acceder f&aacute;cilmente a sus servicios.</font></p>  	    <p ><font face="verdana" size="2"><b>Auto contenido:</b> un componente no debe requerir de la utilizaci&oacute;n de otros para realizar la funci&oacute;n para la cual fue dise&ntilde;ado.</font></p>  	    <p ><font face="verdana" size="2"><b>Reemplazables:</b> se puede remplazar por nuevas versiones u otro componente que lo remplace y mejore.</font></p>  	    <p ><font face="verdana" size="2"><b>Con acceso solamente a trav&eacute;s de su interfaz:</b> debe asegurar que estas no cambiaran a lo largo de su implementaci&oacute;n.</font></p>  	    <p ><font face="verdana" size="2"><b>Sus servicios no var&iacute;an:</b> las funcionalidades ofrecidas en su interfaz no deben variar, pero su implementaci&oacute;n s&iacute;.</font></p>  	    <p ><font face="verdana" size="2"><b>Bien Documentados:</b> un componente debe estar correctamente documentado para facilitar su b&uacute;squeda si se quiere actualizar o integrar con otros.</font></p>  	    <p ><font face="verdana" size="2"><b>Ser gen&eacute;ricos:</b> sus servicios deben servir para varias aplicaciones.</font></p>  	    <p ><font face="verdana" size="2"><b>Reutilizados din&aacute;micamente:</b> pueden ser cargados en tiempo de ejecuci&oacute;n en una aplicaci&oacute;n.</font></p>  	    <p ><font face="verdana" size="2"><b>Independiente de la plataforma:</b> deben funcionar independientemente del hardware, software o sistema operativo.</font></p>  	    <p ><font face="verdana" size="2">Para el enlace de los componentes dentro de un sistema se utilizan modelos de componentes. Un modelo de componentes define la forma de sus interfaces y el mecanismo para interconectarlos.</font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2"><b>Modelo    de calidad para evaluar componentes de software</b></font></p>  	    <p ><font face="verdana" size="2">De manera general para la evaluaci&oacute;n de la calidad de los componentes de software no se cuenta con un modelo de calidad que contemple las particularidades de los componentes de <i>software</i> descritos anteriormente.</font></p>  	     <p ><font face="verdana" size="2">Existen    varios trabajos que abordan esta problem&aacute;tica pero a&uacute;n no se ha    llegado a un consenso refe&#45;rente a este tema. Algunos autores han desarrollado    propuestas en este sentido. Tal es el caso de la propuesta presentada por &#91;11&#93;,    basada en el est&aacute;ndar ISO 9126. La propuesta adapta varias de las caracter&iacute;sticas    de calidad del est&aacute;ndar a un modelo que responde a las caracter&iacute;sticas    propias de los componentes COTS.</font></p>  	     <p ><font face="verdana" size="2">A continuaci&oacute;n se muestra en la <a href="#t01">tabla    1</a> las caracter&iacute;sticas y subcaracter&iacute;sticas de calidad propuestos    en el modelo presentado por &#91;11&#93; para tiempo de ejecuci&oacute;n.</font></p>     <p align="center" ><font face="verdana" size="2">&nbsp;<a name="t01"></a><img src="/img/revistas/rii/v37n3/t0106316.jpg" width="381" height="148" alt="Tabla 1. Modelo para evaluar calidad en componentes"></font></p>  	     
<p ><font face="verdana" size="2">Como se puede observar en la <a href="#t01">tabla    1</a> este modelo define un conjunto de caracter&iacute;sticas que a su vez    se dividen en subcaracter&iacute;sticas. Las subcaracter&iacute;sticas se dividen    en dos grupos. Un grupo en el que est&aacute;n las subcaracter&iacute;sticas    que tienen sentido ser evaluadas en tiempo de ejecuci&oacute;n y el otro grupo    para aquellas que se obtienen durante el ciclo de vida. La eficiencia o rendimiento,    como tambi&eacute;n se le conoce en la literatura, las subcaracter&iacute;sticas    de calidad propuestas por los autores se obtienen durante el tiempo de ejecuci&oacute;n.</font></p>  	     <p ><font face="verdana" size="2">En la <a href="#t02">tabla 2</a> se muestran    cada una de las subcaracter&iacute;sticas que pueden ser obtenidas en tiempo    de ejecuci&oacute;n y los atributos propuestos por los autores para evaluar    de calidad. Se puede observar en la <a href="#t02">tabla 2</a> que para la caracter&iacute;stica    eficiencia una de las subcaracter&iacute;sticas para evaluar la calidad es el    comportamiento temporal. Para evaluar esta subcaracter&iacute;stica se proponen    los atributos tiempo de respuesta y capacidad de emisi&oacute;n. El tiempo de    respuesta constituye una medida para evaluar los tiempos de respuesta de un    producto de software cuando se le realiza una petici&oacute;n. La capacidad    de emisi&oacute;n permite conocer el flujo de datos en un tiempo determinado    mientras se realiza una petici&oacute;n al producto. La otra subcaracter&iacute;stica    est&aacute; relacionada con la utilizaci&oacute;n de recursos de hardware. Los    atributos de calidad propuestos por los autores para evaluar esta subcaracter&iacute;stica    son los requisitos de memoria y la capacidad o utilizaci&oacute;n de espacio    en disco. El atributo requisito de memoria permite conocer c&oacute;mo se est&aacute;    utilizando la memoria din&aacute;mica del producto mientras se ejecutan sus    funcionalidades. La capacidad en disco por su parte eval&uacute;a los requisitos    de almacenamiento est&aacute;&#45;tico para el producto de software.</font></p>     <p align="center" ><font face="verdana" size="2">&nbsp;<a name="t02"></a><img src="/img/revistas/rii/v37n3/t0206316.jpg" width="385" height="126" alt="Tabla 2. Atributos de calidad para evaluar rendimiento en componentes de software"></font></p>  	     
<p align="left" ><font face="verdana" size="2"><b>Pruebas de rendimiento a componentes    de software</b></font></p>  	    <p ><font face="verdana" size="2">Existen diversos alcances para las pruebas de software que permiten agruparlas por niveles. Un nivel de prueba permite describir el alcance de la prueba de software que se desea realizar, se pueden identificar principalmente dos niveles para las pruebas.</font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">El    primer nivel, llamado nivel bajo son consideradas todas las pruebas que se realizan    a los componentes individuales &#91;18&#93;. Dentro de este nivel se encuentran    las pruebas de unidad que no son m&aacute;s que las pruebas que miden el funcionamiento    de un m&oacute;dulo o componente y se centran en la l&oacute;gica del procesamiento    interno &#91;18&#93;. En el mismo nivel puede encontrarse las pruebas de integraci&oacute;n,    cuyo objetivo es tomar componentes a los que se les aplic&oacute; una prueba    de unidad y construir una estructura de programa que determine el dise&ntilde;o.</font></p>     <p ><font face="verdana" size="2">El    otro nivel, llamado nivel alto es dedicado a pruebas orientadas al producto    completo. Dentro de este nivel se encuentran las pruebas de sistema, que abarcan    una serie de pruebas diferentes cuyo prop&oacute;sito principal es ejercitar    profundamente el sistema de c&oacute;mputo &#91;6&#93;.</font></p>  	     <p ><font face="verdana" size="2">Entre    las pruebas de sistema se encuentran las pruebas de rendimiento. Este tipo de    prueba se realiza, desde una perspectiva, para determinar lo r&aacute;pido que    realiza una tarea un sistema en condiciones particulares de trabajo. Tambi&eacute;n    puede ser utilizada para validar y verificar algunos atributos de calidad, tales    como la escalabilidad, fiabilidad y el uso de los recursos &#91;6&#93;.</font></p>  	    <p ><font face="verdana" size="2">En un producto de software el rendimiento se mide como la capacidad del sistema de utilizar los recursos de hardware de forma eficiente, las pruebas de rendimiento tienen como objetivo estresar el sistema realizando demandas fuera de los l&iacute;mites para los que fue dise&ntilde;ado el <i>software</i>.</font></p>  	     <p ><font face="verdana" size="2">Los    componentes de software se encargan fundamentalmente de proveer servicios a    los sistemas. Las pruebas de rendimiento, buscan monitorear que los servicios    mencionados anteriormente, se brinden minimizando en lo posible el tiempo y    el porciento de utilizaci&oacute;n de recursos de hardware. Estas pruebas reportan    las medidas necesarias para evaluar la calidad en este aspecto ofrecido por    el componente &#91;19&#93;.</font></p>  	     <p ><font face="verdana" size="2"><b>Pruebas de rendimiento como conceptos transversales</b></font></p>  	     <p ><font face="verdana" size="2">Las pruebas de rendimiento en cualquier producto    de software presentan un comportamiento transversal a la ejecuci&oacute;n de    las funcionalidades. Cualquier herramienta que realice este tipo de pruebas    aunque no utilice el paradigma orientado a aspectos act&uacute;a de manera transversal    al sistema. El detalle est&aacute; en que la herramienta para poder evaluar    los elementos de rendimiento necesita que se ejecuten las funcionalidades del    sistema. Pero, en la ejecuci&oacute;n de una funcionalidad dentro de un sistema    intervienen muchas otras funcionalidades que se activan consecutivamente detr&aacute;s    de la llamada a un m&eacute;todo determinado, por tanto la herramienta estar&iacute;a    evaluando muchas funcionalidades que se encuentran en diferentes partes del    sistema. La&nbsp; <a href="#f01">figura 1</a> demuestra&nbsp; esta afirmaci&oacute;n.</font></p>     <p align="center" ><a name="f01"></a><img src="/img/revistas/rii/v37n3/f0106316.jpg" width="400" height="212" alt="Fig. 1. Evaluaci&oacute;n del rendimiento en un sistema como asunto transversal a la ejecuci&oacute;n de las funcionalidades"></p>  	     
<p ><font face="verdana" size="2">En una biblioteca de software sucede muy parecido,    la diferencia fundamental radica en que la biblioteca no est&aacute; dise&ntilde;ada    para ejecutar sus propios servicios. Sin embargo a trav&eacute;s de un mecanismo    externo que permita implementar y ejecutar autom&aacute;ticamente las funcionalidades    de la biblioteca se puede resolver esta diferencia como se observa en la <a href="#f02">figura    2</a>.</font></p>     <p align="center" ><font face="verdana" size="2">&nbsp;<a name="f02"></a><img src="/img/revistas/rii/v37n3/f0206316.jpg" width="427" height="237" alt="Fig. 2. Evaluaci&oacute;n del rendimiento en una biblioteca como asunto transversal a la ejecuci&oacute;n de las funcionalidades"></font></p>  	     
]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">Basado en este esquema y tomando como referencia    el proceso b&aacute;sico propuesto por &#91;20&#93; para la implementaci&oacute;n    de los conceptos transversales, se realiz&oacute; una adaptaci&oacute;n al contexto    de pruebas de rendimiento. De esta forma se obtiene el modelo de proceso b&aacute;sico    para pruebas de rendimiento utilizando un lenguaje AOP, como se muestra en la    <a href="#f03">figura 3</a>.</font></p>  	     <p align="center" ><font face="verdana" size="2">&nbsp;<a name="f03"></a><img src="/img/revistas/rii/v37n3/f0306316.jpg" width="370" height="211" alt="Fig. 3. Proceso de pruebas de rendimiento utilizando el enfoque AOP"></font></p>  	     
<p align="left" ><font face="verdana" size="2"><b>Implementaci&oacute;n de los    Aspectos</b></font></p>  	    <p ><font face="verdana" size="2">Es necesario explicar c&oacute;mo se implementaron los aspectos contenidos en el m&oacute;dulo <i>aspects</i>, los cuales permitieron interceptar la ejecuci&oacute;n de estas funcionalidades utilizando el lenguaje <i>AspectJ</i>.</font></p>  	     <p ><font face="verdana" size="2">Se identific&oacute; e implement&oacute; el    aspecto <i>Performance Tester Aspect</i>. Dentro del aspecto se implement&oacute;    el punto de corte <i>tester Execution</i>, el cual intercepta la ejecuci&oacute;n    de todas las funcionalidades p&uacute;blicas de la clase objetivo <i>TestCase</i>    (la clase de prueba que se crea con el <i>plugin</i>).</font></p>  	    <p ><font face="verdana" size="2">Con el punto de corte se garantiza tener puntos de acceso a los instantes de ejecuci&oacute;n de cada funcionalidad por separado. A trav&eacute;s de un aviso de tipo <i>before</i>se tiene acceso al instante inicial de ejecuci&oacute;n de cada m&eacute;todo, permitiendo activar las variables de rendimiento implementadas. Luego con un aviso de tipo <i>after</i> se determina el instante en que cada funcionalidad ha terminado su ejecuci&oacute;n.</font></p>  	     <p ><font face="verdana" size="2">Con estos puntos de acceso a los extremos inicio    y final, dentro de la ejecuci&oacute;n de los m&eacute;todos se&#45;leccionados,    se garantiza la evaluaci&oacute;n de las medidas de rendimiento tiempo de respuesta,    capacidad de emisi&oacute;n y la utilizaci&oacute;n de memoria a trav&eacute;s    del uso de clases, m&eacute;todos y variables. Por ejemplo para el caso del    tiempo de respuesta se utilizaron los m&eacute;todos <i>start</i>() y <i>stop</i>(),    los cuales permiten iniciar y detener una variable de tipo tiempo. La llamada    al m&eacute;todo <i>start </i>() se realiza dentro del aviso <i>before</i>,    garantizando que antes de la ejecuci&oacute;n de una funcionalidad determinada,    se inicialice la variable de tiempo. Por su parte la ubicaci&oacute;n del m&eacute;todo    <i>stop </i>() dentro del aviso <i>after</i> permite que al concluir la ejecuci&oacute;n    esa variable contenga el tiempo transcurrido desde el inicio de la ejecuci&oacute;n    hasta el final, donde se supone que la funcionalidad proporciona una respuesta.    De esta manera al finalizar la ejecuci&oacute;n de todas las funcionalidades    de la clase se obtienen los tiempos de respuesta por cada una de ellas.</font></p>  	    <p ><font face="verdana" size="2">Para el caso de la memoria sucede parecido, con el uso de interfaces nativas del lenguaje se puede acceder al estado de la memoria dentro de la m&aacute;quina virtual de <i>Java</i>. Por tanto utilizando el aviso <i>after</i> se puede controlar el estado de la memoria luego de cada ejecuci&oacute;n, permitiendo conocer el consumo de este recurso de manera separada.</font></p>  	    <p ><font face="verdana" size="2">&nbsp;</font></p>  	     <p ><font face="verdana" size="2"><b>    <font size="3">RESULTADOS</font></b></font></p>  	    ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">A continuaci&oacute;n se exponen los resultados de la soluci&oacute;n desarrollada utilizando un caso de estudio como mecanismo de validaci&oacute;n de la propuesta implementada.</font></p>  	    <p ><font face="verdana" size="2">Se utiliz&oacute; la biblioteca <i>ImageJ</i> desarrollada en <i>Java</i>, la cual entre sus funcionalidades fundamentales contiene el tratamiento de im&aacute;genes digitales. Generalmente, los productos de software que gestionan el tratamiento, procesamiento y manipulaci&oacute;n de im&aacute;genes exigen un consumo excesivo de los recursos de hardware como es el caso de la memoria din&aacute;mica. Esta caracter&iacute;stica presente en la biblioteca <i>ImageJ</i> fue determinante en su selecci&oacute;n para la validaci&oacute;n de la propuesta de soluci&oacute;n.</font></p>  	    <p ><font face="verdana" size="2">Para realizar la prueba de rendimiento a la biblioteca <i>ImageJ</i> se dise&ntilde;aron cuatro escenarios de prueba. En cada escenario se utilizan los mismos valores de entrada variando el formato <i>(.JPG, .GIF, .PNG y .BMP</i>) de las im&aacute;genes que se utilizan en la muestra. Se realizaron tres iteraciones por cada escenario de prueba y se promediaron los resultados de cada escenario para dar un resultado final.</font></p>  	     <p ><font face="verdana" size="2">Luego de realizar la prueba para todos los escenarios    creados, sujeto a los par&aacute;metros de entrada establecidos, se obtuvieron    resultados cuyos valores de las medidas evaluadas pertenecen a los promedios    de las evaluaciones realizadas para las tres iteraciones de prueba. En la <a href="/img/revistas/ii/v37n3/t0306316.jpg">tabla    3</a> se muestran los resultados obtenidos en uno de los escenarios de prueba    evaluados.</font></p>  	     
<p ><font face="verdana" size="2">Con los resultados obtenidos los probadores    pueden arribar a conclusiones como:</font></p>  	<ul>       <li><font face="verdana" size="2">El m&eacute;todo <i>filter All Images</i>      necesit&oacute; mayor tiempo de ejecuci&oacute;n de forma general y es el      que mayor flujo de trasmisi&oacute;n de datos posee.</font></li>       <li><font face="verdana" size="2">Las operaciones <i>combining</i> y <i>cutterImage</i>      son las de mayor consumo de memoria.</font></li>       <li><font face="verdana" size="2"> El formato <i>.PNG</i> exige mayores requisitos      de memoria, por el contrario el que exige menores recursos es el formato <i>.JPG</i>.</font></li>     </ul>     <p ><font face="verdana" size="2">De    manera general se puede concluir que el tratamiento de im&aacute;genes exige    altos requisitos de memoria para un funcionamiento adecuado.</font></p>     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">&nbsp;</font></p>  	    <p ><font face="verdana" size="2"><b>    <font size="3">DISCUSI&Oacute;N</font></b></font></p>  	     <p ><font face="verdana" size="2">El    caso de estudio desarrollado como escenario de la validaci&oacute;n del <i>plugin</i>    implementado para el <i>IDE Eclipse</i> permite que desde el propio entorno    el desarrollador tenga acceso a definir y testear el rendimiento de un componente    de software. Adem&aacute;s es destacable el empleo para ello de la programaci&oacute;n    orientada a aspectos como paradigma que facilita la automatizaci&oacute;n de    la tarea. Esta facilidad redunda en: una disminuci&oacute;n del esfuerzo&nbsp;    a la realizaci&oacute;n de las pruebas de rendimiento, mayor calidad de los    componentes al final de su desarrollo para que sean utilizados por m&uacute;ltiples    soluciones que requieran de la funcionalidad espec&iacute;fica que estos provean.    La comprobaci&oacute;n la validez de esta propuesta con una biblioteca de tratamiento    de im&aacute;genes da una medida que es factible de aplicarse con elementos    que requieran elevados consumos de hardware y tiempo. Es v&aacute;lido destacar    que para obtener un resultado fiable en la ejecuci&oacute;n no automatizada    de pruebas de rendimiento se hace necesario poseer conocimientos espec&iacute;ficos    en esta &aacute;rea.</font></p>     <p >&nbsp;</p>     <p ><font face="verdana" size="2"><b>    <font size="3">CONCLUSIONES</font></b></font></p>     <p ><font face="verdana" size="2"></font><font face="verdana" size="2">Una    vez terminado el trabajo se puede concluir que:</font></p>  	     <p ><font face="verdana" size="2">1. La evaluaci&oacute;n del rendimiento es muy    importante en el desarrollo de software de forma general y particularmente en    los componentes de software.</font></p>  	     <p ><font face="verdana" size="2">2.&nbsp;De igual manera, se puede alegar que    la evaluaci&oacute;n de la caracter&iacute;stica de calidad rendimiento puede    ser tratada como un asunto transversal en la ejecuci&oacute;n de las funcionalidades    de los componentes de software.</font></p>  	     <p ><font face="verdana" size="2">3.&nbsp;Con la realizaci&oacute;n del caso de    estudio se pudo evidenciar que con el empleo del paradigma de la programaci&oacute;n    orientada a aspectos es posible automatizar el proceso de evaluaci&oacute;n    de la caracter&iacute;stica de calidad rendimiento en los componentes de software.</font></p>  	     <p ><font face="verdana" size="2">4.&nbsp;Se encuentra a disposici&oacute;n de    la comunidad cient&iacute;fica un componente desarrollado en forma de <i>plugin</i>    para la evaluaci&oacute;n de la caracter&iacute;stica de calidad rendimiento    en&nbsp; componentes de software.</font></p>     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">&nbsp;</font></p>  	     <p ><font face="verdana" size="2"><b><font size="3">REFERENCIAS</font></b></font></p>  	     <!-- ref --><p ><font face="verdana" size="2"><b>&nbsp;</b></font><font face="verdana" size="2">1.    Standish Group. CHAOS Manifiesto. 2014. &#91;Citado 20 de septiembre de 2015&#93;    Disponible en: <a href="http://www.standishgroup.com/chaos&#45;news">http://www.standishgroup.com/chaos&#45;news</a></font><!-- ref --><p ><font face="verdana" size="2">2. McCall P, Walters G. Factors in Software    Quality: US Rome Air Development Center; 1977.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">3. Boehm JB, Kaspar J, Lipow M, et al. Characteristics    of Software Quality; 1978.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">4. Oficina&nbsp; Nacional&nbsp; de Normalizaci&oacute;n.    Ingenier&iacute;a de software, calidad del producto. En:&nbsp; Parte 1: Modelo    de calidad; 2005.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">5. ISO. Systems and software engineering. In:    Systems and software Quality Requirements and Evaluation; 2011.    </font></p>     <!-- ref --><p ><font face="verdana" size="2">6. Pressman RS. Ingenier&iacute;a del Software:    Un enfoque pr&aacute;ctico. M&eacute;xico D.F: M&eacute;xico: McGraw Hill; 2010.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">7. Flores M. Testing&#45;based process for component    substitutability. Software Testing, Verification &amp; Reliability; 2012.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">8. Xin X. A Regression Testing Approach of COTS Component Based Software. In: Proceedings of the 2013 Fifth International Conference on Multimedia Information Networking and Security; 2013.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">9. Shang H, Jiang L. The Development Process    of Component&#45;Based Application Software. In: Proceedings of the 2011 International    Conference of Information Technology; 2011.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">10. Szyperski C. Component Software: Beyond Object&#45;Oriented Programming. Arizona, United States Addison&#45;Wesley Educational Publishers Inc; 2002.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">11. Bertoa AV. Atributos de Calidad para Componentes COTS. presented at the IDEAS. La Habana, Cuba; 2002.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">12. Papazoglou M. Web services: principles and    technology. Edinburgh, UK; 2008.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">13. Panunzio TV. A component&#45;based process with separation of concerns for the development of embedded real&#45;time software systems. Journal of Systems and Software. 2014;96:105&#45;21.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">14. ISO. Software engineering &#45; Product    quality &#45;Part 1: Quality Model. ISO&#45;9126&#45;1. Geneva. Switzerland;    2001.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">15. Scalone F. Estudio comparativo de los modelos    y est&aacute;ndares de calidad del software Tesis de m&aacute;ster. Buenos Aires,    Argentina: Universidad de Buenos Aires; 2006.    </font></p>     <!-- ref --><p ><font face="verdana" size="2">16. SEI. &nbsp;Community Software Architecture    Definitions; 2015.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">17. Rojas JC. Introducci&oacute;n y principios    b&aacute;sicos del desarrollo de software basado en componentes. Colombia; 2004.        </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">18. Ochoa JC. Metodolog&iacute;a para testing de software basado en componentes &#91;Tesis de grado&#93; 2010.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">19. Tian J. Software quality engineering: testing, quality assurance, and quantifiable improvement. En:&nbsp; Hoboken. New Jersey: John Wiley &amp; Sons; 2005.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">20. Hern&aacute;ndez LR. Un modelo para la implementaci&oacute;n    de la seguridad de una aplicaci&oacute;n web con el uso de la programaci&oacute;n    orientada a aspectos. La Habana, Cuba: Facultad de Ingenier&iacute;a Inform&aacute;tica,    Instituto Superior Polit&eacute;cnico Jos&eacute; Antonio Echeverr&iacute;a;    2002.    </font></p>  	    <p ><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	     <p ><font face="verdana" size="2">Recibido:    2 de febrero de 2016.    <br>   </font><font face="verdana" size="2">Aprobado: 26 de mayo de 2016.</font></p>     <p >&nbsp;</p>     <p >&nbsp;</p>     <p align="justify"><font face="verdana" size="2"><i>Sandra Verona&#45;Marcos</i>,    Instituto Superior Polit&eacute;cnico Jos&eacute; Antonio Echeverr&iacute;a,    Cujae. Facultad de Ingenier&iacute;a Inform&aacute;tica. La Habana, Cuba    <br>   Correo electr&oacute;nico: <a href="mailto:sverona@ceis.cujae.edu.cu">sverona@ceis.cujae.edu.cu</a></font><font face="verdana" size="2">&nbsp;</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="">
<collab>Standish Group</collab>
<source><![CDATA[CHAOS Manifiesto]]></source>
<year>2014</year>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[McCall]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Walters]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[en]]></source>
<year>1977</year>
<publisher-loc><![CDATA[Factors in Software Quality ]]></publisher-loc>
<publisher-name><![CDATA[US Rome Air Development Center]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Boehm]]></surname>
<given-names><![CDATA[JB]]></given-names>
</name>
<name>
<surname><![CDATA[Kaspar]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Lipow]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[en]]></source>
<year>1978</year>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="">
<collab>Oficina Nacional de Normalización</collab>
<source><![CDATA[Ingeniería de software, calidad del producto: Parte 1: Modelo de calidad]]></source>
<year>2005</year>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<collab>ISO</collab>
<source><![CDATA[Systems and software engineering: Systems and software Quality Requirements and Evaluation]]></source>
<year>2011</year>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pressman]]></surname>
<given-names><![CDATA[RS]]></given-names>
</name>
</person-group>
<source><![CDATA[Ingeniería del Software: Un enfoque práctico. México D.F:]]></source>
<year>2010</year>
<publisher-name><![CDATA[McGraw Hill]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Flores]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Testing-based process for component substitutability: Software Testing, Verification & Reliability]]></source>
<year>2012</year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Xin]]></surname>
<given-names><![CDATA[X. A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Regression Testing Approach of COTS Component Based Software]]></article-title>
<source><![CDATA[Proceedings of the 2013 Fifth International Conference on Multimedia Information Networking and Security]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Shang]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Jiang]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The Development Process of Component-Based Application Software]]></article-title>
<source><![CDATA[Proceedings of the 2011 International Conference of Information Technology]]></source>
<year>2011</year>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Szyperski]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[Component Software: Beyond Object-Oriented Programming]]></source>
<year>2002</year>
<publisher-loc><![CDATA[Arizona ]]></publisher-loc>
<publisher-name><![CDATA[United States Addison-Wesley Educational Publishers Inc]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bertoa]]></surname>
<given-names><![CDATA[AV]]></given-names>
</name>
</person-group>
<source><![CDATA[Atributos de Calidad para Componentes COTS.presented at the IDEAS]]></source>
<year>2002</year>
<publisher-loc><![CDATA[La Habana ]]></publisher-loc>
<publisher-name><![CDATA[Cuba]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Papazoglou]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Web services: principles and technology]]></source>
<year>2008</year>
<publisher-loc><![CDATA[Edinburgh ]]></publisher-loc>
<publisher-name><![CDATA[UK]]></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[Panunzio]]></surname>
<given-names><![CDATA[TV]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A component-based process with separation of concerns for the development of embedded real-time software systems]]></article-title>
<source><![CDATA[Journal of Systems and Software]]></source>
<year>2014</year>
<volume>96</volume>
<page-range>105-21</page-range></nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="">
<collab>ISO</collab>
<source><![CDATA[Software engineering - Product quality: Part 1: Quality Model. ISO-9126-1]]></source>
<year>2001</year>
<publisher-loc><![CDATA[Geneva ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Scalone]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<source><![CDATA[Estudio comparativo de los modelos y estándares de calidad del software]]></source>
<year>2006</year>
<publisher-name><![CDATA[Universidad de Buenos Aires]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="">
<collab>SEI</collab>
<source><![CDATA[Community Software Architecture Definitions]]></source>
<year>2015</year>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rojas]]></surname>
<given-names><![CDATA[JC]]></given-names>
</name>
</person-group>
<source><![CDATA[Introducción y principios básicos del desarrollo de software basado en componentes]]></source>
<year>2004</year>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ochoa]]></surname>
<given-names><![CDATA[JC]]></given-names>
</name>
</person-group>
<source><![CDATA[Metodología para testing de software basado en componentes]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tian]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Software quality engineering: testing, quality assurance, and quantifiable improvement. En: Hoboken]]></source>
<year>2005</year>
<publisher-loc><![CDATA[New Jersey ]]></publisher-loc>
<publisher-name><![CDATA[John Wiley & Sons]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hernández]]></surname>
<given-names><![CDATA[LR]]></given-names>
</name>
</person-group>
<source><![CDATA[Un modelo para la implementación de la seguridad de una aplicación web con el uso de la programación orientada a aspectos. La Habana,]]></source>
<year>2002</year>
<publisher-name><![CDATA[Facultad de Ingeniería Informática, Instituto Superior Politécnico José Antonio Echeverría]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
