Metrics and Models in Software Quality Engineering has established itself as the definitive book on this essential topic of software development. Comprehensive in scope and peppered with industry examples, it shows how to measure software quality and use measurements to improve software development, and it teaches the skills you need to measure and improve the quality of the software development process.
Four major categories of quality metrics and models are addressed: quality management, software reliability and projection, complexity, and customer view. In addition, the book discusses the fundamentals of measurement theory, specific quality metrics and tools, and methods for applying metrics to the software development process. New chapters bring coverage of critical topics, including:
In-process metrics for software testing
Metrics for object-oriented software development
Methods for conducting in-process quality assessments and software project assessments
Dos and Don'ts of Software Process Improvement, by Patrick O'Toole
Using Function Point Metrics to Measure Software Process Improvement, by Capers Jones
In addition to the excellent balance of theory, techniques, and examples, this book is highly instructive and practical, covering one of the most important topics in software development, and it offers in-depth details about the software quality engineering field.
Review By: Joanne Webb 09/03/2003
This book discusses a range of concepts and processes for defining, measuring, and improving software quality. The first chapters lay the foundation for this discussion, starting with examples of the views and definitions of quality that make quantifying it difficult and confusing. It goes on to describe some models (including TQM), that break out key elements of customer satisfaction. As stated, the key focus of this book, "is on metrics, measurements, and quality models as they relate to software engineering."
Further context for the discussion is provided by discussing a number of software development process models, methodologies, and approaches, such as waterfall, prototyping, spiral, iterative, object oriented, CMM, SPR, Malcolm Baldridge, and ISO9000. The final part of the setup for the rest of the book comes in chapter 3's examination of measurement theory. The early chapters are both useful and provide good grounding for the rest of the book.
An overview of product, process, and project metrics is followed by in-depth examinations of the various models. These models are supported by helpful examples and lessons learned through actual use.
The final chapter includes a reemphasis on validating the data being collected and analyzed, kicking off a software metrics program, model categories and bridging the gap between study and practical application, statistical control, and finally, the future of measurement.
Even if your organization is not involved in process assessments such as CMM, I feel there is much to be learned and applied from this book. It provides a useful terminology reference. The book will help you decide what is and isn't applicable to your situation. There are many real-life examples and studies from large organizations with established processes as well as recommendations for small teams and companies.
I found the writing an interesting blend of academic style with a practical bent. The subject matter is almost unavoidably dry, and I found myself rereading some sections to absorb them, but overall the author has made this hefty tome quite accessible. The introductions and summaries for each chapter proved particularly helpful. Though it would be easy to get lost in analytical detail, there are plenty of reminders that customer satisfaction is really the point.
In essence, this is a book about collecting useful, accurate data and extracting meaningful information on which you can immediately take action. Whether you use it as an academic reference or as a jumping point for your own ideas, it is well worth reading.
This 2002 second edition expands on the first 1995 edition, whose scope made it essential reading on applying quality measurement to software development process improvement. It discusses a comprehensive set of theories and techniques, with real-world examples of their use.