  Self-adaptive system (SAS) is capable of adjusting its behavior in response
to meaningful changes in the operational context and itself. Due to the
inherent volatility of the open and changeable environment in which SAS is
embedded, the ability of adaptation is highly demanded by many
software-intensive systems. Two concerns, i.e., the requirements uncertainty
and the context uncertainty are most important among others. An essential issue
to be addressed is how to dynamically adapt non-functional requirements (NFRs)
and task configurations of SASs with context uncertainty. In this paper, we
propose a model-based fuzzy control approach that is underpinned by the
feedforward-feedback control mechanism. This approach identifies and represents
NFR uncertainties, task uncertainties and context uncertainties with linguistic
variables, and then designs an inference structure and rules for the fuzzy
controller based on the relations between the requirements model and the
context model. The adaptation of NFRs and task configurations is achieved
through fuzzification, inference, defuzzification and readaptation. Our
approach is demonstrated with a mobile computing application and is evaluated
through a series of simulation experiments.
