Lecture 1. SAD
Lecture 1. SAD
4
The process of writing down the user and system requirements in a
requirements document.
After the gathered requirements are analyzed and has removed all
incompleteness, inconsistencies, and anomalies,
The analyst starts to systematically organize the requirements in the form of an
requirements specification (SRS) document.
SRS document is
the most important document and the toughest to write.
provides the needs of a wide variety of audience/ users.
Three important factors to be considered are:
1. the level of detail
The specification should specify what the system should do rather than how it
should do it.
the specification should ideally be the users’ view of the system rather than
anything about how the system is to be implemented.
2. to whom the document is addressed
the specification has to be understood by two different sets of people – the users
and the developers.
3. the notation used.
to describe the requirement specification to be understood by the users and the
developers.
The users will have a preference for non-technical descriptions expressed in
natural language.
the analysts will probably want to use precise (perhaps mathematical) notation
5
Users of an SRS document
6
Provides a baseline for validation and verification
Facilitates future extensions
Characteristics of a Good SRS Document
IEEE Recommended Practice for Software Requirements
Specifications [IEEE830, 1998]
describes the content and qualities of a good software requirements
specification (SRS).
Some desirable qualities of SRS document are
Concise, unambiguous, consistent, complete
Implementation independent
Traceable
Modifiable
Identification of response to undesired events
verifiable
Attributes of Bad SRS Documents
Try to avoid following problems while writing an SRS document
Over specification
address the “how to” aspects as it restricts the freedom of the designers
E.g., defined records needs to store index on the member’s first name or
memberID
Forward references
should not refer to aspects that are discussed much later in the SRS
document
Wishful thinking
Problems that would be difficult to implement.
Noise
presence of material not directly relevant
Focus of a SRS Document
A requirement specification document contains:
An overview of what the system should do.
A description of the requirements.
A list of the functional requirements.
7
The requirements specification document doesn't contain:
Any information about the algorithms and logic.
Description of the User Interface.
Any detail about data entities.
Meaningless technical specifications.
Poor requirements engineering is one of the reasons why a software
engineering project can fail or produce a highly defective piece of software.
SRS Document
9
Software Requirements Specification
Software system requirements are often classified as
1) functional requirements
2) non-functional requirements
These requirements vary depend on
the type of software being developed,
the expected users of the software, and
the general approach taken by the organization
(1)Functional Requirements
Functional Requirements
These are statements of services the system should provide,
describe what the system should do,
how the system should react to particular inputs, and
how the system should behave in particular situations.
Examples -
Search option given to user to search from various invoices.
User should be able to mail any report to management.
Users can be divided into groups and groups can be given separate rights.
10
Second, try to identify the different services expected from the software by
different types of users.
How to Document the Functional Requirements?
Once all the high-level functional requirements have been identified, a function
can be documented by identifying the state at which
the data is to be input to the system, its input data domain,
the output data domain, and
the type of processing to be carried on the input data to obtain the output data.
Functional requirements are documented in
a numbered list of requirements, shown in example: ATM software.
Each functional requirement should be numbered uniquely and consistently.
Example
the withdraw-cash function of an automated teller machine (ATM)
R.1: Withdraw cash
Description: The withdraw cash function first determines the type of account
that the user has and the account number from which the user wishes to withdraw
cash. It checks the balance to determine whether the requested amount is
11
available in the account. If enough balance is available, it outputs the required
cash, otherwise it generates an error message.
How to Document the Functional Requirements?
When user interaction sequences may vary from one invocation from another
depending on some conditions, these different interaction sequences capture
the different scenarios.
To accurately describe a functional requirement, we must document all the
different scenarios that may occur.
Each high-level function can consist of several sub-requirements.
For example, consider the withdraw-cash function of an automated teller
machine (ATM), the different scenarios occur depending on the amount entered
for withdrawal.
Note: documenting functional requirement in SRS
Each functional requirement should have less than seven (7) sub-functions
requirement.
This would not only enhance the readability of the document, but would also
help in design.
How to Document the Functional Requirements?
Example 1. (Document the functional requirement of withdraw cash from
ATM):
Using IEEE-830, 1998
R.1: Withdraw cash
Description: The withdraw cash function first determines the type of account
that the user has and the account number from which the user wishes to withdraw
cash. It checks the balance to determine whether the requested amount is
available in the account. If enough balance is available, it outputs the required
cash, otherwise it generates an error message.
R.1.1: Select withdraw amount option
Input:
“Withdraw amount” option selected
Output:
User prompted to enter the account type
12
How to Document the Functional Requirements?
Example 1. (Document the functional requirement of withdraw cash from
ATM):
Using IEEE-830, 1998
R.1.2: Select account type
Input:
User selects option from any one of the followings—savings/checking/ deposit.
Output:
Prompt to enter amount
R.1.3: Get required amount
Input: Amount to be withdrawn in integer values greater than 100 and less than
10,000 in multiples of 100.
Output: The requested cash and printed transaction statement.
Processing: The amount is debited from the user’s account if sufficient balance
is available, otherwise an error message displayed.
SRS document - the Black-box Specification of the Software
The SRS document
Should describe the system to be developed as a black box, and
Should specify only the externally visible behavior of the system.
For this reason, the SRS document is also called
the black-box specification of the software being developed.
13
Specification of Large Software
When there are large number of functional requirements (much larger than seen),
should they just be written in a long numbered list of requirements?
A better way to organize the functional requirements would be to split the
requirements into sections of related requirements.
For example, the functional requirements of an academic institute
automation software can be split into sections such as
accounts,
academics,
inventory,
14
Traceability of SRS Document
Traceability means that it would be possible to identify (trace)
the specific design component which implements a given requirement,
the code part that corresponds to a given design component, and
test cases that test a given requirement.
Traceability analysis can also be used to assess the impact of a requirements
change.
That is, traceability makes it easy to identify which parts of the design and code
would be affected, when certain requirement change occurs.
Necessary that each functional requirement should be numbered uniquely and
consistently to refer back to function.
(1)Non-functional Requirements
Non-functional requirements
These are constraints on the services or functions offered by the system as a
whole.
They include timing constraints,
constraints on the development process, and
constraints imposed by standards.
For example-
emergent system properties such as reliability, response time, and memory
use.
15
Constraints on the system implementation such as capabilities of I/O devices or
the data representations used in interfaces
Types of Non-functional Requirements
Non-functional Requirements
Non-functional requirements are divided into two main categories:
1) Execution qualities like security and usability, which are observable
at run time.
2) Evolution qualities like testability, maintainability, extensibility, and
scalability that embodied in the static structure of the software system.
16
Non-functional Requirements Metrics
17
IEEE 830-1998 Standard for SRS Document
The IEEE 830, 1998 standard
A guideline for organization a requirements specification document
into sections
Depending on the type of project, some sections can be omitted,
introduce, or interchanged as may be considered prudent by the
analyst.
However, the three basic issues that any SRS document should
discuss are_
1) Functional requirements,
2)Non-functional requirements, and
3)Guidelines for system implementation
Title of Standard
« IEEE Recommended Practice for Software Requirements Specifications »
Describes the content and qualities of a good software requirements
specification (SRS)
Presents several sample SRS outlines
Objectives
Help software customers to accurately describe what they wish to obtain
18
Help software suppliers to understand exactly what the customer wants
Help participants to:
• Develop a template (format and content) for the software requirements
specification (SRS) in their own organizations
• Develop additional documents such as SRS quality checklists or an SRS
writer’s handbook
IEEE 830-1998 Standard for SRS Document
The IEEE 830, 1998 standard
A guideline for organizing a requirements specification document into sections
Depending on the type of project, some sections can be omitted, introduced, or
interchanged as may be considered prudent
by the analyst.
However, the three basic issues that any SRS document should discuss are—
1) Functional requirements,
2) Non-functional requirements, and
3) Guidelines for system implementation
IEEE 830-1998 Standard – Section 1 of SRS
19
IEEE 830-1998 Standard – Section 2 of SRS
20
IEEE 830-1998 Standard – Section 3 of SRS2
22
The Organization of SRS Document
An in-house software SRS:
The requirements document for this software product will leave out many of
detailed chapters suggested above.
The requirements document can be less detailed and the focus will be on
defining the user requirements and high-level, nonfunctional system
requirements. The system designers and programmers use their judgment to
decide how to meet the outline
user requirements for the system.
An outsource software SRS:
The system is to be developed by a separate company (e.g., through
outsourcing), the system specifications need to be detailed and precise.
A Critical systems SRS:
These systems need detailed requirements because safety and security have to be
analyzed in detail to find possible requirements errors.
23
The Software Requirement Specification Template for project sample
Decision Tree
Figure 1.15 Decision Tree for A library membership management software (LMS) Problem
25
A decision tree gives a graphic view of the processing logic involved in
decision making and the corresponding actions taken.
The edges of a decision tree represent conditions and
the leaf nodes represent the actions to be performed depending on the outcome
of testing the conditions.
Decision table
A decision table shows the decision making logic and the corresponding
actions taken in a tabular or a matrix form.
The upper rows of the table specify the variables or conditions to be evaluated
and
the lower rows specify the actions to be taken when an evaluation test is
satisfied.
A column in the table is called a rule. A rule implies that if a certain condition
combination is true, then the corresponding action is executed.
4. Requirements Validation
The process of checking that requirements define the system that the
customer really wants.
During RE phase:
validation mainly checks consistency between different requirements and
detecting conflicts in the requirements.
During design phase:
26
validation refers back to the specification of the system or software
requirements
During the requirements validation process,
different types of checks should be carried out on the requirements in the
requirements document.
Requirements Validation
Requirements Validation
5. Requirements Change
29
The requirements for large software systems are always changing.
A formal process for making change proposals and linking these to system
requirements, called “requirements management process”
As requirements are evolving, you need to keep track of individual requirements
and maintain links between dependent requirements so that you can assess the
impact of requirements changes.
SUMMARY OF Lecture – 1
30
Requirements for a software system set out what the system should do and
define constraints on its operation and implementation.
The requirements engineering process includes requirements elicitation and
analysis, requirements specification, requirements validation, and requirements
management.
Requirements elicitation and analysis is an iterative process that can be
represented as a spiral of activities— requirements discovery, requirements
classification and organization, requirements negotiation, and requirements
documentation.
Requirements specification is the process of formally documenting the user
and system requirements and creating a software requirements document.
The software requirements document is an agreed statement of the system
requirements. It should be organized so that both system customers and software
developers can use it.
Functional requirements are statements of the services that the system must
provide or are descriptions of how some computations must be carried out.
Non-functional requirements often constrain the system being developed and
the development process being used. These might be product requirements,
organizational requirements, or external requirements. They often relate to the
emergent properties of the
system and therefore apply to the system as a whole.
Requirements validation is the process of checking the requirements for
validity, consistency, completeness, realism, and verifiability.
Requirements management is the process of managing and controlling these
changes. Business, organizational, and technical changes inevitably lead to
changes to the requirements for a software system.
31
report on main feasibility factors such as technical, operational and financial
feasibilities.
Make team presentation for project title and feasibility study in class.
Submit the feasibility study report.
Due date: 2 weeks after this lecture is finished.
Earn points for this assignment – 10 marks (this points count in the project
- 25%)
Each students in team will earn same points if they all participate in
activities.
Team Lab Assignment – 2
Work out the requirement gathering activities using techniques study in the
lectures.
Define the problem description.
Work out the requirement analysis and write a requirement specification
document (SRS).
Make team presentation for project’s requirement specification in class.
Submit the software requirement specification report.
Due date: 2 weeks after the first feasibility study presentation.
Earn points for this assignment – 20 marks (this points count in the project
-25%)
Each students in team will earn same points if they all participate in
activities.
32