10431 Report - Software Engineering for Self-Adaptive Systems

Softwares ability to adapt at run-time to changing user needs, system intrusions or faults, changing operational environment, and resource variability has been proposed as a means to cope with the complexity of todays software- intensive systems. Such self-adaptive systems can configure and reconfigure themselves, augment their functionality, continually optimise themselves, protect themselves, and re- cover themselves, while keeping most of their complexity hidden from the user and administrator. In this paper, we present research road map for software engineering of self- adaptive systems focusing on four views, which we identify as essential: design spaces, verification and validation, processes, and decentralisation.