Software architecture and design for reliability and predictability. (2011)