How to Design for Software Reliability, Security, and Maintainability Many enterprises unfortunately depend on software that is insecure, unreliable, and fragile. They compensate by investing heavily in workarounds and maintenance, and by employing hordes of 'gurus' to manage their systems' flaws. This must change. And it can. In this book, respected software architect Clifford J. Berg shows how to design high-assurance applications applications with proven, built-in reliability, security, manageability, and maintainability. High-Assurance Design presents basic design principles and patterns that can be used in any contemporary development environment and satisfy the business demand for agility, responsiveness, and low cost. Berg draws on real-world experience, focusing heavily on the activities and relationships associated with building superior software in a mainstream business environment. Practicing architects, lead designers, and technical managers will benefit from the coverage of the entire software lifecycle, showing how to: Understand and avoid the problems that lead to unreliable, insecure software Refocus design and development resources to improve software Identify project risks and plan for assurable designs Obtain the requirements needed to deliver high assurance Design application systems that meet the identified requirements Verify that the design satisfies these requirements Plan and design tests for reliability and security Integrate security design, reliability design, and application design into one coherent set of processes Incorporate these concerns into any software development methodology (c) Copyright Pearson Education. All rights reserved'