Software design for resilient computer systems. (2016)