|
Requirements Management/Engineering
Background
Successful systems are those which meet the needs of the users. Understanding
these needs is becoming more complex as people use systems to solve
increasingly diverse range of problems in constantly changing environments.
In many cases, traditional methods for gathering and managing requirements
are no longer adequate. Studies by the EU have confirmed that requirements
management is one of the most significant problems facing software development
organizations.
To improve the quality of requirements management, requires more formal
methods for understanding the needs and priorities of the users, and
a controlled process for managing these requirements throughout the
development cycle.
What are the benefits of formal requirements management/engineering?
The main benefits of applying formal methods to gathering and managing
user requirements are:
- Improved
quality and completeness of requirements
- Reduced
development costs
- More
focused development strategy
- Less
changes to requirements during development
- Greater
predictability
- Improved
customer satisfaction
- Less
training and maintenance
How
do we achieve these benefits?
- The
improved quality of requirements is achieved through in-depth contextual
analysis of the users, their work and their work environment.
- The
reduced development costs is achieved by using formal methods to prioritize,
validate and specify the user requirements.
- By using
appropriate methods to identify the users needs and priorities we
can develop a more focused development strategy that will deliver
high quality products on schedule.
How
can Insight help you?
We can help you improve the overall quality and effectiveness of
your requirements management by:
- Assessing
the effectiveness of your current requirements management process
- Providing
practical assistance in defining your requirements management
process
- Facilitating
your team in implementing your new requirement management process
- Providing
training and workshops in requirement gathering and management
Requirements Capture and Management Workshops
- Requirements
Capture - Effective methods for gathering user requirement
- Requirements
Prioritization - methods for prioritizing user requirements
Learning Objectives
Upon
completion of this workshop you will be able to:
- Describe
the key elements of an effective requirements management process
using the CMM's Requirements Management Key Process Area
- Define/evaluate
your own process
- Specify,
document and evaluate requirements effectively
- Prioritise
requirements
- Establish
requirements traceability throughout the lifecycle
- Manage
changes to requirements
- Maintain
a consistent set of plans and work products throughout the lifecycle
- Operate
a continuously improving requirements management process
Topics
Covered
Introduction
- Perspectives
on requirements
- Who
needs requirements?
- Who
needs a requirements management process?
Concepts
and Elements of a Requirements Management process
- Where
do requirements come from?
- When
does requirements management take place?
- What
should requirements management achieve?
- Requirements
baselines
- Agreeing
requirements with customer
- Negotiated
commitments
- Managing
changes to requirements
- Consistency
and traceability
Using
the CMM to help define and assess a requirements management process
- Terminology
- Key
practices to implement the process
- Key
practices to institutionalise the process
- Sample
process descriptions
- Steps
to implement and evaluate a requirements management process
Specifying
Individual Requirements
- Using
a template to define each requirement
- Tips
for writing for writing requirement statements
Documenting
Requirements
- Using
Requirements Specification Template to document requirements
- Quality
criteria for documenting requirements
- Sample
Template:
- Purpose
- References
- Reading
Guide
- General
description
- Software
function
- User
Characteristics
- Software
constraints
- Software
future perspectives
- Development
Requirements
- Prerequisites
- Non-technical
requirements
- e.g.
delivery timescales
- Functional
requirements
- Nonfunctional
requirements
- User
Interface requirements
- External
interface requirements
- Usability
requirements
- Communications
interface
- Appendices
Verifying/Validating
Requirements
- Applying
Requirements quality measures
- Using
checklists to validate requirements
- Conducting
Peer reviews/Formal inspections
- Using
Requirements test cases
- Using
low fidelity prototypes to validate requirements
Analyzing
and Prioritizing Requirements
- Structuring
requirements using affinity diagrams
- Prioritizing
requirements
- Preference
matrix
- Ratings
- Resolving
conflicts on requirements needs and priorities
Requirements
traceability
Managing
Requirements Changes
- Who
can raise a change request?
- Where
is the request deposited?
- What
information is required?
- Who
reviews requirement for scope, clarity and completeness?
- Cost/benefit
analysis
- Business/technical
impact and risk analysis
- Approving
the request (Software Change Control Board)
- Communication
and negotiated commitments
- Prioritizing
and scheduling the request - updating the project plan and other
dependent work products
- Tracking
and status
Requirements
Metrics
- Process
measures
- Requirements
measures
Summary
and implementation planning
- A
number of exercises will be performed during the workshop.
Additional
topics
Overview
of requirements elicitation methods
- Proactive
and Reactive methods
- Interviews,
surveys and prototypes
|