Esta tesis define una propuesta general basada en MDE para hacer ingeniería inversa de legacy databases extrayendo la perspectiva temporal de procesos de TI. Se ha analizado la definición de dimensiones BPM sobre distintas categorías de legacy systems de uso frecuente en TI, concluyendo que casi toda TI organiza su actividad bajo proyectos que tiene que planificar y controlar. Un estudio sistemático de la literatura realizado sobre la especificación de la dimensión temporal de los procesos nos ha llevado a aportar una taxonomía de reglas que cubre la tipología que aparecen en las TI y también en otros sectores. Esta taxonomía nos ha permitido evaluar carencias de lenguajes de procesos de uso frecuentemente en TI y proponer Meta-modelos UML y OCL que permiten formalizar dichas reglas para resolver estas debilidades, además de facilitar la extracción de procesos desde legacy databases. MS Project (como legacy system) y BPMN (como estándar de modelación e intercambio de procesos serializados) son usados frecuentemente en el sector TI, razón por la que consideramos estos sistemas como piloto de la solución. La arquitectura general se especializa con este caso piloto, definiendo: i) un Meta-modelo de tareas para MS Project, ii) la extensión del Meta-modelo de BPMN con la dimensión temporal y iii) transformaciones MDE que extraen automáticamente procesos BPMN desde proyectos definidos en MS Project.
La solución se ha contrastado en el proyecto de transferencia tecnológica AQUA-WS entre el grupo PAIDI TIC021 IWT2 y EMASESA, verificando la utilidad de los resultados obtenidos, que podrían extrapolarse a otros casos y sectores productivos. Por otro lado, como trabajo futuro, se podría: i) incorporar otras perspectivas BPM como: recursos y casos; ii) generar log de eventos para utilizarse en el campo de la minería de procesos.
El segundo de los pilares fundamentales es el método mediante el que se establecen las bases teóricas que permiten incorporar nuevos lenguajes de modelado de procesos de software al marco de referencia. Por último, el tercero de los pilares son las transformaciones que formalizan las correspondencias y se constituyen como el nexo entre cualquier lenguaje de modelado de procesos de software incorporado al marco de referencia e INROMA. Los tres elementos conforman el marco de referencia para facilitar la interoperabilidad y mantenibilidad de los procesos de software. Teniendo en cuenta que uno de los principales propósitos en el desarrollo de este trabajo de tesis es lograr su utilización en entornos empresariales, para conseguir un importante impacto en estos ámbitos todo este fundamento teórico se completa con MONETA, una herramienta de soporte para el marco de referencia, proporcionando asistencia y automatización en su uso. Dicha herramienta ha sido validada mediante casos de estudio reales extraídos de proyectos de transferencia con empresas en los que se observa cómo la propuesta desarrollada ha sido de gran utilidad en los mismos.
En definitiva, esta tesis doctoral plantea el desarrollo de un marco de referencia para facilitar la interoperabilidad y mantenibilidad de los modelos de procesos de software, abordando tanto el planteamiento teórico que los sustenta como la parte práctica mediante una herramienta de soporte para su utilización en empresas..
El objetivo de esta investigación es aportar conocimiento sobre la reutilización en este ámbito para mejorar la situación actual de esta tecnología. En este trabajo se propone el uso de ciertas técnicas de reutilización empleadas habitualmente en la ingeniería del software para aplicarlas al desarrollo de interfaces de usuario basado en modelos y éstas son implementadas sobre un entorno de desarrollo concreto. Este entorno de desarrollo de interfaces de usuario basado en modelos con características de reutilización potenciadas es utilizado para construir varias aplicaciones que poseen aspectos comunes. A través de este caso práctico y siguiendo un método empírico, se analiza el impacto que las técnicas de reutilización han tenido en el desarrollo de las interfaces de usuario.
Los resultados son importantes: además del alto grado de reutilización general (entorno al 46,2%) se alcanzan picos de reutilización del 56,9% para algunos casos particulares y se obtiene un ahorro en el tamaño de las especificaciones del 71%. Aunque los resultados obtenidos están condicionados por el contexto (entorno de desarrollo, proyectos desarrollados, etc.) se extraen algunas conclusiones aplicables a la generalidad del desarrollo de interfaces de usuario basado en modelos.
Sin embargo, reducir el espacio de pruebas no es siempre una buena opción porque incrementa la probabilidad de defectos en el software. Las técnicas de priorización de casos de prueba reordenan las pruebas de manera que se ejecuten primero aquellas que permitan maximizar un determinado objetivo de rendimiento, normalmente, detectar errores lo antes posible. A modo de ejemplo, podríamos acelerar la detección de errores probando primero aquellos componentes más complejos, asumiendo que estos son más propensos a contener errores. Las técnicas de priorización de casos de ́prueba ayudan a mejorar la efectividad del proceso de pruebas permitiendo un feed-back más rápido a los ingenieros del software y asegurando que las pruebas con mayor ́capacidad de detectar errores habrán sido ejecutadas si el proceso se parase por alguna circunstancia. Existen pocas contribuciones de priorización de casos de prueba ́en sistemas altamente configurables y la mayor ́ıa de ellas combinan selección y priorización para generar los casos de prueba, lo que no se considera priorización pura. Además, la priorización que encontramos en la literatura esta principalmente basada en un solo objetivo o una combinación de varios objetivos en una única función a la que se le asignan pesos proporcionales a la importancia de dichos objetivos, ignorándolos beneficios de combinar múltiples criterios de priorización con igual importancia ́para guiar las pruebas. Otro reto que identificamos es la necesidad de sistemas alta-mente configurables con código disponible, con modelos de variabilidad y registro de errores accesibles que puedan utilizarse para validar la efectividad de las técnicas de pruebas propuestas. Como resultado, los autores de dichas técnicas suelen evaluarlas en términos de rendimiento (por ejemplo, midiendo el tiempo de ejecución) utilizando modelos de variabilidad y datos aleatorios o artificiales, lo que introduce amenazas en la validación de las conclusiones. ́
El principal objetivo de esta tesis es mejorar el soporte que existe para las pruebas en sistemas altamente configurables, considerando para mejora las limitaciones mencionadas en los párrafos anteriores. Con este propósito, se presentan un conjunto de objetivos, técnicas y herramientas para la priorización de casos de prueba en sistemas altamente configurables. Con respecto a los objetivos de priorización, definimos ́nuevos objetivos basados en propiedades funcionales y no funcionales del sistema para guiar el proceso de pruebas. También definimos diferentes técnicas de priorización de pruebas basadas en un solo objetivo y basadas en múltiples objetivos utilizando algoritmos evolutivos. En este sentido, se presenta una comparación de 63 combinaciones ́diferentes de 1, 2 y 3 objetivos con la intención de acelerar la detección de errores en un sistema altamente configurable. Por último, proponemos casos de estudio de sistemas reales altamente configurables con código accesible y reportamos un extenso ́informe sobre datos extraidos de repositorios Git y errores obtenidos de gestores de tareas. Estas contribuciones han sido evaluadas realizando rigurosos experimentos que han revelado la eficacia y efficiencia de nuestra propuesta. Entre otros resultados, podemos destacar que la priorización multi-objetivo guidada por propiedades no funcionales es más efectiva acelerando la detección de errores que la priorización basada en un solo objetivo, basándonos en nuestro caso de estudio. Los resultados también ́sugerían que nuestras técnicas de priorización pueden ser un buen complemento para las técnicas actuales de selección de casos de prueba. La mayoría de nuestras contribuciones han sido integradas en una herramienta denominada SmarTest para probar el sistema de Drupal, un gestor de contenidos web y framework ampliamente conocido.
This thesis presents a concept of an adaptive and rule based driving system that tries to educate the driver in energy‐efficient and safe driving by showing recommendations. Unlike other driving systems, the proposed driving system considers, besides energy‐efficiency and safety relevant driving rules, also the driver condition and adapts itself to the individual driving behaviour. Therefore, new algorithms and methods were developed, which allow the detection of inefficient or unsafe driving behaviour and the decision whether to show a recommendation to the driver based on the driver condition and the individual driving behaviour. This allows for example to avoid the distraction of the driver due to inappropriate recommendations in stressful driving situations. Furthermore, acceptance of the driving system can be increased, as the driver is not bothered by recommendations that are not relevant in the sense of the driver.
A prototype of the proposed driving system was developed and evaluated. The evaluation was done on a driving simulator using 42 test drivers, who tested the effect of the driving system on the driving behaviour and the effect of the adaptiveness of the driving system on the user acceptance. It has been proven during the evaluation that the energy‐efficiency and safety can be increased, when the driving system was used. Furthermore, it has been proven that the user acceptance of the driving system increases when the adaptive feature was turned used. A high user acceptance of the driving system allows a steady usage of the driving system and, thus, a steady improvement of the driving behaviour in terms of energy‐efficiency and safety.
© 2024 ETSII