Self-sustaining Software Systems (S4): Towards Improved Interpretability and Adaptation
This addresses the challenge of managing sophisticated software systems that exceed human comprehension and must respond dynamically to real-world changes, though it appears incremental as it builds on existing evolutionary and autonomic computing approaches.
The paper tackles the problem of limited interpretability and adaptability in complex software systems by proposing the concept of self-sustaining software systems (S4), which builds knowledge loops between all available knowledge sources to enhance these capabilities.
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.