Unit II SE Notes Part-A
Unit II SE Notes Part-A
Notes
UNIT-2
Software Requirements
Requirement Engineering
The process to gather the software requirements from client, analyze, and
document them is known as requirement engineering.
• Feasibility Study
• Requirement Gathering
• Software Requirement Specification
• Software Requirement Validation
Let us see the process briefly -
Feasibility study
When the client approaches the organization for getting the desired product
developed, it comes up with a rough idea about what all functions the software
must perform and which all features are expected from the software.
This feasibility study is focused towards goal of the organization. This study analyses
whether the software product can be practically materialized in terms of
implementation, contribution of project to organization, cost constraints, and as per
values and objectives of the organization. It explores technical aspects of the
2
project and product such as usability, maintainability, productivity, and
integration ability.
The output of this phase should be a feasibility study report that should contain
adequate comments and recommendations for management about whether or
not the project should be undertaken.
Requirement Gathering
If the feasibility report is positive towards undertaking the project, next phase
starts with gathering requirements from the user. Analysts and engineers
communicate with the client and end-users to know their ideas on what the
software should provide and which features they want the software to include.
SRS defines how the intended software will interact with hardware, external
interfaces, speed of operation, response time of system, portability of software
across various platforms, maintainability, speed of recovery after crashing,
Security, Quality, Limitations etc.
The requirements received from client are written in natural language. It is the
responsibility of the system analyst to document the requirements in technical
language so that they can be comprehended and used by the software
development team.
3
Characteristics of good SRS
1. Concise: The SRS report should be concise and at the same time,
unambiguous, consistent, and complete. Verbose and irrelevant
descriptions decrease readability and also increase error possibilities.
2. Structured: It should be well-structured. A well-structured document is
simple to understand and modify. In practice, the SRS document
undergoes several revisions to cope up with the user requirements. Often,
user requirements evolve over a period of time. Therefore, to make the
modifications to the SRS document easy, it is vital to make the report
well-structured.
3. Black-box view: It should only define what the system should do and
refrain from stating how to do these. This means that the SRS document
should define the external behaviour of the system and not discuss the
implementation issues. The SRS report should view the system to be
developed as a black box and should define the externally visible
behaviour of the system. For this reason, the SRS report is also known as
the black-box specification of a system.
4. Conceptual integrity: It should show conceptual integrity so that the
reader can merely understand it. Response to undesired events: It should
characterize acceptable responses to unwanted events. These are called
system response to exceptional conditions.
6
5. Verifiable: All requirements of the system, as documented in the SRS
document, should be correct. This means that it should be possible to
decide whether or not requirements have been met in an implementation.
2. Prototyping
In this validation technique the prototype of the system is presented before
the end-user or customer, they experiment with the presented model and
check if it meets their need. This type of model is mostly used to collect
feedback about the requirement of the user.
7
3. Requirements Reviews
In this approach, the SRS is carefully reviewed by a group of people including
people from both the contractor organizations and the client side, the
reviewer systematically analyses the document to check errors and
ambiguity.
5. Walk-through
A walkthrough does not have a formally defined procedure and does not
require a differentiated role assignment.
• Checking early whether the idea is feasible or not.
• Obtaining the opinions and suggestions of other people.
• Checking the approval of others and reaching an agreement.
6. Simulation
Simulating system behaviour in order to verify requirements is known as
simulation. This method works especially well for complicated systems when
it is possible to replicate real-world settings and make sure the criteria fulfil
the desired goals.
2. User Satisfaction
It confirms that the requirements meet the wants and expectations of the
users, which helps to increase user happiness. This aids in providing a
product that satisfies consumer needs and improves user experience as a
whole.
8
3. Early Issue Identification
It makes it easier to find problems, ambiguities or conflicts in the
requirements early on. It is more economical to address these issues early in
the development phase rather than later, when the project is far along.
5. Improving Quality
It enhances the software product’s overall quality. By detecting and resolving
possible quality problems early in the development life cycle, requirements
validation contributes to the creation of a more durable and dependable final
product.
9
Disadvantages of Requirements Validation Techniques
• Increased time and cost: Using validation techniques can be time-
consuming and costly, especially when involving multiple stakeholders.
• Risk of conflicting requirements: Using validation techniques can lead to
conflicting requirements, which can make it difficult to prioritize and
implement the requirements.
• Risk of changing requirements: Requirements may change over time and
it can be difficult to keep up with the changes and ensure that the project is
aligned with the updated requirements.
• Misinterpretation and miscommunication: Misinterpretation and
miscommunication can occur when trying to understand the requirements.
• Dependence on the tool: The team should be well-trained on the tool and
its features to avoid dependency on the tool and not on the requirement.
• Limited validation: The validation techniques can only check the
requirement that is captured and may not identify the requirement that is
missed
• Limited to functional requirements: Some validation techniques are
limited to functional requirements and may not validate non-functional
requirements.
There are various ways to discover requirements. Some of them are explained
below:
➢ Interviews
Interviews are strong medium to collect requirements. Organization may
conduct several types of interviews such as:
• Oral interviews
• Written interviews
• One-to-one interviews which are held between two persons across the
table.
• Group interviews which are held between groups of participants. They help to
uncover any missing requirement as numerous people are involved.
➢ Surveys
• Organization may conduct surveys among various stakeholders by
querying about their expectation and requirements from the upcoming
system.
➢ Questionnaires
• A document with pre-defined set of objective questions and respective
options is handed over to all stakeholders to answer, which are collected
and compiled.
➢ Task analysis
• Team of engineers and developers may analyze the operation for which
the new system is required. If the client already has some software to
perform certain operation, it is studied and requirements of proposed
system are collected.
➢ Domain Analysis
11
• Every software falls into some domain category. The expert people in the
domain can be a great help to analyze general and specific requirements.
➢ Brainstorming
• An informal debate is held among various stakeholders and all their inputs
are recorded for further requirements analysis.
➢ Prototyping
• Prototyping is building user interface without adding detail functionality for
user to interpret the features of intended software product. It helps giving
better idea of requirements. If there is no software installed at client’s end
for developer’s reference and the client is not aware of its own
requirements, the developer creates a prototype based on initially
mentioned requirements. The prototype is shown to the client and the
feedback is noted. The client feedback serves as an input for requirement
gathering.
➢ Observation
• Team of experts visit the client’s organization or workplace. They observe
the actual working of the existing installed systems. They observe the
workflow at the client’s end and how execution problems are dealt. The
team itself draws some conclusions which aid to form requirements
expected from the software.
• Clear
• Correct
• Consistent
• Coherent
• Comprehensible
• Modifiable
• Verifiable
• Prioritized
• Unambiguous
• Traceable
• Credible source
12
Software Requirements
We should try to understand what sort of requirements may arise in the
requirement elicitation phase and what kinds of requirement are expected from
the software system.
Functional Requirements
Requirements, which are related to functional aspect of software fall into this
category.
They define functions and functionality within and from the software system.
EXAMPLES -
• Users can be divided into groups and groups can be given separate rights.
Non-Functional Requirements
Requirements, which are not related to functional aspect of software, fall into
this category. They are implicit or expected characteristics of software, which
users make assumption of.
• Security
• Logging
• Storage
• Configuration
• Performance
• Cost
• Interoperability
• Flexibility
• Disaster recovery
• Accessibility
Requirements are categorized logically as:
• Could have: Software can still properly function with these requirements.
13
While developing software, ‘Must have’ must be implemented, ‘Should have’ is a
matter of debate with stakeholders and negation, whereas ‘Could have’ and
‘Wish list’ can be kept for software updates.
• easy to operate
• quick in response
• effectively handling operational errors
• providing simple yet consistent user interface
User acceptance majorly depends upon how user can use the software. UI is the
only way for users to perceive the system. A well performing software system
must also be equipped with attractive, clear, consistent, and responsive user
interface. Otherwise, the functionalities of software system can not be used in
convenient way. A system is said to be good if it provides means to use it
efficiently. User interface requirements are briefly mentioned below –
• Content presentation
• Easy Navigation
• Simple interface
• Responsive
• Consistent UI elements
• Feedback mechanism
• Default settings
• Purposeful layout
• Strategical use of colour and texture.
• Provide help information
• User centric approach
• Group based view settings.
14
of SDLC. It is the responsibility of analyst to make sure that the developed
software meets the requirements of the client.
• Validation of requirement.
15