Resumen
El mundo inteligente del futuro se está diseñando como complejos ecosistemas compuestos por una amplia variedad de dispositivos y
servicios distribuidos, que interactúan entre sí y que están controlados por un gran número de elementos de computación y usuarios
(humanos). Estos sistemas son cruciales para soportar la movilidad, calidad de vida, y bienestar de los ciudadanos, así como la
prosperidad y sostenibilidad, abriendo un gran abanico de posibilidades en diferentes dominios de aplicación como las Ciudades
Inteligentes y Vehículos Autónomos.
Este tipo de sistemas se caracterizan por ser capaces de adaptarse autónomamente en tiempo de ejecución a: nuevas condiciones del
entorno, necesidades cambiantes de los usuarios, nuevos tipos de dispositivos, nuevas tecnologías con que interactuar o nuevos
servicios que consumir. Aunque estas adaptaciones deben gestionarse de forma autónoma, la capacidad de estos sistemas para
proporcionar servicios fiables en presencia de cambios (externos o internos) se ve afectada por su creciente complejidad y la naturaleza
dinámica e impredecible de los entornos en los que operan. Por ello, en muchas situaciones es interesante hacer partícipe al humano
para que ayude al sistema ante decisiones difíciles de resolver autónomamente ('human in the loop').
El desarrollo de este tipo de sistemas, por su naturaleza y complejidad, requiere un nuevo planteamiento de las bases tradicionales de la
Ingeniería del Software (IS): por un lado, estos sistemas deben diseñarse para que tengan el suficiente conocimiento sobre sí mismos y
de su entorno, de forma que les permita reaccionar de manera autónoma frente a situaciones dinámicas e imprevistas; por otro lado el
humano debe jugar un papel fundamental tanto en la concepción y diseño de estos sistemas, como en la interacción con ellos una vez
desplegados, de forma que su feedback sea tenido en cuenta durante el ciclo de vida con el objetivo de conseguir una amplia aceptación
y una mejor experiencia de usuario.
El objetivo principal de este proyecto es proporcionar soluciones en el ámbito de la IS (métodos, técnicas y herramientas) que permitan el
diseño y desarrollo sistemático de sistemas software con capacidades autónomas, y que desde etapas iniciales en la ingeniería de estos
sistemas se involucre al humano. Se proporcionarán soluciones que permitan a los ingenieros del software afrontar de manera más
eficiente y efectiva las actividades a las que se enfrentan durante la construcción de estos sistemas, enfocándonos en conseguir los
siguientes objetivos específicos: 1) Involucrar al humano en el bucle de control de los sistemas para que participen en la toma de
decisiones de adaptación, maximizando la autonomía y evitando sistemas intrusivos y molestos; y 2) Diseñar un framework de adaptación
genérico, personalizable y configurable, inspirado en la 'teoría de control' que implemente los mecanismos necesarios para dotar de
capacidades de computación autónoma al sistema, y soportar y monitorizar la interacción con el humano.
Los resultados que se pretenden conseguir son de corte tecnológico, y consisten en métodos, herramientas y técnicas para mejorar el
diseño y desarrollo de sistemas autónomos donde se involucre al humano en las distintas etapas del desarrollo. Los resultados se
validarán a través de prototipos desarrollados en el ámbito de los Edificios Inteligentes y Vehículos Autónomos, y se aplicarán en entornos
reales como Valencia Ciudad Inteligente (VLCi)