Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Software Requirements, Second Edition
SPECIAL OFFER: Upgrade this ebook with O’Reilly
Preface
Benefits This Book Provides
Who Should Read This Book
Looking Ahead
Case Studies
From Principles to Practice
Acknowledgments
I. Software Requirements: What, Why, and Who
1. The Essential Software Requirement
Software Requirements Defined
Some Interpretations of Requirement
Levels of Requirements
What Requirements Are Not
Requirements Development and Management
Requirements Development
Requirements Management
Every Project Has Requirements
When Bad Requirements Happen to Nice People
Insufficient User Involvement
Creeping User Requirements
Ambiguous Requirements
Gold Plating
Minimal Specification
Overlooked User Classes
Inaccurate Planning
Benefits from a High-Quality Requirements Process
Characteristics of Excellent Requirements
Requirement Statement Characteristics
Complete
Correct
Feasible
Necessary
Prioritized
Unambiguous
Verifiable
Requirements Specification Characteristics
Complete
Consistent
Modifiable
Traceable
2. Requirements from the Customer’s Perspective
Who Is the Customer?
The Customer-Development Partnership
Requirements Bill of Rights for Software Customers
Right #1: To Expect Analysts to Speak Your Language
Right #2: To Have Analysts Learn About Your Business and Objectives
Right #3: To Expect Analysts to Write a Software Requirements Specification
Right #4: To Receive Explanations of Requirements Work Products
Right #5: To Expect Analysts and Developers to Treat You with Respect
Right #6: To Hear Ideas and Alternatives for Requirements and Their Implementation
Right #7: To Describe Characteristics That Make the Product Easy to Use
Right #8: To Be Given Opportunities to Adjust Requirements to Permit Reuse
Right #9: To Receive Good-Faith Estimates of the Costs of Changes
Right #10: To Receive a System That Meets Your Functional and Quality Needs
Requirements Bill of Responsibilities for Software Customers
Responsibility #1: To Educate Analysts and Developers About Your Business
Responsibility #2: To Spend the Time to Provide and Clarify Requirements
Responsibility #3: To Be Specific and Precise About Requirements
Responsibility #4: To Make Timely Decisions
Responsibility #5: To Respect a Developer’s Assessment of Cost and Feasibility
Responsibility #6: To Set Requirement Priorities
Responsibility #7: To Review Requirements Documents and Evaluate Prototypes
Responsibility #8: To Promptly Communicate Changes to the Requirements
Responsibility #9: To Follow the Development Organization’s Change Process
Responsibility #10: To Respect the Requirements Engineering Processes the Analysts Use
What About Sign-Off?
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
4. The Requirements Analyst
The Requirements Analyst Role
The Analyst’s Tasks
Essential Analyst Skills
Essential Analyst Knowledge
The Making of an Analyst
The Former User
The Former Developer
The Subject Matter Expert
Creating a Collaborative Environment
II. Software Requirements Development
5. Establishing the Product Vision and Project Scope
Defining the Vision Through Business Requirements
Conflicting Business Requirements
Business Requirements and Use Cases
Vision and Scope Document
1. Business Requirements
1.1. Background
1.2. Business Opportunity
1.3. Business Objectives and Success Criteria
1.4. Customer or Market Needs
1.5. Business Risks
2. Vision of the Solution
2.1. Vision Statement
2.2. Major Features
2.3. Assumptions and Dependencies
3. Scope and Limitations
3.1. Scope of Initial Release
3.2. Scope of Subsequent Releases
3.3. Limitations and Exclusions
4. Business Context
4.1. Stakeholder Profiles
4.2. Project Priorities
4.3. Operating Environment
The Context Diagram
Keeping the Scope in Focus
6. Finding the Voice of the Customer
Sources of Requirements
User Classes
Finding User Representatives
The Product Champion
External Product Champions
Product Champion Expectations
Multiple Product Champions
Selling the Product Champion Idea
Product Champion Traps to Avoid
Who Makes the Decisions?
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 You’re Done?
8. Understanding User Requirements
The Use-Case Approach
Use Cases and Usage Scenarios
Identifying Use Cases
Documenting Use Cases
Use Cases and Functional Requirements
Use Cases Only
Use Cases and SRS
SRS Only
Benefits of Use Cases
Use-Case Traps to Avoid
Event-Response Tables
9. Playing by the Rules
The Rules of the Business
Facts
Constraints
Action Enablers
Inferences
Computations
Documenting Business Rules
Business Rules and Requirements
10. Documenting the Requirements
The Software Requirements Specification
Labeling Requirements
Sequence Number
Hierarchical Numbering
Hierarchical Textual Tags
Dealing with Incompleteness
User Interfaces and the SRS
A Software Requirements Specification Template
1. Introduction
1.1. Purpose
1.2. Document Conventions
1.3. Intended Audience and Reading Suggestions
1.4. Project Scope
1.5. References
2. Overall Description
2.1. Product Perspective
2.2. Product Features
2.3. User Classes and Characteristics
2.4. Operating Environment
2.5. Design and Implementation Constraints
2.6. User Documentation
2.7. Assumptions and Dependencies
3. System Features
3.x. System Feature X
3.x.1. Description and Priority
3.x.2. Stimulus/Response Sequences
3.x.3. Functional Requirements
4. External Interface Requirements
4.1. User Interfaces
4.2. Hardware Interfaces
4.3. Software Interfaces
4.4. Communications Interfaces
5. Other Nonfunctional Requirements
5.1. Performance Requirements
5.2. Safety Requirements
5.3. Security Requirements
5.4. Software Quality Attributes
6. Other Requirements
Appendix A: Glossary
Appendix B: Analysis Models
Appendix C: Issues List
Guidelines for Writing Requirements
Sample Requirements, Before and After
The Data Dictionary
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
12. Beyond Functionality: Software Quality Attributes
Quality Attributes
Defining Quality Attributes
Attributes Important to Users
Attributes Important to Developers
Performance Requirements
Defining Nonfunctional Requirements By Using Planguage
Attribute Trade-Offs
Implementing Nonfunctional Requirements
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
14. Setting Requirement Priorities
Why Prioritize Requirements?
Games People Play with Priorities
A Prioritization Scale
Prioritization Based on Value, Cost, and Risk
15. Validating the Requirements
Reviewing Requirements
The Inspection Process
Participants
Inspection Roles
Entry Criteria
Inspection Stages
Exit Criteria
Defect Checklists
Requirements Review Challenges
Testing the Requirements
Defining Acceptance Criteria
16. Special Requirements Development Challenges
Requirements for Maintenance Projects
Begin Capturing Information
Practice New Requirements Techniques
Follow the Traceability Chain
Update the Documentation
Requirements for Package Solutions
Develop Use Cases
Consider Business Rules
Define Quality Requirements
Requirements for Outsourced Projects
Requirements for Emergent Projects
Casual User Requirements Specification
On-Site Customer
Early and Frequent Prioritization
Simple Change Management
17. Beyond Requirements Development
From Requirements to Project Plans
Requirements and Estimation
Requirements and Scheduling
From Requirements to Designs and Code
From Requirements to Tests
From Requirements to Success
III. Software Requirements Management
18. Requirements Management Principles and Practices
The Requirements Baseline
Requirements Management Procedures
Requirements Version Control
Requirement Attributes
Tracking Requirements Status
Measuring Requirements Management Effort
19. Change Happens
Managing Scope Creep
The Change-Control Process
Change-Control Policy
Change-Control Process Description
1. Introduction
2. Roles and Responsibilities
3. Change-Request Status
4. Entry Criteria
5. Tasks
6. Verification
7. Exit Criteria
8. Change-Control Status Reporting
Appendix: Data Items Stored for Each Request
The Change Control Board
CCB Composition
CCB Charter
Making Decisions
Communicating Status
Renegotiating Commitments
Change-Control Tools
Measuring Change Activity
Change Isn’t Free: Impact Analysis
Impact Analysis Procedure
Impact Analysis Report Template
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?
21. Tools for Requirements Management
Benefits of Using a Requirements Management Tool
Requirements Management Tool Capabilities
Implementing Requirements Management Automation
Selecting a Tool
Changing the Culture
Making Requirements Management Tools Work for You
IV. Implementing Requirements Engineering
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
Assess Current Practices
Plan Improvement Actions
Create, Pilot, and Implement New Processes
Evaluate Results
Requirements Engineering Process Assets
Requirements Development Process Assets
Requirements Management Process Assets
Requirements Process Improvement Road Map
23. Software Requirements and Risk Management
Fundamentals of Software Risk Management
Elements of Risk Management
Documenting Project Risks
Planning for Risk Management
Requirements-Related Risks
Requirements Elicitation
Requirements Analysis
Requirements Specification
Requirements Validation
Requirements Management
Risk Management Is Your Friend
Epilogue
A. Current Requirements Practice Self-Assessment
B. Requirements and Process Improvement Models
The Capability Maturity Model for Software
CMMI-SE/SW
Requirements Management Process Area
Requirements Development Process Area
C. Requirements Troubleshooting Guide
Root Cause Analysis
Common Symptoms of Requirements Problems
Common Barriers to Implementing Solutions
D. Sample Requirements Documents
Vision and Scope Document
1. Business Requirements
1.1. Background, Business Opportunity, and Customer Needs
1.2. Business Objectives and Success Criteria
1.3. Business Risks
2. Vision of the Solution
2.1. Vision Statement
2.2. Major Features
2.3. Assumptions and Dependencies
3. Scope and Limitations
3.1. Scope of Initial and Subsequent Releases
3.2. Limitations and Exclusions
4. Business Context
4.1. Stakeholder Profiles
4.2. Project Priorities
Use Cases
Software Requirements Specification
1. Introduction
1.1. Purpose
1.2. Project Scope and Product Features
1.3. References
2. Overall Description
2.1. Product Perspective
2.2. User Classes and Characteristics
2.3. Operating Environment
2.4. Design and Implementation Constraints
2.5. User Documentation
2.6. Assumptions and Dependencies
3. System Features
3.1. Order Meals
3.1.1. Description and Priority
3.1.2. Stimulus/Response Sequences
3.1.3. Functional Requirements
3.2. Create, View, Modify, and Delete Meal Subscriptions
3.3. Register for Meal Payment Options
3.4. Request Meal Delivery
3.5. Create, View, Modify, and Delete Cafeteria Menus
4. External Interface Requirements
4.1. User Interfaces
4.2. Hardware Interfaces
4.3. Software Interfaces
4.4. Communications Interfaces
5. Other Nonfunctional Requirements
5.1. Performance Requirements
5.2. Safety Requirements
5.3. Security Requirements
5.4. Software Quality Attributes
Appendix A: Data Dictionary and Data Model
Appendix B: Analysis Models
Business Rules
Glossary
References
Karl E. Wiegers
Index
SPECIAL OFFER: Upgrade this ebook with O’Reilly
← Prev
Back
Next →
← Prev
Back
Next →