Solid Software, 1st edition

  • Shari Lawrence Pfleeger
  • Les Hatton
  • Charles C. Howell

Unfortunately, this item is not available in your country.


The practical guide to evaluating and improving the quality of mission-critical software.

Large software systems will never be perfect, but decision makers need better ways to evaluate and enhance software quality—especially where software is mission critical or used in life-or-death environments. Solid Software presents realistic techniques for analyzing and improving the quality and robustness of any software system or software-intensive product.

Solid Software isn't theoretical: it's a relentlessly practical decision maker's guide to making intelligent, responsible trade-offs that lead to the best software at the best cost.

  • Understand what levels of quality are reasonable to expect at every stage of the software life cycle, including development, deployment, and maintenance
  • Discover the key "design leverage points" that lead to robust software
  • Learn sophisticated new ways to predict software quality and assess systems in production
  • Make the most of hazard analysis, testing, design analysis, reviews, static code analysis, and other techniques
  • Choose the best tools—and use them more effectively

Solid Software draws upon dozens of real-world examples, based on the authors' extensive experience as software quality consultants, and interviews with key software decision makers worldwide. Whether you're a developer, project manager, architect, executive, manager, or regulator, it's your single source for improving software quality—in the real world.

Table of contents

(Note: Each chapter concludes with section on References.)

1. Why Is This Book Needed?

Software: The Universal Weak Link? Why Is This So Hard? Solid, Survivable Software. Surviving a Software Project. The Road Ahead.

2. Defining Quality: What Do You Want?

Five Views of Quality. Risky Business. Risk and Quality. Consequences of Failure. Rules of the Road.

3. Hazard Analysis.

The Rewards of Caution. What is Hazard Analysis? HAZOP. Fault-Tree Analysis. Failure Modes and Effects Analysis. How to Describe Problems. Planning for Hazard Analysis. For Additional Information.

4. Testing.

Types of Faults. Testing Strategies. Test Cases and Results. Who Should Test? Automated Testing Tools. Testing: Good and Bad. How Much Testing Is Enough? Assessing Testing Risk and Trade-offs.

5. Software Design.

The Audience for Design. The Meaning of Good Design. Issues to Consider in Good Design. Design Leverage Points.


Predicting Software Characteristics. Predicting Effort. Evaluating Mode Accuracy. Predicting and Evaluating Return on Investment. Predicting and Managing Risk.

7. Peer Reviews.

What Is a Review? Review Effectiveness. Product Inspection. Process Improvement. How to Improve Review Results: The Psychological Basis. Automating the Review Process. Pitfalls of the Review Process. The Role of Checklists.

8. Static Analysis.

Static Fault versus Dynamic Failure. When Faults Cause Failures. Early versus Late Detection. Measurements for Static Analysis. Coverage: How Much is Enough? Approaches to Static Analysis. Static Noise.

9. Configuration Management.

Constant Change. Worth the Effort? Getting Control. Versions, Releases, and the Challenge of Commercial Components. The Fur Facets of SCM. Applying the Principles: Regression Testing. Change Control Boards. Impact Analysis. One Size Does Not Fit All. Tool Support. Begin with the End, but Start Where You Are.

10. Using Appropriate Tools.

How Tools Develop. The Evolution of Software Tools. Tool Properties. The Anatomy of a Valuable Tool. Tool Quality. Tooling and Process. Tooling and the Organization.

11. Trust but Verify.

Where We Are. Learning from Mistakes. The Importance of Being Human. Best Practices. Making Decisions. What's Next?


Published by Pearson (July 2nd 2001) - Copyright © 2002