Principles of Software Requirements Analysis: Unit 2
Principles of Software Requirements Analysis: Unit 2
2.0 Introduction 22
2.1 Objectives 23
2.2 Engineering the Product 23
2.2.1 Requirements Engineering
2.2.2 Types of Requirements
2.2.3 Software Requirements Specification (SRS)
2.2.4 Problems in SRS
2.2.5 Requirements Gathering Tools
2.3 Modeling the System Architecture 26
2.3.1 Elementary Modeling Techniques
2.3.2 Data Flow Diagrams
2.3.3 Rules for Making DFD
2.3.4 Data Dictionary
2.3.5 E-R Diagram
2.3.6 Structured Requirements Definition
2.4 Software Prototyping and Specification 34
2.4.1 Types of Prototype
2.4.2 Problems of Prototyping
2.4.3 Advantages of Prototyping
2.5 Software Metrics 35
2.6 Summary 36
2.7 Solutions/Answers 37
2.8 Further Readings 38
2.0 INTRODUCTION
In the design of software, the first step is to decide about the objectives of software.
This is the most difficult aspect of software design. These objectives, which the
software is supposed to fulfill are called requirements.
Thus, requirements specify “what the system is supposed to do?” These requirements
are taken from the user. Defining the requirements is most elementary & most
difficult part of system design, because, at this level, sometimes, the user himself is
not clear about it. Many software projects have failed due to certain requirements
specification issues. Thus, overall quality of software product is dependent on this
aspect. Identifying, defining, and analysing the requirements is known as requirements
analysis. Requirements analysis includes the following activities:
1. Identification of end user‟s need.
2. Preparation of a corresponding document called SRS (Software Requirements
Specification).
22
3. Analysis and validation of the requirements document to ensure consistency, Principles of Software
Requirements Analysis
completeness and feasibility.
2.1 OBJECTIVES
After going through this unit, you should be able to:
1. Requirements gathering.
2. Requirements analysis and modeling.
On the basis of their functionality, the requirements are classified into the following
two types:
i) Functional requirements: They define the factors like, I/O formats, storage
structure, computational capabilities, timing and synchronization.
External Interfaces of the system: They identify the information which is to flow
„from and to’ to the system.
Functional and non-functional requirements of the system. They stand for the
finding of run time requirements.
Design constraints:
1. Introduction
1.1 Purpose
1.2 Scope
1.3 Definitions, acronyms, and abbreviations
1.4 References
1.5 Overview
2. Overall description
2.1 Product perspective
2.2 Product functions
2.3 User characteristics
2.4 Constraints
2.5 Assumptions and dependencies
3. Specific requirements
3.1 External Interfaces
3.2 Functional requirements
3.3 Performance requirements
3.4 Logical Database requirements
3.5 Design Constraints
3.6 Software system attributes
3.7 Organising the specific requirements
3.8 Additional Comments
4. Supporting information
4.1 Table of contents and index
4.2 Appendixes
24
2.2.4 Problems in SRS Principles of Software
Requirements Analysis
There are various features that make requirements analysis difficult. These are
discussed below:
1. Complete requirements are difficult to uncover. In recent trends in engineering,
the processes are automated and it is practically impossible to understand the
complete set of requirements during the commencement of the project itself.
2. Requirements are continuously generated. Defining the complete set of
requirements in the starting is difficult. When the system is put under run, the new
requirements are obtained and need to be added to the system. But, the project
schedules are seldom adjusted to reflect these modifications. Otherwise, the
development of software will never commence.
3. The general trends among software developer shows that they have over
dependence on CASE tools. Though these tools are good helping agents, over
reliance on these Requirements Engineering Tools may create false requirements.
Thus, the requirements corresponding to real system should be understood and
only a realistic dependence on tools should be made.
4. The software projects are generally given tight project schedules. Pressure is
created from customer side to hurriedly complete the project. This normally cuts
down the time of requirements analysis phase, which frequently lead to
disaster(s).
5. Requirements Engineering is communication intensive. Users and developers
have different vocabularies, professional backgrounds and psychology. User
writes specifications in natural language and developer usually demands precise
and well-specified requirement.
The requirements gathering is an art. The person who gathers requirements should
have knowledge of what and when to gather information and by what resources. The
requirements are gathered regarding organisation, which include information
regarding its policies, objectives, and organisation structure, regarding user staff. It
includes the information regarding job function and their personal details, regarding
the functions of the organisation including information about work flow, work
schedules and working procedure.
The following four tools are primarily used for information gathering:
2. On site observation: In case of real life systems, the actual site visit is performed
to get a close look of system. It helps the analyst to detect the problems of existing
system.
25
An Overview of 3. Interview: A personal interaction with staff is performed to identify their
Software Engineering requirements. It requires experience of arranging the interview, setting the stage,
avoiding arguments and evaluating the outcome.
A model showing bare minimum requirements is called Essential Model. It has two
components.
Courses offered
to students
Department
College
Interfaces to
external systems
University
In environmental model, the interfaces should clearly indicate the inflow and outflow
of information from the system.
26
The tools of environment model are: Principles of Software
Requirements Analysis
(i) Statement of purpose: It indicates the basic objectives of system.
(ii) Event list: It describes the different events of system and indicates functionality
of the system.
(iii) Context diagram: It indicates the environment of various sub-systems.
In structured approach of modeling the standard techniques of DFD, E-R diagram etc.
are used to develop system specification in a formal format. It develops a system
logical model.
2.3.2 Data Flow Diagrams (DFD)
It is a graphical representation of flow of data through a system. It pictures a system as
a network of functional processes. The basis of DFD is a data flow graph, which
pictorially represents transformation on data as shown in Figure 2.2.
Level 1
External Input data Input data External
Processing
Entity Entity
Intermediate data
Intermediate data
Level 3
Processing
Data store
Output data
External
Entity
The structured approach of system design requires extensive modeling of the system.
Thus, instead of making a complete model exhibiting the functionality of system, the
DFD‟s are created in a layered manner. At the first layer, the DFD is made at block
level and in lower layers, the details are shown. Thus, level “0” DFD makes a
fundamental system (Figure 2.3).
I1
Process A Output
I2
1. Keep a note of all the processes and external entities. Give unique names to them.
Identify the manner in which they interact with each other.
2. Do numbering of processes.
5. Every process should have minimum of one input and one output.
The data store should contain all the data elements that flow as input and output.
28
To understand the system functionality, a system model is developed. The developed Principles of Software
Requirements Analysis
model is used to analyze the system. The following four factors are of prime concern
for system modeling:
1. The system modeling is undertaken with some simplifying assumptions about the
system. Though these assumptions limit the quality of system model, it reduces
the system complexity and makes understanding easier. Still, the model
considers all important, critical and material factors. These assumptions are made
regarding all aspects like processes, behaviors, values of inputs etc.
2. The minute details of various components are ignored and a simplified model is
developed. For example, there may be various types of data present in the system.
The type of data having minute differences are clubbed into single category, thus
reducing overall number of data types.
3. The constraints of the system are identified. Some of them may be critical. They
are considered in modeling whereas others may be ignored. The constraints may
be because of external factors, like processing speed, storage capacity, network
features or operating system used.
Example 1: The 0th and 1st levels of DFD of Production Management System are
shown in Figure 2.5 (a) and (b)
Planning
Production Planning report
Product
PMS Finished goods
Sales
Order
Inventory
Material
29
Machine Code
An Overview of Process table
Software Engineering
Process type
1.0
Daily
Planning
List detail
Plan detail
Job Card 2.0
Job card table Listing Master table
Progress table
Job Card
4.0 Acknowledgement
Material Manager
Billing
Product detail
Product detail
This is another tool of requirement analysis which reduces complexity of DFD. A data
dictionary is a catalog of all elements of a system. DFD depicts flow of data whereas
data dictionary gives details of that information like attribute, type of attribute, size,
names of related data items, range of values, data structure definitions etc. The name
specifies the name of attribute whose value is collected. For example, fee deposit may
be named as FD and course opted may be named as CO.
Related data items captures details of related attributes. Range of values store total
possible values of that data. Data structure definition captures the physical structure of
data items.
30
X=y{a}z x consists of some occurrences of data elements a which are Principles of Software
Requirements Analysis
between y and z.
| Separator
** Comments
@ Identifier
() Options
Example 2: The data dictionary of payroll may include the following fields:
Cardinality & Optionally: The cardinality represents the relationship between two
entities. Consider the one to many relationship between two entities – class and
student. Here, cardinality of a relationship is the number of instances of entity student
that can be associated with each instance of entity class. This is shown in Figure 2.6.
31
An Overview of The minimum cardinality of a relationship is the minimum number of instances of
Software Engineering second entity (student, in this case) with each instance of first entity (class, in this
case).
Mandatory - 1 cardinality
n highest range
Optional 0 or 1 cardinality
32
Principles of Software
Roll no. add Requirements Analysis
Name ,
Father‟s name class
Student
marks
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
33
An Overview of
Software Engineering 2.4 SOFTWARE PROTOTYPING AND
SPECIFICATION
Prototyping is a process that enables developer to create a small model of software.
The IEEE 610.12 standard defines prototype as a preliminary form or instance of a
system that serves as a model for later stages for the final complete version of the
system.
Prototype is developed so that customers, users and developers can learn more about
the problem. Thus, prototype serves as a mechanism for identifying software
requirements. It allows the user to explore or criticise the proposed system before
developing a full scale system.
Broadly, the prototypes are developed using the following two techniques:
Throw away prototype: In this technique, the prototype is discarded once its purpose
is fulfilled and the final system is built from scratch. The prototype is built quickly to
enable the user to rapidly interact with a working system. As the prototype has to be
ultimately discarded, the attention on its speed, implementation aspects,
maintainability and fault tolerance is not paid. In requirements defining phase, a less
refined set of requirements are hurriedly defined and throw away prototype is
constructed to determine the feasibility of requirement, validate the utility of function,
uncover missing requirements, and establish utility of user interface. The duration of
prototype building should be as less as possible because its advantage exists only if
results from its use are available in timely fashion.
According to SOMM [96] the benefits of developing prototype are listed below:
Start
Requirements Quick Building Customer
Gathering Design Prototype evaluation of
prototype
Stop
Engineering product Refine Prototype
One additional difficulty in adopting this approach is the large investment that exists
in software system maintenance. It requires additional planning about the
re-engineering of software. Because, it may be possible that by the time the prototype
is build and tested, the technology of software development is changed, hence
requiring a complete re-engineering of the product.
Using the software metrics, software engineer measures software processes, and the
requirements for that process. The software measures are done according to the
following parameters:
There are significant numbers of software measures. The following are a few
common software measures:
SUMMARY
This unit discusses various aspects of software requirements analysis, the significance
of use of engineering approach in the software design, various tools for gathering the
requirements and specifications of prototypes.
2.7 SOLUTIONS/ANSWERS
1) In the present era, the development of software has become very systematic and
the specification of requirements is very important. Accordingly, to analyse
requirements completely, the engineering approach is used in requirements
analysis.
3) The purpose of using software metrics is to achieve basic objectives of the system
with low cost and high quality. Metrics provide scale for quantifying qualities and
characteristics of a software. An analogy real life is that meter is the metric of
length but to determine the length of cloth, one requires the measuring means like
meter-tape etc. Similarly, in software measurement, method must be objective and
should produce the same result independent of various measures.
1) Rapid prototyping techniques are used for speedy prototype development. There
are three techniques used for this purpose.
2) High level languages that are used for prototyping are as follows:
3) Software Architecture in practice, 2003, Len Bass, Paul Clements, Rick Kazman;
Addison-Wesley Professional.
Reference Websites:
http://standards.ieee.org
http://www.rspa.com
38