A Framework for Managing, Measuring, and Predicting Attributes of Software Development Products and Processes
Reflecting the immense progress in the development and use of software metrics in the past decades, Software Metrics: A Rigorous and Practical Approach, Third Edition provides an up-to-date, accessible, and comprehensive introduction to software metrics. Like its popular predecessors, this third edition discusses important issues, explains essential concepts, and offers new approaches for tackling long-standing problems.
New to the Third Edition
This edition contains new material relevant to object-oriented design, design patterns, model-driven development, and agile development processes. It includes a new chapter on causal models and Bayesian networks and their application to software engineering. This edition also incorporates recent references to the latest software metrics activities, including research results, industrial case studies, and standards.
Suitable for a Range of Readers
With numerous examples and exercises, this book continues to serve a wide audience. It can be used as a textbook for a software metrics and quality assurance course or as a useful supplement in any software engineering course. Practitioners will appreciate the important results that have previously only appeared in research-oriented publications. Researchers will welcome the material on new results as well as the extensive bibliography of measurement-related information. The book also gives software managers and developers practical guidelines for selecting metrics and planning their use in a measurement program.
Table of Contents
Fundamentals of Measurement and Experimentation
Measurement: What Is It and Why Do It?
Measurement in Everyday Life
Measurement in Software Engineering
Scope of Software Metrics
The Basics of Measurement
The Representational Theory of Measurement
Measurement and Models
Measurement Scales and Scale Types
Meaningfulness in Measurement
A Goal-Based Framework for Software Measurement
Classifying Software Measures
Determining What to Measure
Applying the Framework
Software Measurement Validation
Performing Software Measurement Validation
Principles of Empirical Studies
Planning Case Studies as Quasi-Experiments
Relevant and Meaningful Studies
Software Metrics Data Collection
Defining Good Data
Data Collection for Incident Reports
How to Collect Data
Reliability of Data Collection Procedures
Analyzing Software Measurement Data
Statistical Distributions and Hypothesis Testing
Classical Data Analysis Techniques
Examples of Simple Analysis Techniques
More Advanced Methods
Multicriteria Decision Aids
Overview of Statistical Tests
Metrics for Decision Support: The Need for Causal Models
From Correlation and Regression to Causal Models
Bayes Theorem and Bayesian Networks
Applying Bayesian Networks to the Problem of Software Defects Prediction
Bayesian Networks for Software Project Risk Assessment and Prediction
Software Engineering Measurement
Measuring Internal Product Attributes: Size
Properties of Software Size
Requirements Analysis and Specification Size
Functional Size Measures and Estimators
Applications of Size Measures
Problem, Solution Size, Computational Complexity
Measuring Internal Product Attributes: Structure
Aspects of Structural Measures
Control Flow Structure of Program Units
Object-Oriented Structural Attributes and Measures
No Single Overall "Software Complexity" Measure
Measuring External Product Attributes
Modeling Software Quality
Measuring Aspects of Quality
Software Reliability: Measurement and Prediction
Basics of Reliability Theory
The Software Reliability Problem
Parametric Reliability Growth Models
Recalibration of Software Reliability Growth Predictions
Importance of the Operational Environment
Wider Aspects of Software Reliability
Appendix: Solutions to Selected Exercises
Summary, Exercises, and Further Reading appear at the end of each chapter.
Norman Fenton, PhD, is a professor of risk information management at Queen Mary London University and the chief executive officer of Agena, a company that specializes in risk management for critical systems. He is renowned for his work in software engineering and software metrics. His current projects focus on using Bayesian methods of analysis to risk assessment. He has published 6 books and more than 140 refereed articles and has provided consulting to many major companies worldwide.
James M. Bieman, PhD, is a professor of computer science at Colorado State University, where he was the founding director of the Software Assurance Laboratory. His research focuses on the evaluation of software designs and processes, including ways to test nontestable software, techniques that support automated software repair, and the relationships between internal design attributes and external quality attributes. He serves on the editorial boards of the Software Quality Journal and the Journal of Software and Systems Modeling.
"The wait for a new edition of this book is over. Long considered the go-to text for its thorough coverage of software measurement and experimentation, the new edition succeeds splendidly in bringing the field up to date while including new and important topics. … updated with the latest results from recent advances in software measurement research and practice. … The authors do an outstanding job of balancing formal analysis topics with examples that ground the reader in practical application. … Both researchers and practitioners alike will gain a valuable understanding of why measurement is critical for quality improvements in software development processes and software products. … With this updated edition, this book solidifies its standing as the most complete reference text for software measurement."
—Computing Review, April 2015
"I have been using this book as my primary reference on software metrics for over 20 years now. It still remains the best book by far on the science and practice of software metrics. This latest edition has some important updates, especially with the inclusion of material on Bayesian networks for prediction and risk assessment."
—Paul Krause, University of Surrey, Guildford, UK
"Great introduction to software metrics, measurement, and experimentation. This will be a must-read for my software engineering students."
—Lukasz Radlinski, PhD, West Pomeranian University of Technology, Szczecin, Poland
"I have loved this book from the first edition and with each new edition it just keeps getting better and better. I use this book constantly in my software engineering research and always recommend it to students. It is so much more than a software metrics book; to me it is an essential companion to rigorous empirical software engineering."
—Dr. Tracy Hall, Department of Computer Science, Brunel University, Uxbridge, UK
"This new edition of Software Metrics succeeds admirably in bringing the field of software measurement up to date and in delivering a wider range of topics to its readers as compared to its previous edition. I have both reviewed and used the book in my software measurement courses and find it to be one of the most advanced and well structured on the market today, tailored for training software engineers in both theoretical and practical aspects of software measurement. I look forward to continuing the use of the book for teaching purposes and am very comfortable offering my recommendation for this book as a primary textbook for graduate or undergraduate courses on software measurement. Thank you again for providing such a quality book to our software engineering education programs."
—Olga Ormandjieva, Associate Professor, Department of Computer Science and Software Engineering, Concordia University, Canada
"This book lucidly and diligently covers the nuts and bolts of software measurement. It is an excellent reference on software metric fundamentals, suitable as a comprehensive textbook for software engineering students and as a definitive manual for industry practitioners."
—Mohammad Alshayeb, Associate Professor of Software Engineering, King Fahd University of Petroleum and Minerals