of Self-Adaptive Software
While software is an immaterial object that does not decay with time, Parnas pointed out that it is in fact aging. Lehman's laws of software evolution accordingly states that a system that is being used undergoes continuing adaption or degrades in effectiveness. Consequently, we can observe that the ability to cost-effectively adapt software has become one of the most important critical success factors for software development today.
One particular vision to address this challenge is self-adaptive software that incorporates the capability to adjust itself to the changing needs into the software itself. This capability promises at first to considerably reduce the costs for required administration and maintenance and to avoid a decline in quality. In addition, future generation of software systems that interconnect the today more or less decoupled applications into complex, evolving software landscapes will require the capability to adapt itself as an important cornerstone as the software as whole can no longer be engineered at development time.
In this talk we want review why we should look for means to engineer self-adaptive software systematically and what requirements have to be fulfilled to achieve the systematic software engineering of self-adaptive systems. Then, we will look into the particular role of models for engineering self-adaptive systems and discuss the current vision for the model-driven software engineering of self-adaptive systems. Besides the means to build self-adaptive systems with models, we will also review the role of models for the validation and verification of such systems.