Resumen:
|
Cada vez más los sistemas software necesitan adaptar su comportamiento dinámicamente como respuesta a eventos de su propia infraestructura o del entorno físico que los rodea. La adaptabilidad se está convirtiendo en una ...[+]
Cada vez más los sistemas software necesitan adaptar su comportamiento dinámicamente como respuesta a eventos de su propia infraestructura o del entorno físico que los rodea. La adaptabilidad se está convirtiendo en una capacidad básica para los sistemas software, particularmente para los sistemas altamente dinámicos como es el caso de los sistemas sensibles al contexto o los sistemas ubicuos. Sin embargo, estos sistemas han alcanzado un nivel de complejidad donde el esfuerzo requerido para mantenerlos operativos es demasiado elevado.
El trabajo desarrollado en esta tesina de máster combina las técnicas de líneas de producto software y el desarrollo dirigido por modelos para la construcción de software que siga las bases de la computación autónoma.
Un sistema software con propiedades autónomas es capaz de instalar, configurar, adaptar y mantener sus componentes en tiempo de ejecución para seguir ofreciendo su funcionalidad. Este tipo de sistema trabaja en entornos cambiantes y su comportamiento debe evolucionar con el tiempo sin necesidad de intervención humana.
Con el propósito de gestionar los cambios en el entorno se utilizan los modelos de variabilidad. Esta técnica de modelado permite definir las modificaciones que el sistema debe aplicar para ajustar su comportamiento
Los principios básicos de la metodología de líneas de producto también proporcionan técnicas que contribuyen al desarrollo de software autónomo y reconfigurable. La característica principal de esta técnica es promocionar la reutilización de componentes.
Aplicar la visión del paradigma de desarrollo dirigido por modelos pretende aprovechar las facilidades que proporciona el uso de los modelos como pieza principal del desarrollo.
La construcción de software de acuerdo a estas iniciativas permitirá dar respuesta a las necesidades que surjan en entornos que evolucionan. Para cumplir esas necesidades el sistema deberá modificar su comportamiento de acuerdo a las condiciones del entorno sin la intervención humana y de una forma totalmente dinámica.
Los continuos cambios de comportamiento pueden conducir, en ocasiones, la configuración del sistema a situaciones no válidas. Los estados no válidos se alcanzan cuando la configuración de los diferentes componentes que forman el sistema no cumplen las restricciones. Obviamente, dichos estados no son deseables en el sistema.
Por una parte, este trabajo surge con el objetivo de proporcionar algún mecanismo que gestione estas situaciones no deseadas. Deberá detectar y resolver las condiciones que dejan al sistema en dicho estado. En definitiva, impedir que el sistema alcance configuraciones inadecuadas pero sin perjudicar su funcionalidad.
Por otra parte, se pretende desarrollar una herramienta que de soporte a las técnicas presentadas. Esta herramienta facilitará la especificación inicial del sistema, el estudio de los cambios en la configuración, ayudará a definir restricciones acerca del comportamiento y validará las diferentes configuraciones que permiten al sistema evolucionar. Además, implementará los mecanismos que identifican y resuelven las situaciones anómalas y dejan el sistema libre de errores.
Por último, mediante el planteamiento de casos de estudio aplicados a contextos reales se persigue que las técnicas propuestas sean comprobadas haciendo uso de la herramienta de soporte.
[-]
|