Title: On the Constituent Attributes of Software and Organisational Resilience,
Abstract: Our societies are increasingly dependent on services supplied by computers &
their software. New technology only exacerbates this dependence by increasing
the number, performance, and degree of autonomy and inter-connectivity of
software-empowered computers and cyber-physical "things", which translates into
unprecedented scenarios of interdependence. As a consequence, guaranteeing the
persistence-of-identity of individual & collective software systems and
software-backed organisations becomes an important prerequisite toward
sustaining the safety, security, & quality of the computer services supporting
human societies. Resilience is the term used to refer to the ability of a
system to retain its functional and non-functional identity. In this article we
conjecture that a better understanding of resilience may be reached by
decomposing it into ancillary constituent properties, the same way as a better
insight in system dependability was obtained by breaking it down into
sub-properties. 3 of the main sub-properties of resilience proposed here refer
respectively to the ability to perceive environmental changes; understand the
implications introduced by those changes; and plan & enact adjustments intended
to improve the system-environment fit. A fourth property characterises the way
the above abilities manifest themselves in computer systems. The 4 properties
are then analyzed in 3 families of case studies, each consisting of 3 software
systems that embed different resilience methods. Our major conclusion is that
reasoning in terms of resilience sub-properties may help revealing the
characteristics and limitations of classic methods and tools meant to achieve
system and organisational resilience. We conclude by suggesting that our method
may prelude to meta-resilient systems -- systems, that is, able to adjust
optimally their own resilience with respect to changing environmental
conditions.