Re CH 1
Re CH 1
Introduction to
Requirement
Engineering
1. What is requirement?
A condition or capability needed by a user to solve a problem or achieve an
objective
A condition or capability that must be met by a system or system component
to satisfy a contract, standard, specification, or other formally imposed
document.
Requirement describes what a system must do, how it should behave, or the
constraints it must operate within.
Requirements are essential for guiding the development of software or
systems and ensuring they meet user needs and business goals.
2. What is requirement Engineering
What is engineering?
In software development, engineering refers to the systematic application
of engineering principles to the design, development, testing, deployment,
and maintenance of software systems.
What is requirement Engineering?
The systematic process of identifying, documenting, analysing, validating,
and managing requirements for a software or system development project.
Requirement Engineering is the process of defining, documenting, and
maintaining software or system requirements.
It covers all activities associated with understanding stakeholder needs,
determining the feasibility of meeting those needs, and managing the
requirements throughout the system's lifecycle.
2.1. How much RE cost
The cost of Requirement Engineering can vary significantly depending on
multiple factors, such as the complexity of the project, the size of the team,
and the methods used for eliciting, analysing, and validating requirements.
However, there are some key aspects to consider when estimating the cost:
Project Complexity
Team Size and Expertise
Stakeholder Involvement
Elicitation Techniques Used
Tools and Software like JIRA, IBM Rational DOORS, or Microsoft
Team Foundation Server may involve licensing fees or subscription costs.
Validation and Testing
2.2. What will happen when requirement are
When wrong
requirements are wrong or poorly defined in the early stages of a
project, it can have serious negative consequences that ripple through the
entire software development lifecycle.
Here are some of the potential outcomes when requirements are incorrect:
Misalignment with Stakeholder Needs
Increased Costs
Delays and Extended Timelines
Poor Quality and Performance
Scope Creep
Project Failure
Legal and Contractual Issues
2.3. How to Minimize the Impact of Incorrect
Thorough Elicitation: Requirements
Ensure detailed and clear communication with stakeholders to gather precise and
complete requirements.
Regular Review and Validation:
Frequently validate the requirements with stakeholders to ensure they align with user
needs and business goals.
Clear Documentation:
Document the requirements clearly and make sure all stakeholders understand them.
Traceability:
Maintain traceability between requirements, design, development, and testing.
Change Management:
Establish a structured process for handling changes to requirements, especially as the
project progresses.
2.4. RE Process
Requirements Engineering Process(REP) is a systematic process in systems
and software development that focuses on identifying, documenting, and
managing the needs and expectations of stakeholders.
This process ensures that the final product aligns with stakeholder
requirements and serves as a foundation for subsequent development
activities and future change.
While there isn't a universally "ideal" requirements engineering (RE) process
applicable to all projects, certain best practices can significantly enhance the
effectiveness of RE activities.
These practices are adaptable to various methodologies, including traditional
and agile approaches.
Conti..,
Best Practices for Requirements Engineering:
Engage Stakeholders Early and Continuously
Employ Diverse Elicitation Techniques
Ensure Requirements Are Clear and Unambiguous
Prioritize Requirements
Maintain Traceability
Validate Requirements Regularly
Manage Changes Effectively
2.5.What is Requirement Documents
Requirements documents are formal written records that detail the conditions,
capabilities, and constraints a system or product must meet to satisfy the needs of its
stakeholders.
These documents serve as a foundation for system design, development, and testing,
ensuring that all parties have a clear and shared understanding of the project's
objectives and specifications.
Parts of Requirements Documents:
Business Requirements Document (BRD)
This document outlines the high-level goals, objectives, and needs of an
organization for a specific project or business solution.
Functional Requirements Document (FRD)
The FRD defines the specific functionalities that the system or product must
perform.
It translates business requirements into detailed functional specifications, serving
as a guide for developers and testers.
Conti..,
Product Requirements Document (PRD):
A PRD describes the features, functionalities, and behaviour of a product to be
developed.
It outlines the product's purpose and serves as a blueprint for the development
team.
Software Requirements Specification (SRS)
An SRS provides a detailed description of the software system to be developed,
including both functional and non-functional requirements.
It serves as a contract between stakeholders and developers, ensuring that the
software meets the specified needs.
2.6.What is Stackholders
Stakeholders are individuals, groups, or organizations that have an interest
and influence in the outcome of a project or system.
They can affect or be affected by the project's objectives, decisions, and
deliverables.
Identifying and understanding stakeholders is crucial for gathering accurate
requirements and ensuring the system meets their needs and expectations.
Types of Stakeholders in Requirements Engineering:
1. Primary Stakeholders:
These are individuals or groups within the organization who are
directly involved in its activities.
End Users: Individuals who will directly interact with the system.
Employees: Entities that use the product or service as service officer.
Conti..,
2. Secondary Stakeholders:
These are individuals or groups which have indirect impact on the
system and who are affected by its actions.
Managers: Oversee the project and make strategic decisions.
Support Staff: Provide maintenance and support for the system.
3. External Stakeholders:
These are individuals or groups outside the organization who can
affect the flow of the system by its actions.
Regulatory Bodies: Ensure the system complies with laws and
regulations.
Suppliers: Provide necessary resources or components like third
party APIs.
2.7.what is the R/Ship b/w requirement and design
Requirements:
This phase focuses on understanding and documenting what stakeholders
need from the system.
It involves gathering, analysing, and specifying the conditions or
capabilities that the system must fulfil.
Requirements serve as the foundation for all subsequent development
activities.
Design:
Once requirements are established, the design phase determines how to implement
them.
This involves creating detailed plans, models, and specifications that outline the
system's architecture, components, interfaces, and data flow.
The design phase translates the "what" from the requirements into the "how" of the
system's construction.
3. Software Requirements Engineering
Software Requirements Engineering is a critical phase in software
development that focuses on identifying, documenting, and managing the
needs and expectations of stakeholders for a software system.
This process ensures that the final product aligns with user needs and
organizational goals.
Without a well-defined requirements engineering process, projects are more
susceptible to delays, errors, increased costs, and user dissatisfaction.
3.1.Why is it Important?
Effective requirements engineering is crucial because it:
Ensures Alignment: Aligns the software product with user needs and
business objectives.
Reduces Risks: Identifies potential issues early, minimizing costly
changes during later stages.
Improves Quality: Provides a clear basis for design and testing, leading to
higher-quality software.
Facilitates Communication: Establishes a common understanding among
stakeholders, reducing misunderstandings.
3.2.Who is Involved?
Key participants in requirements engineering include:
Stakeholders: Individuals or groups with an interest in the software, such
as end-users, customers, managers, and regulatory bodies.