Los teléfonos móviles inteligentes son una herramienta indispensable en nuestra vida cotidiana. Son dispositivos con los que podemos ejecutar aplicaciones y tareas complejas en cualquier lugar y en cualquier momento. Estas aplicaciones están fuertemente relacionadas con su contexto (e.g., localización, recursos disponibles, etc.) y los requisitos del usuario cambian cuando lo hace el contexto en el que se ejecutan. Por lo tanto, desarrollar aplicaciones que se adaptan al contexto es fundamental para satisfacer dichos requisitos y, para lograrlo, es necesario proporcionar mecanismos de reconfiguración dinámica.
Un enfoque ampliamente aceptado para gestionar la variabilidad de las aplicaciones en tiempo de ejecución son las Líneas de Producto Software Dinámicas (DSPLs). Por otro lado, otro paradigma ampliamente aceptado en la comunidad de los sistemas distributidos es el de la Computación Autónoma (CA), cuyo principal objetivo es dotar a los sistemas distribuidos de capacidades de auto-gestión.
Esta tesis explora la aplicación de las DSPLs y la CA al desarrollo de aplicaciones para dispositivos móviles que pueden ser reconfiguradas en tiempo de ejecución en función de su contexto. Sus contribuciones cubren tanto el diseño de la DSPL como el desarrollo de mecanismos de reconfiguración dinámica.
Con respecto al diseño de la DSPL, se han propuesto dos alternativas diferentes para la especificación de la arquitectura software y la variabilidad. Por un lado, un mecanismo basado en el uso de perfiles UML y herramientas para modelos de características. Por otro lado, un mecanismo basado en el uso del lenguaje CVL para el modelado de la variabilidad. Para la adaptación de las aplicaciones en tiempo de ejecución se ha definido un middleware que incluye servicios de monitorización del contexto y de reconfiguración dinámica.