Software Engineering for Self-Adaptive Systems. Self-Adaptation The complexity of current software-based systems has led the software engineering community.