Metrics and Models in Software Quality Engineering / Edition 2

Hardcover (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $12.29
Usually ships in 1-2 business days
(Save 84%)
Other sellers (Hardcover)
  • All (9) from $12.29   
  • New (3) from $114.99   
  • Used (6) from $12.14   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$114.99
Seller since 2011

Feedback rating:

(937)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
Brand new and unread! Join our growing list of satisfied customers!

Ships from: Phoenix, MD

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$115.00
Seller since 2015

Feedback rating:

(215)

Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$148.81
Seller since 2010

Feedback rating:

(244)

Condition: New
Hardcover New 0201729156 New Condition *** Right Off the Shelf | Ships within 2 Business Days ~~~ Customer Service Is Our Top Priority! -Thank you for LOOKING: -)

Ships from: Geneva, IL

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

"This is the single best book on software quality engineering and metrics that I've encountered."
--Capers Jones, from the Foreword

Metrics and Models in Software Quality Engineering, Second Edition , is the definitive book on this essential topic of software development. Comprehensive in scope with extensive industry examples, it shows how to measure software quality and use measurements to improve 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
  • Availability metrics
  • 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--quality engineering.

0201729156B08282002

Though many books discuss software quality, this is the first book to integrate metrics with models and quality improvement strategies, and action plans with project experiences. Covering essential issues and techniques, Kan provides all the information needed to measure and improve the quality of the entire software development process from high-level to low-level design, and all phases of reliability.

Read More Show Less

Editorial Reviews

Booknews
Teaches techniques for measuring and improving the quality of the software development process from high-level to low-level design and all phases of reliability. Covers software metrics, reliability models, and models and analysis of program complexity, and discusses in-process metrics, defect removal, and customer satisfaction. Includes case examples from major computer companies and the NASA Software Engineering laboratory. Annotation c. Book News, Inc., Portland, OR (booknews.com)
Read More Show Less

Product Details

  • ISBN-13: 9780201729153
  • Publisher: Addison-Wesley
  • Publication date: 9/28/2002
  • Edition description: New Edition
  • Edition number: 2
  • Pages: 528
  • Product dimensions: 7.26 (w) x 9.50 (h) x 1.46 (d)

Meet the Author

Stephen H. Kan is Senior Technical Staff Member (STSM) and a technical manager in programming for IBM in Rochester, Minnesota. As process manager of the quality management process in product development for IBM's eServer iSeries software development, his responsibilities include quality goal setting, supplier quality requirements, quality plans, in-process metrics, field quality status, and quality and project assessments. Dr. Kan has been a faculty member of the Master of Science in Software Engineering program at the University of Minnesota since 1998. He is certified by the American Society for Quality as a Quality Engineer, a Reliability Engineer, and a Quality Manager, and by the Project Management Institute as a Project Management Professional.

0201729156AB08212002

Read More Show Less

Read an Excerpt

Looking at software engineering from a historical perspective, the 1960s and earlier could be viewed as the functional era, the 1970s the schedule era, the 1980s the cost era, and the 1990s and beyond the quality and efficiency era. In the 1960s we learned how to exploit information technology to meet institutional needs and began to link software with the daily operations of institutions. In the 1970s, as the industry was characterized by massive schedule delays and cost overruns, the focus was on planning and control of software projects. Phase-based life-cycle models were introduced, and analysis, like the mythical man-month, emerged. In the 1980s hardware costs continued to decline, and information technology permeated every facet of our institutions and became available to individuals. As competition in the industry became keen and low-cost applications became widely implemented, the importance of productivity in software development increased significantly. Various software engineering cost models were developed and used. In the late 1980s, the importance of quality was also recognized.

The 1990s and beyond is certainly the quality era. With state-of-the-art technology now able to provide abundant functionality, customers demand high quality. Demand for quality is further intensified by the ever-increasing dependence of society on software. Billing errors, large-scale disrupted telephone services, and even missile failures during recent wars can all be traced to the issue of software quality. In this era, quality has been brought to the center of the software development process. From the standpoint of software vendors, quality is no longer an advantage factor in themarketplace; it has become a necessary condition if a company is to compete successfully.

Starting in the mid 1990s two major factors emerged that have proved to have an unprecedented impact on not only software engineering but also on global business environments: business reengineering for efficiency and the Internet. Software development has to be more efficient and the quality level of the delivered products has to be high to meet requirements and to be successful. This is especially the case for mission-critical applications. The adverse impact of poor quality is much more significant and at a much wider scale; the quality "dikes" that software is supposed to provide are never more important. These factors will continue to affect software engineering for many years to come during this new millennium.

Measurement plays a critical role in effective and efficient software development, as well as provides the scientific basis for software engineering that makes it a true engineering discipline. This book describes the software quality engineering metrics and models: quality planning, process improvement and quality control, in-process quality management, product engineering (design and code complexity), reliability estimation and projection, and analysis of customer satisfaction data. Many measurement books take an encyclopedic approach, in which every possible software measurement is included, but this book confines its scope to the metrics and models of software quality. Areas such as cost estimation, productivity, staffing, and performance measurement, for which numerous publications exist, are not covered.

In this edition, seven new chapters have been added, covering in-process metrics for software testing, object-oriented metrics, availability metrics, in-process quality assessment, software project assessment, process improvement dos and don'ts, and measuring software process improvement. The chapter that described the AS/400 software quality management system has been eliminated. Updates and revisions have been made throughout the original chapters, and new sections, figures, and tables have been added.

Two of the new chapters are special contributions from two experts. This is a key feature of the new edition. The chapter on the dos and don'ts of software process improvement is contributed by Patrick O'Toole. A highly regarded process improvement expert and with over 20 years of experience, Patrick brings to this book a perspective on process improvement that I share as a practitioner. That perspective is based on practical experience, is project-centric, and is aligned with the strategic business imperative of the organization. Patrick also brings humor to this otherwise serious subject, making the reading of the chapter so enjoyable. The chapter on measuring software process improvement is a special contribution by Capers Jones. A pioneer in software metrics, productivity research, software quality control, and software assessments, Capers's work is well known nationally and internationally. His data-based and fact-based approach in software assessments and benchmarking studies is unparalleled. Based on experience and data from more than 10,000 projects, he brings to the readers a practical approach to software process improvement and the major quantitative findings related to software process improvement. The value of function point metrics is demonstrated via the analyses and findings. The chapter is a must read for software process professionals who are interested in measuring software process improvement.

Another new feature in this edition is a set of recommendations for small teams and organizations that are starting to implement a metrics program, with minimum resources. These recommendations are shown in the form of box inserts in nine of the chapters. A number of examples in the book are based on small team projects, and many methods and techniques are appropriate for large projects as well as small ones. This set of recommendations is from the perspective of small organizations or teams using a small number of metrics, with the intent to effect improvement in their software development effort.

This book is intended for use by software quality professionals; software project managers; software product managers; software development managers; software engineers; software product assurance personnel; and students in software engineering, management information systems, systems engineering, and quality engineering and management. For teachers, it is intended to provide a basis for a course at the upper-division undergraduate or graduate level. A number of software engineering, computer science, and quality engineering programs in the United States and overseas have used the first edition of this book as a text.Themes of This Book

This book has several themes. First, balancing theory, techniques, and real-life examples, it provides practical guidelines in the practice of quality engineering in software development. Although equations and formulas are involved, the focus is on the understanding and applications of the metrics and models rather than mathematical derivations. Throughout the book, numerous real-life examples are used from the software development laboratory at IBM Rochester, Minnesota, home of the AS/400 and the IBM eServer iSeries computer systems, and from other companies in the software industry. IBM Rochester won the Malcolm Baldrige National Quality Award in 1990. A number of metrics described in this book were being used at that time, and many have been developed and refined since then. All metrics are substantiated by ample implementation experience. IBM Rochester develops and delivers numerous projects of different sizes and types every year, including very large and complex as well as small ones; and they range from firmware, to operating systems, to middleware, to applications.

Second, I attempt to provide a good coverage of the various types of metrics and models in the emerging field of software quality engineering. In addition to general discussions about metrics and techniques, this book categorizes and covers four types of metrics and models: (1) quality management models; (2) software reliability and projection models; (3) complexity metrics and models; and (4) customer-view metrics, measurements, and models. These metrics and models cover the entire software development process from high-level design to testing and maintenance, as well as all phases of reliability. Furthermore, although this book is not on total quality management (TQM), it is a major consideration in the coverage of metrics. The philosophy of TQM is the linking of product quality and customer satisfaction for the purpose of achieving long-term success. TQM is the reason for including two chapters on customer-view metrics and measurements—availability metrics and customer satisfaction—in addition to the many chapters on product and process metrics. In other discussions in the book, the customer's perspective is included where appropriate.

Third, by linking metrics and models to quality improvement strategies and improvement actions, we attempt to focus on using, not just describing, metrics. A framework for interpreting in-process metrics and assessing in-process quality status—the effort/outcome model—is presented. The direct link between a recommended quality strategy during development and the defect-removal model is shown. Examples of actions tied to specific metrics and analysis are given. Furthermore, to illustrate the metrics, many figures and graphs are used. This is a reflection of the fact that in real-life project and quality management, a clear visual presentation often improves understanding and increases the effectiveness of the metrics.

Fourth, following up on quality and process improvement at a more general level than specific metric discussions, the book continues with chapters that discuss the in-process quality assessment process, a method for conducting software project assessments, practical advice on process improvement dos and don'ts, and quantitative analysis of software process improvement. The common thread underlying these chapters, as with other chapters on metrics and models, is practical experience with industry projects.Organization of This Book

The following list details the focus of each chapter.

  • Chapter 1, What Is Software Quality?, discusses the definition of quality and software quality. The customer's role in the definition is highlighted. Quality attributes and their relationships are discussed. The second part of the chapter covers the definition and framework of TQM and the customer's view of quality, a key focus in this book.
  • Chapter 2, Software Development Process Models, reviews various development process models that are used in the software industry. It briefly describes two methods of software process maturity assessment—the SEI process capability maturity model (CMM) (by the Software Engineering Institute) and the SPR assessment method (by the Software Productivity Research, Inc.). It summarizes two bodies of quality management standards—the Malcolm Baldrige National Quality Award assessment discipline and ISO 9000.
  • Chapter 3, Fundamentals of Measurement Theory, examines measurement - theory fundamentals, which are very important for the practice of software measurement. The concept of operational definition and its importance in measurement are illustrated with an example. The level of measurement, some basic measures, and the concept of six sigma are discussed. The two key criteria of measurement quality, reliability and validity, and the related issue of measurement errors are examined and their importance is articulated. This chapter also provides a discussion on correlation and addresses the criteria necessary to establish causality based on observational data.
  • Chapter 4, Software Quality Metrics Overview, presents examples of quality metrics for the three categories of metrics associated with the software life cycle: end-product, in-process, and maintenance. It describes the metrics programs of several large software companies and discusses collection of software engineering data.
  • Chapter 5, Applying the Seven Basic Quality Tools in Software Development, describes the application of the basic statistical tools for quality control, known as Ishikawa's seven basic tools, in software development. The potentials and challenges of applying the control chart in software environments are discussed. In addition, a qualitative tool for brainstorming and for displaying complex cause-and-effect relationships—the relations diagram—is discussed.
  • Chapter 6, Defect Removal Effectiveness, is the first of five chapters about the models and metrics that describe the quality dynamics of software development. Through two types of models, quality management models and software reliability and projection models, the quality of software development can be planned, engineered, managed, and projected. This chapter examines the central concept of defect removal effectiveness, its measurements, and its role in quality planning.
  • Chapter 7, The Rayleigh Model, describes the model and its implementation as a reliability and projection model. The Rayleigh Model's use as a quality management model is discussed in Chapter 9.
  • Chapter 8, Exponential Distribution and Reliability Growth Models, discusses the exponential distribution and the major software reliability growth models. These models, like the Rayleigh Model, are used for quality projection before the software is shipped to customers, just before development is complete. The models are also used for maintenance planning, to model the failure pattern or the defect arrival patterns in the field.
  • Chapter 9, Quality Management Models, describes several quality management models that cover the entire development cycle. In-process metrics and reports that support the models are shown and discussed. A framework for interpreting in-process metrics and assessing in-process quality status—the effort/outcome model—is presented.
  • Chapter 10, In-Process Metrics for Software Testing, is a continuation of Chapter 9; it focuses on the metrics for software testing. The effort/outcome model, as it applies to metrics during the testing phase, is elaborated. Candidate metrics for acceptance testing to evaluate vendor-developed software, and the central question of how to know your product is good enough to ship, are also discussed.
  • Chapter 11, Complexity Metrics and Models, discusses the third type of metrics and models in software engineering. While quality management models and reliability and projection models are for project management and quality management, the objective of the complexity metrics and models is for software engineers to be able to improve their design and implementation of software development.
  • Chapter 12, Metrics and Lessons Learned for Object-Oriented Projects, covers design and complexity metrics, productivity metrics, quality and quality management metrics for object-oriented development, and lessons learned from the deployment and implementation of OO projects. The first section can be viewed as a continuation of the discussion on complexity metrics and models; the other sections fall within the framework of quality and project management.
  • Chapter 13, Availability Metrics, discusses system availability and outage metrics, and explores the relationships among availability, reliability, and the traditional defect-rate measurement. Availability metrics and customer satisfaction measurements are the fourth type of metrics and models—customer-oriented metrics.
  • Chapter 14, Measuring and Analyzing Customer Satisfaction, discusses data collection and measurements of customer satisfaction, and techniques and models for the analysis of customer satisfaction data. From Chapter 3 to this chapter, the entire spectrum of metrics and models is covered.
  • Chapter 15, Conducting In-Process Quality Assessments, describes in-process quality assessments as an integrated element of good project quality management. Quality assessments are based on both quantitative indicators, such as those discussed in previous chapters, and qualitative information.
  • Chapter 16, Conducting Software Project Assessments, takes the discussion to yet another level; this chapter proposes a software project assessment method. The focus is at the project level and the discussion is from a practitioner's perspective.
  • Chapter 17, Dos and Don'ts of Software Process Improvement by Patrick O'Toole, offers practical advice for software process improvement professionals. It provides a link to the process maturity discussions in Chapter 2.
  • Chapter 18, Using Function Point Metrics to Measure Software Process Improvement by Capers Jones, discusses the six stages of software process improvement. Based on a large body of empirical data, it examines the costs and effects of process improvement. It shows the results of quantitative analyses with regard to costs, time, schedule, productivity, and quality. It articulates the value of Function Point metrics. It provides a link to the process maturity discussions in Chapter 2.
  • Chapter 19, Concluding Remarks, provides several observations with regard to software measurement in general and software quality metrics and models in particular, and it offers a perspective on the future of software engineering measurement.
  • In the Appendix, a real-life example of a project assessment questionnaire is shown. Per the methods and techniques discussed in Chapter 16, readers can customize the questionnaire for their project assessment efforts.
Suggested Ways to Read This Book

The chapters of this book are organized for reading from beginning to end. Later chapters refer to concepts and discussions in earlier chapters. At the same time, each chapter addresses a separate topic and chapters in some groups are more closely coupled than others. Some readers may choose to read specific topics or decide on different starting points. For example, those who are not interested in quality definitions, process models, and measurement fundamentals discussions can start with Chapter 4, Software Quality Metrics Overview. Those who intend to immediately get to the central topics of defect removals, metrics and models for quality planning, and management and projection can start with Chapter 6, Defect Removal Effectiveness. In general, I recommend that the chapters be read in groups, as follows.

  • Chapters 1 through 3
  • Chapter 4
  • Chapter 5
  • Chapters 6 through 10
  • Chapters 11 and 12
  • Chapters 13 and 14
  • Chapters 15 through 18
  • Chapter 19
Read More Show Less

Table of Contents

Foreword to the Second Edition.

Foreword to the First Edition

Preface.

1. What Is Software Quality?

Quality: Popular Views.

Quality: Professional Views.

The Role of the Customer.

Software Quality.

Total Quality Management.

2. Software Development Process Models.

The Waterfall Development Model.

The Prototyping Approach.

The Spiral Model.

The Iterative Development Process Model.

The Object-Oriented Development Process.

The Cleanroom Methodology.

The Defect Prevention Process.

Process Maturity Framework and Quality Standards.

The SEI Process Capability Maturity Model.

The SPR Assessment.

The Malcolm Baldrige Assessment.

ISO 9000.

3. Fundamentals in Measurement Theory.

Definition, Operational Definition, and Measurement.

Level of Measurement.

Some Basic Measures.

Reliability and Validity.

Measurement Errors.

Assessing Reliability.

Correction for Attenuation.

Be Careful with Correlation.

Criteria for Causality.

4. Software Quality Metrics Overview.

Product Quality Metrics.

The Defect Density Metric.

Customer Problems Metric.

Customer Satisfaction Metrics.

In-Process Quality Metrics.

Defect Density During Machine Testing.

Defect Arrival Pattern During Machine Testing.

Phase-Based Defect Removal Pattern.

Defect Removal Effectiveness.

Metrics for Software Maintenance.

Fix Backlog and Backlog Management Index.

Fix Response Time and Fix Responsiveness.

Percent Delinquent Fixes.

Fix Quality.

Examples of Metrics Programs.

Motorola.

Hewlett-Packard.

IBM Rochester.

Collecting Software Engineering Data.

5. Applying the Seven Basic Quality Tools in Software Development.

Ishikawa's Seven Basic Tools.

Checklist.

Pareto Diagram.

Histogram.

Run Charts.

Scatter Diagram.

Control Chart.

Cause-and-Effect Diagram.

Relations Diagram.

6. Defect Removal Effectiveness.

Literature Review.

A Closer Look at Defect Removal Effectiveness.

Defect Removal Effectiveness and Quality Planning.

Phase-Based Defect Removal Model.

Some Characteristics of a Special Case Two-Phase Model.

Cost Effectiveness of Phase Defect Removal.

Defect Removal Effectiveness and Process Maturity Level.

7. The Rayleigh Model.

Reliability Models.

The Rayleigh Model.

Basic Assumptions.

Implementation.

Reliability and Predictive Validity.

8. Exponential Distribution and Reliability Growth Models.

The Exponential Model.

Reliability Growth Models.

Jelinski-Moranda Model.

Littlewood Models.

Goel-Okumoto Imperfect Debugging Model.

Goel-Okumoto Nonhomogeneous Poisson Process Model.

Musa-Okumoto Logarithmic Poisson Execution Time Model.

The Delayed S and Inflection S Models.

Model Assumptions.

Criteria for Model Evaluation.

Modeling Process.

Test Compression Factor.

Estimating the Distribution of Total Defects Over Time.

9. Quality Management Models.

The Rayleigh Model Framework.

The Code Integration Pattern.

The PTR Submodel.

The PTR Arrival/Backlog Projection Model.

Reliability Growth Models.

Criteria for Model Evaluation.

In-Process Metrics and Reports.

Orthogonal Defect Classification.

10. In-Process Metrics for Software Testing.

In-Process Metrics for Software Testing.

Test Progress S Curve.

Testing Defect Arrivals Over Time.

Testing Defect Backlog Over Time.

Product Size Over Time.

CPU Utilization During Test.

System Crashes and Hangs.

Mean Time to Unplanned IPL.

Critical Problems: Show Stoppers.

In-Process Metrics and Quality Management.

Effort/Outcome Model.

Possible Metrics for Acceptance Testing to Evaluate Vendor-Developed Software.

How Do You Know Your Product Is Good Enough to Ship.

11. Complexity Metrics and Models.

Lines of Code.

Halstead's Software Science.

Cyclomatic Complexity.

Syntactic Constructs.

Structure Metrics.

An Example of Module Design Metrics in Practice.

12. Metrics and Lessons Learned for Object-Oriented Projects.

Object-Oriented Concepts and Constructs.

Design and Complexity Metrics.

Lorenz Metrics and Rules of Thumb.

Some Metrics Examples.

The CK OO Metrics Suite.

Validation Studies and Further Examples.

Productivity Metrics.

Quality and Quality Management Metrics.

Lessons Learned for OO Projects.

13. Availability Metrics.

Definition and Measurements of System Availability.

Reliability, Availability, and Defect Rate.

Collecting Customer Outage Data for Quality Improvement.

In-Process Metrics for Outage and Availability.

14. Measuring and Analyzing Customer Satisfaction.

Customer Satisfaction Surveys.

Methods of Survey Data Collection.

Sampling Methods.

Sample Size.

Analyzing Satisfaction Data.

Specific Attributes and Overall Satisfaction.

Satisfaction with Company.

How Good Is Good Enough?

15. Conducting In-Process Quality Assessments.

The Preparation Phase.

What Data Should I Look At?

Don't Overlook Qualitative Data

The Evaluation Phase.

Quantitative Data

Qualitative Data

Evaluation Criteria

The Summarization Phase.

Summarization Strategy.

The Overall Assessment

Recommendations and Risk Mitigation.

16. Conducting Software Project Assessments.

Audit and Assessment.

Software Process Maturity Assessment and Software Project Assessment.

Software Process Assessment Cycle.

A Proposed Software Project Assessment Method.

Preparation Phase.

Facts Gathering Phase 1.

Questionnaire Customization and Finalization.

Facts Gathering Phase.

Possible Improvement Opportunities and Recommendations.

Team Discussions of Assessment Results and Recommendations.

Assessment Report.

Summary.

17. Dos and Don'ts of Software Process Improvement.

Measuring Process Maturity.

Measuring Process Capability.

Staged versus Continuous--Debating Religion.

Measuring Levels Is Not Enough.

Establishing the Alignment Principle.

Take Time Getting Faster.

Keep It Simple—or Face Decomplexification.

Measuring the Value of Process Improvement.

Measuring Process Adoption.

Measuring Process Compliance.

Celebrate the Journey, Not Just the Destination.

18. Using Function Point Metrics to Measure Software Process Improvement.

Software Process Improvement Sequences.

Stage 0: Software Process Assessment and Baseline.

Stage 1: Focus on Management Technologies.

Stage 2: Focus on Software Processes and Methodologies.

Stage 3: Focus on New Tools and Approaches.

Stage 4: Focus on Infrastructure and Specialization.

Stage 5: Focus on Reusability.

Stage 6: Focus on Industry Leadership.

Process Improvement Economics.

Measuring Process Improvements at Activity Levels.

19. Concluding Remarks.

Data Quality Control.

Getting Started with a Software Metrics Program.

Software Quality Engineering Modeling.

Statistical Process Control in Software Development.

Measurement and the Future.

Appendix: A Project Assessment Questionnaire

Index. 0201729156T09052002.

Read More Show Less

Preface

Looking at software engineering from a historical perspective, the 1960s and earlier could be viewed as the functional era, the 1970s the schedule era, the 1980s the cost era, and the 1990s and beyond the quality and efficiency era. In the 1960s we learned how to exploit information technology to meet institutional needs and began to link software with the daily operations of institutions. In the 1970s, as the industry was characterized by massive schedule delays and cost overruns, the focus was on planning and control of software projects. Phase-based life-cycle models were introduced, and analysis, like the mythical man-month, emerged. In the 1980s hardware costs continued to decline, and information technology permeated every facet of our institutions and became available to individuals. As competition in the industry became keen and low-cost applications became widely implemented, the importance of productivity in software development increased significantly. Various software engineering cost models were developed and used. In the late 1980s, the importance of quality was also recognized.

The 1990s and beyond is certainly the quality era. With state-of-the-art technology now able to provide abundant functionality, customers demand high quality. Demand for quality is further intensified by the ever-increasing dependence of society on software. Billing errors, large-scale disrupted telephone services, and even missile failures during recent wars can all be traced to the issue of software quality. In this era, quality has been brought to the center of the software development process. From the standpoint of software vendors, quality is no longer an advantage factor in the marketplace; it has become a necessary condition if a company is to compete successfully.

Starting in the mid 1990s two major factors emerged that have proved to have an unprecedented impact on not only software engineering but also on global business environments: business reengineering for efficiency and the Internet. Software development has to be more efficient and the quality level of the delivered products has to be high to meet requirements and to be successful. This is especially the case for mission-critical applications. The adverse impact of poor quality is much more significant and at a much wider scale; the quality "dikes" that software is supposed to provide are never more important. These factors will continue to affect software engineering for many years to come during this new millennium.

Measurement plays a critical role in effective and efficient software development, as well as provides the scientific basis for software engineering that makes it a true engineering discipline. This book describes the software quality engineering metrics and models: quality planning, process improvement and quality control, in-process quality management, product engineering (design and code complexity), reliability estimation and projection, and analysis of customer satisfaction data. Many measurement books take an encyclopedic approach, in which every possible software measurement is included, but this book confines its scope to the metrics and models of software quality. Areas such as cost estimation, productivity, staffing, and performance measurement, for which numerous publications exist, are not covered.

In this edition, seven new chapters have been added, covering in-process metrics for software testing, object-oriented metrics, availability metrics, in-process quality assessment, software project assessment, process improvement dos and don'ts, and measuring software process improvement. The chapter that described the AS/400 software quality management system has been eliminated. Updates and revisions have been made throughout the original chapters, and new sections, figures, and tables have been added.

Two of the new chapters are special contributions from two experts. This is a key feature of the new edition. The chapter on the dos and don'ts of software process improvement is contributed by Patrick O'Toole. A highly regarded process improvement expert and with over 20 years of experience, Patrick brings to this book a perspective on process improvement that I share as a practitioner. That perspective is based on practical experience, is project-centric, and is aligned with the strategic business imperative of the organization. Patrick also brings humor to this otherwise serious subject, making the reading of the chapter so enjoyable. The chapter on measuring software process improvement is a special contribution by Capers Jones. A pioneer in software metrics, productivity research, software quality control, and software assessments, Capers's work is well known nationally and internationally. His data-based and fact-based approach in software assessments and benchmarking studies is unparalleled. Based on experience and data from more than 10,000 projects, he brings to the readers a practical approach to software process improvement and the major quantitative findings related to software process improvement. The value of function point metrics is demonstrated via the analyses and findings. The chapter is a must read for software process professionals who are interested in measuring software process improvement.

Another new feature in this edition is a set of recommendations for small teams and organizations that are starting to implement a metrics program, with minimum resources. These recommendations are shown in the form of box inserts in nine of the chapters. A number of examples in the book are based on small team projects, and many methods and techniques are appropriate for large projects as well as small ones. This set of recommendations is from the perspective of small organizations or teams using a small number of metrics, with the intent to effect improvement in their software development effort.

This book is intended for use by software quality professionals; software project managers; software product managers; software development managers; software engineers; software product assurance personnel; and students in software engineering, management information systems, systems engineering, and quality engineering and management. For teachers, it is intended to provide a basis for a course at the upper-division undergraduate or graduate level. A number of software engineering, computer science, and quality engineering programs in the United States and overseas have used the first edition of this book as a text.

Themes of This Book

This book has several themes. First, balancing theory, techniques, and real-life examples, it provides practical guidelines in the practice of quality engineering in software development. Although equations and formulas are involved, the focus is on the understanding and applications of the metrics and models rather than mathematical derivations. Throughout the book, numerous real-life examples are used from the software development laboratory at IBM Rochester, Minnesota, home of the AS/400 and the IBM eServer iSeries computer systems, and from other companies in the software industry. IBM Rochester won the Malcolm Baldrige National Quality Award in 1990. A number of metrics described in this book were being used at that time, and many have been developed and refined since then. All metrics are substantiated by ample implementation experience. IBM Rochester develops and delivers numerous projects of different sizes and types every year, including very large and complex as well as small ones; and they range from firmware, to operating systems, to middleware, to applications.

Second, I attempt to provide a good coverage of the various types of metrics and models in the emerging field of software quality engineering. In addition to general discussions about metrics and techniques, this book categorizes and covers four types of metrics and models: (1) quality management models; (2) software reliability and projection models; (3) complexity metrics and models; and (4) customer-view metrics, measurements, and models. These metrics and models cover the entire software development process from high-level design to testing and maintenance, as well as all phases of reliability. Furthermore, although this book is not on total quality management (TQM), it is a major consideration in the coverage of metrics. The philosophy of TQM is the linking of product quality and customer satisfaction for the purpose of achieving long-term success. TQM is the reason for including two chapters on customer-view metrics and measurements--availability metrics and customer satisfaction--in addition to the many chapters on product and process metrics. In other discussions in the book, the customer's perspective is included where appropriate.

Third, by linking metrics and models to quality improvement strategies and improvement actions, we attempt to focus on using, not just describing, metrics. A framework for interpreting in-process metrics and assessing in-process quality status--the effort/outcome model--is presented. The direct link between a recommended quality strategy during development and the defect-removal model is shown. Examples of actions tied to specific metrics and analysis are given. Furthermore, to illustrate the metrics, many figures and graphs are used. This is a reflection of the fact that in real-life project and quality management, a clear visual presentation often improves understanding and increases the effectiveness of the metrics.

Fourth, following up on quality and process improvement at a more general level than specific metric discussions, the book continues with chapters that discuss the in-process quality assessment process, a method for conducting software project assessments, practical advice on process improvement dos and don'ts, and quantitative analysis of software process improvement. The common thread underlying these chapters, as with other chapters on metrics and models, is practical experience with industry projects.

Organization of This Book

The following list details the focus of each chapter.

  • Chapter 1, What Is Software Quality?, discusses the definition of quality and software quality. The customer's role in the definition is highlighted. Quality attributes and their relationships are discussed. The second part of the chapter covers the definition and framework of TQM and the customer's view of quality, a key focus in this book.
  • Chapter 2, Software Development Process Models, reviews various development process models that are used in the software industry. It briefly describes two methods of software process maturity assessment--the SEI process capability maturity model (CMM) (by the Software Engineering Institute) and the SPR assessment method (by the Software Productivity Research, Inc.). It summarizes two bodies of quality management standards--the Malcolm Baldrige National Quality Award assessment discipline and ISO 9000.
  • Chapter 3, Fundamentals of Measurement Theory, examines measurement - theory fundamentals, which are very important for the practice of software measurement. The concept of operational definition and its importance in measurement are illustrated with an example. The level of measurement, some basic measures, and the concept of six sigma are discussed. The two key criteria of measurement quality, reliability and validity, and the related issue of measurement errors are examined and their importance is articulated. This chapter also provides a discussion on correlation and addresses the criteria necessary to establish causality based on observational data.
  • Chapter 4, Software Quality Metrics Overview, presents examples of quality metrics for the three categories of metrics associated with the software life cycle: end-product, in-process, and maintenance. It describes the metrics programs of several large software companies and discusses collection of software engineering data.
  • Chapter 5, Applying the Seven Basic Quality Tools in Software Development, describes the application of the basic statistical tools for quality control, known as Ishikawa's seven basic tools, in software development. The potentials and challenges of applying the control chart in software environments are discussed. In addition, a qualitative tool for brainstorming and for displaying complex cause-and-effect relationships--the relations diagram--is discussed.
  • Chapter 6, Defect Removal Effectiveness, is the first of five chapters about the models and metrics that describe the quality dynamics of software development. Through two types of models, quality management models and software reliability and projection models, the quality of software development can be planned, engineered, managed, and projected. This chapter examines the central concept of defect removal effectiveness, its measurements, and its role in quality planning.
  • Chapter 7, The Rayleigh Model, describes the model and its implementation as a reliability and projection model. The Rayleigh Model's use as a quality management model is discussed in Chapter 9.
  • Chapter 8, Exponential Distribution and Reliability Growth Models, discusses the exponential distribution and the major software reliability growth models. These models, like the Rayleigh Model, are used for quality projection before the software is shipped to customers, just before development is complete. The models are also used for maintenance planning, to model the failure pattern or the defect arrival patterns in the field.
  • Chapter 9, Quality Management Models, describes several quality management models that cover the entire development cycle. In-process metrics and reports that support the models are shown and discussed. A framework for interpreting in-process metrics and assessing in-process quality status--the effort/outcome model--is presented.
  • Chapter 10, In-Process Metrics for Software Testing, is a continuation of Chapter 9; it focuses on the metrics for software testing. The effort/outcome model, as it applies to metrics during the testing phase, is elaborated. Candidate metrics for acceptance testing to evaluate vendor-developed software, and the central question of how to know your product is good enough to ship, are also discussed.
  • Chapter 11, Complexity Metrics and Models, discusses the third type of metrics and models in software engineering. While quality management models and reliability and projection models are for project management and quality management, the objective of the complexity metrics and models is for software engineers to be able to improve their design and implementation of software development.
  • Chapter 12, Metrics and Lessons Learned for Object-Oriented Projects, covers design and complexity metrics, productivity metrics, quality and quality management metrics for object-oriented development, and lessons learned from the deployment and implementation of OO projects. The first section can be viewed as a continuation of the discussion on complexity metrics and models; the other sections fall within the framework of quality and project management.
  • Chapter 13, Availability Metrics, discusses system availability and outage metrics, and explores the relationships among availability, reliability, and the traditional defect-rate measurement. Availability metrics and customer satisfaction measurements are the fourth type of metrics and models--customer-oriented metrics.
  • Chapter 14, Measuring and Analyzing Customer Satisfaction, discusses data collection and measurements of customer satisfaction, and techniques and models for the analysis of customer satisfaction data. From Chapter 3 to this chapter, the entire spectrum of metrics and models is covered.
  • Chapter 15, Conducting In-Process Quality Assessments, describes in-process quality assessments as an integrated element of good project quality management. Quality assessments are based on both quantitative indicators, such as those discussed in previous chapters, and qualitative information.
  • Chapter 16, Conducting Software Project Assessments, takes the discussion to yet another level; this chapter proposes a software project assessment method. The focus is at the project level and the discussion is from a practitioner's perspective.
  • Chapter 17, Dos and Don'ts of Software Process Improvement by Patrick O'Toole, offers practical advice for software process improvement professionals. It provides a link to the process maturity discussions in Chapter 2.
  • Chapter 18, Using Function Point Metrics to Measure Software Process Improvement by Capers Jones, discusses the six stages of software process improvement. Based on a large body of empirical data, it examines the costs and effects of process improvement. It shows the results of quantitative analyses with regard to costs, time, schedule, productivity, and quality. It articulates the value of Function Point metrics. It provides a link to the process maturity discussions in Chapter 2.
  • Chapter 19, Concluding Remarks, provides several observations with regard to software measurement in general and software quality metrics and models in particular, and it offers a perspective on the future of software engineering measurement.
  • In the Appendix, a real-life example of a project assessment questionnaire is shown. Per the methods and techniques discussed in Chapter 16, readers can customize the questionnaire for their project assessment efforts.

Suggested Ways to Read This Book

The chapters of this book are organized for reading from beginning to end. Later chapters refer to concepts and discussions in earlier chapters. At the same time, each chapter addresses a separate topic and chapters in some groups are more closely coupled than others. Some readers may choose to read specific topics or decide on different starting points. For example, those who are not interested in quality definitions, process models, and measurement fundamentals discussions can start with Chapter 4, Software Quality Metrics Overview. Those who intend to immediately get to the central topics of defect removals, metrics and models for quality planning, and management and projection can start with Chapter 6, Defect Removal Effectiveness. In general, I recommend that the chapters be read in groups, as follows.

  • Chapters 1 through 3
  • Chapter 4
  • Chapter 5
  • Chapters 6 through 10
  • Chapters 11 and 12
  • Chapters 13 and 14
  • Chapters 15 through 18
  • Chapter 19

0201729156P08282002

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)