This comprehensive guide is geared for anyone responsible for designing, creating, programming, or managing a software system. Focusing on real-world software development, it offers methods, strategies, and techniques for controlling each individual process in the software life cycle to achieve the highest quality and productivity. Readers will find a complete six-step framework that can be applied to any software process in Part 1 of the book. The author provides proven methods for understanding and fine-tuning individual processes, showing how to define, measure, control, analyze, model and improve them. Part 2 applies these methods to three key processes in the software development life cycle - architecture/design review, code inspection, and software reliability enhancement. Throughout, the book is packed with clarifying examples, helpful rules-of-thumb, formulas, and cost-benefit results from actual experiences.