Chapter 2 Requirement Analysis
Chapter 2 Requirement Analysis
Chapter 2 Requirement Analysis
1.Problem Recognition:
The main aim of requirement analysis is to fully understand main
objective of requirement that includes why it is needed, does it add
value to product, will it be beneficial, does it increase quality of the
project, does it will have any other effect. All these points are fully
recognized in problem recognition so that requirements that are
essential can be fulfilled to solve business problems.
Specification :
The software requirement specification (SRS) which means to specify
the requirement whether it is functional or non-functional should be
developed.
Review :
After developing the SRS, it must be reviewed to check whether it can
be improved or not and must be refined to make it better and increase
the quality.
Requirements Elicitation:
It is related to the various ways used to gain knowledge about the
project domain and requirements. The various sources of domain
knowledge include customers, business manuals, the existing software
of same type, standards and other stakeholders of the project.
The techniques used for requirements elicitation include interviews,
brainstorming, task analysis, Delphi technique, prototyping, etc. Some
of these are discussed here. Elicitation does not produce formal models
of the requirements understood. Instead, it widens the domain
knowledge of the analyst and thus helps in providing input to the next
stage.
Requirements specification:
This activity is used to produce formal software requirement models.
All the requirements including the functional as well as the non-
functional requirements and the constraints are specified by these
models in totality. During specification, more knowledge about the
problem may be required which can again trigger the elicitation
process.
The models used at this stage include ER diagrams, data flow
diagrams(DFDs), function decomposition diagrams(FDDs), data
dictionaries, etc.
Requirements verification and validation:
Verification: It refers to the set of tasks that ensures that the software
correctly implements a specific function.
Validation: It refers to a different set of tasks that ensures that the
software that has been built is traceable to customer requirements.
If requirements are not validated, errors in the requirement definitions
would propagate to the successive stages resulting in a lot of
modification and rework.
The main steps for this process include:
The requirements should be consistent with all the other requirements
i.e no two requirements should conflict with each other.
The requirements should be complete in every sense.
The requirements should be practically achievable.
Requirements management:
Requirement management is the process of analysing, documenting,
tracking, prioritizing and agreeing on the requirement and controlling
the communication to relevant stakeholders. This stage takes care of
the changing nature of requirements. It should be ensured that the SRS
is as modifiable as possible so as to incorporate changes in
requirements specified by the end users at later stages too. Being able
to modify the software as per requirements in a systematic and
controlled manner is an extremely important part of the requirements
engineering process.
2. Flowcharts
3. Gantt Charts
4. Gap Analysis
The modeling tools that are used to build a data flow oriented model
include context diagrams, data flow diagrams, entity relationship
diagram, control flow diagram, state transition diagram, data dictionary,
process specification and control specification. Although the data flow
diagram (DFD) and related diagrams and information are not a formal
part of UML (Unified Modeling Language), they can be used to
complement UML diagrams and provide additional insight into system
requirements and flow. The flow oriented modeling takes an input-
process-output view of a system. That is, data objects flow into the
software, are transformed by processing elements, and resultant data
objects flow out of the software.
The data flow diagram represents the flows of data between different
process in a business. It is a graphical technique that depicts
information flow and transforms that are applied as data from input to
output. It provides a simple, intuitive method for describing business
processes without focusing on the details of computer systems. DFDs
are attractive techniques because they provide what users do rather
than what computers do. In DFD, there are four symbols are used :
1. Process :
The circle represents the process. An activity that changes or
transforms data flows. Since they transform incoming data to outgoing
data, all processes must have inputs and outputs on a DFD.
2. Data Flow :
The labeled arrows indicate incoming and outgoing data flow.
Movement of data between external entities, processes and data stores
is represented with an arrow symbol, which indicates the direction of
flow.
3. Data Store :
The rectangle represents an external entity. A data store does not
generate any operations but simply holds data for later access.
4. External Entity :
In Data Flow Diagrams external entities produce and consume data that
flows between the entity and the system being diagrammed.
These data flows are the inputs and outputs of the DFD. Data objects
are represented by labeled arrows, and transformations are
represented by circles. The DFD is presented in a hierarchical fashion.
That is, the first data flow model (sometimes called a level 0 DFD or
context diagram) represents the system as a whole. Subsequent data
flow diagrams refine the context diagram, providing increasing detail
with each subsequent level.
2. General description :
In this, general functions of product which includes objective of
user, a user characteristic, features, benefits, about why its
importance is mentioned. It also describes features of user
community.
3. Functional Requirements :
In this, possible outcome of software system which includes
effects due to operation of program is fully explained. All
functional requirements which may include calculations, data
processing, etc. are placed in a ranked order.
4. Interface Requirements :
In this, software interfaces which mean how software program
communicates with each other or users either in form of any
language, code, or message are fully described and explained.
Examples can be shared memory, data streams, etc.
5. Performance Requirements :
In this, how a software system performs desired functions
under specific condition is explained. It also explains required
time, required memory, maximum error rate, etc.
6. Design Constraints :
In this, constraints which simply means limitation or restriction
are specified and explained for design team. Examples may
include use of a particular algorithm, hardware and software
limitations, etc.
7. Non-Functional Attributes :
In this, non-functional attributes are explained that are
required by software system for better performance. An
example may include Security, Portability, Reliability,
Reusability, Application compatibility, Data integrity, Scalability
capacity, etc.
Characteristics of SRS
Software requirements specification should be accurate, complete,
efficient, and of high quality, so that it does not affect the entire project
plan. An SRS is said to be of high quality when the developer and user
easily understand the prepared document. Other characteristics of SRS
are discussed below.
1. Correct: SRS is correct when all user requirements are stated in the requirements
document. The stated requirements should be according to the desired system. This
implies that each requirement is examined to ensure that it (SRS) represents user
requirements. Note that there is no specified tool or procedure to assure the
correctness of SRS. Correctness ensures that all specified requirements are
performed correctly.
2. Unambiguous: SRS is unambiguous when every stated requirement has
only one interpretation. This implies that each requirement is uniquely
interpreted. In case there is a term used with multiple meanings, the
requirements document should specify the meanings in the SRS so that it is
clear and easy to understand.
3. Complete: SRS is complete when the requirements clearly define what the
software is required to do. This includes all the requirements related to
performance, design and functionality.
4. Ranked for importance/stability: All requirements are not equally
important, hence each requirement is identified to make differences among other
requirements. For this, it is essential to clearly identify each requirement.
Stability implies the probability of changes in the requirement in future.
5. Modifiable: The requirements of the user can change, hence requirements
document should be created in such a manner that those changes can be
modified easily, consistently maintaining the structure and style of the SRS.
6. Traceable: SRS is traceable when the source of each requirement is clear
and facilitates the reference of each requirement in future. For this, forward
tracing and backward tracing are used. Forward tracing implies that each
requirement should be traceable to design and code elements. Backward tracing
implies defining each requirement explicitly referencing its source.
7. Verifiable: SRS is verifiable when the specified requirements can be verified
with a cost-effective process to check whether the final software meets those
requirements. The requirements are verified with the help of reviews. Note that
unambiguity is essential for verifiability.
8. Consistent: SRS is consistent when the subsets of individual requirements
defined do not conflict with each other. For example, there can be a case when
different requirements can use different terms to refer to the same object. There
can be logical or temporal conflicts between the specified requirements and
some requirements whose logical or temporal characteristics are not satisfied.
For instance, a requirement states that an event ‘a’ is to occur before another
event ‘b’. But then another set of requirements states (directly or indirectly by
transitivity) that event ‘b’ should occur before event ‘a’.