Synopses & Reviews
Without formal, verifiable software requirements—and an effective system for managing them—the programs that developers think they’ve agreed to build often will not be the same products their customers are expecting. In SOFTWARE REQUIREMENTS, Second Edition, requirements engineering authority Karl Wiegers amplifies the best practices presented in his original award-winning text?now a mainstay for anyone participating in the software development process.
In this book, you’ll discover effective techniques for managing the requirements engineering process all the way through the development cycle—including dozens of techniques to facilitate that all-important communication between users, developers, and management. This updated edition features new case examples, anecdotes culled from the author’s extensive consulting career, and specific Next Steps for putting the book’s process-improvement principles into practice. You’ll also find several new chapters, sample documents, and an incisive troubleshooting guide.
Discover how to:
Set achievable expectations for functionality and quality NEW: Incorporate business rules into application development Employ use cases to discover user requirements Arrest creeping requirements and manage change requests NEW: Deal with requirements on maintenance, outsourced, and package solution projects Curb the impulse to “gold-plate” your programs NEW: Grow effective requirements analysts Cut revisions—and costs—dramatically Produce better software!
No matter what kind of software you build, or what your role in the development process, SOFTWARE REQUIREMENTS, Second Edition, delivers expert guidance and field-tested techniques for engineering software
Synopsis
Includes bibliographical references (p. 491-504) and index.
About the Author
Karl E. Wiegers is a leading speaker, author, and consultant on requirements engineering, project management, and process improvement. As Principal Consultant with Process Impact, he conducts training seminars for corporate and government clients worldwide. Karl has twice won the Software Development Productivity Award, which honors excellence in productivity-enhancing products and books.
Table of Contents
Preface; Benefits This Book Provides; Who Should Read This Book; Looking Ahead; Case Studies; From Principles to Practice; Acknowledgments; Part I: Software Requirements: What, Why, and Who; Chapter 1: The Essential Software Requirement; Software Requirements Defined; Requirements Development and Management; Every Project Has Requirements; When Bad Requirements Happen to Nice People; Benefits from a High-Quality Requirements Process; Characteristics of Excellent Requirements; Chapter 2: Requirements from the Customers Perspective; Who Is the Customer?; The Customer-Development Partnership; What About Sign-Off?; Chapter 3: Good Practices for Requirements Engineering; Knowledge; Requirements Elicitation; Requirements Analysis; Requirements Specification; Requirements Validation; Requirements Management; Project Management; Getting Started with New Practices; A Requirements Development Process; Chapter 4: The Requirements Analyst; The Requirements Analyst Role; The Making of an Analyst; Creating a Collaborative Environment; Part II: Software Requirements Development; Chapter 5: Establishing the Product Vision and Project Scope; Defining the Vision Through Business Requirements; Vision and Scope Document; The Context Diagram; Keeping the Scope in Focus; Chapter 6: Finding the Voice of the Customer; Sources of Requirements; User Classes; Finding User Representatives; The Product Champion; Who Makes the Decisions?; Chapter 7: Hearing the Voice of the Customer; Requirements Elicitation; Elicitation Workshops; Classifying Customer Input; Some Cautions About Elicitation; Finding Missing Requirements; How Do You Know When Youre Done?; Chapter 8: Understanding User Requirements; The Use-Case Approach; Event-Response Tables; Chapter 9: Playing by the Rules; The Rules of the Business; Documenting Business Rules; Business Rules and Requirements; Chapter 10: Documenting the Requirements; The Software Requirements Specification; A Software Requirements Specification Template; Guidelines for Writing Requirements; Sample Requirements, Before and After; The Data Dictionary; Chapter 11: A Picture Is Worth 1024 Words; Modeling the Requirements; From Voice of the Customer to Analysis Models; Data Flow Diagram; Entity-Relationship Diagram; State-Transition Diagram; Dialog Map; Class Diagrams; Decision Tables and Decision Trees; A Final Reminder; Chapter 12: Beyond Functionality: Software Quality Attributes; Quality Attributes; Defining Quality Attributes; Performance Requirements; Defining Nonfunctional Requirements By Using Planguage; Attribute Trade-Offs; Implementing Nonfunctional Requirements; Chapter 13: Risk Reduction Through Prototyping; Prototyping: What and Why; Horizontal Prototypes; Vertical Prototypes; Throwaway Prototypes; Evolutionary Prototypes; Paper and Electronic Prototypes; Prototype Evaluation; The Risks of Prototyping; Prototyping Success Factors; Chapter 14: Setting Requirement Priorities; Why Prioritize Requirements?; Games People Play with Priorities; A Prioritization Scale; Prioritization Based on Value, Cost, and Risk; Chapter 15: Validating the Requirements; Reviewing Requirements; Testing the Requirements; Defining Acceptance Criteria; Chapter 16: Special Requirements Development Challenges; Requirements for Maintenance Projects; Requirements for Package Solutions; Requirements for Outsourced Projects; Requirements for Emergent Projects; Chapter 17: Beyond Requirements Development; From Requirements to Project Plans; From Requirements to Designs and Code; From Requirements to Tests; From Requirements to Success; Part III: Software Requirements Management; Chapter 18: Requirements Management Principles and Practices; The Requirements Baseline; Requirements Management Procedures; Requirements Version Control; Requirement Attributes; Tracking Requirements Status; Measuring Requirements Management Effort; Chapter 19: Change Happens; Managing Scope Creep; The Change-Control Process; The Change Control Board; Change-Control Tools; Measuring Change Activity; Change Isnt Free: Impact Analysis; Chapter 20: Links in the Requirements Chain; Tracing Requirements; Motivations for Tracing Requirements; The Requirements Traceability Matrix; Tools for Requirements Tracing; Requirements Traceability Procedure; Is Requirements Traceability Feasible? Is It Necessary?; Chapter 21: Tools for Requirements Management; Benefits of Using a Requirements Managgggggement Tool; Requirements Management Tool Capabilities; Implementing Requirements Management Automation; Part IV: Implementing Requirements Engineering; Chapter 22: Improving Your Requirements Processes; How Requirements Relate to Other Project Processes; Requirements and Various Stakeholder Groups; Fundamentals of Software Process Improvement; The Process Improvement Cycle; Requirements Engineering Process Assets; Requirements Process Improvement Road Map; Chapter 23: Software Requirements and Risk Management; Fundamentals of Software Risk Management; Requirements-Related Risks; Risk Management Is Your Friend; Appendix : Epilogue; Appendix A: Current Requirements Practice Self-Assessment; Appendix B: Requirements and Process Improvement Models; The Capability Maturity Model for Software; CMMI-SE/SW; Appendix C: Requirements Troubleshooting Guide; Root Cause Analysis; Common Symptoms of Requirements Problems; Common Barriers to Implementing Solutions; Appendix D: Sample Requirements Documents; Vision and Scope Document; Use Cases; Software Requirements Specification; Business Rules; Appendix : Glossary; References; Appendix : Karl E. Wiegers;