On Designing Self-Adaptive Software Systems (2011)
Ante condiciones cambiantes del entorno, los sistemas autoadaptativos pueden modificarse a sí mismos para controlar la satisfacción de sus requerimientos en tiempo de ejecución. Durante el siglo pasado los sistemas de retroalimentación fueron importantes modelos para controlar el comportamiento dinámico de sistemas mecánicos, eléctricos, de fluidos y químicos, en sus respectivos campos de la ingeniería. Más recientemente fueron adoptados para diseñar software autoadaptativo. No obstante, lograr mapeos coherentes y explícitos consistentemente entre las arquitecturas de software adaptativo y los elementos de sistemas de retroalimentación es aún un reto abierto. Este artículo, sobre un modelo de referencia propuesto con ese propósito, discute aspectos clave del diseño de software autoadaptativo, en que los elementos de sistemas de retroalimentación se definen explícitamente como componentes de primer nivel en su arquitectura. Adicionalmente, ilustra la aplicación de este modelo de referencia a un ejemplo real de software adaptativo. El artículo ofrece a los ingenieros de software un punto de referencia para iniciar el diseño de software autoadaptativo.