En el desarrollo de software , el requisito de trazabilidad se define como "la capacidad de seguir la vida de un requisito, desde sus orígenes, a través de su desarrollo, especificación, despliegue y uso" . Los vínculos de trazabilidad entre los requisitos de un sistema y su código fuente son útiles para reducir el esfuerzo de comprensión y mantenimiento. También son esenciales para garantizar el cumplimiento y la implementación de los requisitos especificados.
Muy a menudo, durante el mantenimiento y la evolución del software, los desarrolladores solo se enfocan en corregir fallas o errores. El código fuente evoluciona pero la arquitectura, el diseño y la documentación no se actualizan. Los enlaces de trazabilidad se vuelven obsoletos porque los desarrolladores no tienen tiempo o no pueden dedicarlo a actualizar estos enlaces. La recuperación de los enlaces de trazabilidad se convierte entonces en una tarea ardua y costosa.
Para compensar el deterioro de los enlaces de trazabilidad, muchos investigadores han utilizado técnicas de recuperación de información para recuperar los enlaces existentes entre documentos de "alto nivel" (requisitos de software, documentación o documentos de diseño) y documentos de diseño. Más "de bajo nivel" (código fuente o Diagrama UML ).
Estas técnicas convierten todos los documentos en forma textual y comparan la similitud entre los artefactos (por ejemplo, el código fuente de una clase y los requisitos) de diferentes niveles. Una alta tasa de similitud significa que estos dos artefactos comparten los mismos conceptos y es muy probable que estén relacionados entre sí.
Se utilizan varias métricas para medir la eficacia de las diversas técnicas para recuperar enlaces de trazabilidad. Los más comunes son el recuerdo y la precisión . También hay una fórmula llamada F-medida que es similar a un promedio y que combina las dos métricas anteriores.
RecordarLa devolución de llamada corresponde a la proporción de la cantidad de enlaces relevantes que se encuentran en todos los enlaces relevantes existentes. Permite medir si el algoritmo recupera bien los enlaces existentes.
PrecisiónLa precisión corresponde a la relación entre el número de enlaces relevantes encontrados sobre el conjunto de enlaces encontrados. Mide la precisión de los enlaces encontrados.
Medida FF-Measure combina precisión y recuperación. Se define como:
Los métodos históricamente utilizados para la recuperación de enlaces de trazabilidad se basan en técnicas de recuperación de información . Entre estas técnicas hay soluciones particulares basadas en modelos vectoriales u otros modelos que utilizan Jensen-Shannon (en) .
Sin embargo, estos métodos producen resultados aproximados que a menudo requieren una intervención manual para evaluar y filtrar los datos recuperados. La mayoría de las veces se componen de matrices de correspondencia entre los diferentes tipos de artefactos. Sin embargo, estas matrices deben corregirse manualmente durante su creación y durante todo el proceso de desarrollo de software.
MejorasSe han propuesto soluciones para mejorar la calidad de los resultados producidos por los métodos de recuperación de información. Estos incluyen el uso de oraciones o términos en lugar de la correspondencia palabra a palabra. En el mismo espíritu, también se puede utilizar un glosario para extraer los términos o las frases significativas del proyecto con el fin de darles un peso más importante a la hora de identificar los vínculos de trazabilidad.
Se han desarrollado algunas soluciones para ayudar al desarrollador a mantener estos enlaces de trazabilidad.
COCOCOCONUT (para "Nutrición de comprensión de código mediante trazabilidad") se presenta como un complemento para el entorno de desarrollo de Eclipse . Ayuda a los desarrolladores a utilizar identificadores (por ejemplo, nombres de variables) y / o escribir comentarios que tengan una fuerte correspondencia con los requisitos del sistema.
Reconocer los cambios aplicados al modelo.En el caso de desarrollos impulsados por modelo UML, es posible analizar los cambios realizados en el diagrama de estructura para actualizar automáticamente los enlaces de trazabilidad.
La solución propuesta se divide en tres etapas:
TraceM es un sistema de gestión de la trazabilidad que utiliza conceptos de sistemas hipermedia e integración de información (en) . Toma la forma de un marco que le permite descubrir los enlaces de trazabilidad implícitos gracias a los enlaces explícitamente conocidos.
TraceM se basa en los siguientes conceptos:
TraceM admite la creación automática de enlaces de trazabilidad y también permite establecer relaciones entre varias relaciones existentes.
En cambio, otros enfoques se centran en cómo encontrar información entre los datos recuperados. Por ejemplo, existe un lenguaje dedicado a la investigación en un conjunto de enlaces de trazabilidad. TQL (para " Lenguaje de consulta de trazabilidad ") le permite realizar consultas del tipo:
Pregunta: ¿Están todos los requisitos cubiertos por un conjunto de prueba?
set:difference(Requirement(), traceFrom(Requirement(), TestCase()))Ciertos enfoques basados en la heurística permiten recuperar / crear vínculos de trazabilidad entre diferentes elementos de un software. Esto se hace revisando los administradores de versiones utilizados durante el desarrollo. Este enfoque implementa métodos de extracción de patrones secuenciales (in) . La extracción de estos patrones se realiza en las confirmaciones del administrador de versiones para detectar cambios simultáneos entre diferentes archivos (por ejemplo, entre el código fuente y la documentación). Si varios archivos se modifican con mucha frecuencia durante las mismas confirmaciones, entonces la probabilidad de tener un vínculo de trazabilidad entre ellos es muy alta.
Ciertas técnicas de recuperación de enlaces de trazabilidad pueden producir resultados adicionales. Por ejemplo, las soluciones basadas en modelos vectoriales son capaces de recuperar un mayor número de enlaces que las técnicas empíricas pero tienen una precisión mucho menor. A partir de esta observación, ciertos métodos combinan los resultados denominados “ortogonales” de diferentes técnicas para mejorar el resultado final.
Ubicación de la entidadPor no hablar de la recuperación de enlaces de trazabilidad, existen técnicas conocidas como recuperación de información . Esta práctica puede verse como un problema de toma de decisiones en presencia de incertidumbre.
Una de las soluciones a este tipo de problemas es el uso de varios sistemas expertos . En el caso del análisis de código fuente, es posible, por ejemplo, combinar dos tipos de análisis: estático y dinámico . Mientras que el análisis estático estudia directamente el código fuente de la aplicación, el análisis dinámico, por su parte, toma lecturas (también llamadas: trazas ) durante la ejecución del programa y analiza estos datos.
TrustraceTrustace es una solución para recuperar enlaces de trazabilidad entre el código fuente y los requisitos de software. Es una técnica que utiliza varias fuentes de información heterogéneas para reevaluar dinámicamente los vínculos de trazabilidad resultantes de las técnicas estándar de recuperación de información.
Primero, Trustrace usa Histrace para explorar datos en repositorios de código fuente. Luego, gracias a los datos extraídos, crea nuevos vínculos de trazabilidad entre los requisitos de software y los datos auxiliares del repositorio (por ejemplo, confirmaciones, errores, etc.). Estos conjuntos de enlaces se denominan expertos .
Una vez que se hayan construido los sets de expertos. Trustrace utiliza Trumo y DynWing para reevaluar los enlaces de trazabilidad de los sistemas tradicionales. Los pesos se asignan dinámicamente a cada uno de los enlaces. Estos pesos se determinan comparando las similitudes entre los enlaces iniciales con los enlaces proporcionados por los expertos y según la frecuencia de aparición de estos enlaces en cada uno de los conjuntos de expertos.
HistraceHistrace le permite crear vínculos entre un conjunto de requisitos y el código fuente, utilizando información de un repositorio de software ( CVS / SVN ). Para ello, Histrace considera las descripciones textuales de los requisitos, los mensajes de confirmaciones, los informes de errores y las clases como documentos distintos que utiliza para producir dos conjuntos de expertos. Uno usa mensajes de confirmación para establecer enlaces de trazabilidad y el segundo usa informes de errores.
TrumoTrumo es similar a un modelo de confianza del usuario: cuantos más usuarios compran en un sitio web, más usuarios confían en él.
Con este espíritu, Trumo asignará un peso a cada enlace de trazabilidad en función de las similitudes de los enlaces resultantes de los conjuntos de expertos y los resultados de las técnicas básicas. Para ello, Trumo realiza una primera clasificación descartando todos los enlaces que no están tanto en los resultados de la base de datos como en uno de los conjuntos de expertos. Luego, se asigna un peso a cada enlace en función de estas similitudes dentro de los diferentes conjuntos. Finalmente, Trumo asigna un peso a cada experto que es determinado por DynWing.
DynWingPara determinar el peso que se le asignará a cada experto, DynWing decide resolverlo en forma de problema de maximización .
Normalmente, cada experto tiene cierta confianza en cada uno de los enlaces que produce. Trumo determina el peso de cada enlace en función de esta similitud y el peso de cada experto. Para calcular el peso de cada experto de DynWing se maximizará el peso final de cada enlace (determinado por Trumo).
Así, Trumo y DynWing son en realidad dos módulos estrechamente vinculados que permiten revisar la confianza de cada enlace de trazabilidad inicial gracias a los nuevos enlaces procedentes de Histrace.
En el estado actual de la situación, todas las técnicas propuestas para la recuperación de enlaces de trazabilidad carecen de precisión. Actualmente parece difícil obtener una muy buena tasa de recuperación con una tasa de precisión correcta e inversamente proporcional. Algunas técnicas más nuevas, como Trustrace, que utilizan nuevas fuentes de información, mejoran en gran medida la precisión y la tasa de recuperación. Por lo tanto, actualmente podemos obtener resultados que oscilan entre el 60% y el 80% de precisión para un recuerdo del 40% al 60%.
(en) N. Ali , Y.-G. Gueheneuc y G. Antoniol , “ Trustrace: Repositorios de software de minería para mejorar la precisión de los enlaces de trazabilidad de requisitos ” , IEEE Trans. Ing. De software ,Mayo 2013, p. 725-741 ( DOI 10.1109 / TSE.2012.71 , leer en línea )
(en) N. Ali , Y.-G. Gueheneuc y G. Antoniol , “ Trazabilidad de requisitos basados en la confianza ” , Proc. 19 ° Conf. Internacional IEEE Comprensión del programa ,junio 2011, p. 111-120 ( DOI 10.1109 / ICPC.2011.42 , leer en línea )
(en) G. Antoniol , G. Canfora , G. Casazza , AD Lucia y E. Merlo , “ Recuperando vínculos de trazabilidad entre el código y la documentación ” , IEEE Trans. Ing. De software , vol. 28, n o 10,Octubre de 2002, p. 970-983 ( DOI 10.1109 / TSE.2002.1041053 , leer en línea )
(en) A. De Lucia , M. Di Penta y R. Oliveto , “ Ayude a mejorar el léxico del código fuente a través de la trazabilidad y la recuperación de información ” , IEEE Trans. Ing. De software ,Marzo-abril de 2011, p. 205-227 ( DOI 10.1109 / TSE.2010.89 , leer en línea )
(en) M. Gethers , R. Oliveto , D. Poshyvanyk y AD Lucia , “ Sobre la integración de métodos ortogonales de recuperación de información para mejorar la recuperación de la trazabilidad ” , Proc. 27.a Conf. Int'l IEEE Mantenimiento de software ,septiembre 2011, p. 133-142 ( DOI 10.1109 / ICSM.2011.6080780 , leer en línea )
(en) OCZ Gotel y CW Finkelstein , “ Análisis del problema de trazabilidad de requisitos ” , Proc. Primera Conf. Internacional Requisitos Ing. ,Abril de 1994, p. 94-101 ( DOI 10.1109 / ICRE.1994.292398 , leer en línea )
(en) JH Hayes , A. Dekhtyar , SK Sundaram y S. Howard , “ Ayudar a los analistas a rastrear los requisitos: una mirada objetiva ” , Proc. 12.o IEEE Int'l Requirements Eng. Conf. ,2004, p. 249-259 ( DOI 10.1109 / RE.2004.26 , leer en línea )
(en) JH Hayes , G. Antoniol y Y.-G. Gueheneuc , “ PREREQIR: Recuperación de requisitos previos mediante análisis de clústeres ” , Proc. 15ª Conf. De Trabajo Ing. Inversa ,octubre de 2008, p. 165-174 ( DOI 10.1109 / WCRE.2008.36 , leer en línea )
(en) H. Kagdi , J. Maletic y B. Sharif , “ Repositorios de software de minería para enlaces de trazabilidad ” , Proc. 15a Conf. Int'l IEEE Comprensión del programa ,junio de 2007, p. 145-154 ( DOI 10.1109 / ICPC.2007.28 , leer en línea )
(en) A. Marcus y JI Maletic , “ Recuperación de enlaces de trazabilidad de documentación a código fuente mediante indexación semántica latente ” , Proc. 25.a Conf. Internacional Ing. De software ,2003, p. 125-135 ( ISBN 0-7695-1877-X , leer en línea )
(en) JI Maletic y ML Collard , " TQL: Un lenguaje de consulta para respaldar la trazabilidad " , Proc. Taller de ICSE sobre trazabilidad en formas emergentes de software Ing. ,2009, p. 16-20 ( DOI 10.1109 / TEFSE.2009.5069577 , leer en línea )
(en) P. Mader , O. Gotel e I. Philippow , “ Habilitación del mantenimiento automatizado de la trazabilidad mediante el reconocimiento de actividades de desarrollo aplicadas a modelos ” , Proc. 23.a Conf. Internacional IEEE / ACM Ing de Software Automatizado. ,septiembre 2008, p. 49-58 ( DOI 10.1109 / ASE.2008.15 , leer en línea )
(en) K. Østerbye y UK Wiil , “ The Flag Taxonomy of Open Hypermedia Systems ” , Actas de la séptima conf. ACM. en hipertexto ,1996, p. 129-139 ( DOI 10.1145 / 234828.234841 , leer en línea )
(en) D. Poshyvanyk , Y.-G. Gueheneuc , A. Marcus , G. Antoniol y V. Rajlich , “ Ubicación de características utilizando clasificación probabilística de métodos basados en escenarios de ejecución y recuperación de información ” , IEEE Trans. Ing. De software , vol. 33, n o 6,junio de 2007, p. 420-432 ( DOI 10.1109 / TSE.2007.1016 , leer en línea )
(en) SA Sherba , KM Anderson y M. Faisal , “ Un marco para el mapeo de relaciones de trazabilidad ” , 2do Taller Internacional sobre Trazabilidad en Formas Emergentes de Software Ing. en la 18a Conf. Int'l IEEE en Ingeniería de Software Automatizada ,2003, p. 32-39 ( DOI 10.1.1.128.1273 , leer en línea )
(en) X. Zou , R. Settimi y J. Cleland-Huang , “ Fraseo en la recuperación de trazas de requisitos dinámicos ” , Actas de la 30ª Conferencia Internacional Anual de Software y Aplicaciones Informáticas. (COMPSAC06) ,Septiembre de 2006, p. 265-272 ( DOI 10.1109 / COMPSAC.2006.66 , leer en línea )
(en) X. Zou , R. Settimi y J. Cleland-Huang , " Factores de mejora basados en términos en la recuperación automatizada de la trazabilidad de los requisitos " , Actas del segundo Simposio Internacional sobre el Gran Desafío en Trazabilidad ,2007, p. 40-45
(en) X. Zou , R. Settimi y J. Cleland-Huang , " Evaluación del uso de glosarios de proyectos en la recuperación automatizada de trazas " , Actas de la Conf. Int'l 2008. en Software Eng. Investigación y práctica (SERP'08) ,2008, p. 157-163
(en) X. Zou , R. Settimi y J. Cleland-Huang , “ Mejora de la recuperación automatizada de trazas de requisitos: un estudio de métodos de mejora basados en términos ” , Empirical Software Eng. ,abril 2010, p. 119-146 ( DOI 10.1007 / s10664-009-9114-z , leer en línea )