Lecture - III - Sen -_070843
Lecture - III - Sen -_070843
OBJECTIVES
Gain knowledge of requirement analysis
REQUIREMENTS ANALYSIS AND SPECIFICATION
Functional requirements:-
The functional requirements part discusses the functionalities required
from the system. The system is considered to perform a set of high-level
functions {f }. The functional view of the i system is shown in fig. 5.1.
Each function f of the system can be considered as a transformation i
of a set of input data (ii) to the corresponding set of output data (o ). The
user can get some i meaningful piece of work done using a high-level
function.
View of system performing set of functions
Nonfunctional requirements:-
Nonfunctional requirements deal with the characteristics of the system
which cannot be expressed as functions - such as the maintainability of
the system, portability of the system, usability of the system, etc.
Goals of implementation:-
Output: details of the author’s books and the location of these books in
the library
So the function Search Book (F1) takes the author's name and transforms
it into book details.
Functional requirements actually describe a set of high-level
requirements, where each high-level requirement takes some data from
the user and provides some data to the user as an output. Also each high-
level requirement might consist of several other functions.
Documenting functional requirements
For documenting the functional requirements, we need to specify the set
of functionalities supported by the system. A function can be specified
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. Let
us first try to document the withdraw-cash function of an ATM
(Automated Teller Machine) system. The withdraw-cash is a high-level
requirement. It has several sub-requirements corresponding to the
different user interactions. These different interaction sequences
capture the different scenarios.
Example: - Withdraw Cash from ATM
R1: 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.
R1.1 select withdraw amount option
Input: “withdraw amount” option
Output: user prompted to enter the account type
R1.2: select account type
Input: user option
Output: prompt to enter amount
R1.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
Properties of a good SRS
document
The important properties of a good SRS document are the following:
Concise. The SRS document should be concise and at the same time
unambiguous, consistent, and complete. Verbose and irrelevant
descriptions reduce readability and also increase error possibilities.
Structured. It should be well-structured. A well-structured document is
easy to understand and modify. In practice, the SRS document
undergoes several revisions to cope up with the customer requirements.
Often, the customer requirements evolve over a period of time.
Therefore, in order to make the modifications to the SRS document easy,
it is important to make the document well-structured.
Black-box view. It should only specify what the system should do and
refrain from stating how to do these. This means that the SRS document
should specify the external behavior of the system and not discuss the
implementation issues. The SRS document should view the system to be
developed as black box, and should specify the externally visible
behavior of the system. For this reason, the SRS document is also called
the black-box specification of a system.
Conceptual integrity. It should show conceptual integrity so that the
reader can easily understand it.
Response to undesired events. It should characterize acceptable
responses to undesired events. These are called system response to
exceptional conditions.
Verifiable. All requirements of the system as documented in the SRS
document should be verifiable. This means that it should be possible to
determine whether or not requirements have been met in an
implementation.
Problems without a SRS document
Software developers would not know whether what they are developing
is what exactly required by the customer.
Without SRS document, it will be very much difficult for the maintenance
engineers to understand the functionality of the system.
It will be very much difficult for user document writers to write the
users’ manuals properly without understanding the SRS document.
Problems with an unstructured specification
The bottom up design model starts with most specific and basic
components. It proceeds with composing higher level of components by
using basic or lower level components. It keeps creating higher level
components until the desired system is not evolved as one single
component. With each higher level, the amount of abstraction is
increased.
Bottom-up strategy is more suitable when a system needs to be created
from some existing system, where the basic primitives can be used in
the newer system.
Both, top-down and bottom-up approaches are not practical individually.
Instead, a good combination of both is used.
SOFTWARE ANALYSIS & DESIGN TOOLS
Software analysis and design includes all activities, which help the transformation
of requirement specification into implementation. Requirement specifications
specify all functional and non-functional expectations from the software. These
requirement specifications come in the shape of human readable and
understandable documents, to which a computer has nothing to do.
Software analysis and design is the intermediate stage, which helps human-
readable requirements to be transformed into actual code.
Let us see few analysis and design tools used by software designers:
Data Flow Diagram
Data flow diagram is a graphical representation of data flow in an information system. It
is capable of depicting incoming data flow, outgoing data flow and stored data. The DFD
does not mention anything about how data flows through the system.
There is a prominent difference between DFD and Flowchart. The flowchart depicts flow
of control in program modules. DFDs depict flow of data in the system at various levels.
DFD does not contain any control or branch elements.
Types of DFD
Data Flow Diagrams are either Logical or Physical.(read***)
Logical DFD - This type of DFD concentrates on the system process and flow of data in
the system. For example in a Banking software system, how data is moved between
different entities.
Physical DFD - This type of DFD shows how the data flow is actually implemented in
the system. It is more specific and close to the implementation.