SciELO - Scientific Electronic Library Online

 
vol.7 número3Sobre Comercio electrónico en la WEB 2.0 y 3.0 índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Cubana de Ciencias Informáticas

versión On-line ISSN 2227-1899

Rev cuba cienc informat vol.7 no.3 La Habana jul.-sep. 2013

 

ARTÍCULO ORIGINAL

 

La investigación en verificación formal: un estado del arte

 

Research on formal verification: a state of the art

 

 

Edgar Serna M.1, David Morales V.2

1 Corporación Universitaria Remington, CUR. Medellín, Colombia. edgar.serna@remington.edu.co
2 Diversien S.A.S. Medellín, Colombia. david.morales@diversien.com

 

 


RESUMEN

Para hacer frente a la creciente complejidad de los sistemas actuales, la investigación en Verificación Formal de hardware y software ha logrado últimamente importantes progresos en el desarrollo de metodologías y herramientas. La función explícita de esta Verificación es encontrar errores y mejorar la confianza en el diseño de los sistemas, lo que supone un reto para la Ingeniería de Software de este siglo. El objetivo de esta investigación es realizar una revisión sistemática a la literatura para determinar el estado del arte de la investigación en Verificación Formal e identificar los enfoques, métodos, técnicas y metodologías empleadas, lo mismo que la intensidad de la misma. En el proceso se encontró que la investigación en esta área se duplicó a partir del año 2005, que hasta el momento mantiene un número promedio de investigaciones año tras año y que predomina la aplicación en sistemas de control e interacción. Además, que el estudio de caso es el método más utilizado y que la investigación empírica es la más aplicada.

Palabras clave: Enfoques de investigación, métodos formales, Ingeniería del Software, técnicas de ingeniería, verificación Formal.


ABSTRACT

To cope with the increasing complexity of current systems, research in formal verification of hardware and software has made significant progress recently in the development of methodologies and tools. The explicit role of this verification is to find errors and improve the confidence in the system design, which is a challenge for software engineering in this century. The objective of this research is to perform a systematically review of literature to determine the state of the art of formal verification research and identify the approaches, methods, techniques and methodologies applied, as well as the intensity of it. In the process was found that research in this area has doubled since 2005, so far maintained an average number of researches every year and dominates the application in control systems and interaction. Furthermore, the case study is the most used and that empirical research is the most applied.

Key words: Formal Verification, formal methods, Software Engineering, engineering techniques, research approaches.


 

 

INTRODUCCIÓN

La verificación funcional se ha convertido en el cuello de botella para el diseño de sistemas complejos. Simular los diseños es costoso en términos de dinero y de tiempo y una simulación completa es prácticamente imposible. Actualmente debido a la complejidad de los problemas que tratan (SÜLFLOW, 2009). Esto ha ocasionado que en muchos países la academia, la industria y el gobierno se enfrenten al reto de reducir esa brecha tecnológica y a que se propongan nuevas e ingeniosas soluciones para la especificación, el diseño, la estructuración y la aplicación de casos de prueba mediante la Verificación Formal.

Por otra parte, la verificación funcional es un elemento crítico en el desarrollo de los actuales y complejos Sistemas de Información. La ley de Moore todavía se aplica al crecimiento de la complejidad de los productos hardware y software, pero la complejidad de la verificación es más complicada. De hecho, en teoría, aumenta exponencialmente con la complejidad del producto y se duplica de la misma forma con el tiempo. En la comunidad de las Ciencias Computacionales se reconoce que la verificación funcional es un importante obstáculo para una metodología de diseño y que consume hasta el 70% del tiempo de desarrollo y de los recursos. Pero, incluso con esa significativa cantidad de esfuerzos y de recursos aplicada a la verificación, los defectos funcionales continúan como causa del amplio número de errores del producto final. En casos extremos, los errores son artefactos de la simulación porque no se detectan debido a la naturaleza no-exhaustiva de la verificación basada en simulación. La realidad es que no importa cuánto tiempo se aplique en la simulación, ni que tan exhaustivo sea el plan de pruebas, todo intento de validar un diseño mediante simulación es de por sí incompleto para cualquier sistema. 

La FV es un proceso sistemático que utiliza razonamiento matemático para verificar que la especificación del diseño se conserva en la implementación. Con esta Verificación es posible superar los desafíos de la simulación porque se pueden explorar, de forma algorítmica e exhaustiva, todos los posibles valores de entrada. En otras palabras, para lograr un alto grado de observación del producto no es necesario exagerar el diseño o crear escenarios múltiples.

Uno de los objetivo de la FV es garantizar la completa cobertura del espacio de los estados en el diseño que se prueba, para lo que utiliza y aplica técnicas como la verificación de modelos mediante la exploración del espacio de estados y técnicas automatizadas para probar los teoremas. Actualmente, la técnica de FV con mayor automatización y aceptación es Symbolic Model Verifier o SMV y, aunque logra éxito como método importante para la Verificación Formal y como respuesta a estos problemas, los diseñadores empiezan a utilizar los métodos formales para realizar la Verificación Formal ―FV por sus siglas en inglés― a la mayoría de productos. Pero aún persiste una amplia brecha para la verificación de los grandes diseños, que se pueden fabricar pero no verificar completamente de diseños comerciales secuenciales, todavía es limitada con relación al tamaño de los diseños verificables (COPTY, 2001). La FV requiere que los ingenieros piensen de forma diferente. Por ejemplo, la simulación es empírica, es decir, que utilizar la prueba y el error para probar todas las posibles combinaciones y tratar de descubrir los errores puede tomar una buena cantidad de tiempo. Por lo tanto, no logra completamente. Además, dado que los ingenieros tienen que definir y generar un alto número de escenarios de entrada, centran sus esfuerzos en cómo romper el diseño y no en lo que el diseño tiene que hacer. La Verificación Formal, por el contrario, es matemática y exhaustiva y permite que el ingeniero se centre únicamente en encontrar cuál es el correcto comportamiento del diseño. El objetivo de esta investigación es realizar una revisión sistemática en la literatura a la investigación en Verificación Formal de los últimos 10 años, para determinar los enfoques, métodos, técnicas y metodologías de investigación empleadas y la intensidad de esa investigación. Para lograrlo se empleó el paradigma de investigación basado en la evidencias. La posibilidad de emplear este paradigma se propone en (DYBA, 2005) y (KITCHENHAM, 2004) y tiene como objetivo identificar una pregunta a la que sea posible responder, que ofrezca información y que encuentre evidencias que la respondan y evalúen (BRERETON, 2007). De acuerdo con esto, una revisión sistemática a la literatura constituye el primer paso para la realización de investigaciones basadas en evidencias. Las directrices para la realización de una revisión sistemática a la literatura se explican detalladamente en (BRERETON, 2007) y (KITCHENHAM, 2009).

 

MATERIALES Y MÉTODOS

Realizar una revisión sistemática a la literatura se puede dividir en tres fases principales (BRERETON, 2007): (1) planificación, (2) realización y (3) documentación, que a su vez se dividen en una combinación de otros procedimientos más simples, como se representa en la tabla 1.

De acuerdo con (KITCHENHAM, 2009) y (KITCHENHAM, 2009), planear una revisión sistemática consiste en estructurar seis definiciones:

  1. Las preguntas de investigación
  2. El proceso de búsqueda
  3. Los criterios de inclusión y exclusión
  4. La valoración de la calidad 5. La recopilación de datos
  5. El análisis de datos.

Preguntas de investigación

Las preguntas de investigación aplicadas en el desarrollo de esta investigación fueron:
P1: ¿En qué áreas de la Verificación Formal se investiga actualmente?
P2: ¿Cuál metodología de aplicación es la más investigada?
P3: ¿En qué técnica de Verificación Formal se investiga con mayor frecuencia?
P4: ¿Qué enfoque y método de investigación es el más utilizado?
P5: ¿Cuál es la intensidad de la investigación en Verificación Formal?

Con el objetivo de responder a P1, P2, P3 y P4, se asoció cada estudio primario con un enfoque o método de investigación, con una técnica y metodología aplicada y con un área cubierta. Para establecer las cifras que indicaran la intensidad de la actividad investigativa, con respecto a P5, se identificó un corpus de investigación de número de publicaciones por año. La pendiente de la línea para la FV se comparó con la pendiente correspondiente a la línea que representa la actividad de investigación en verificación funcional.
 

Proceso de búsqueda

Una revisión sistemática sobre un tema específico debe identificar y resaltar las fuentes específicas acerca del objeto de estudio; sin embargo, en el dominio de la Verificación Formal no se encontraron estas fuentes, porque los estudios relacionados se pueden publicar en revistas y conferencias que están relacionadas tanto con la verificación funcional como con los métodos formales. El objetivo de la búsqueda fue identificar los estudios primarios que se podrían incluir o excluir del conjunto final de estudios de la revisión. El plan involucró una búsqueda automatizada en las bibliotecas ACM Digital Library, IEEE Digital Library, ScienceDirect y SpringerLink, tomando como base la línea de tiempo entre enero de 2000 y abril de 2011. Los parámetros de la búsqueda automatizada y su ubicación en el estudio fueron los siguientes:

  • Formal Verification: en el título. Para todas las preguntas de investigación.
  • Discret Mathematical, Declarative Language, Formal Language, Formal Method, Formal Specification y Formal Verification: en el abstract o el contenido. Para P1.
  • Experimentation, Case Study, Stochastic y Heuristic: en el abstract o el contenido. Para P2.
  • Peer, Animation, Simulation, Agil Methods y XP: en el abstract o el contenido. Para P3.
  • La observación de los resultados para P1, P2 y P3 permitió clasificar el enfoque y el método de investigación para P4. Para la investigación empírica se hizo una búsqueda de los términos Experiment, Survey, Case Study, Empirical Research en el abstract y el contenido.
  • Formal Verification AND Research: en el título y combinado con cada año de la línea de tiempo. Para P5.

El total de artículos que arrojó esta búsqueda fue de 552. Sin embargo, la mayoría se identificaron mediante relación marginal y como resultado de la combinación de algunas de las palabras clave. La exclusión de los artículos irrelevantes se llevó a cabo manualmente, siguiendo los criterios de inclusión y exclusión que se definen a continuación.

Criterios de inclusión y exclusión

Los trabajos seleccionados como estudios primarios debían ser relevantes para la temática de investigación, por lo que se aplicó el proceso de filtrado propuesto en (DYBA, 2008):

  1. Identificar los estudios relevantes. Se consideraron sólo trabajos completos publicados en journals, full conferencecongress y workshop y se descartaron short paper, extended abstract y posters. Se excluyeron 131 estudios.
  2. Excluir estudios con base al título. El criterio de exclusión aplicado fue el filtro AND en la búsqueda avanzada de cada librería digital. Se excluyeron 28.
  3. Excluir estudios con base en los resúmenes. Se excluyeron 49 trabajos.
  4. De los estudios resultantes seleccionar los más relevantes para la temática de investigación con base en el texto completo. Se decidió incluir solamente los trabajos que estuvieran estrechamente relacionados con la cuestion de la Verificación Formal. Bajo este criterio se excluyeron 145 trabajos, lo que arrojó una muestra final de 199 artículos como estudios primarios para la investigación

Valoración de la calidad

El objetivo de esta fase es validar que los estudios primarios seleccionados tengan solidez en cuanto a metodología y resultados. Teniendo en cuenta los altos estándares del proceso de revisión en las revistas y en las bases de datos seleccionadas, se concluyó con base en la evidencia que los estudios primarios seleccionados presentan una buena calidad.

Recopilación de datos

Luego de culminar el proceso de inclusión o exclusión se estructuró el conjunto de datos de los estudios primarios. Durante esta fase se recopilaron los siguientes atributos:

  1. Tipo de evento: Journal, ConferenceCongress, Workshop.
  2. Publicado en: Journal, Proceedings.
  3. Casa editor: ACM, IEEE, Springer, Elsevier.
  4. Año de Publicación: línea de tiempo entre el 2000 y el 2011.
  5. País.
  6. Clasificación del enfoque y el método. De acuerdo con Glass et al (GLASS, VESSEY, RAMESH, 2002), los principales enfoques investigativos científicos son: descriptivo, explicativo y empírico y, de acuerdo con Dyba & Dingsoyr (DYBA y DINGSOYR, 2008) y Wohlin et al (WOHLIN, 2000), existen tres métodos de investigación utilizados para evaluar técnicas, métodos y herramientas: encuesta, estudio de caso y experimento. 
  7. Clasificación del área. Las áreas seleccionadas para la investigación fueron: modelos matemáticos, lenguajes formales, modelos automatizados, lenguajes declarativos, métodos formales y especificación formal.
  8. Clasificación de la metodología. Las metodologías analizadas fueron: experimentación, estudio de caso, estocástica y heurística.
  9. Clasificación de la técnica. Los estudios primarios seleccionados se clasificaron de acuerdo con el tratamiento dado en la técnica empleada: pares, animación, simulación y métodos ágiles.

Para responder a P5 se incluyeron tres tipos de artículos de acuerdo con la siguiente clasificación: 

  • Artículo de investigación científica y tecnológica. Documento que presenta de manera detallada los resultados originales de proyectos de investigación terminados. Su estructura generalmente contiene cuatro apartados: introducción, metodología, resultados y conclusiones.
  • Artículo de reflexión. Documento que presenta resultados de investigaciones terminadas desde una perspectiva analítica, interpretativa o crítica sobre un tema específico y recurriendo a fuentes originales.
  • Artículo de revisión. Documento el que se analizan, sistematizan e integran resultados de investigaciones publicadas o no publicadas sobre un campo en ciencia o tecnología, con el objetivo de divulgar los avances y las tendencias de desarrollo. Se caracteriza por presentar una cuidadosa revisión bibliográfica de por lo menos a 50 referencias 

 

Análisis de datos

Los estudios primarios se tabularon y analizaron estadísticamente con el objetivo de encontrar:

  1. Número de trabajos publicados por año: P5.
  2. Número de trabajos publicados en journals y proceedings: P5.
  3. Número de estudios por país: P5.
  4. Principales temas cubiertos en verificación formal: P5.
  5. Enfoque y método de Investigación: P4.
  6. Área de la Verificación Formal en la que se investiga: P1.
  7. Metodología de aplicación: P2
  8. Técnica utilizada: P3.

RESULTADOS Y DISCUSIÓN

Con el objetivo de comprender las categorías que se asignan a cada estudio se tabularon las características del conjunto de datos de los estudios primarios. Es importante apreciar la diferencia que existe entre actividad de investigación y artículo de investigación. La primera comprende el conjunto de artículos relevantes que fueron incluidos con base en el título, es decir, artículos de investigación, reflexión y verificación, mientras que los artículos de investigación son el resultado final de la aplicación de los criterios de inclusión y exclusión. En la tabla 2 se presenta el dinamismo de la actividad de investigación por año y tipo de evento.

De acuerdo con estos resultados la investigación en Verificación Formal se duplicó a partir del 2005, manteniendo un constante número de publicaciones hasta el momento. En la figura 1 se presenta la comparación entre las actividades de investigación en Ingeniería de Software ―SE por sus siglas en inglés― vs FV. Los temas que abarca la investigación en SE son diversos, entre los que se encuentra la Verificación Formal, pero para este análisis se tomó como un concepto aparte debido a los intereses de la investigación. Como se observa en la tabla 5, el sector industrial y el académico son los grandes promotores de la investigación en Verificación Formal, pero las universidades cuadruplican el trabajo de la industria. Además, en la tabla 2 se puede observar que existen revistas especializadas, talleres, conferencias que debaten la teoría y las aplicaciones prácticas de esta temática.

Al examinar las actividades relacionadas con la investigación en Verificación Formal por países se observa que EE.UU. aporta más de la mitad del total de publicaciones con un 55%. Le siguen Reino Unido, Japón, China y Alemania. En los demás países, con alguna representatividad, se encontró que el interés por la FV empezó un poco más tarde que en los anteriores. 

En la tabla 3 se presenta la comparación entre los trabajos que reportan investigación y otro tipo de reporte relacionado con la temática de la FV.

Debido a que el objetivo de esta revisión a la literatura es averiguar métodos, técnicas y metodologías que aplican las investigaciones en Verificación Formal, en el resto del documento se trabaja sólo con los 105 artículos que difunden resultados de investigación. En la figura 2 se detalla la relación de países más activos en investigación en FV.

La tabla 4 contiene las publicaciones en las que se encontraron los artículos de las investigaciones relacionadas con Verificación Formal y la cantidad de trabajos publicados en la línea de tiempo cubierta en esta investigación.

La tabla 5 presenta una comparación entre el número de universidades y el de empresas que realizan investigación en Verificación Formal y el número de trabajos publicados.

Fuente: ACM En la tabla 6 y tabla 7 se detallan los resultados del análisis en cuanto a la clasificación de los enfoques y métodos de investigación en verificación formal encontrados.

El método con mayor aplicación es el de estudios de caso, lo que refuerza el resultado de sean las universidades las que mayor participación tienen en las investigaciones de esta área. Los artículos de investigación sobre Verificación Formal emplean un enfoque de investigación empírica, esto se debe a la necesidad de comprobación del método y el modelo aplicado.

En la tabla 8 se muestran los resultados concernientes al área de la investigación en Verificación Formal, teniendo en cuenta que son incluyentes.

Las áreas en las que más se trabaja son la especificación formal, los modelos matemáticos y los métodos formales. Esta última permite describir las propiedades del sistema a través de la matemática rigurosa, para lo cual aplican en un lenguaje de especificación formal con el que es posible especificar la funcionalidad de un programa; esto se debe a la forma como se construye la verificación formal: inicialmente se centra en la especificación, luego se construye el modelo de prueba y posteriormente se comprueba la verificación en el estudio de caso. El proceso es complejo e involucra varias herramientas, unas manuales otras automatizadas. La tabla 9 muestra un comparativo entre las metodologías empleadas para la Verificación Formal en los trabajos analizados.

Debido a que el método de los estudios de caso se emplea para aplicar la verificación formal y para comprobar los resultados manualmente, también aparece como la metodología predominante para validar resultados en el enfoque empírico. La parte experimental se evidencia en la participación de las investigaciones industriales.

La tabla 10 presenta las técnicas utilizadas para investigar en FV de los estudios primarios.

Las técnicas actuales de desarrollo se adaptan de mejor forma a los nuevos paradigmas y existen herramientas comerciales que soportan el mejoramiento de la calidad del software. A medida que los sistemas de información incrementan su complejidad, las pérdidas causadas por fallas son cada vez mayores. El 98% de los artículos de investigación describen técnicas de simulación, esto con el fin de controlar las variables de entrada y las respuestas o salidas esperadas en los ambientes de prueba. Llama la atención el hecho de que sólo el 2% empleó la técnica de comprobación por pares, que en las revisiones a la literatura de finales de siglo era la más empleada.

Amenazas y limitaciones 

En esta revisión se llevó a cabo una investigación minuciosa a la literatura a partir de la obtención de 199 autores y trabajos diferentes, incluyendo algunos estudios secundarios donde se utilizaron las referencias en el estudio primario para encontrar otros estudios. Sin embargo, se observa que con la tendencia en el creciente número de trabajos en esta área, no es posible garantizar que se capturaron todos los artículos en esta área. Especialmente en el año 2011, porque la investigación se llevó a cabo hasta el mes de abril. 

Debido a que los estudios que no contenían las palabras Formal Verification en el título no se incluyeron en el conjunto de estudios primarios, es posible que en el proceso de búsqueda se haya excluido un número significativo de estudios relacionados con el área de la investigación. Por otra parte, la inclusión de trabajos en talleres pudo alterar los resultados debido a que su naturaleza es diferente respecto a la de las revistas y las conferencias. La dificultad de discernir los parámetros establecidos en la investigación para aquellas fuentes que sólo permitían ver el abstract pudo haber influido en los resultados de la clasificación.

La Verificación Formal en los diferentes países y épocas se ha agrupado en áreas temáticas con el fin de identificar las áreas de interés en cada uno de ellos, lo que necesariamente no se corresponde con las establecidas para responder a las preguntas de investigación de este trabajo. Sin embargo, de la misma revisión a la literatura surge la sugerencia de que diferentes funciones se asocian a diferentes necesidades y características de motivación. Al agrupar todos estos roles y funciones se pudo haber perdido parte del detalle que fue posible incluir en los análisis. En esta revisión el término Verificación Formal engloba una multitud de roles en la Ingeniería de Software, como las tareas que llevan a cabo todos los profesionales que participan directamente en la producción de software. Esto genera limitaciones al estudio porque rara vez se definen o diferencian individualmente de acuerdo a la práctica, pero también es cierto que las competencias, roles y prácticas en esta área han cambiado durante la línea de tiempo cubierta por la revisión; por ejemplo, a comienzos del 2000 todavía el rol de programador/analista era común, mientras que para mediados de 2005 ya se referenciaban como ingenieros de software. Por lo tanto, las investigaciones y las publicaciones relacionadas con la Verificación Formal también se pueden haber sesgado con estas corrientes.

 

CONCLUSIONES

El objetivo de este trabajo fue realizar una síntesis del estado del arte acerca de la investigación científica en la el área de la Verificación Formal y para lograrlo se realizó una revisión sistemática a la literatura, considerada como el primer paso del paradigma de investigación basado en la evidencia. La FV se ha convertido en los últimos años en un medio práctico para detectar la presencia de comportamientos no deseados en los productos software, una propiedad requerida para los modelos críticos. Los modelos para comprobar la calidad en la industria del software y los utilizados por los probadores de teoremas avanzados, facilitan la realización de análisis complejos de las especificaciones de forma automática o semiautomática.

Por la naturaleza de la Verificación Formal, el enfoque de investigación con mayor representatividad es el empírico, en parte por la necesidad de comprobar en un estudio de caso el modelo creado a través de la observación y el análisis de resultados.

Los artículos de investigación incluidos en este estudio abordan una amplia variedad de temas relacionados con la FV, como las Redes de Petri para dispositivos de control, circuitos digitales y procesadores ―en los que se utilizan para realizar procesos de verificación exhaustiva para optimizar el diseño; la lógica temporal para verificar formalmente la concurrencia de acceso a los algoritmos de control y las especificaciones de seguridad de los sistemas de información para garantizar su seguridad; la semántica formal para las especificaciones del negocio; la verificación de los requisitos del sistema; el análisis de procesadores jerárquicos, los cuales se descomponen en un conjunto de condiciones para lograr una verificación más sencilla de razonar, permitiendo realizar la prueba en los diferentes niveles de arquitectura; las heurísticas para verificar formalmente y automáticamente sistemas complejos como las próximas generaciones de microprocesadores. La Ingeniería de Software se enfrenta a un reto permanente con la Verificación Formal, porque su objetivo es disminuir la brecha entre los sistemas de alta complejidad y la aplicabilidad de las buenas prácticas en todo el proceso de desarrollo.

La especificación formal es un tema que se detecta en todos los artículos de investigación del estudio. Algunos describen la necesidad de establecer métodos de presentación y de redacción de especificaciones con características como: accesibilidad para el usuario basada en la representación lógica funcional del conocimiento, posibilidad de análisis automatizado de conversión y traducción a otros lenguajes desarrollados en modelos formales, el formato formal unificado para el intercambio entre diferentes sistemas de desarrollo y la representación gráfica de la lógica de las frases del lenguaje de programación. Otra característica encontrada en los estudios primarios es que la Verificación Formal se integra en diferentes áreas a través de Frameworks, que permiten el desarrollo de aplicaciones para verificar formalmente los sistemas que son independientes de la técnica de prueba subyacente y de las nuevas técnicas de verificación sobre el nivel de palabra, como la abstracción de predicados y la teoría del módulo de satisfacción.

Las preguntas de investigación planteadas en la metodología se respondieron de acuerdo con los resultados obtenidos en la revisión. Estos resultados se pueden utilizar en la industria y la academia para proyectar nuevas investigaciones y trabajos conducentes a la automatización de la Verificación Formal. Esta área es prioritaria para la comunidad porque la complejidad de los sistemas de las décadas siguientes seguirá en incremento y la prueba manual no será suficiente.

Los resultados de esta revisión plantean nuevas preguntas que se podrían resolver en futuras investigaciones. Por ejemplo, debido a que los ingenieros de software han conformado un grupo profesional nuevo a los establecidos a finales de siglo en las Ciencias Computacionales, quedan temáticas y cuestiones relacionadas con la FV que todavía siguen sin resolver, lo que genera la necesidad de estudios adicionales. También sería útil examinar cómo vincular activamente a los métodos formales en los planes estudio de las diferentes carreras relacionadas con las Ciencias Computacionales, esto podría ofrecer como resultados futuros que la automatización total de las pruebas del software sea una realidad. Además, es necesario seguir trabajando para desarrollar un modelo matemático para formalizar la Ingeniería de Software.

 

REFERENCIAS BIBLIOGRÁFICAS

SÜLFLOW, A. ET AL: WoLFram - A Word Level Framework for Formal Verification; Proc. International Symposium on Rapid System Prototyping, RSP '09, IEEE/IFIP, pp. 11-17, 2009.

COPTY, F. ET AL: Efficient debugging in a formal verification environment, Lecture Notes in Computer Science, Vol. 2144, pp. 275-292, 2001.

GLASS, R. L.; VESSEY, I. AND RAMESH, V.: Research in Software Engineering: An analysis of the literature, Information and Software Technology, Vol. 44, No. 8, pp. 491-506, 2002.

DYBA, T. AND DINGSOYR, T.: Empirical studies of agile software development: A systematic review, Information and Software Technology, Vol. 50, No. 9-10, pp. 833-859, 2008.

WOHLIN, C. ET AL: Experimentation in Software Engineering: An introduction. Springer, London, 2000.

DYBA, T. KITCHENHAM, B. A. AND JORGENSEN, M.: Evidence based software engineering for practitioners, IEEE Software, Vol. 22, No. 1, pp. 58-65, 2005.

KITCHENHAM, B.; DYBA, T. AND JORGENSON, M.: Evidence based software engineering, Proc. of the 26th International Conference on Software Engineering ICSE 04 , pp. 273-281, 2004.

BRERETON, P. ET AL: Lessons from applying the systematic literature review process within the software engineering domain, Journal of Systems and Software, Vol. 80, No. 4, pp. 571-583, 2007.

KITCHENHAM, B. Procedures for Undertaking Systematic Literature Reviews, Joint Technical Report. Computer Science Department, Keele University, Newcastle, UK, 2009.

KITCHENHAM, B. ET AL: Systematic literature reviews in software engineering: A systematic literature review, Journal Information and Software Technology, Vol. 51, No. 1, pp. 7-15, 2009.

DYBA, T. AND DINGSOYR, T.: Empirical studies of agile software development: A systematic review, Journal Information and Software Technology, Vol. 50, No. 9-10, pp. 833-859, 2008.

 

 

Recibido: 11/03/2013
Aceptado: 06/09/2013

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons