CHP: 03 - Requirement Analysis: Introduction
CHP: 03 - Requirement Analysis: Introduction
INTRODUCTION -
Requirements Analysis is the process of defining the expectations of the users for an application that is to
be built or modified.
CONCEPT OF REQUIREMENT -
“a condition or capability needed by a user to solve a problem or achieve an objective/goal.”
These requirements describe the interaction of software with its environment and specify the inputs,
outputs, external interfaces and the functions that should be included in the software.
2. Non-Functional Requirements:
The non-functional requirements also known as quality requirements relate to system attributes, such as
reliability and response time.
3. Domain Requirements:
In software engineering, the requirements that are derived from the application domain of a system,
instead from the needs of the users.
ELICITING REQUIREMENTS -
Elicitation is about seeking information about the software, the system, and the business. Eliciting
requirements is the task of communicating with customers and users to determine what their requirements
are.
The following information can be sought from the customers and the users -
1.How is the software to be used on a day-to-day basis?
2. What is to be accomplished by the software?
3. What are the objectives/goals of the software product?
4. How does the software fit into the needs of the business?
1.Requirements Gathering:
The developers discuss with the client and end users and know their expectations from the software.
2. Organizing Requirements:
The developers prioritize and arrange the requirements in order of importance, urgency and convenience.
3. Negotiation and Discussion:
If requirements are ambiguous or there are some
conflicts in requirements of various stakeholders, then they are negotiated and discussed with
stakeholders.
4. Documentation:
All formal and informal, functional and non-functional requirements are documented and made available
for next phase processing.
There are several problems which can surface/occur while eliciting requirements.
2. Conflicting Requirements -
This problem increases with the number of stakeholders involved in the project.
3. Volatile Requirements -
Requirements may get changed during the elicitation stage due to the entry of new stakeholders who have
different perspectives of the system.
4. Communication Gap -
Communication gaps in requirements lead to misunderstandings, project delays, and increased costs.
Features of SRS -
1. It forms the basis for software development.
2. SRS provides a reference for validation of the final software product.
3. It is a medium or media through the client and used needs are accurately
specified and determined.
4. SRS helps clients to understand their own needs and requirements.
5. It establishes the basis for agreement between the client and the supplier.
4. Input to Design -
Contains sufficient detail in the functional system requirements to devise a design solution.
NEED/IMPORTANCE OF SRS -
1. SRS is the medium through which the client and user needs are accurately specified. SRS forms the
basis of software development.
3. establishes the basis for agreement between the client and the supplier on what the software product
will do.
5. SRS determines the requirements of the system and thus it enables the developer to have a rough
estimate of the total cost and schedule the software project.
ADVANTAGES OF SRS:
1. Software SRS establishes the basis for agreement between the client and the supplier on what the
software product will do.
2. A SRS provides a reference for validation of the final product.
3. A high-quality SRS is a prerequisite to high-quality software.
4. A high-quality SRS reduces the development cost.
NEGOTIATING REQUIREMENTS -
Negotiating requirements in software engineering is a crucial phase where stakeholders, including clients,
developers, and end-users, come together to agree on what the software should accomplish. This process
helps identify, clarify, and prioritize requirements, ensuring that the development team understands the
project goals and the needs of all parties involved.
When multiple stakeholders are involved, requirements will conflict. This activity is concerned with
prioritizing requirements and finding and resolving requirements conflicts through negotiation.
VALIDATING REQUIREMENTS -
Requirements validation is the process of checking that requirements actually define
the system that the customer really wants.