  Due to the continuously changing environment of service-based applications
(SBAs), the ability to adapt to environmental and contextual changes has become
a crucial characteristic of such applications. Providing SBAs with this ability
is a complex task, usually prepared in an unsystematic way and interwoven with
application logic. As a result, developing and maintaining adaptive SBAs has
become a costly and hardly repeatable process. The objective of this paper is
to present a model-based approach to developing adaptive SBAs, which separates
development of adaptation concerns from development of SBAs behaviors. This
approach aims to facilitate and automate development of adaptive behaviors. In
this paper, the process of developing an adaptive SBA is defined as specifying
adaptive SBA models based on a metamodel and reusable adaptation tactics. These
models are then transformed into runtime model artifacts and running system
units performing runtime adaptive behaviors. The approach introduces a
systematic method to derive adaptation behaviors from adaptation models, which
facilitates the development of adaptive behaviors. The results show that using
our approach can enhance the development process of adaptive behaviors in terms
of development time and code quality, particularly for scenarios that are more
complex in terms of adaptation rather than business logic.
