Session 3 - Defining Software Requirements
Session 3 - Defining Software Requirements
Day 3 Topics
• Difficulties in gathering software requirements
• Requirements Management
using a Traceability Matrix
Software Requirements
The First Step
Collecting Requirements
What customers
want and do ask
What for
customers
want but
don't ask for
What
customers
ask for
What
What customers don't
customers want but
want/need do ask for
The goal of the project is to deliver what the customers need. Thus the goal of
the requirements process is to make "What customers ask for" as close as
possible to "What customers want and need." Each step of the requirements
gathering process refines the project teams' knowledge so that they ask the
right questions and listen to the answers.
Defining the requirements for a product is a process of exploration and
refinement. Each step produces a better approximation of what the customers
really want. However, it is an almost impossible task to completely identify
all requirements. The project team's task is to get as close as possible in order
to create a product that comes close to satisfying all the key requirements.
It is the nature of technical projects that the problem and the solution are
complex and intertwined. As the solution emerges, the requirements are
clarified and often change.
The specific information gathered for requirements can vary dramatically with
the project type. For example, requirements documentation for connectivity
in an office move includes a server names, connectivity maps, and circuit
capacity. The requirements documentation for an information system
application would include business areas affected, user scenarios, data for
reports, etc. In both cases, this is the information needed to design the
solution.
Software Project Management Session 3: Defining Software Requirements
Requirements Difficulties
• Missing information
• Ambiguous words
• Extraneous elements
• Different interpretations
• Locking onto an implementation too early
• Analysis paralysis
NOTES:
Incomplete and ambiguous requirements are a major source of software project
problems. Sources of requirements ambiguities include:
• Unclear and incomplete problem statements
• Ambiguous wording
• Unclear context
• Human error
- Observational errors
- Recall errors
- Interpretation
• Rushing to a solution
• Assumptions
A good requirements process gathers just enough information of the appropriate type
at each point in the process.
According to Barry Boehm, in "Software Engineering Economics," the relative cost
to fix an error grows from a value of 1 at Requirements to from 40 - 1000 in
Operation. It makes good business sense to do a good job of collecting and verifying
requirements early.
Software Project Management Session 3: Defining Software Requirements
Requirements Documentation
NOTES:
Why create written requirements documentation?
• Written documentation extends what the mind can grasp and remember;
• It gives the same story to all team members;
• It provides information for new members who join the project; and,
• It helps the writer to better understand the problem.
Two of the Standish Group "CHAOS Ten" factors have to do with good
documentation of business objectives and clear requirements. Appropriate
requirements documentation provides several specific benefits:
• Establishes the basis for agreement between the customers and the suppliers
on what the solution is to do.
• Reduces the development effort. The requirements process ensures that the
various concerned groups in the customer's organization consider
rigorously all of the requirements before design begins, thus reducing later
re-work and re-testing.
• Reveals omissions, misunderstandings, and inconsistencies early in the
development cycle when these problems are easier to correct.
• Provides a basis for estimating costs and schedules. The description of the
solution to be developed is a realistic basis for estimating project costs and
schedules.
• Provides a baseline for validation and verification. The requirements
provide a baseline against which project success can be measured.
• Serves as a basis for enhancement. The requirements documentation serves
as a basis for later enhancements to the finished solution.
Software Project Management Session 3: Defining Sr;JftwareRequirements
Levels of Requirements
• User Interviews
• Business Context Diagrams
• System Context Diagrams
The business requirements establish a firm foundation in the current and proposed
business process and the overall architecture of the solution. Business
requirements build on the analysis performed as part of a market analysis or
feasibility study in addition to the Problem/Opportunity analysis performed for
the Project Charter.
User interviews at many levels are required to capture and understand the business
requirements. Executive interviews help to establish the overall interactions.
Interviews with middle managers and end users present the detailed view of the
business requirements.
Business requirements are often best expressed using graphical tools that present a
"birds-eye" view of the process. Business Context diagrams present such a view
of the business interactions. System Context diagrams present a "birds-eye" view
of the system interactions.
Business-requirements must be presented in the language of the end user, avoiding
use of technical terms. The purpose of gathering business requirements is to gain
a thorough enough understanding of the problem/opportunity and the business
area to assist the users in specifying the functional and technical requirements for
the most appropriate technology solution.
Business requirements describe what the users need to do to perform the tasks
which will ultimately be automated or supported by the information technology.
Software Project Management Session 3: Defining Software Requirements
Context-free Questions*
Context free questions are posed early in the project to obtain information about global properties
of the problem and potential solutions. Many of these questions may have been asked as part of
the ITB Project Initiation phase. However, they may also be appropriate for interviews at the
beginning of the approach phase. Context -free questions apply no matter what the solution is to
be. In terms of project decisions, these questions help ensure that we are on the right limb instead
of "out on a limb."
Clearly determining the context early in the process helps avoid hearing this:" Oh, we thought
you knew that. We always do it that way!"
The answers to the process questions help determine the approach and who is involved in the
project. The answers to the product questions help establish boundary conditions for the
requirements. The meta questions help understand the value of the interview and may uncover
hidden problems early in the project.
Process Questions
Who is the customer?
What is a highly successful solution really worth to this client?
What is the real reason for wanting to solve this problem?
Should we use a single design team, or more thim one?
Who should be on the team(s)?
How much time do we have for this project?
What are the tradeoffs?
Where else can the solution to this problem be obtained?
Can we copy something that already exists?
Product questions
What problems does this product solve?
What problems could this product create?
What environment is this product likely to encounter?
What kind of precision is required or desired in this product?
Meta questions
Am I asking you too many questions?
Do my questions seem relevant?
Are you the right person to answer these questions?
Are your answers official?
*Adapted from "Exploring Requirements" by Donald Gause & Gerald Weinberg
Software Project Management Session 3: Defining Software Requirements
Assignments
"'''T
comPleled~Mana~:ment
Request for
Priority
Business Context diagrams can be used to show the current and proposed
interactions at a conceptual level. The difference between the two diagrams shows
the business structure changes that will occur as a result of the software project.
In the Service Request example shown, there is no Help Desk in the current
situation. The Help Desk appears in the proposed solution diagram, showing that
this new function will need to be added to the organization.
Software Project Management Session 3: Defining Software Requirements
~-"'
IMana~menll
" ,/
The proposed solution also shows a potential Expert System, the result of the
software project.
Software Project Management Session 3: Defining Software Requirements
OPERATIONS BRANCH
FIS REDESIGN PROJECT
CONTEXT DIAGRAM
REQUESTED
~ REPORT
TIME REPORTING
FIELD • ~ PARAMETERS
INFORMATION
DIVISIONS
!l~A"O'
REQUESTE~
AND FIELD REPORT
PERSONNEL
OFFICES PARAMETERS
TIME REPORTING
INFORMATION
~
UI
WORKLOAD INFORMATION ~
REQUESTED
REPORT
PARAMETERS
BUDGET
ALLOCATIONS EMPLOYEE TIME
TABLE TIME REPORTING
MAINTENANCE REPORTING INFORMATION
INFORMATION INFORMATION
TIME DISTRIBUTION·
PERSONNEL
INFORMATION SYSTEM INFORMATION
This tool shows the existing system and the user interactions with the system, as opposed to the
Business Context diagram which presents a bigger picture view of user interactions with each
other. System context diagrams are useful when the project is replacing or interacting with an
existing information system. Business context diagrams are appropriate when the project is
automating a function which did not exist or had no automation support.
Software Project Management Session 3: Defining Software Requirements
~.~)
ff·
k/
jJ''!h
tf:
Functional requirements contain more detail about how the desired business
process will operate and specifics about what the solution needs to do in order to
support these business processes.
Functional requirements should maintain independence from the solution
implementation. For example, if the system requires secure access to data, then
this requirement is stated in terms of what user classes require access to what data -
- not in terms of what mechanism will be provided to ensure secure access. The
technical requirements and design will define the implementation that meets the
secure data access needs.
(wor~n~ diagrams clarify the details of the business process or <?.fthe ~yslem _
~teractions:-They show the processes and decisions that are required to
accomplish the interactions identified in the Business Context diagrams. Use Case
Scenarios use a standard format to describe the interactions between the users and
the system. The Implementation Checklist ensures that implementation concerns
are not overlOOked)
The Functional Requirements result in a list that includes specific actions that the
system must perform as well as attributes that the system implementation must
possess in order to operate successfully. Examples of such attributes include
response time, data volume, data security, and screen resolution .
.Functional requirements do not specify the exact solution --- they establish
parameters to make sure that the right solution is selected.
Software Project Management Session 3: Defining Software Requirements
A Work Flow diagram can be created directly from a Business Context diagram by
picking a starting point and tracing interactions until all the interactions are
accounted for. Use the following guidelines to create Work Flow diagrams:
• Each column on the Work Flow represents an entity or a user class
identified in the Business Context.
• Each block represents a process owned by the entity in which column it
appears.
• Each diamond represents a decision point, which is the responsibility of the
entity in which column it appears.
• The arrows show flow between the processes. Time progresses from left to
right.
• The diagram should show a continuous work flow from the first transaction
to one or more possible resolutions for the process selected.
• A given Business Context diagram can generate several Work Flow
Diagrams.
Software Project Management Session 3: Defining Software Requirements
SERVICE
REQUEST
TEAM LEADER
This Work Flow diagram shows the detailed interactions between the Help Desk Staff and the Second
Level Support staff who become involved when the Help Desk Staff can't resolve the problem
immediately.
Software Project Management Session 3: Defining Software Requirements
A use case scenario describes a sequence of interactions between the system and an
external actor, and results in the actor accomplishing some task that is part of the
busi~es~ process workflo~. (!he ~ctor can b~ a person, another software
applIcatIOn, or another entIty fhat mteracts WIth the system.
Use cases focus the requirements search on asking the users what they need to do
with the system. According to Karl Weigers in his textbook, "Software
Requirements," this is more effective than the traditional approach of asking users
what they want the system to do for them. It focuses the users' attention on their
actions rather than on the system actions.
Use case modeling is used extensively in object-oriented approaches to software
development. However, this technique can be adapted and used with any software
development approach.
A typical use case scenario contains the topics identified in the following Use Case
Scenario template.
Software Project Management Session 3: Defining Software Requirements
Secondary Actors:
Software Project Management Session 3: Defining Software RequiremenJs
~L</vrJJJ .
l'l
Implementation Constraints Checklist /1
I. • Navigation through the system screens should require no more than three
"- mouse clicks to reach an input screen.
1. USAGE ENVIRONMENT
User constraints
• Computer literacy
• Frequency of use
• Training requirements
• Impact of change on business processes
Operations constraints
• System administrator
• Hours of availability
• Training requirements
Usage medium
• Web-based
• Hard copy
• Graphics
• Interactive displays
• Data transmission and interfaces
Response time
• User maximum wait time
• System timing interactions
• Batch system timing
Frequency of use
• Continuous
• Intermittent
Currency of data
• Is immediate update necessary?
• How "old" can the data be and still be useful?
--
Volume
• How many transactions of each type?
• How much data in each?
• What is the distribution of transactions? Any spikes?
• How many simultaneous users?
• How long must data be available?
• Is data archiving necessary?
• Should transactions be batched for processing?
Software Project Management Session 3: Defining Software Requirements
6. RELIABILITY
Up-time requirements
Maximum recovery time allowed
Fault tolerance and failure logging requirements
Technical Requirements
Entities
Entities are represented by rectangles. An entity is an object or concept about which
you want to store information.
Attributes
Attributes are represented by ellipses. An Attribute describes properties or
characteristics of an entity.
Relationships
Relationships are represented by diamonds. A Relationship illustrates how two entities
share information in the database structure.
Cardinality
Cardinality specifies how many instances of an entity relate to one instance of another
entity.
This example, along with other ERD and software diagram examples, can be found on
www.smartdraw.com/resources/ examp les/ software.
Software Project Management Session 3: Defining Software Requirements
il~~~',-
SlbTotal:MOlley
sUsT~y
toto1-_
plonOolnO
"""""'"'0
1
s+t:tf~~;l~~~
10•• "
N"""
Expira~te
{clIdil1tdbc_ pell
••• s1I)ppq;cu1ob)tCIMfOIlly
••• lltcwditcWtcSOCiatedwtthil.
',. credit~D'Upm1'Cbe
thafpttr~~Omen(C
to let lbtal&bull ,t<m
CC'li~eloacW1th
·~n1lt'Ul1tClI!lIer~D..
-""""
P,rlJtlit:M<mey
tdciltemO
JaIOWltmO
The object class diagram is used to describe the static structure of a system in terms
of objects and their relationship to each other. Each object is shown with an Object
Name, the data attributes associated with that object, and the procedures that that
object can perform.
Software Project Management Session 3: Defining Software Requirements
This example shows the interfaces and inheritances between the major components
of a system that includes a web browser front-end and several databases.
Additional detail is added during design to create an object model.
Software Project Management Session 3: Defining Software Requirements
This example diagram shows the relationships between screens. It is used to design
the menus and navigation elements.
Software Project Management Session 3: Defining Software Requirements
Customer Survey
Questions - Part II
(;7 Answer
2. Ql.uestion?
il
3. Question?
r Ans"".r
(e' Answer
10. Question?
rAn" .•.", f.' Answer
r Answer r Answer r Answer
r Answer
11. Question?
4. Question? r Answer
r Answer r Answer r Ans,,",lIlr
j;7 Ans ••• r r Answe. Ii' Ans ••••
er
5. Question? r Answer
This web interface mock-up shows users the interface used to collect survey
answers.
Software Project Management Session 3: Defining Software Requirements
Example input screens, query screens, and reports are essential for presenting the
technical requirements for end user approval. These screens and reports help to
identify the data which must be kept in the system and clarify how it will be
presented. This information is used to create the data model for the system.
This is an example input screen from the Help Desk/Service Request project.
Software Project Management Session 3: Defining Software Requirements
This example query screen shows a data area as well as navigation elements
including menus and tabs.
Software Project Management Session 3: Defining Software Requirements
The Requirements Traceability Matrix is a linked list that tracks all logical and
physical requirements back to the business need and forward to the module
design and test cases. It performs several functions as the project proceeds. The
Requirements Traceability Matrix:
• Ensures that when requirements change, their related requirements can be
investigated to see if they are affected and also need changing;
• Ensures that the solution is based on what was required, and that what is
designed can be traced back to overall objectives and specific
requirements, and,
• Is used by project management, vendors, designers, developers,
acceptance testers and business owners to verify that the requirements are
met.
" Software Project Management Session 3: Defining Software Requirements
The system modules that fulfill the requirement are identified during the Design
phase and are completed at that time, as are the specific test cases that validate the
required feature.
3.
4.
5.
,---.
Software Project Management Session 3: Defining Software Requirements
----------------------------------------
• Business Requirements
• Functional Requirements
~ Logical Requirements
~ Physical Constraints
• Technical Requirements
• Requirements Traceability Matrix