Requirements Analysis: ©ian Sommerville 2000 Software Engineering, 6th Edition. Chapter 5 Slide 1
Requirements Analysis: ©ian Sommerville 2000 Software Engineering, 6th Edition. Chapter 5 Slide 1
Functional requirements
• Statements of services the system should provide, how the system
should react to particular inputs and how the system should behave
in particular situations.
Non-functional requirements
• constraints on the services or functions offered by the system such
as timing constraints, constraints on the development process,
standards, etc.
Model Validation Examine any analysis models with the user representatives,
perhaps by walking through test cases, to see if a system based on
those models would let the users perform their necessary activities.
Alignment Check to see if the defined set of requirements would likely achieve
the project’s business objectives. Look for alignment between the
business requirements, user requirements, and functional
requirements.
Templates Make sure that each section of the SRS template has been
populated. Alternatively, look for an indication that certain
sections do not apply to this project. Common oversights are
quality requirements, constraints, and assumptions.
Verifiability Determine how you would judge whether each requirement was
properly implemented. User acceptance criteria are helpful for
this.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 18
Identification of
Performance and
Safety Requirements
Requirement Analysis:
“What” and “How”
• What is it?
The process by which customer needs are
understood and documented.
Expresses “what” is to be built and NOT
“how” it is to be built.
Example 1:
The system shall allow users to withdraw cash.
[What2:?]
Example
A sale item’s name and other attributes will be
stored in a hash table and updated each time
any attribute changes. [How?]
22
C- and D-Requirements
23
• Performance. Provision is made for specific
performance requirements to be specified in
conjunction with associated functional requirements,
but not all performance requirements can necessarily
be specified conveniently in that way. (Note that there
may also be specific functional requirements for
performance monitoring and tuning facilities:
Performance Requirements:
• The extent to which mission/function must be executed.
• Generally measured in terms of Quantity, Quality,
Coverage, Timeliness or Readiness i.e, Speed, accuracy,
frequency, throughput.
• How well it has to be done.
• Will be done interactively developed across all identified
functions based on system life cycle factors.
• Characterized by degree of certainty in their estimate,
degree of criticality to system success and their relation
to other requirements.
How to do it?
Requirements analysis
Stakeholder identification
Stakeholders are persons or organizations
(legal entities such as companies, standards
bodies) which have a valid interest in the
system.
Other stakeholders will include:
• anyone who operates the system (normal
and maintenance operators)
• organizations which regulate aspects of the
system
• anyone who benefits from the system.
• people or organizations opposed to the system
Stakeholder interviews:
Stakeholder interviews are a common technique used in
requirement analysis. These interviews may reveal
requirements not previously envisaged as being
within the scope of the project, and requirements
may be contradictory.
Contract-style requirement lists:
One traditional way of documenting requirements has
been contract style requirement lists. In a complex
system such requirements lists can run to hundreds of
pages.
Measurable goals:
Stakeholders and developers can then devise tests to
measure what level of each goal has been achieved thus
far. Once a small set of critical, measured goals has been
established, rapid prototyping and short iterative
development phases may proceed to deliver actual
stakeholder value long before the project is half over.
Prototypes:
Prototypes help users get an idea of what the system will
look like, and make it easier for users to make design
decisions without waiting for the system to be built.
Major improvements in communication between users
and developers were often seen with the introduction of
prototypes.