Software Requirements Analysis and Specification
Software Requirements Analysis and Specification
and Specification
As per IEEE, a requirement is
• Functional Requirements
• Non-functional Requirements
• Interface Requirements
• Inverse Requirements
• Design and Constraints Requirements
Functional Requirements –
System
models
Requir ements
document
Requirements Engineering Activities
2. Overall Description
2.1 Product Perspective
2.2 Product functions
2.3 User classes and characteristics
2.4 Operating Environment
2.5 User Environment
2.6 Design/Implementation Constraints
2.7 Assumptions and Dependencies
3. External Interface Requirements
3.1 User Interface
3.2 Hardware Interface
3.3 Software Interface
3.4 Communication Interface
4. System Features
4.1 System Feature A
4.1.1 Description and Priority
4.1.2 Action/Result
4.1.3 Functional Requirement
4.2 System feature B
4.3 System feature C
5. Other Non-Functional Requirements
5.1 Performance Requirements
5.2 Safety Requirements
5.3 Security Requirements
5.4 Software Quality Attributes
5.5 Project Documentation
5.6 User documentation
6. Other Requirements
Appendix A : Terminology/Glossary/Definitions list
Appendix B
Requirements validation
• Concerned with demonstrating that the
requirements define the system that the
customer really wants.
• Requirements error costs are high so
validation is very important
– Fixing a requirements error after delivery may
cost up to 100 times the cost of fixing an
implementation error.
Requirements checking
• Validity. Does the system provide the functions
which best support the customer’s needs?
• Consistency. Are there any requirements
conflicts?
• Completeness. Are all functions required by the
customer included?
• Realism. Can the requirements be implemented
given available budget and technology
• Verifiability. Can the requirements be checked?
Requirements validation techniques
• Requirements reviews
– Systematic manual analysis of the
requirements.
• Prototyping
– Using an executable model of the system to
check requirements.
• Test-case generation
– Developing tests for requirements to check
testability.
Requirements reviews
• Regular reviews should be held while the
requirements definition is being formulated.
• Both client and contractor staff should be
involved in reviews.
• Reviews may be formal (with completed
documents) or informal. Good
communications between developers,
customers and users can resolve problems
at an early stage.
Review checks
• Verifiability -Is the requirement
realistically testable?
• Comprehensibility - Is the requirement
properly understood?
• Traceability - Is the origin of the
requirement clearly stated?
• Adaptability - Can the requirement be
changed without a large impact on other
requirements?
Requirements management
• Requirements management is the process of
managing changing requirements during the
requirements engineering process and
system development.
• Requirements are inevitably incomplete and
inconsistent
– New requirements emerge during the process as
business needs change and a better
understanding of the system is developed;
– Different viewpoints have different requirements
and these are often contradictory.
Requirements change
• The priority of requirements from different
viewpoints changes during the
development process.
• System customers may specify
requirements from a business perspective
that conflict with end-user requirements.
• The business and technical environment
of the system changes during its
development.
Requirements evolution
Initial Changed
understanding understanding
of pr ob lem of prob lem
Initial Changed
requir ements requir ements
Time
Enduring and volatile requirements
• Enduring requirements
Stable requirements derived from the core
activity of the customer organisation. E.g. a
hospital will always have doctors, nurses, etc.
May be derived from domain models
• Volatile requirements.
Requirements which change during
development or when the system is in use. In
a hospital, requirements derived from health-
care policy
Feasibility studies
• All new Information System (IS) should start
with a feasibility study, which
– Gathers information
– Proposes & evaluates alternatives for
computerisation
– Performs cost-benefit analysis
– Establishes priorities
– Presents conclusions
• A feasibility study should answer the
following questions:
Feasibility study
• How does the proposed project contribute to the
overall objectives of the organisation? Does the
system contribute to the overall objectives
• Can the system be implemented using current
technology and within given cost and schedule
constraints?
• Can the system be integrated with other systems
which are already in place?
• What if the system wasn’t implemented?
• What are current process problems?
• Do technical resources exist?
• What is the risk associated with the technology?
Feasibility study
• Is new technology needed? What skills?
• How will the proposed project help?
• Have the benefits identified with the system being
identified clearly?
• What will be the integration problems?
• What facilities must be supported by the system?
• What is the risk associated with cost and schedule?
• What are the potential disadvantages/advantages?
• Are there legal issues?
• Are there issues linked with the fact that this is an
offshore project?
Feasibility studies
• After a feasibility study, management makes
a GO/NO GO decision
– The feasibility study is a management-oriented
activity
– Inputs
• Preliminary business requirements
• Outline description of how the system is intended to
support business processes
– Outputs
• A report that recommends whether or not it is worth
carrying on with the requirement engineering &
system development process.
Four tests for feasibility
• There are four categories of feasibility tests
– Operational feasibility
• How well will solution work in organisation?
• How do people feel about it?
– Technical feasibility
• Practical?
• Expertise?
– Schedule feasibility
• Reasonable timetable?
– Economic feasibility
• Cost-effective?
Operational feasibility: acceptability
– Literature surveys,
– Standards surveys,
– Domain experts’ interviews,
– Industrial data reviews,
– State-of-the-art assessments.
Information Modeling
• Information modeling is a technique for specifying the
data requirements that are needed within the application
domain.
Condition
Stub Rules
Stub
Action Entries
Stub Stub
Decision Table
For example: A bookstore get a trade discount of 25% for order more then 6 books; for
order from libraries and individuals, 5% allowed on orders of 6-19 copies per book
title; 10% on orders for 20-49 copies per book title; 15% on orders for 50 copies or
more per book title.
Complete decision table for payroll system example
Developing Decision Tables
• Process requires the determination of the
number of conditions (inputs) that affect
the decision.
• The set of possible actions (outputs) must
likewise be determined
• The number of rules is computed
• Each rule must specify one or more
actions
Number of Rules
• Each condition generally has two possible
alternatives (outcomes): Yes or No
– In more advanced tables, multiple outcomes for
each condition are permitted
• The total number of rules is equal to
2 no. of conditions
• Thus, if there are four conditions, there will
be sixteen possible rules
Building the Table
• For each rule, select the appropriate
action and indicate with an ‘X’
• Identify rules that produce the same
actions and attempt to combine those
rules; for example:
– Condition 1 Y Y Condition 1 Y
Condition 2 Y N Condition 2 -
Action 1 X X Action 1 X
Cleaning Things Up
• Check the table for any impossible
situations, contradictions, and
redundancies and eliminate such rules
Loyality N N Y Y N N
Card (10%)
Coupon Y N Y N Y N
(20%)
ACTIONS
NO X
DISCOUN
T
20% X
15% X
30% X
10% X
20% X
Importance of Decision Tables
• Aids in the analysis of structured
decisions
• Ensures completeness
• Checks for possible errors (impossible
situations, contradictions, and
redundancies, etc.)
• Reduces the amount of condition testing
that must be done
••if
if driver.age
driver.age << 20
20 and
and
driver.has
driver.has training
training
then
then driver.eligible
driver.eligible == true
true
••if
if driver.age
driver.age << 20
20 and
and
driver.has
driver.has training
training == false
false
then
then driver.eligible
driver.eligible == false
false
••if
if driver.age
driver.age >=>= 20
20
then
then driver.eligible
driver.eligible == true
true
(do
(do not
not care
care about
about training
training for
for this
this
case)
case)