Software Requirements Engineering
Software requirements — The basics
What, why, when and who of requirements
What are requirements
Requirements defined
Levels of requirements information
Why are requirements important?
Why are requirements important?
Issue: Project failure
Issue: Incomplete requirements
Issue: Lack of user involvement
Issue: Requirements defects
Issue: Requirements churn
Issue: Wasted resources
Issue: Gold plating
Issue: Inaccurate estimates
Benefits of good requirements
When
—
Requirements and the life cycle
When
—
Requirements and the life cycle
Requirements engineering is iterative
Who
—
Requirements stakeholders
“How to” of requirements engineering
Standards and models related to requirements
SEI CMM® and CMMI SM
SEI CMM® and CMMI SM
Requirements management process area
Requirements development process area
Generic practices
IEEE software engineering standards
ISO 9000:2000 on requirements
Requirements engineering process
Requirements engineering process
Incremental requirements development
Requirements engineering context
Requirements elicitation
Business level requirements
Purpose of business level requirements
The idea!
Vision statement
Vision statement
—
Example
Vision statement
—
Exercise
Defining business objectives
Business objectives
—
Examples
Characteristics of “good” business objectives
Product scope and limitations
Product context diagram
Product context diagram
—
Exercise
Stakeholders
Stakeholder defined
Benefits of identifying stakeholders
Step 1: Identifying stakeholders
User types
Step 2: Prune the stakeholder list
Step 3: Participation strategy
Identify stakeholders
—
Exercise
Stakeholder conflict management
Decision criteria alternatives
Customer’s bill of rights
Customer’s bill of responsibilities
Requirements elicitation techniques
Direct-two-way communications
Before the interview
Open-ended questions
Context-free questions
During the interview
Listening actively
Interviewing tips
After the interview
Focus groups
Focus group meeting
Focus group
—
Exercise
Facilitated requirements workshop
Benefits of facilitated requirements workshops
Facilitator do’s and don’ts
Documentation studies
Other requirements elicitation techniques
Requirements analysis
Requirements modeling
Requirements modeling
Benefits of models
Types of models
Object oriented models
Use cases
Step 1-3: Use case diagram
Step 4: Develop a use case for each interaction
Use case steps
Use case exercise
Other use case information
Class diagram
Sequence diagram
Sequence diagram
—
Exercise
Activity network
Structured analysis models
Data flow diagram
Entity relationship diagram
State transition diagram
State transition table
Other models
Process flow diagram
Decision tree
Event/response table
Event/response table
—
Exercise
Identifying product requirements
Levels of requirements information
Use case -> Functional requirements
Use case -> Functional requirements
—
Example
Data requirements
Data requirements
—
CURDL
Use case -> Nonfunctional requirements
Quality attributes
Usability requirements
—
Examples
Measurable nonfunctional requirements
Use case diagram -> External interface requirements
Product requirements
—
Exercise
Class diagrams -> Product requirements
Data flow diagrams -> Product requirements
Prototyping
Prototype
Prototyping suggestions
Prioritizing requirements
Benefits of prioritizing requirements
Prioritization considerations
Prioritization
—
First pass
Prioritization
—
Second pass
Requirements specification
Concept of operations
Documenting user level requirements
Concept of operations document
Software requirements specification
System requirements
System vs. software requirements
Software requirements specification
Writing "good" requirements
Data dictionary
Data dictionary
Data dictionary notation
Data dictionary
—
Example
Requirements validation
Requirements review
Reviews defined
Cost of rework
Hold many peer reviews
Inspection process
Inspection meeting
Who should inspect requirements
Requirements completeness
Requirements checklist
Requirements checklist
—
Each requirement
Ambiguity
Peer review
—
Exercise
Requirements test planning
Testability
Writing test cases
Test matrix
—
Example
Requirements management
Establishing and maintaining baselines
Baseline defined
Types of baselines
Requirements specification acquisition
Sign-off
Traceability
Traceability defined
Bi- directional traceability
Benefits of requirements traceability
Traceability matrix
Traceability tagging
Requirements change management
Configuration control procedures
Configuration control process
Approval authority process
Impact analysis
Requirements metrics
Goal/question/metric
Requirements size
Requirements churn
Defect per requirements
Requirements defect backlog
Traceability
Requirements status
Return to Course Description