
Capturing Systems Requirements |
|
Overview
- What is a requirement?
- Needs versus wants
- Functional versus non-functional
- Categories of information
- Function
- Form
- Criteria
- Constraint
- Classes of requirements
- How the requirements process fits into the product/application development lifecycle
- Why it’s important to establish requirements early
- The importance of getting requirements right
- Challenges to creating quality requirements
- Sources of Requirements
- Characteristics of high-quality requirements
- Traceability
- Change management –the key to minimizing scope creep
The Requirements Process
- Elicitation – Who’s got them; how to get them
- Stakeholder analysis
- Identifying internal and external stakeholders
- Conducting stakeholder analysis
- Forming stakeholder classes
- Understanding Personas
- Fact gathering methods: pros, cons, when to use
- Interviewing
- Observation
- Questionnaires
- Research: Studying policies and procedures, results of other studies
- Collaboration methods (JAD, JRP, etc.)
- Interviewing
- Definition -- contrasting interviews with other face-to-face data gathering methods
- The Interview framework – purpose and substance
- Introduction
- Body
- Summary
- Planning the Interview – using the 5 W’s
- Preparation
- The art of questioning
- Devising questions to accomplish the interview objectives
- Effectively using probes
- Techniques to control the Interview
- Documenting the Interview
- Verifying Information using the follow-up memo (email)
Analysis and Specification
- Building the Users' Model
- Developing output mockups or prototypes
- Identifying requirements
- The information model
- Sequence
- Exceptions
- Layout
- Process Modeling
- Data flow diagrams
- Evolution: Resolving Communication Problems
- Uses in the system development method
- External entities-establishing boundaries and interfaces
- Identifying events and triggers
- Constructing context, overview, and detail data flow diagrams
- Identifying appropriate detail level
- Storyboarding
- Capturing and Refining Use Cases
- Creating use cases
- Identifying stakeholders and actors
- Naming and scoping use cases
- Extending use cases
- Verifying use cases with stakeholders
- Capturing Data Requirements
- Developing the conceptual model
- Relational concepts
- Entities
- Attributes
- Associations
- Graphic representation
- Entity-relationship diagrams
- Maintaining the glossary/Use of the data dictionary
- Determining business rules
- The need for specification tools and methods
- User needs vs. technical needs
- An examination of methods
- Process mapping methods
- Transaction Table
- Controls Table
- CRUD Matrix
- Swim-lane Diagrams
- Documenting non-functional requirements using a Requirements Template
- Creating the User Requirements Document (URD)
- Principles of well-formed requirements
- Word sensitivity, syntax and active voice
- Well-formed vs. ill-formed requirements
- Editing and rewriting requirements
- Organizing requirements into a readable document
Validating Requirements
- Achieving well-formed requirements through validation
- Reviewing requirements with walkthroughs
- Verifying requirements with inspections
- Selecting the best validation methods
- Writing test cases
- Defining specific test objectives
- Black box techniques
- Assembling the test cases into test specifications
- Ensuring traceability
- Linking requirements to business needs and to test cases
- Creating a traceability matrix
Management
- Creating the plan
- Creating the task list
- The work breakdown structure
- Creating task estimates
- Matching resources to tasks
- Assigning activities
- Obtaining commitments for outside resources
- Using a network diagram to denote task relationships and dependencies
- Using a GANTT (bar) Chart to show schedule
- Executing the plan – what to do as things happen
- Change management procedure – the key to minimizing scope creep
|