An Introduction to Residuality Theory: Software Design Heuristics for Complex Systems

https://doi.org/10.1016/j.procs.2020.03.120Get rights and content
Under a Creative Commons license
open access

Abstract

Residuality theory provides a basis for designing software systems with resilient and antifragile behaviour through understanding sensitivity to stress and the concept of residual behaviours. By considering systems as a set of residues that exist in connection to stressors, we can more easily understand the role of design decisions in the life cycle of software systems and the unpredictable complex contexts they exist in. Residuality theory provides an alternative to the vague methods by which OOP, SOA, and microservice approaches arrive at system designs and most importantly places non-functional properties as first class citizens of design efforts. Residuality theory allows us to consider business, software, and infrastructure architecture across many different platforms and paradigms and allows us to describe architecture in the same way regardless of perspective. It allows us to describe approaches both for functional and non-functional requirements and for design, delivery and operation of applications. Residuality Theory paves the way for expressing architectures as mathematical structures which makes approaches like Model Based Systems Engineering [1] possible.

Keywords

antifragility
residuality
resilience
chaos
engineering

Cited by (0)