  Over the past two decades, researchers and engineers have extensively studied
the problem of how to enable a software system to deal with uncertain operating
conditions. One prominent solution to this problem is self-adaptation, which
equips a software system with a feedback loop that resolves uncertainties
during operation and adapts the system to deal with them when necessary. Most
self-adaptation approaches developed so far use decision-making mechanisms that
focus on achieving a set of goals, i.e., that select for execution the
adaptation option with the best estimated benefit. A few approaches have also
considered the estimated (one-off) cost of executing the candidate adaptation
options. We argue that besides benefit and cost, decision-making in
self-adaptive systems should also consider the estimated risk the system or its
users would be exposed to if an adaptation option were selected for execution.
Balancing all three factors when evaluating the options for adaptation when
mitigating uncertainty is essential, not only for satisfying the concerns of
the stakeholders, but also to ensure safety and public acceptance of
self-adaptive systems. In this paper, we present an ISO/IEC/IEEE 42010
compatible architectural viewpoint that considers the estimated benefit, cost,
and risk as core factors of each adaptation option considered in
self-adaptation. The viewpoint aims to support software architects responsible
for designing robust decision-making mechanisms for self-adaptive systems.
