You are on page 1of 18

Requirements Collection

By Dr. Gabriel
Requirements
• A requirement is any function, constraint, or property that
the system must provide, meet, or satisfy in order to fulfill
its purpose.
• Requirements may be separated into two broad
categories, functional and non-functional
– A functional requirement is a function that the system must perform.
• Summarize Sales
• Create Paychecks
• Receive Shipment
– A non-functional requirement is a characteristic or constraint that might limit our
choice of technology when we implement one or more functional requirements.
• Availability
– Users must be able to access the system twenty fours hours per day.
• Capacity/Performance
– The system must be able to handle a peak load of thirty simultaneous
users with no more than five second response time.
• Time
– The system must be implemented by December 31, XXXX.
Requirements
• Requirements may be placed in two other
categories that are useful to designers and builders.
– Priority
• Mandatory
– The system will not be useful unless the requirement is met.
• Desirable
– The system will be more useful if the requirement is met. The
requirement must be considered when alternative solutions are
evaluated.
• Optional
– The system might be more useful if the requirement is met but
the requirement should not be considered when alternative
solutions are evaluated.
– Stability
• Stable
– The requirement is not likely to change over the useful life of
the system.
• Volatile
– It is very likely that the requirement will change over the useful
life of the system.
Requirements
• Requirements must be:
– Correct
• A requirement is correct if it describes something that a system must do or a
constraint on the way it must be done.
– Complete
• A requirement is complete to the extent that all parts are present and each
part is fully developed. The requirement set is complete if it contains all of
the complete requirements.
– Consistent
• A requirement is consistent if it does not conflict with another requirement.
– Nonambiguous
• A requirement is non-ambiguous if there is only one interpretation of its
meaning
– Verifiable
• A requirement is verifiable if and only if there is a finite cost effective process
that a person or machine can use to check that the as built system meets
the requirement. (Ambiguous and qualitative (subjective) requirements are
not verifiable)
– Traceable
• An analysis requirement is traceable if it can be traced backward to a
feasibility study, a white paper, meeting notes, or an interview.
Requirements Elicitation
Techniques
• Collaborative sessions
• Interviewing
• Ethnography
• Questionnaires
• Role playing
• Documentation
• Modeling
• Prototyping
Requirements Elicitation
Techniques
• Collaborative sessions
– Primarily useful for brainstorming and problem
solving activities
– It is a useful technique
– Useful for identifying and negotiating conflicts
that might exist between requirements.
Requirements Elicitation
Techniques
• Interviewing techniques
– Are one of the simplest methods of requirements
elicitation.
– Most effective methods of requirements elicitation.
– Interviews can either be structured around a specific
set of questions, or open-ended with the intention of
gathering as much useful information as possible.
– It is often beneficial to combine both techniques in a
single interview.
– Interviews are often conducted in stages, so that
responses from the first round can be used to
generate a deeper set of more focused questions for
the second round.
Requirements Elicitation
Techniques
• Ethnography
– Involves observing the way users interact with
an existing system.
– This is particularly useful when users are
unable to fully articulate their needs, or are
too busy to attend other types of elicitation
meetings.
Requirements Elicitation
Techniques
• Questionnaires
– Can be useful if it is possible to formulate a very
specific set of questions.
– This usually is only possible when the problem is
quite well defined up front.
– Tend to be used more frequently in the form of market
research surveys when developing a product for an
external client, or to elicit a general response from a
targeted group of stakeholders such as the users of
an existing system.
Requirements Elicitation
Techniques
• Role-playing
– Can be used to explore stakeholders needs
when those stakeholders are unavailable.
– This is particularly useful for example if you
are developing a product that will be mass
marketed and you don’t know who the actual
users will be.
Requirements Elicitation
Techniques
• Documentation
– Can provide significant insights into possible
requirements.
• Problem reports
• Memos
• User manuals from existing systems
• Existing designs and specifications
• Reports output from existing systems
• Documentation from competitors’ products
Requirements Elicitation
Techniques
• Modeling
– Can be used during the elicitation process primarily
as a means of communicating back to the user the
specific understanding of their needs.
• Data flow diagrams (DFD),
• State charts
• Use cases and sequence diagrams
– A model is useful during elicitation if it helps the
elicitor to figure out which questions to ask, or if it
surfaces hidden requirements.
– In general, formal models are not that useful during
the elicitation process primarily because they are
typically not well understood by stakeholders.
Requirements Elicitation
Techniques
• Prototyping
– is a useful technique for taking an early set of
user requirements and rapidly building a
‘system’ that can be used to elicit additional
requirements.
– There are various types of prototypes.
• Low fidelity models are built with pen and paper,
index cards, and post it notes etc.
– very little cost.
• Higher fidelity prototypes, that utilize rapid
development techniques to deliver a semi-
functioning product to the user
Requirements
• Requirements document states what the system will do.
– It does not state how the system will do it.
– Makes sure system does the right things
– Makes sure system doesn’t do the wrong things
• It’s a written document
• The main purpose of a requirements document is to
serve as an agreement between the developers and the
users/customers on what the system will do.
• The requirements document brings the following
additional benefits:
– the customers can see early on if their needs will be met
– the developers can estimate the effort involved in creating the
application
– the development project leader has a basis for a project plan
– the quality assurance people have a basis for testing the application
Requirements
• Take iterative approach when writing
requirements document
• When you are collecting requirements it is very
important to verify all of the facts by interviewing
customers with differing points of view
• users and management
• users in different parts of the organization; etc.
• Remember that different people in the same
position and especially people in different positions
have a different view of the business needs and
business practices as far as your application is
concerned.
Requirements
– A requirements document should include requirements that meet
all characteristics of requirements. In addition, a requirements
document should be:
• Understandable
– A requirements document is understandable if it can be
read and understood by those who were the source of
the requirements and those who will use the
requirements to create the system.
• Modifiable
– A requirements document is modifiable if its structure
and style are such that changes to the requirements can
be made easily, completely, and consistently.
• Annotated
– A requirements document is annotated if the relative
priority and stability is appended to each requirement.
Requirements
• Each requirements document
consists of at least two parts
– An overview
– A description of the system’s functionality.
• You must continue updating the
document as the requirements
evolve.
Questions ?

You might also like