Abstract
An approach for specifying and executing dynamically adaptive software systems combines model-driven and aspect-oriented techniques to help engineers tame the complexity of such systems while offering a high degree of automation and validation