[en] Cyber-Physical Systems (CPSs) are systems that integrate computation and communication with the physical world. Software systems that are embedded in CPSs usually have a large life-cycle and are continuously evolving in order to incorporate new requirements, bug fixes, and to deal with hardware obsolescence. Despite the fact that the rise of new technologies provides an opportunity to improve CPS life-cycle management methods, there are still many complex issues that need to be addressed throughout its entire life cycle, from development to maintenance. In this sense, the increasing expansion of IoT and CPSs has highlighted the need for additional mechanisms related to the deployment and monitoring of these systems in operation, due to the challenge that represents the diversity of environments where these systems are deployed. The heterogeneity of the environments, along with the high configurability of CPSs, make testing the these systems under every possible condition impossible, increasing the possibility of errors appearing once the software is deployed in operation. This is especially concerning with performance errors, which are particularly difficult to detect in the lab. In this context, this Ph.D. study proposes a mechanism to detect performance errors in Cyber-Physical Systems. The aim is to investigate different AI techniques to build a performance oracle, which predicts the expected performance of the system in operation and detects performance errors by comparing the predicted value with the actual monitored performance metrics. This prediction is obtained by training a performance model with data from the execution of previous versions of the software. The performance oracle is then encapsulated as a microservice, so that it can be seamlessly deployed along with other services to detect performance errors in operation. In order to make the performance Oracle useful in multiple, heterogeneous environments, different training strategies have been investigated. The method was evaluated by applying it to an industrial use case provided by Orona, using its dispatching traffic algorithm for elevator systems. Results show that the used AI techniques can be used to predict CPS performance and detect errors, even in installations where data for training was not available.

[es] Los sistemas ciber-físicos (CPSs) son sistemas que integran la computación y la comunicación con el mundo físico. Los sistemas software integrados en los CPSs suelen tener un ciclo de vida largo y están en continua evolución para incorporar nuevos requisitos, corregir errores y hacer frente a la obsolescencia del hardware. A pesar de que el auge de las nuevas tecnologías brinda la oportunidad de mejorar los métodos de gestión del ciclo de vida de los CPSs, sigue habiendo muchas cuestiones complejas que deben abordarse a lo largo de todo su ciclo de vida, desde el desarrollo hasta el mantenimiento. En este sentido, la creciente expansión del IoT y los CPSs ha puesto de manifiesto la necesidad de mecanismos adicionales relacionados con el despliegue y monitorización de estos sistemas en operación, debido al reto que representa la diversidad de entornos donde se despliegan estos sistemas. La heterogeneidad de los entornos, junto con la alta configurabilidad de los CPSs, hace que probar el sistema bajo todas las condiciones posibles sea imposible, aumentando las posibilidades de que aparezcan errores una vez desplegado el software en operación. Esto afecta especialmente a los errores de rendimiento, que son particularmente difíciles de detectar en laboratorio. En este contexto, este estudio de doctorado propone un mecanismo para detectar errores de rendimiento en sistemas ciber-físicos. El objetivo es investigar en el uso de diferentes técnicas de IA para construir un oráculo de rendimiento que prediga el rendimiento esperado del sistema en ejecución y detectar errores de rendimiento comparando el valor predicho con las métricas de rendimiento reales monitorizadas. Esta predicción se obtiene mediante un modelo de rendimiento entrenado con datos procedentes de la ejecución de versiones anteriores del software. Después, el oráculo de rendimiento se ha encapsulado como un microservicio, que puede desplegarse de forma sencilla junto con otros servicios para detectar errores de rendimiento en ejecución. Para que el oráculo de rendimiento sea útil en entornos múltiples y heterogéneos, se han investigado diferentes estrategias de entrenamiento. El método se evaluó aplicándolo a un caso de uso industrial proporcionado por Orona, utilizando su algoritmos de tráfico para sistemas de ascensores. Los resultados muestran que las técnicas de IA probadas pueden utilizarse para predecir el rendimiento de los CPSs y detectar errores, incluso en instalaciones en los que no se dispone de datos para el entrenamiento.