Unit Three-Requirements Engineering
Unit Three-Requirements Engineering
Requirement Gathering:
Feasibility Study:
Feasibility is the practical extent to which a project can be performed successfully.
To evaluate feasibility, a feasibility study is performed, which determines whether the solution considered to
accomplish the requirements is practical and workable in the software.
Information such as resource availability, cost estimation for software development, benefits of the software to
the organization after it is developed and cost to be Incurred on its maintenance are considered during the
feasibility study.
The objective/goal of the feasibility study is to establish the reasons for developing the software that is
acceptable to users, adaptable to change and conformable to established standards. Various other
objectives/goals of feasibility study are listed below.
1. To analyze whether the software will meet organizational requirements.
2. To determine whether the software can be implemented using the current technology and within the
specified budget and schedule.
3. To determine whether the software can be integrated with other existing software.
Types of Feasibility:
Various types of feasibility that are commonly considered are: Technical Feasibility, Operational Feasibility,
and Economic Feasibility as shown in following figure-
1. Technical Feasibility:
Technical feasibility refers, "to the technical resources needed to develop, purchase, install, or operate the
system".
Technical feasibility assesses the current resources (such as hardware and software) and technology, which are
required to accomplish user requirements in the software within the allocated time and budget.
For this, the software development team determines whether the current resources and technology can be
upgraded or added in the software to accomplish specified user requirements.
Technical feasibility also performs the following tasks:
(i) Analyzes the technical skills and capabilities of the software development team members.
(ii) Determines whether the relevant technology is steady and established.
(iii) Ascertains that the technology chosen for software development has a large number of users so that they
can be consulted when problems arise or improvements are required.
2. Operational Feasibility:
Operational feasibility means that, "a proposed system will be used effectively after it has been developed".
It assesses the extent to which the required software performs a series of steps to solve business problems and
user requirements.
This type feasibility is dependent on human resources (software development team) and involves visualizing
whether the software will operate after it is developed and be operative once it is installed.
Operational feasibility also performs the following tasks:
(i) Determines whether the problems anticipated in user requirements are of high priority.
(ii) Determines whether the solution suggested by the software development team is
acceptable.
(iii) Analyzes whether users will adapt to new software.
(iv) Determines whether the organization is satisfied by the alternative solutions proposed by the software
development team.
3. Economic Feasibility:
It determines whether the required software is capable of generating financial gains for an organization.
It involves the cost incurred on the software development team, estimated cost of hardware and software, cost
of performing feasibility study, and so on.
For this, it is essential to consider expenses made on purchases (such as hardware purchase) and activities
required to carry out software development. In addition, it is necessary to consider the benefits that can be
achieved by developing the software.
Software is said to be economically feasible if it focuses on the issues listed below:
(i) Cost incurred on software development to produce long-term gains for an organization.
(ii) Cost required to conduct full software investigation (such as requirements elicitation and requirements
analysis).
(iii) Cost of hardware, software, development team, and training.
1. Interview:-
Interview is the best method for producing qualitative information such as opinions. polices,
subjective descriptions of activities and problems.
Interviews are strong medium to collect requirements from individuals or from group.
In this method, the analyst sits face to face with the people and records their responses.
During the interview, the respondents and analyst discuss with each other.
Using question-answer format, analyst collects the general information about the system.
The information collected is quite accurate and reliable as the interviewer can clear and cross
check the doubts there itself.
Types of Interviews:
There are main two types of interviews i.e. Structured and Unstructured as explained below:
1. Structured (Closed) Interviews: In this type, every single information to gather is decided in
advance.
Advantages:
1. These interviews follow pattern and matter of discussion firmly.
Disadvantages:
2. Unstructured (Open) Interview: In this type the information to gather is not decided in
advance, more flexible and less biased.
Advantage:
1. In Unstructured interviews, the respondents are free to answer in their own words. In this
way their views are not restricted. So the interviewer gets a larger area to further explore the
issues relating to a problem.
Disadvantages:
1. It may happen that the interview goes in some unwanted direction and the basic facts for
which the interview was organized do not get relieved
Apart from these there are some more interview techniques like Oral interviews, Written
interviews etc.
The advantage of interviews is that the analyst has a free hand and he can extract almost all
the information from the respondents but it is a very time consuming method. He should also
employ other means such as questionnaires, record reviews, etc.
4.6.2 Questionnaires
It is the technique used to extract information from large number of people.
This technique can be adopted and used only by a skillful system analyst.
A document with pre-defined set of objective questions and respective options is handed over
to all customers to answer, which are collected and compiled.
Advantages:
1. The questionnaire contained the series of questions framed together in logical manner.
These questions are simple, clear and to the point
Disadvantage:
1. A drawback of this method is, if an option for some issue is not mentioned in the
questionnaire, the issue might be left unattended
Record View
Records and reports are the collection of information and data about the system and its
operations.
The analyst may examine the records either at the beginning of the study which may give him
a fair and perfect data about the system.
It is easy to understand the system with actual operations.
Example: Employee attendance record, Salary record, Service book can be observed by
analyst to know how to manage the requirements in the system.
4.6.4 Observation
Unlike the other fact finding techniques, in this method the team of experts visit the customer's
organization or workplace.
Analysts observe the actual working of the existing installed systems or manual system.
They observe the workflow of document at customer's end and how execution problems are
dealt.
The experts may observe the unwanted things from existing system as well and simply cause
delay in the development of the new system.
The experts team itself finds some conclusions which help to form requirementi expected from
the software.
SRS:
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
A software requirements specification (SRS) is a document that captures complete description about how the
system is expected to perform. The SRS needs to be correct, complete, consistent, updatable, verifiable etc. It
is usually signed off at the end of requirements engineering phase.
Characteristics of SRS:
1. Correct: The SRS should be made up to date when appropriate requirements are identified.
2. Unambiguous: When the requirements are correctly understood then only it is possible to write an
unambiguous SRS.
3. Complete: To make the SRS complete, it should be specified what a software designer wants to create a
software.
6. Traceable: What is the need for mentioned requirement? This should be correctly identified.
7.