Líneas de Producto Software
El enfoque de desarrollo de software basado en una Línea de Productos Software (LPS) propone una metodología y técnicas para la gestión y reutilización de artefactos software que forman parte de una familia de productos. Esta metodología cubre las distintas etapas del desarrollo del software y proporciona lenguajes para el modelado de la variabilidad de una familia de productos, operadores de análisis de la variabilidad, procesos de materialización en productos concretos y la posibilidad de generar de forma automática configuraciones óptimas de un producto de la familia en base a distintos atributos de calidad (seguridad, tiempo de computación, latencia de las comunicaciones, consumo energético, etc.). Las LPS permiten realizar un análisis a nivel de arquitectura software, para evaluar los atributos de un sistema antes de su construcción, y una vez elegida la configuración de un producto se procede a la generación automática de los artefactos de implementación. El trabajo del ITIS en esta línea de investigación se centra, en la definición de nuevos metamodelos, modelos, lenguajes y herramientas que permitan especificar la variabilidad en sistemas complejos como los sistemas ciber-físicos de forma modular, derivar configuraciones óptimas y generar productos que cumplan con los requisitos no funcionales de calidad a lo largo de la vida del sistema (proyecto RHEA). También aplicamos las LPS para generar despliegues de aplicaciones en entornos de IoT/Edge/Cloud teniendo en cuenta medidas de calidad como la minimización de la latencia o el consumo de energía (MEDEA). Los dominios de aplicación que se benefician de esta tecnología son aquellos con una variabilidad intensiva como aplicaciones de realidad aumentada y aplicaciones de eHealth (proyectos MEDEA y LEILA).