Professional Documents
Culture Documents
LECTURE # 10
Requirements VS Design
Iteration between Requirements & Design
Characterization Of Requirements
• Functional Requirements
• Non-Functional Requirements
• Design Constraints
Since now, we've been speaking of these requirements things as features and use cases at a
fairly high level of abstraction. It was sufficient to understand the system at a macro-level view.
Software requirements are those things that the software does on behalf of the user.
The first place to look for Software requirements is around the boundary of the system, in
addition certain characteristics like performance, reliability etc. also needs to be considered.
Davis [1999] suggests that we need five major classes of things in order to
fully describe the behavior of a software system (Figure 1).
Inputs to the system— not only the content of the input but also, as necessary, the
details of input devices and the form, look, and feel of the input.
Outputs from the system— a description of the output devices, such as voice- output or
visual display, that must be supported, by the system.
Functions of the system— the mapping of inputs to outputs, and their various combinations.
As we have seen, requirements tell the developers what their system must do.
But there's a lot of other information that the requirements should not contain, they should avoid
specifying any unnecessary design or implementation details, or testing and information
associated with project management.
The requirements should also exclude information about the system design or
architecture. Otherwise, you may accidentally restrict your team from following
whatever design options make the most sense for your application.
Suppose, for example, that the requirement in Table 1 had been worded like
this: "Trending information will be provided in a histogram report written in
Visual Basic, showing major contributing causes on the x-axis and the
number of defects found on the y-axis" (Figure 2).
Although the reference to Visual Basic appears to be a violation of the recommended guidelines
(because it doesn't represent any input, output, function, or behavioral attribute), it's useful to ask,
"Who decided to impose the requirement that the histogram be implemented in Visual Basic,
and why was that decision made?“
One of the technically oriented members of the group defining the Vision document decided that Visual
Basic should be specified because it is the "best" solution for the problem.
The user may have specified it.
A process or political decision within the development organization may have mandated that all
applications will be developed with Visual Basic. In an effort to prevent its policies from being ignored,
management insists that references to Visual Basic be inserted whenever possible into requirements
documents.
If the customer refuses to pay for a system unless it's written in Visual Basic, the best course
of action is to treat it like a requirement, although we will place it in a special class, called
design constraints.
Nevertheless, it's an implementation constraint that has been imposed on the development
team.
So far, we have treated software requirements, design decisions, and design constraints
as if they were distinct entities. That is, we have stated or implied the following.
This document is a starting point for design and development of the software system.
For the help of natural languages, structured languages can be used to specify
requirements
Historically the most popular technique for documenting requirements was to use natural
language.
This technique was revised and improved and eventually a number of standards developed
for these documents, including IEEE 830 standard for Software Requirements Specification.
It controls the evolution of the system throughout development phase of the project
<Project>
Prepared by <author>
<organization>
<date created>
Revision History
Date Revision Description Author
Mm/dd/yy 1.0 Initial Version Author Name
10
Engr. Ali Javed
Modern SRS Package
26
Table of Contents
1 Introduction
This section should provide an overview of the supplementary specification and
should contain the following subsections
1.1 Purpose
Specify the purpose of this SRS. The document collects and organizes all
the requirements of the system. These include functional requirements,
nonfunctional requirements, and design constraints.
1.2 Scope
State the scope of the document and any systems or subsystems to watch
it applies.
Provide the definitions of all terms, acronyms, and abbreviations required to properly
interpret the specification document. This information may be provided by reference to a
project glossary.
1.4 References
List any assumed factors (as opposed to known facts) that could affect the requirements stated
in the SRS. These could include third-party or commercial components that you plan to
use, issues around the development or operating environment, or constraints.
The project could be affected if these assumptions are incorrect, are not shared, or change.
Also identify any dependencies the project has on external factors, such as software components that
you intend to reuse from another project etc.
3 Actor Survey
This section lists the following information for each actor
The Actor’s name
Brief description of the actors
4 Requirements
Itemize the detailed functional requirements associated with the features of vision document
These are the software capabilities that must be present in order for the user to carry out the
services provided by the feature.
Include how the product should respond to anticipated error conditions or invalid inputs.
Requirements should be concise, complete, unambiguous, verifiable, etc.
Each requirement should be uniquely identified with a sequence number or a meaningful tag of
some kind.
REQ-1:
REQ-2:
4 Requirements
4.2 Non-Functional Requirements
All the non functional requirements associated with the product should be listed
here
The Non- Functional Requirements can be of the following::
Usability
Reliability
Performance
Supportability
Safety
Security
6 Design Constraints
7 Purchased Components
This section describes any purchased components to be used with the system
8 Interfaces
This section may also define requirements for security and accessibility, encryption of
source code or user data, and so on.
11 Applicable Standards
This section includes by reference any applicable standards and the specific
sections of any such standards that apply to the system being built.
Index
The index is provided to assist the reader in locating
the key concepts and topics that occur throughout the
document
Glossary
Define all the terms necessary to properly interpret
the SRS, including acronyms and abbreviations or other
project or company specific terms necessary for the
understanding of this document and the application
Appendixes
It includes the details of use case diagrams (Flow of
events, additional paths, preconditions, post conditions etc.)
Also include other diagrams like ERD diagrams, class
diagrams, state-transition diagrams, Sequence diagrams
etc.