<?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>1405-7743</journal-id>
<journal-title><![CDATA[Ingeniería, investigación y tecnología]]></journal-title>
<abbrev-journal-title><![CDATA[Ing. invest. y tecnol.]]></abbrev-journal-title>
<issn>1405-7743</issn>
<publisher>
<publisher-name><![CDATA[Universidad Nacional Autónoma de México, Facultad de Ingeniería]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1405-77432014000400001</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Pruebas empíricas y resultados preliminares con la herramienta Krakatoa para Full Static Program Verification]]></article-title>
<article-title xml:lang="en"><![CDATA[Empirical Tests and Preliminary Results with the Krakatoa Tool for Full Static Program Verification]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Ramírez-de León]]></surname>
<given-names><![CDATA[Edgar Darío]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Chávez-Bosquez]]></surname>
<given-names><![CDATA[Oscar]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Francisco-León]]></surname>
<given-names><![CDATA[Julián Javier]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Juárez Autónoma de Tabasco División Académica de Informática y Sistemas ]]></institution>
<addr-line><![CDATA[Villahermosa Tabasco]]></addr-line>
<country>México</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Juárez Autónoma de Tabasco División Académica de Informática y Sistemas ]]></institution>
<addr-line><![CDATA[Villahermosa Tabasco]]></addr-line>
<country>México</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Juárez Autónoma de Tabasco División Académica de Informática y Sistemas ]]></institution>
<addr-line><![CDATA[Villahermosa Tabasco]]></addr-line>
<country>México</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2014</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2014</year>
</pub-date>
<volume>15</volume>
<numero>4</numero>
<fpage>493</fpage>
<lpage>504</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.mx/scielo.php?script=sci_arttext&amp;pid=S1405-77432014000400001&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.mx/scielo.php?script=sci_abstract&amp;pid=S1405-77432014000400001&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.mx/scielo.php?script=sci_pdf&amp;pid=S1405-77432014000400001&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[XJML (Ramírez et al., 2012) es una plataforma modular externa para la verificación y validación de clases Java empleando el lenguaje de modelado de Java (JML, Java Modeling Language) a través de contratos escritos en XML. Uno de los problemas que se enfrentaron durante el desarrollo de XJML fue la integración de la técnica de verificación denominada Full Static Program Verification (FSPV). En este artículo se presentan los experimentos y resultados que permitieron definir qué herramienta se integra en XJML para ejecutar FSPV.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[XJML (Ramírez et al., 2012) is a modular external platform for Verification and Validation of Java classes using the Java Modeling Language (JML) through contracts written in XML. One problem faced in the XJML development was how to integrate Full Static Program Verification (FSPV). This paper presents the experiments and results that allowed us to define what tool to embed in XJML to execute FSPV.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[verificación de modelos]]></kwd>
<kwd lng="es"><![CDATA[verificación y validación]]></kwd>
<kwd lng="es"><![CDATA[JML]]></kwd>
<kwd lng="es"><![CDATA[XML]]></kwd>
<kwd lng="es"><![CDATA[Java]]></kwd>
<kwd lng="es"><![CDATA[Runtime Assertion Checking]]></kwd>
<kwd lng="es"><![CDATA[Extended Static Checking]]></kwd>
<kwd lng="es"><![CDATA[Full Static Program Verification]]></kwd>
<kwd lng="en"><![CDATA[model checking]]></kwd>
<kwd lng="en"><![CDATA[verification and validation]]></kwd>
<kwd lng="en"><![CDATA[JML]]></kwd>
<kwd lng="en"><![CDATA[XML]]></kwd>
<kwd lng="en"><![CDATA[Java]]></kwd>
<kwd lng="en"><![CDATA[Runtime Assertion Checking]]></kwd>
<kwd lng="en"><![CDATA[Extended Static Checking]]></kwd>
<kwd lng="en"><![CDATA[Full Static Program Verification]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  	    <p align="center"><font face="verdana" size="4"><b>Pruebas emp&iacute;ricas y resultados preliminares con la herramienta Krakatoa para Full Static Program Verification</b></font></p>      <p align="center"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="center"><font face="verdana" size="3"><b>Empirical Tests and Preliminary Results with the Krakatoa Tool for Full Static Program Verification</b></font></p>      <p align="center"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="center"><font face="verdana" size="2"><b>Ram&iacute;rez&#45;deLe&oacute;n Edgar Dar&iacute;o<sup>1</sup>, Ch&aacute;vez&#45;Bosquez Oscar<sup>2</sup>, Francisco&#45;Le&oacute;n Juli&aacute;n Javier<sup>3</sup></b></font></p>     <p align="center"><font face="verdana" size="2">&nbsp;</font></p>      <p align="left"><font face="verdana" size="2">    <br></font></p>  	    <p align="left"><font face="verdana" size="2"><i><sup>1</sup> Divisi&oacute;n Acad&eacute;mica de Inform&aacute;tica y Sistemas, Universidad Ju&aacute;rez Aut&oacute;noma de Tabasco. Correo:</i> <a href="mailto:msc&#45;dar_ram@hotmail.com">msc&#45;dar&#95;ram@hotmail.com</a>.</font></p>      ]]></body>
<body><![CDATA[<p align="left"><font face="verdana" size="2"><i><sup>2</sup> Divisi&oacute;n Acad&eacute;mica de Inform&aacute;tica y Sistemas, Universidad Ju&aacute;rez Aut&oacute;noma de Tabasco. Correo:</i> <a href="mailto:chavez@programador.com">chavez@programador.com</a>.</font></p>      <p align="left"><font face="verdana" size="2"><i><sup>3</sup> Divisi&oacute;n Acad&eacute;mica de Inform&aacute;tica y Sistemas, Universidad Ju&aacute;rez Aut&oacute;noma de Tabasco. Correo:</i> <a href="mailto:juljav_fl@hotmail.com">juljav&#95;fl@hotmail.com</a>.</font></p>      <p align="left"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="left"><font face="verdana" size="2">Recibido: mayo de 2012    <br> 	Reevaluado: junio de 2013    <br> 	Aceptado: septiembre de 2013</font></p>  	    <p align="left"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Resumen</b></font></p>  	    <p align="justify"><font face="verdana" size="2">XJML (Ram&iacute;rez <i>et al.</i>, 2012) es una plataforma modular externa para la verificaci&oacute;n y validaci&oacute;n de clases Java empleando el lenguaje de modelado de Java (JML, <i>Java Modeling Language</i>) a trav&eacute;s de contratos escritos en XML. Uno de los problemas que se enfrentaron durante el desarrollo de XJML fue la integraci&oacute;n de la t&eacute;cnica de verificaci&oacute;n denominada <i>Full Static Program Verification</i> (FSPV). En este art&iacute;culo se presentan los experimentos y resultados que permitieron definir qu&eacute; herramienta se integra en XJML para ejecutar FSPV.</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Descriptores:</b> verificaci&oacute;n de modelos, verificaci&oacute;n y validaci&oacute;n, JML, XML, Java, <i>Runtime Assertion Checking</i>, <i>Extended Static Checking</i>, <i>Full Static Program Verification.</i></font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b><i>Abstract</i></b></font></p>  	    <p align="justify"><font face="verdana" size="2">XJML (Ram&iacute;rez <i>et al.</i>, 2012) is a modular external platform for Verification and Validation of Java classes using the <i>Java Modeling Language</i> (JML) through contracts written in XML. One problem faced in the XJML development was how to integrate <i>Full Static Program Verification</i> (FSPV). This paper presents the experiments and results that allowed us to define what tool to embed in XJML to execute FSPV.</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Keywords:</b> model checking, verification and validation, JML, XML, Java, Runtime Assertion Checking, Extended Static Checking, Full Static Program Verification.</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Introducci&oacute;n</b></font></p>  	    <p align="justify"><font face="verdana" size="2">JML fue creado por Gary T. Leavens y es el <i>Behavioral Interface Specification Language</i> (BISL) m&aacute;s popular para Java (Chalin <i>et al.</i>, 2008; Chalin <i>et al.</i>, 2007), soportando <i>Runtime Assertion Checking</i> (RAC), <i>Extended Static Checking</i> (ESC) y <i>Full Static Program Verification</i> (FSPV), de hecho, es el &uacute;nico BISL soportado por estas tres tecnolog&iacute;as de verificaci&oacute;n (Chalin <i>et al.</i>, 2008; Chalin <i>et al.</i>, 2007).</font></p>  	    <p align="justify"><font face="verdana" size="2">Desde la concepci&oacute;n de JML se han efectuado m&uacute;ltiples avances en el desarrollo de herramientas para su soporte. Esto nos conduce a una gran cantidad de herramientas, duplicaci&oacute;n de trabajo (esfuerzos) y una alta y colectiva sobrecarga para el mantenimiento de JML y sus herramientas de soporte. Sin embargo, la evoluci&oacute;n de Java como lenguaje de programaci&oacute;n, y las mejoras aplicadas a las herramientas y aplicaciones de JML, obliga a la comunidad de JML a mantenerse al d&iacute;a, que es una tarea dif&iacute;cil en donde se producen muchas variantes y alternativas de dichas herramientas y aplicaciones.</font></p>  	    <p align="justify"><font face="verdana" size="2">Estas razones y el hecho de que a&uacute;n no existe una herramienta que brinde soporte total a RAC, ESC y FSPV tal como se presenta en Ram&iacute;rez <i>et al.</i> (2012) fue lo que impuls&oacute; el dise&ntilde;o y desarrollo de XJML. XJML es, hasta donde sabemos, la primera propuesta para embeber un contrato para una clase Java usando JML y XML. XJML 1.0 logra integrar:</font></p>  	    <blockquote> 		    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">a) RAC empleando como base JML4 (Chalin <i>et al.</i>, 2008), sobre todo los componentes jml4c y jml4rt</font></p>  		    <p align="justify"><font face="verdana" size="2">b) ESC a trav&eacute;s de ESC/Java2 (Flanagan <i>et al.</i>, 2002), versi&oacute;n 2.0.5</font></p> 	</blockquote>  	    <p align="justify"><font face="verdana" size="2">Si bien la integraci&oacute;n de estas herramientas soportadas a trav&eacute;s de XML represent&oacute; un reto interesante, fue a&uacute;n mayor el problema que se encontr&oacute; al integrar FSPV en XJML 1.0. Dicho esto, el objetivo de este trabajo es presentar los experimentos y resultados que permitieron determinar la herramienta que da soporte a FSPV en XJML 1.0, FSPVRunner como se denomina a dicho componente en XJML 1.0 (Ram&iacute;rez <i>et al.</i>, 2012).</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Marco referencial</b></font></p>  	    <p align="justify"><font face="verdana" size="2">Como se ha indicado en la secci&oacute;n anterior, JML es un lenguaje para la verificaci&oacute;n de clases Java que soporta las t&eacute;cnicas de Verificaci&oacute;n de Aserciones en Tiempo de Ejecuci&oacute;n (RAC, <i>Runtime Assertion Checking</i>), Verificaci&oacute;n Est&aacute;tica Extendida (ESC, <i>Extended Static Checking</i>) y la Verificaci&oacute;n de Programas Completamente Est&aacute;tica (FSPV, <i>Full Static Program Verification</i>). Pero, &#191;qu&eacute; son estas t&eacute;cnicas de verificaci&oacute;n, cu&aacute;l es su funci&oacute;n u objetivo primordial&#63;</font></p>      <p align="justify"><font face="verdana" size="2">RAC consiste en la verificaci&oacute;n en tiempo de ejecuci&oacute;n de las aserciones expresadas en alg&uacute;n lenguaje de especificaci&oacute;n (para el caso de este trabajo, en JML). Las aserciones son una de las t&eacute;cnicas automatizadas m&aacute;s usadas para la detecci&oacute;n de fallos en sistemas computacionales a la vez que proveen informaci&oacute;n sobre su localizaci&oacute;n, inclusive para fallas (<i>faults</i>) que se producen durante la ejecuci&oacute;n, pero no conducen a errores significativos (<i>failures</i>).</font></p>  	    <p align="justify"><font face="verdana" size="2">Las aserciones tienen una larga y distinguida historia en los anales de la ingenier&iacute;a de <i>software</i> y el dise&ntilde;o de lenguajes de programaci&oacute;n. Inicialmente se desarrollaron como un medio para expresar las propiedades deseadas de un programa como un paso necesario en la construcci&oacute;n de pruebas formales y deductivas para la correcci&oacute;n de programas.</font></p>  	    <p align="justify"><font face="verdana" size="2">Las aserciones han tenido muchas otras aplicaciones en la ingenier&iacute;a de <i>software</i> a trav&eacute;s de los a&ntilde;os (Clarke y Rosenblum, 2006), aunque primordialmente en las etapas posteriores de desarrollo, en particular en el desarrollo y ejecuci&oacute;n del c&oacute;digo fuente. Son un elemento importante de la verificaci&oacute;n de modelos (<i>model checking</i>), una t&eacute;cnica alternativa y activamente estudiada de la verificaci&oacute;n de programas (<i>program verification</i>), en el cual el espacio de estados resultante de la ejecuci&oacute;n de un programa se verifica contra aserciones l&oacute;gicas que expresan propiedades de seguridad temporal (<i>temporal safety</i>) y de tiempo de vida o vitalidad de un programa (<i>liveness</i>) (Clarke y Rosenblum, 2006).</font></p>  	    <p align="justify"><font face="verdana" size="2">ESC es la verificaci&oacute;n est&aacute;tica de las aserciones expresadas en JML. Es una t&eacute;cnica experimental de verificaci&oacute;n de programas en tiempo de compilaci&oacute;n (Flanagan <i>et al.</i>, 2002). Una de las herramientas m&aacute;s conocidas para esta verificaci&oacute;n en Java es ESC/Java, la cual emplea un generador de condiciones de verificaci&oacute;n (<i>verification&#45;condition generation</i>) y t&eacute;cnicas de demostraci&oacute;n autom&aacute;tica de teoremas (Flanagan <i>et al.</i>, 2002). Provee a los programadores, a trav&eacute;s de un lenguaje simple de anotaciones, decisiones de dise&ntilde;o que pueden expresarse formalmente.</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">ESC/Java examina el programa anotado y notifica inconsistencias entre las decisiones de dise&ntilde;o expresadas en las anotaciones y el c&oacute;digo actual (implementaci&oacute;n) y tambi&eacute;n advierte sobre errores potenciales en tiempo de ejecuci&oacute;n del c&oacute;digo.</font></p>  	    <p align="justify"><font face="verdana" size="2">FSPV es una t&eacute;cnica de verificaci&oacute;n que emplea demostradores de teoremas (<i>theorem provers</i>) (Karabotsos <i>et al.</i>, 2008). Esta t&eacute;cnica de verificaci&oacute;n de programas puede emplear demostradores autom&aacute;ticos de teoremas, como por ejemplo<sup><a href="#notas">1</a></sup>: Alt&#45;ergo, Simplify, Z3, Yices, CVC3, CVCL, Gappa, Eprover, haRVey, Zenon, SPASS, Vampire y veriT, o bien, emplear asistentes o demostradores interactivos (requieren la intervenci&oacute;n humana) de teoremas, tales como<sup>1</sup> Coq, PVS, Isabelle/HOL, HOL 4, HOL Light y Mizar.</font></p>      <p align="justify"><font face="verdana" size="2">La demostraci&oacute;n autom&aacute;tica de teoremas (ATP, <i>automated theorem proving</i>) que tambi&eacute;n puede llamarse deducci&oacute;n automatizada, es actualmente el sub&#45;campo m&aacute;s desarrollado del razonamiento autom&aacute;tico, y se encarga de la demostraci&oacute;n de teoremas matem&aacute;ticos mediante programas de ordenador.</font></p>  	    <p align="justify"><font face="verdana" size="2">As&iacute;, un demostrador autom&aacute;tico de teoremas (<i>automatic theorem prover</i>) es un programa de c&oacute;mputo desarrollado para la deducci&oacute;n autom&aacute;tica de teoremas, ampliamente estudiado y utilizado en la verificaci&oacute;n y validaci&oacute;n de sistemas de c&oacute;mputo.</font></p>  	    <p align="justify"><font face="verdana" size="2">Por otro lado, un asistente de pruebas (<i>proof assistant</i>) o demostrador interactivo de teoremas (<i>interactive theorem prover</i>) es una herramienta de <i>software</i> para asistir en el desarrollo de demostraciones formales mediante la colaboraci&oacute;n hombre&#45;m&aacute;quina. Esto involucra alg&uacute;n tipo de editor interactivo de demostraciones, o alguna otra interfaz, con la cual un humano puede guiar la b&uacute;squeda de demostraciones.</font></p>  	    <p align="justify"><font face="verdana" size="2">Se preguntar&aacute;: &#191;qu&eacute; tiene que ver todo esto con XJML o incluso con este trabajo&#63;, &#191;qu&eacute; es Krakatoa, qu&eacute; relaci&oacute;n y cu&aacute;l es su importancia en este trabajo&#63;</font></p>  	    <p align="justify"><font face="verdana" size="2">XJML 1.0 adopta la plataforma Why para efectuar FSPV, ya que esto es posible gracias al complemento (<i>plug &#45;in</i>) Krakatoa que forma parte de la plataforma Why. Krakatoa es una herramienta de FSPV para clases Java anotadas con JML (Karabotsos <i>et al.</i>, 2008) y es similar a FSPV <i>Theory Generator</i> (FSPV TG) (James y Chalin, 2009, Chalin <i>et al.</i>, 2008), (Karabotsos <i>et al.</i>, 2008), en el sentido que traduce programas Java a un programa intermedio. Sin embargo, los programas en Why se traducen en una teor&iacute;a espec&iacute;fica usando el compilador Why escrito en Objective CAML.</font></p>  	    <p align="justify"><font face="verdana" size="2">XJML 1.0 soporta Why 2.30 y Why3. Why 2.30 es una plataforma para la verificaci&oacute;n de <i>software</i> que contiene varias herramientas<sup><a href="#notas">2</a></sup>:</font></p>      <blockquote> 		    <p align="justify"><font face="verdana" size="2">&bull;  Why, un Generador de Verificaci&oacute;n de Condici&oacute;n (VCG, <i>Verification Condition Generator</i>) de prop&oacute;sito general, el cual se utiliza como herramienta de fondo (<i>back&#45;end</i>) por otras herramientas de verificaci&oacute;n (Krakatoa y Caduceus) pero tambi&eacute;n puede usarse de manera directa para la verificaci&oacute;n programas.</font></p>  		    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">&bull;  Krakatoa<sup><a href="#notas">3</a></sup>, una herramienta para la verificaci&oacute;n de programas Java.</font></p>        <p align="justify"><font face="verdana" size="2">&bull;  Caduceus<sup><a href="#notas">4</a></sup>, herramientas para la verificaci&oacute;n de programas hechos en el lenguaje C; sin embargo Caduceus es ahora obsoleto y en su lugar, los usuarios deben cambiar a Frama&#45;C<sup><a href="#notas">5</a></sup>.</font></p> </blockquote>  	    <p align="justify"><font face="verdana" size="2">Por otra parte, Why3<sup><a href="#notas">6</a></sup> es la siguiente generaci&oacute;n de la plataforma Why para la verificaci&oacute;n de <i>software</i>. Separa claramente la parte puramente l&oacute;gica de la especificaci&oacute;n y la generaci&oacute;n de verificaci&oacute;n de condiciones de los programas.</font></p>      <p align="justify"><font face="verdana" size="2">Why3 se desarrolla en el proyecto de equipo ProVal<sup><a href="#notas">7</a></sup>, el cual est&aacute; conformado por INRIA <i>Saclay &#45;&Icirc;le&#45;de&#45;France</i>, en conjunto con el Laboratorio de Investigaci&oacute;n en Inform&aacute;tica de Par&iacute;s (<i>Laboratoire De Recherche En Informatique</i>) y la Universidad del Sur de Par&iacute;s (<i>University of Paris Sud</i>).</font></p>      <p align="justify"><font face="verdana" size="2">En este trabajo se presenta un conjunto de experimentos que ayudaron a determinar la herramienta que da soporte a FSPV en XJML 1.0, FSPVRunner como se denomina a dicho componente en XJML 1.0 (Ram&iacute;rez <i>et al.</i>, 2012) y que pueden considerarse como una extensi&oacute;n dentro del proyecto XJML.</font></p>  	    <p align="justify"><font face="verdana" size="2">Para concluir con esta secci&oacute;n resta describir, de manera breve, qu&eacute; es FSPVRunner. FSPVRunner es un componente del subsistema Runners de XJML, que se encarga de ejecutar FSPV a trav&eacute;s de la herramienta Krakatoa de la plataforma Why. La plataforma XJML es descrita con mayor detalle en Ram&iacute;rez <i>et al.</i> (2012).</font></p>  	    <p align="justify"><font face="verdana" size="2">El nombre FSPVRunner se conforma por el prefijo FSPV, el cual corresponde a dicha t&eacute;cnica de verificaci&oacute;n, y el sufijo <i>Runner</i> se debe a que FSPVRunner es un componente que forma parte del subsistema lanzadores (<i>Runners</i>) de XJML 1.0. Dicho esto, FSPVRunner se encarga de ejecutar FSPV y su arquitectura y funcionamiento es descrito con mayor detalle en Ram&iacute;rez <i>et al.</i> (2012).</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>M&eacute;todo</b></font></p>  	    <p align="justify"><font face="verdana" size="2">Todos los experimentos se llevaron a cabo en un equipo de c&oacute;mputo con las siguientes caracter&iacute;sticas en <i>hardware</i> y <i>software</i>:</font></p>  	    ]]></body>
<body><![CDATA[<blockquote> 		    <p align="justify"><font face="verdana" size="2">&bull;  Notebook Dell Vostro 1520</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Procesador Intel(R) Core(TM) 2 Duo CPU T6670 a 2.20 Ghz</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Memoria RAM de 4 GB</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Sistema Operativo GNU/Linux Ubuntu 10.04 (lucid) de 32 bits, n&uacute;cleo Linux 2.6.32&#45;34&#45; generic con GNOME 2.30.2</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Java Development Kit 6.0 update 29</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Eclipse SDK versi&oacute;n 3.7.0, build id I20110613&#45;1736</font></p> </blockquote>  	    <p align="justify"><font face="verdana" size="2">Se otorgaron 30 segundos para la ejecuci&oacute;n de cada experimento y el proceso para determinar la herramienta que da soporte a FSPV en XJML 1.0 consisti&oacute;, primero en probar los m&oacute;dulos FSPV para JML4, JMLEclipse y OpenJML, los cuales son los &uacute;ltimos esfuerzos de la comunidad de JML para desarrollar un entorno integrado de verificaci&oacute;n (<i>integr</i>ated <i>verification environment</i>) (Chalin <i>et al.</i>, 2010). Respecto a JML4 FSPV TG <i>Theory Generator</i> (James y Chalin, 2009; Chalin <i>et al.</i>, 2008; Karabotsos <i>et al.</i>, 2008), se descart&oacute; debido a su inestabilidad observada en las pruebas al momento de instalar y configurar los m&oacute;dulos requeridos<sup><a href="#notas">8</a></sup>.</font></p>      <p align="justify"><font face="verdana" size="2">Las conclusiones sobre la inestabilidad y etapa de desarrollo de JML4 y JMLEclipse est&aacute;n fundamentadas en las p&aacute;ginas Web principales de los respectivos proyectos<sup><a href="#notas">9</a></sup>. Puede observarse c&oacute;mo en dichas p&aacute;ginas se menciona que el lanzamiento de una primera versi&oacute;n oficial (no beta) est&aacute; pendiente por determinarse.</font></p>      <p align="justify"><font face="verdana" size="2">Otra herramienta con la que se efectuaron pruebas fue OpenJML. OpenJML es la siguiente generaci&oacute;n del n&uacute;cleo de JML y ser&aacute; soportado por Java 1.7. Est&aacute; basada en OpenJDK, por lo que desafortunadamente la instalaci&oacute;n fallar&aacute; (Cok, 2011) si la VM de Java no es una versi&oacute;n compatible con Java 1.7. Adem&aacute;s, a&uacute;n hay mucho trabajo por hacer respecto a OpenJML y sus caracter&iacute;sticas como un <i>plug &#45;in</i> de Eclipse a&uacute;n no est&aacute;n definidas (Cok, 2011). En resumen, OpenJML tampoco est&aacute; listo para utilizarse de manera estable.</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Como ya se mencion&oacute;, integrar RAC y ESC en XJML 1.0 no present&oacute; mayor dificultad en comparaci&oacute;n con FSPV, tal como hemos presentado. Ahora bien, si JML4, JMLEclipse y OpenJML no pudieron proveer un m&oacute;dulo de FSPV estable, fue necesario buscar alguna herramienta o plataforma que pudiera soportar tal t&eacute;cnica de verificaci&oacute;n en XJML 1.0. En la <a href="#t1">tabla 1</a> se presenta una comparaci&oacute;n de herramientas para FSPV, lo que aunado con los argumentos presentados, permitieron determinar la plataforma Why (Christophe y March&eacute;, 2007) como herramienta de soporte de FSPV para XJML 1.0.</font></p>  	    <p align="center"><font face="verdana" size="2"><a name="t1" id="t1"></a></font></p>  	    <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n4/a1t1.jpg"></font></p>  	    <p align="justify"><font face="verdana" size="2">Para su mejor comprensi&oacute;n se describe a continuaci&oacute;n cada leyenda de las filas de la <a href="#t1">tabla 1</a>.</font></p>  	    <blockquote> 		    <p align="justify"><font face="verdana" size="2">&bull;  <i>Maintained :</i> indica si a la herramienta a&uacute;n se le da soporte o se mantiene en desarrollo</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  <i>Open source:</i> indica si la herramienta es de c&oacute;digo abierto.</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  <i>Proven sound:</i> indica si se ha demostrado que la herramienta es consistente<sup><a href="#notas">10</a></sup>.</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  <i>Proven complete:</i> indica si se ha demostrado que la herramienta es completa (nos referimos a la completitud en el campo de l&oacute;gica computacional).</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  <i>Above two proofs done:</i> indica en qu&eacute; herramienta, t&eacute;cnica o m&eacute;todo fue demostrada la consistencia y completitud de la herramienta.</font></p> 		    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">&bull;  <i>VC generation done in prover:</i> indica si la herramienta es capaz de generar sus propias condiciones de verificaci&oacute;n (VC es acr&oacute;nimo de <i>verification&#45;condition</i>).</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  <i>Termination of recursive functions:</i> indica si la herramienta tiene la capacidad de tratar con funciones recursivas.</font></p> </blockquote>  	    <p align="justify"><font face="verdana" size="2">Con la determinaci&oacute;n de la plataforma Why para dar soporte a FSPV en XJML 1.0, fue necesario delimitar qu&eacute; versi&oacute;n de la plataforma Why soportar&iacute;a XJML 1.0, as&iacute; como cu&aacute;les demostradores autom&aacute;ticos de teoremas (<i>Automatic Theorem Provers</i>)se utilizar&iacute;an para verificar el comportamiento de FSPV en XJML 1.0.</font></p>  	    <p align="justify"><font face="verdana" size="2">Se efectuaron pruebas con Why 2.30 (Christophe, 2003) y Why3 0.71 (Bobot <i>et al.</i>, 2011) que son las versiones disponibles hasta el momento de la redacci&oacute;n de este trabajo. Para cada versi&oacute;n de la plataforma Why se realizaron experimentos con sus respectivos demostradores autom&aacute;ticos de teoremas soportados, de acuerdo con la documentaci&oacute;n disponible para cada versi&oacute;n de Why (Christophe, 2011).</font></p>  	    <p align="justify"><font face="verdana" size="2">Los experimentos consistieron en verificar la clase Isqrt.java (<a href="/img/revistas/iit/v15n4/a1f1.jpg" target="_blank">figura 1</a>), la cual es una implementaci&oacute;n que calcula la ra&iacute;z cuadrada de un n&uacute;mero entero.</font></p>  	    <p align="justify"><font face="verdana" size="2">La implementaci&oacute;n de la clase Isqrt es breve, pero a la vez creemos que fue lo suficientemente completa para emitir la conclusi&oacute;n que permiti&oacute; seleccionar las herramientas que dieron soporte a FSPV en XJML 1.0. As&iacute;, la clase Isqrt contiene al menos una precondici&oacute;n (l&iacute;nea 10 de la <a href="/img/revistas/iit/v15n4/a1f1.jpg" target="_blank">figura 1</a>), postcondici&oacute;n (l&iacute;nea 11, <a href="/img/revistas/iit/v15n4/a1f1.jpg" target="_blank">figura 1</a>), invariante de clase (l&iacute;neas 2 a 8 en la <a href="/img/revistas/iit/v15n4/a1f1.jpg" target="_blank">figura 1</a>) y de ciclo (l&iacute;neas 16 a 18, <a href="/img/revistas/iit/v15n4/a1f1.jpg" target="_blank">figura 1</a>), las cuales son los tipos de aserciones m&aacute;s comunes en la verificaci&oacute;n y validaci&oacute;n de sistemas computacionales.</font></p>  	    <p align="justify"><font face="verdana" size="2">Ser&aacute; necesario presentar los distintos demostradores autom&aacute;ticos de teoremasy demostradores interactivos de teoremas (<i>proof assistant</i> o <i>interactive theorem prover</i>)que se usaron para realizar los experimentos con la clase Isqrt, mismos experimentos que permitieron seleccionar qu&eacute; versi&oacute;n de la plataforma Why, demostradores autom&aacute;ticos de teoremas y demostradores interactivos de teoremas emplear para efectuar los experimentos con el m&oacute;dulo FSPV de XJML 1.0. Se efectuaron experimentos con Why 2.30 y Why3 0.71 con los demostradores autom&aacute;ticos de teoremas:</font></p>  	    <blockquote> 		    <p align="justify"><font face="verdana" size="2">&bull;  Alt&#45;ergo 0.93</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Simplify 1.5.4</font></p> 		    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">&bull;  Z3 2.2 y 3.2</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Yices 1.0.17 y 1.0.31</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  CVC3 versi&oacute;n development y 2.4.1</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  CVCL versi&oacute;n development y 2.4.1</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Gappa 0.12.0 y 0.15.1</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Eprover 1.4 Namring</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  haRVey 0.5.10</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Zenon 0.6.3</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  SPASS 3.7</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Vampire 0.6</font></p> 		    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">&bull;  veriT 201107</font></p> </blockquote>  	    <p align="justify"><font face="verdana" size="2">Se efectuaron experimentos con Why 2.30 y Why3 0.71 empleando los siguientes demostradores interactivos de teoremas</font></p>  	    <blockquote> 		    <p align="justify"><font face="verdana" size="2">&bull;  Coq 7.4 y 8.3pl2</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  PVS 5.0</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Isabelle/HOL 2011&#45;1</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  HOL 4 (Kananaskis 7)</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  HOL Light 100110</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Mizar 7.12.01</font></p> </blockquote>  	    <p align="justify"><font face="verdana" size="2">Al igual que con los demostradores autom&aacute;ticos de teoremaslistados, la lista de los demostradores interactivos de teoremasse obtuvo de la documentaci&oacute;n y p&aacute;ginas Web de Why 2.30 y Why3 0.71, por lo que es posible que existan m&aacute;s de estos, con los cuales no fue posible efectuar experimentos debido a que no se encuentran en la lista de lossoportados por Why.</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Resultados y discusi&oacute;n</b></font></p>  	    <p align="justify"><font face="verdana" size="2">Las <a href="/img/revistas/iit/v15n4/html/a1t2.html" target="_blank">tablas 2</a> y <a href="/img/revistas/iit/v15n4/html/a1t3.html" target="_blank">3</a> muestran la URL de descarga de los demostradores autom&aacute;ticos de teoremas y demostradores interactivos de teoremas empleados en los experimentos.</font></p>  	    <p align="justify"><font face="verdana" size="2">Ahora bien, las <a href="/img/revistas/iit/v15n4/html/a1t4.html" target="_blank">tablas 4</a> y <a href="/img/revistas/iit/v15n4/a1t5.jpg" target="_blank">5</a> muestran, respectivamente, los distintos demostradores autom&aacute;ticos de teoremas y demostradores interactivos de teoremas utilizados para efectuar experimentos iniciales con el fin de observar el comportamiento de Why 2.30 y Why3 0.71 con cada uno de ellos y posteriormente experimentar con la clase Isqrt.</font></p>  	    <p align="justify"><font face="verdana" size="2">Las columnas de las <a href="/img/revistas/iit/v15n4/html/a1t4.html" target="_blank">tablas 4</a> y <a href="/img/revistas/iit/v15n4/a1t5.jpg" target="_blank">5</a> se describen a continuaci&oacute;n:</font></p>  	    <blockquote> 		    <p align="justify"><font face="verdana" size="2">&bull;  Plataforma Why. Versi&oacute;n de la plataforma Why en la que se utiliz&oacute; el demostradorautom&aacute;tico de teoremas o el demostrador interactivo de teoremas.</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Versi&oacute;n. Versi&oacute;n del demostrador autom&aacute;tico de teoremaso demostrador interactivo de teoremas.</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Versi&oacute;n recomendada. De acuerdo con la documentaci&oacute;n de la plataforma Why, se indica la versi&oacute;n que se recomienda para el demostrador autom&aacute;tico de teoremaso demostrador interactivo de teoremas.</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Compilado. Indica si el demostrador autom&aacute;tico de teoremas o demostrador interactivo de teoremas fue compilado en la misma m&aacute;quina donde se realizaron los experimentos.</font></p> 		    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">&bull;  Binario. Si el demostrador autom&aacute;tico de teoremas o demostrador interactivo de teoremas no fue compilado en la misma m&aacute;quina donde se realizaron los experimentos, entonces, se utiliz&oacute; una versi&oacute;n pre&#45;compilada del mismo. Se trata de una versi&oacute;n compilada en otro equipo, distinto al que fue utilizado para realizar los experimentos.</font></p> 		    <p align="justify"><font face="verdana" size="2">&bull;  Informaci&oacute;n mostrada. Se incluye la salida presentada por cada versi&oacute;n de la plataforma Why al detectar los demostradores autom&aacute;ticos de teoremaso demostradores interactivos de teoremas soportados.</font></p> </blockquote>  	    <p align="justify"><font face="verdana" size="2">De acuerdo con los resultados presentados en las <a href="/img/revistas/iit/v15n4/html/a1t4.html" target="_blank">tablas 4</a> y <a href="/img/revistas/iit/v15n4/a1t5.jpg" target="_blank">5</a> se seleccionaron los demostradores autom&aacute;ticos de teoremasy demostradores interactivos de teoremasdonde el valor de la columna <b>Informaci&oacute;n mostrada</b> sea <b>Ok</b> o <b>None</b> (sin ninguna nota informativa o de advertencia). La <a href="/img/revistas/iit/v15n4/a1t6.jpg" target="_blank">tabla 6</a> muestra la codificaci&oacute;n utilizada para tabular los resultados de las <a href="/img/revistas/iit/v15n4/a1t7.jpg" target="_blank">tablas 7</a> y <a href="/img/revistas/iit/v15n4/html/a1t8.html" target="_blank">8</a>, las cuales presentan los demostradores interactivos de teoremasy demostradores autom&aacute;ticos de teoremas,respectivamente, que se emplearon para probar la clase Isqrt.java. Estos experimentos permitieron seleccionar con qu&eacute; versi&oacute;n de la plataforma de Why, con cu&aacute;les demostradores autom&aacute;ticos de teoremasy cu&aacute;les demostradores interactivos de teoremasse realizaron los experimentos para verificar el m&oacute;dulo FSPVRunner de XJML 1.0.</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Conclusiones</b></font></p>  	    <p align="justify"><font face="verdana" size="2">Los experimentos y resultados presentados pueden servir como base para investigadores que deseen obtener informaci&oacute;n sobre el comportamiento de la plataforma Why 2.30 y Why3 0.71, con sus respectivos demostradores autom&aacute;ticos de teoremasy demostradores interactivos de teoremas. Por otro lado, y sin olvidar el objetivo que da origen a este trabajo, los resultados permitieron determinar qu&eacute; versi&oacute;n o versiones de la plataforma Why soportar&iacute;a XJML 1.0.</font></p>  	    <p align="justify"><font face="verdana" size="2">Finalmente, la versi&oacute;n de la plataforma de Why as&iacute; como los demostradores autom&aacute;ticos de teoremasy demostradores interactivos de teoremasfueron seleccionados de acuerdo con los criterios mostrados en la <a href="/img/revistas/iit/v15n4/html/a1t9.html" target="_blank">tabla&nbsp;9</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2">Debido a la gran discrepancia de resultados entre las dos versiones de la plataforma Why con distintos demostradores autom&aacute;ticos de teoremas (<a href="/img/revistas/iit/v15n4/a1t6.jpg" target="_blank">tablas 6</a> y <a href="/img/revistas/iit/v15n4/a1t7.jpg" target="_blank">7</a>), se decidi&oacute; realizar los experimentos con ambas versiones de la plataforma Why empleando &uacute;nicamente aquellos demostradores autom&aacute;ticos de teoremassoportados por ambas versiones lo que permiti&oacute; emitir conclusiones sobre dichas discrepancias en los resultados.</font></p>  	    <p align="justify"><font face="verdana" size="2">Dicho esto, XJML 1.0 soporta, a trav&eacute;s de FSPVRunner, las siguientes versiones de la plataforma Why: Why 2.30 y Why3 0.71.</font></p>  	    <p align="justify"><font face="verdana" size="2">Actualmente se trabaja con experimentos, empleando la clase CuentaBancaria (Oriat, 2005). La clase ser&aacute; verificada en XJML 1.0 empleando las t&eacute;cnicas de verificaci&oacute;n: RAC, ESC y FSPV. Despu&eacute;s de esto, nos aseguraremos que no existan alteraciones entre los resultados presentados por XJML 1.0 y los resultados de cada t&eacute;cnica de verificaci&oacute;n, ejecutadas por separado.</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">Cabe destacar que los resultados de este trabajo, permitieron delimitar los demostradores de teoremas (tanto autom&aacute;ticos como interactivos) que ser&aacute;n utilizados para los experimentos con la clase CuentaBancaria. De esta manera, los experimentos con la clase CuentaBancaria ser&aacute;n realizados con Alt&#45;ergo 0.93, Simplify 1.5.4 y Gappa 0.15.1. No obstante, FSPVRunner no limita los demostradores autom&aacute;ticos de teoremas y/o demostradores interactivos de teoremas que puede emplear Why, m&aacute;s bien esta caracter&iacute;stica es determinada por el soporte que cada versi&oacute;n de la plataforma Why ofrezca.</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Trabajos relacionados</b></font></p>  	    <p align="justify"><font face="verdana" size="2">El <i>lenguaje de modelado de java</i> (JML) es quiz&aacute;s el lenguaje mejor conocido para el modelado de clases Java. Ha evolucionado a trav&eacute;s de los a&ntilde;os, pasando de JML2, JML3, JML4, JML5, JMLEclipse, y OpenJML, el cual es, hasta donde sabemos, el &uacute;ltimo esfuerzo de la comunidad de JML para producir un Entorno Integrado de Verificaci&oacute;n.</font></p>  	    <p align="justify"><font face="verdana" size="2">Respecto a JMLEclipse, el primer lanzamiento (<i>release</i>) oficial a&uacute;n est&aacute; por determinarse<sup><a href="#notas">11</a></sup> Por otra parte, OpenJML, que es la siguiente generaci&oacute;n de herramientas del n&uacute;cleo de JML y soporta Java 1.7, est&aacute; basado en OpenJDK y desafortunadamente la instalaci&oacute;n falla si la m&aacute;quina virtual de Java (JVM) no es la adecuada versi&oacute;n 1.7<sup><a href="#notas">12</a></sup>. Por ello, existe mucho trabajo por hacer, y las caracter&iacute;sticas u opciones de la <i>interfaz gr&aacute;fica de usuario</i> (GUI) del complemento (<i>plug &#45;in</i>) de Eclipse a&uacute;n no est&aacute;n definidas<sup><a href="#notas">13</a></sup>.</font></p>      <p align="justify"><font face="verdana" size="2">XJML emplea el Lenguaje de Marcas Extensible (XML, <i>Extensible Markup Language</i>) como lenguaje para escribir el contrato para una clase Java. El uso de XML se debe a su importante papel en el intercambio de una gran variedad de datos. En este sentido, PiXL (<i>Protocol Interchange using XML Languages</i>) (Del&#45;Mar <i>et al.</i>, 2007) es un claro ejemplo de c&oacute;mo las tecnolog&iacute;as y est&aacute;ndares basados en XML pueden utilizarse para la integraci&oacute;n de herramientas de an&aacute;lisis. Sin embargo, PiXL no tiene soporte para JML.</font></p>  	    <p align="justify"><font face="verdana" size="2">Existe una comunidad de JML experimentando con el lenguaje, y los &uacute;ltimos esfuerzos se centran en construir un Entorno Integrado de Verificaci&oacute;n (Chalin <i>et al.</i>, 2008), el cual soporte e integre RAC, ESC y FSPV.</font></p>  	    <p align="justify"><font face="verdana" size="2">De estas tres t&eacute;cnicas de verificaci&oacute;n, FSPV parece ser la m&aacute;s dif&iacute;cil de integrar y el &uacute;ltimo intento por lograr esto (OpenJML) a&uacute;n no est&aacute; listo. Creemos que XJML es el primero en su tipo, donde las expresiones del lenguaje pueden ser embebidas en un archivo XML (el contrato) para una clase Java, en lugar de la misma clase. Adem&aacute;s, hasta donde sabemos XJML es la primera herramienta que integra RA, ESC y FSPV, y es este &uacute;ltimo el componente de inter&eacute;s en este trabajo, y que a diferencia de JML4 y JMLEclipse, XJML emplea la plataforma Why gracias al componente FSPVRunner del subsistema Runners de XJML.</font></p>  	    <p align="justify"><font face="verdana" size="2">En este &uacute;ltimo aspecto, creemos que este es el primer trabajo donde se realizan experimentos y se analizan los resultados del componente FSPVRunner de XJML y que puede ser el primero de una serie de experimentos para verificar la eficiencia y eficacia de XJML, con el fin de identificar puntos d&eacute;biles o &aacute;reas de trabajo que apoyen en la verificaci&oacute;n de programas Java.</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><b>Trabajos futuros</b></font></p>  	    <p align="justify"><font face="verdana" size="2">Actualmente se trabaja en experimentos con la clase CuentaBancaria y el componente FSPVRunner. Despu&eacute;s de esto se analizar&aacute;n y comparar&aacute;n los resultados asegurando que no existan alteraciones entre los resultados y la ejecuci&oacute;n de FSPV a trav&eacute;s de la plataforma Why.</font></p>  	    <p align="justify"><font face="verdana" size="2">Respecto a XJML 1.0 cabe destacar que soporta precondiciones, poscondiciones e invariantes de clase, as&iacute; que se espera que en las siguientes actualizaciones de XJML podamos ofrecer soporte para m&aacute;s expresiones de JML. La tercera cosa por hacer es construir una Interfaz Gr&aacute;fica de Usuario para XJML.</font></p>  	    <p align="justify"><font face="verdana" size="2">Respecto a FSPVRunner y las pruebas presentadas en este trabajo, se ejecutar&aacute;n los experimentos en al menos un equipo m&aacute;s, con m&aacute;s de 4 GB de RAM, un microprocesador con m&aacute;s de dos n&uacute;cleos y velocidad mayor de 2.20 GHz.</font></p>  	    <p align="justify"><font face="verdana" size="2">Para los experimentos deber&aacute; asignarse un tiempo mayor a 30 segundos, que fue el tiempo asignado en este trabajo, por lo que se recomienda se ejecuten primordialmente en Why3 0.71 con Alt&#45;ergo 0.93, debido a que fueron los de mayor &eacute;xito en FSPV.</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Agradecimientos</b></font></p>  	    <p align="justify"><font face="verdana" size="2">Este trabajo fue parcialmente patrocinado por el proyecto: Desarrollo de una infraestructura tecnol&oacute;gica como apoyo a la Comisi&oacute;n de Derechos Humanos del Estado de Tabasco, usando herramientas de <i>software</i> de vanguardia en atenci&oacute;n a grupos vulnerables, en atenci&oacute;n a un proyecto de Fondos Mixtos y en atenci&oacute;n a la convocatoria del CONACYT 2008. Clave del proyecto: TAB&#150;2008&#150;C03&#150;95740.</font></p>  	    <p align="justify"><font face="verdana" size="2">Queremos agradecer tambi&eacute;n a Gary T. Leavens, Kuat Yessenov, Greg Dennis, y Homero Alpu&iacute;n por todo su apoyo, respuestas de correo electr&oacute;nico, sugerencias y m&aacute;s.</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><b>Referencias</b></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Bobot&#45;Fran&#231;ois, Christophe&#45;Filli&#226;tre J., March&eacute;&#45;Claude, Paskevich&#45;Andrei. Why3: Shepherd your Herd of Provers, Boogie 2011: First International Workshop on Intermediate Verification Languages (1er, 2011, Wroclaw, Poland). BOOGIE 2011, first International Workshop on Intermediate Verification Languages, Wroclaw, Poland, Microsoft Research, 2011, pp. 53&#45;64 &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://research.microsoft.com/en-us/um/people/moskal/boogie2011/boogie_2011_all.pdf" target="_blank">http://research.microsoft.com/en&#45;us/um/people/moskal/boogie2011/boogie&#95;2011&#95;all.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290273&pid=S1405-7743201400040000100001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Chalin P., Chalin P.R., James P.R., Lee J., Karabotsos G. Towards an Industrial Grade IVE for Java and Next Generation Research Platform for JML. <i>International Journal on Software Tools for Technology Transfer (STTT)</i> volumen 12 (n&uacute;mero 6), noviembre de 2010 &#91;fecha de consulta: 06 de mayo 2012&#93; &#91;en l&iacute;nea&#93;. Disponible en: &nbsp;<a href="http://formal.korea.ac.kr/~jlee/papers/sttt10.pdf" target="_blank">http://formal.korea.ac.kr/&#126;jlee/papers/sttt10.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290275&pid=S1405-7743201400040000100002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Chalin P., James P.R., Karabotsos G. VSTTE '08 Proceedings of the 2nd International Conference on Verified Software: Theories, Tools, Experiments, USA, Springer Berlin&#150;Heidelberg, 2008, cap. 9, JML4: Towards an Industrial Grade IVE for Java and Next Generation Research Platform for JML &#91;fecha de consulta: 06 de mayo 2012&#93; &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://www.springerlink.com/content/t28606827773492v/fulltext.pdf" target="_blank">http://www.springerlink.com/content/t28606827773492v/fulltext.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290277&pid=S1405-7743201400040000100003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Chalin P., James P.R., Karabotsos. Proceedings of the 2007 Conference on Specification and Verification of Component&#45;Based Systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, New York, NY, USA, Association for Computing Machinery, 2007, cap. 6, An Integrated Verification Environment for JML: Architecture and Early Results &#91;fecha de consulta: 06 de mayo 2012&#93; &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://users.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290279&pid=S1405-7743201400040000100004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->encs.concordia.ca/~chalin/papers/2007-SAVCBS-Chalin-James-Karabotsos-IVE-for-Jml.pdf" target="_blank"></a>.</font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Christophe&#45;Filli&#226;tre J. <i>The WHY Verification Tool</i>. Tutorial and Reference Manual, France, INRIA Saclay &#38; Laboratoire de Recherche en Informatique, 2011, 40 p. &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://why.lri.fr/manual/manual.ps" target="_blank">http://why.lri.fr/manual/manual.ps</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290281&pid=S1405-7743201400040000100005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Christophe&#45;Filli&#226;tre J. y March&eacute; C. Proceedings of the 19th International Conference on Computer Aided Verification, USA, Springer Berlin&#45;Heidelberg, 2007, cap. 21, The Why/Krakatoa/Caduceus Platform for Deductive Program Verification &#91;fecha de consulta. 06 de mayo 2012&#93; &#91;en l&iacute;nea&#93;. Disponible en: <a href="https://www.lri.fr/~filliatr/ftp/publis/cav07.pdf" target="_blank">http://www.lri.fr/&#126;filliatr/ftp/publis/cav07.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290283&pid=S1405-7743201400040000100006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Christophe&#45;Filli&#226;tre J. Why: a Multi&#45;Language Multi&#45;Prover Verification Tool, Paris, Laboratoire de Recherche en Informatique, Universit&eacute; Paris Sud, 2003, Research Report 1366.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290285&pid=S1405-7743201400040000100007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Clarke L.A. y Rosenblum D.S. A Historical Perspective on Runtime Assertion Checking in Software Development. <i>ACM SIGSOFT Software Engineering Notes</i>, volumen 31 (n&uacute;mero 3), mayo de 2006 &#91;fecha de consulta: 06 de mayo 2012&#93;. &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://dl.acm.org/citation.cfm?id=1127900" target="_blank">http://dl.acm.org/citation.cfm&#63;id&#61;1127900&#38;CFID&#61;62138933&#38;CFTOKEN&#61;88416605</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290287&pid=S1405-7743201400040000100008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Cok David R. <i>The OpenJML User Guide</i>, USA, jmlspecs, 2011, 20 p. &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://jmlspecs.sourceforge.net/OpenJMLUserGuide.pdf" target="_blank">http://jmlspecs.sourceforge.net/OpenJMLUserGuide.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290289&pid=S1405-7743201400040000100009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Del&#45;Mar&#45;Gallardo M., Mart&iacute;nez J., Merino P., Nu&ntilde;ez P., Pimentel E. PiXL: Applying XML Standards to Support the Integration of Analysis Tools for Protocols. <i>Science of Computer Programming Journal,</i> volumen 65 (n&uacute;mero 1), marzo de 2007 &#91;fecha de consulta: 06 de mayo 2012&#93; &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://www.lcc.uma.es/pedro/publications/pixl_gallardo.pdf" target="_blank">http://www.lcc.uma.es/pedro/publications/pixl&#95;gallardo.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290291&pid=S1405-7743201400040000100010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Flanagan C., Leino K.R., Lillibridge M., Nelson G., Saxe J.B., Stata R. <i>Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation</i>, New York, NY, USA, Association for Computing Machinery, 2002, cap. 21, Extended Static Checking for Java &#91;fecha de consulta: 06 de mayo 2012&#93; &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://research.microsoft.com/en-us/um/people/leino/papers/krml103.pdf" target="_blank">http://research.microsoft.com/en&#45;us/um/people/leino/papers/krml103.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290293&pid=S1405-7743201400040000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">James P. R. y Chalin P. Proceedings of the 2009 ACM Symposium on Applied Computing, New York, NY, USA, Association for Computing Machinery, 2009, cap. 9, Extended Static Checking in JML4: Benefits of Multiple Prover Support &#91;fecha de consulta: 06 de mayo 2012&#93; &#91;en l&iacute;nea&#93;.Disponible en: <a href="http://users.encs.concordia.ca/~chalin/papers/JamesChalin09-ACM-SAC-SVT09-preprint.pdf" target="_blank">http://users.encs.concordia.ca/&#126;chalin/papers/JamesChalin09&#45;ACM&#45;SAC&#45;SVT09&#45;preprint.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290295&pid=S1405-7743201400040000100012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Karabotsos G., Chalin P., James P.R. y Giannas L. Total Correctness of Recursive Functions using JML4 FSPV, Seventh International Workshop on Specification and Verification of Component&#45;Based Systems (7o, 2008, Atlanta, Georgia, USA). International Workshop on&nbsp; Specification and Verification of Component&#45;Based Systems, Atlanta, Georgia, USA, School of Electrical Engineering and Computer Science, University of Central Florida, 2008, pp.19&#45;26 &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://www.eecs.ucf.edu/SAVCBS/2008/papers/Karabotsos-etal.pdf" target="_blank">http://www.eecs.ucf.edu/SAVCBS/2008/papers/Karabotsos&#45;etal.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290297&pid=S1405-7743201400040000100013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Oriat C. Jartege. A Tool for Random Generation of Unit Tests for Java Classes, en Quality of Sofware Architectures and Software Quality, 2nd International Workshop of Software Quality (2o, 2005, Erfurt, Germany). Quality of Sofware Architectures and Software Quality, 2nd International Workshop of Software Quality, Erfurt, Germany, LNCS 3712, 2005, pp. 242&#45;256 &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://lig-membres.imag.fr/oriat/soqua.pdf" target="_blank">http://membres&#45;liglab.imag.fr/oriat/soqua.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290299&pid=S1405-7743201400040000100014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>         <!-- ref --><p align="justify"><font face="verdana" size="2">Ram&iacute;rez&#45;de&#45;L. E.D., Ch&aacute;vez&#45;Bosquez O., Francisco&#45;L. J.J. Verification and Validation for Java Classes Using Design by Contract. The Modular External Approach. <i>Revista World Academy of Science, Engineering and Technology</i> (WASET), volumen 64 (n&uacute;mero 14), abril de 2012 &#91;fecha de consulta: 18 de abril de 2012&#93; &#91;en l&iacute;nea&#93;. Disponible en: <a href="http://www.waset.org/journals/waset/v64/v64-14.pdf" target="_blank">http://www.waset.org/journals/waset/v64/v64&#45;14.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4290301&pid=S1405-7743201400040000100015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>     	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>     <p align="justify"><font face="verdana" size="2"><b><a name="notas"></a>Notas</b></font></p>      <p align="justify"><font face="verdana" size="2"><sup>1</sup> En la secci&oacute;n de resultados y discusi&oacute;n encontrar&aacute; la URL de descarga de cada uno de ellos.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>2</sup> <a href="http://why.lri.fr/" target="_blank">http://why.lri.fr/</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>3</sup> <a href="http://krakatoa.lri.fr/" target="_blank">http://krakatoa.lri.fr/</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>4</sup> &nbsp;<a href="http://why.lri.fr/caduceus/" target="_blank">http://why.lri.fr/caduceus/</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>5</sup> &nbsp;<a href="http://frama&#45;c.cea.fr/" target="_blank">http://frama&#45;c.cea.fr/</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>6</sup> <a href="http://why3.lri.fr/" target="_blank">http://why3.lri.fr/</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>7</sup> <a href="http://proval.lri.fr/" target="_blank">http://proval.lri.fr/</a>.</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><sup>8</sup> &nbsp;Tal como se especifica en <a href="http://sourceforge.net/apps/trac/jmlspecs/wiki/JML4%20Setup" target="_blank">http://sourceforge.net/apps/trac/jmlspecs/wiki/JML4&#37;20Setup</a> y <a href="http://sourceforge.net/apps/trac/jmlspecs/wiki/JML4%20HowTo%20Run%20Tests" target="_blank">http://sourceforge.net/apps/trac/jmlspecs/wiki/JML4&#37;20HowTo&#37;20Run&#37;20Tests</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>9</sup> <a href="http://sourceforge.net/apps/trac/jmlspecs/wiki/JML4" target="_blank">http://sourceforge.net/apps/trac/jmlspecs/wiki/JML4</a> y <a href="http://sourceforge.net/apps/trac/jmlspecs/wiki/JmlEclipse" target="_blank">http://sourceforge.net/apps/trac/jmlspecs/wiki/JmlEclipse</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>10</sup> Las propiedades de solidez o consistencia (<i>soundness</i>) y completitud (<i>completness</i>) son las que se piden a cualquier m&eacute;todo de validaci&oacute;n. La propiedad de solidez nos garantiza que el m&eacute;todo solo nos dar&aacute; conclusiones v&aacute;lidas y la completitud nos garantiza que podremos obtener todas las conclusiones derivables.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>11</sup> Como se indica en <a href="http://sourceforge.net/apps/trac/jmlspecs/wiki/JmlEclipse" target="_blank">http://sourceforge.net/apps/trac/jmlspecs/wiki/JmlEclipse</a>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>12</sup> Vampire 0.6 no siempre arroja los mismos resultados.</font></p>  	    <p align="justify"><font face="verdana" size="2"><sup>13</sup> Tomado de The OpenJML User Guide, p&aacute;gina 13, disponible en <a href="http://jmlspecs.sourceforge.net/OpenJMLUserGuide.pdf" target="_blank">http://jmlspecs.sourceforge.net/OpenJMLUserGuide.pdf</a>.</font></p>  		    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>     <p align="justify"><font face="verdana" size="2"><b>Este art&iacute;culo se cita:</b></font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Citaci&oacute;n estilo Chicago</b>    <br> 	Ram&iacute;rez&#45;de Le&oacute;n, Edgar Dar&iacute;o, Oscar Ch&aacute;vez&#45;Bosquez, Juli&aacute;n Javier Francisco&#45;Le&oacute;n. Pruebas emp&iacute;ricas y resultados preliminares con la herramienta Krakatoa para Full Static Program Verification. <i>Ingenier&iacute;a Investigaci&oacute;n y Tecnolog&iacute;a</i>, XV, 04 (2014): 493&#45;504.</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><b>Citaci&oacute;n estilo ISO 690</b>    <br> 	Ram&iacute;rez&#45;de Le&oacute;n E.D., Ch&aacute;vez&#45;Bosquez O., Francisco&#45;Le&oacute;n J.J. Pruebas emp&iacute;ricas y resultados preliminares con la herramienta Krakatoa para Full Static Program Verification. <i>Ingenier&iacute;a Investigaci&oacute;n y Tecnolog&iacute;a</i>, volumen XV (n&uacute;mero 4), octubre&#45;diciembre 2014: 493&#45;504.</font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Semblanzas de los autores</b></font></p>  	    <p align="justify"><font face="verdana" size="2"><i><b>Edgar Dar&iacute;o Ram&iacute;rez&#45;de Le&oacute;n.</b></i> Maestro en sistemas computacionales y licenciado en sistemas computacionales por la Divisi&oacute;n Acad&eacute;mica de Inform&aacute;tica y Sistemas (DAIS) de la Universidad Ju&aacute;rez Aut&oacute;noma de Tabasco (UJAT). Profesor&#45;Investigador en la DAIS&#45;UJAT. Miembro del Sistema Estatal de Investigadores (SEI) del estado de Tabasco<i>.</i> Ingeniero de <i>Software</i>. Su &uacute;ltima colaboraci&oacute;n en un proyecto de investigaci&oacute;n fue en: "Desarrollo de una infraestructura tecnol&oacute;gica como apoyo a la comisi&oacute;n de Derechos Humanos del Estado de Tabasco usando herramientas de <i>software</i> de vanguardia en atenci&oacute;n a grupos vulnerables", patrocinado por el CONACYT. &Aacute;reas de inter&eacute;s: verificaci&oacute;n y validaci&oacute;n de sistemas, <i>model checking</i>, inteligencia de negocios, <i>data warehouse</i> y <i>data mining</i>.</font></p>  	    <p align="justify"><font face="verdana" size="2"><i><b>Oscar Ch&aacute;vez&#45;Bosquez</b></i><b>.</b> Profesor&#45;investigador de la divisi&oacute;n acad&eacute;mica de inform&aacute;tica y sistemas de la Universidad Ju&aacute;rez Aut&oacute;noma de Tabasco. Maestro en sistemas computacionales, ha escrito diversos art&iacute;culos tratando temas modelos formales de desarrollo de <i>software</i>, y de optimizaci&oacute;n combinatoria en el &aacute;rea de metaheur&iacute;sticas aplicadas a problemas NP&#45;Completos. Ha participado en proyectos con financiamiento externo. Actualmente cuenta con el perfil PROMEP y es miembro del Sistema Estatal de Investigadores.</font></p>  	    <p align="justify"><font face="verdana" size="2"><i><b>Juli&aacute;n Javier Francisco&#45;Le&oacute;n.</b></i> Desarrollo y transferencia de tecnolog&iacute;a en sectores productivos con necesidades en el &aacute;rea de multimedia. Integrar soluciones tecnol&oacute;gicas utilizando elementos multimedios, animaci&oacute;n as&iacute; como sistemas inmersivos 3D y realidad virtual. Ha participado en proyectos desarrollando sistemas para los museos Parque Museo de La Venta y Museo. Perfil PROMEP y miembro del Padr&oacute;n Estatal de investigadores.</font></p>  	    <p align="justify"><font face="verdana" size="2"><i><b>Nota.</b></i> Los tres autores participaron, entre otros, en un proyecto de fondos mixtos de CONACYT&#45;UJAT&#45;CEDH titulado: "Desarrollo de una infraestructura tecnol&oacute;gica como apoyo a la comisi&oacute;n de Derechos Humanos del Estado de Tabasco usando herramientas de <i>software</i> de vanguardia en atenci&oacute;n a grupos vulnerables", con Juli&aacute;n Javier Francisco&#45;Le&oacute;n como director.</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bobot-François]]></surname>
</name>
<name>
<surname><![CDATA[Christophe-Filliâtre]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Marché-Claude]]></surname>
</name>
<name>
<surname><![CDATA[Paskevich-Andrei]]></surname>
</name>
</person-group>
<source><![CDATA[Why3: Shepherd your Herd of Provers, Boogie]]></source>
<year>2011</year>
<page-range>53-64</page-range><publisher-name><![CDATA[First International Workshop on Intermediate Verification Languages]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chalin]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Chalin]]></surname>
<given-names><![CDATA[P.R.]]></given-names>
</name>
<name>
<surname><![CDATA[James]]></surname>
<given-names><![CDATA[P.R.]]></given-names>
</name>
<name>
<surname><![CDATA[Lee]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Karabotsos]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Towards an Industrial Grade IVE for Java and Next Generation Research Platform for JML]]></article-title>
<source><![CDATA[International Journal on Software Tools for Technology Transfer (STTT)]]></source>
<year></year>
<volume>12</volume>
<numero>6</numero>
<issue>6</issue>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chalin]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[James]]></surname>
<given-names><![CDATA[P.R.]]></given-names>
</name>
<name>
<surname><![CDATA[Karabotsos]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[VSTTE '08 Proceedings of the 2nd International Conference on Verified Software: Theories, Tools, Experiments]]></source>
<year>2008</year>
<publisher-name><![CDATA[Springer Berlin-Heidelberg]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chalin]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[James]]></surname>
<given-names><![CDATA[P.R.]]></given-names>
</name>
<name>
<surname><![CDATA[Karabotsos]]></surname>
</name>
</person-group>
<source><![CDATA[Proceedings of the 2007 Conference on Specification and Verification of Component-Based Systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering]]></source>
<year>2007</year>
<publisher-loc><![CDATA[New York^eNY NY]]></publisher-loc>
<publisher-name><![CDATA[Association for Computing Machinery]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Christophe-Filliâtre]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[The WHY Verification Tool. Tutorial and Reference Manual]]></source>
<year>2011</year>
<page-range>40</page-range><publisher-name><![CDATA[INRIA Saclay & Laboratoire de Recherche en Informatique]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Christophe-Filliâtre]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Marché]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[Proceedings of the 19th International Conference on Computer Aided Verification]]></source>
<year>2007</year>
<publisher-name><![CDATA[Springer Berlin-Heidelberg]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Christophe-Filliâtre]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Why: a Multi-Language Multi-Prover Verification Tool]]></source>
<year>2003</year>
<publisher-loc><![CDATA[Paris ]]></publisher-loc>
<publisher-name><![CDATA[Laboratoire de Recherche en Informatique, Université Paris Sud]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Clarke]]></surname>
<given-names><![CDATA[L.A]]></given-names>
</name>
<name>
<surname><![CDATA[Rosenblum]]></surname>
<given-names><![CDATA[D.S.]]></given-names>
</name>
</person-group>
<source><![CDATA[A Historical Perspective on Runtime Assertion Checking in Software Development. ACM SIGSOFT Software Engineering Notes]]></source>
<year>2006</year>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Cok David]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[The OpenJML User Guide]]></source>
<year>2011</year>
<publisher-name><![CDATA[jmlspecs]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Del - Mar-Gallardo]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Martínez]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Merino]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Nuñez]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Pimentel]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[PiXL: Applying XML Standards to Support the Integration of Analysis Tools for Protocols]]></article-title>
<source><![CDATA[Science of Computer Programming Journal]]></source>
<year>2007</year>
<volume>65</volume>
<numero>1</numero>
<issue>1</issue>
</nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Flanagan]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Leino]]></surname>
<given-names><![CDATA[K.R.]]></given-names>
</name>
<name>
<surname><![CDATA[Lillibridge]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Nelson]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[Saxe]]></surname>
<given-names><![CDATA[J.B.]]></given-names>
</name>
<name>
<surname><![CDATA[Stata]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Proceedings of the ACM SIGPLAN]]></source>
<year>2002</year>
<publisher-loc><![CDATA[New York^eNY NY]]></publisher-loc>
<publisher-name><![CDATA[Association for Computing Machinery]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[James]]></surname>
<given-names><![CDATA[P. R]]></given-names>
</name>
<name>
<surname><![CDATA[Chalin]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Proceedings of the 2009 ACM Symposium on Applied Computing]]></source>
<year>2009</year>
<publisher-loc><![CDATA[New York^eNY NY]]></publisher-loc>
<publisher-name><![CDATA[Association for Computing Machinery]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Karabotsos]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[Chalin]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[James]]></surname>
<given-names><![CDATA[P.R]]></given-names>
</name>
<name>
<surname><![CDATA[Giannas]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<source><![CDATA[Total Correctness of Recursive Functions using JML4 FSPV, Seventh International Workshop on Specification and Verification of Component-Based Systems]]></source>
<year>2008</year>
<page-range>19-26</page-range><publisher-loc><![CDATA[Atlanta^eGeorgia Georgia]]></publisher-loc>
<publisher-name><![CDATA[School of Electrical Engineering and Computer Science, University of Central Florida]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Oriat]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Jartege]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Tool for Random Generation of Unit Tests for Java Classes]]></article-title>
<source><![CDATA[Quality of Sofware Architectures and Software Quality]]></source>
<year>2005</year>
<page-range>242-256</page-range><publisher-loc><![CDATA[Erfurt ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ramírez-de-]]></surname>
<given-names><![CDATA[L. E.D.]]></given-names>
</name>
<name>
<surname><![CDATA[Chávez-Bosquez]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
<name>
<surname><![CDATA[Francisco-L]]></surname>
<given-names><![CDATA[J.J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Verification and Validation for Java Classes Using Design by Contract]]></article-title>
<source><![CDATA[The Modular External Approach. Revista World Academy of Science, Engineering and Technology (WASET)]]></source>
<year>2012</year>
<volume>64</volume>
<numero>14</numero>
<issue>14</issue>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
