This textbook describes the approaches used by software engineers to build quality into their software. The fundamental principles of software quality management and software process improvement are discussed in detail, with a particular focus on the CMMI framework. Features: includes review questions at the end of each chapter; covers both theory and practice, and provides guidance on applying the theory in an industrial environment; examines all aspects of the software development process, including project planning and tracking, software lifecycles, software inspections and testing, configuration management, and software quality assurance; provides detailed coverage of software metrics and problem solving; describes SCAMPI appraisals and how they form part of the continuous improvement cycle; presents an introduction to formal methods and the Z specification language; discusses UML, which is used to describe the architecture of the system; reviews the history of the field of software quality.