  Runtime uncertainty such as unpredictable resource unavailability, changing
environmental conditions and user needs, as well as system intrusions or faults
represents one of the main current challenges of self-adaptive systems.
Moreover, today's systems are increasingly more complex, distributed,
decentralized, etc. and therefore have to reason about and cope with more and
more unpredictable events. Approaches to deal with such changing requirements
in complex today's systems are still missing. This work presents SACRE (Smart
Adaptation through Contextual REquirements), our approach leveraging an
adaptation feedback loop to detect self-adaptive systems' contextual
requirements affected by uncertainty and to integrate machine learning
techniques to determine the best operationalization of context based on sensed
data at runtime. SACRE is a step forward of our former approach ACon which
focus had been on adapting the context in contextual requirements, as well as
their basic implementation. SACRE primarily focuses on architectural decisions,
addressing self-adaptive systems' engineering challenges. Furthering the work
on ACon, in this paper, we perform an evaluation of the entire approach in
different uncertainty scenarios in real-time in the extremely demanding domain
of smart vehicles. The real-time evaluation is conducted in a simulated
environment in which the smart vehicle is implemented through software
components. The evaluation results provide empirical evidence about the
applicability of SACRE in real and complex software system domains.
