Self-adaptive software: development approach and automatic process for adaptation at runtime (Revista Brasileira de Computação Aplicada, 2015)
The development of Self-adaptive Software (SaS) is a complex task, since this type of software constantly deals with structural and/or behavioral changes at runtime so that the needs of its users or its execution environment are met. Although important initiatives in the area of Software Engineering for SaS (SE4SaS), including approaches, processes, methods, and techniques for the SaS development, can be found in the literature. Approaches with automated support need to be explored, since they are an alternative to maximize the speed of SaS implementation and, at the same time, minimize the involvement of developers. Based on this scenario, this article presents an approach with automated support for the SaS development. It acts on a controlled adaptation modality, i.e., software engineers define the adaptation level supported by SaS in the development stage and the SaS can be automatically adapted without the participation of developers. Case studies were conducted for the evaluation of our approach. The results show that this approach can effectively contribute to the SE4SaS area.