  Software systems impact society at different levels as they pervasively solve
real-world problems. Modern software systems are often so sophisticated that
their complexity exceeds the limits of human comprehension. These systems must
respond to changing goals, dynamic data, unexpected failures, and security
threats, among other variable factors in real-world environments. Systems'
complexity challenges their interpretability and requires autonomous responses
to dynamic changes. Two main research areas explore autonomous systems'
responses: evolutionary computing and autonomic computing. Evolutionary
computing focuses on software improvement based on iterative modifications to
the source code. Autonomic computing focuses on optimising systems' performance
by changing their structure, behaviour, or environment variables. Approaches
from both areas rely on feedback loops that accumulate knowledge from the
system interactions to inform autonomous decision-making. However, this
knowledge is often limited, constraining the systems' interpretability and
adaptability. This paper proposes a new concept for interpretable and adaptable
software systems: self-sustaining software systems (S4). S4 builds knowledge
loops between all available knowledge sources that define modern software
systems to improve their interpretability and adaptability. This paper
introduces and discusses the S4 concept.
