Chapter 4 Requirement Engineering
Chapter 4 Requirement Engineering
Software Engineering
Software Engineering
Requirement engineering
Topics Covered
Requirement Engineering
The software requirements document
Requirements specification
Requirements engineering processes
Requirements elicitation and analysis
Requirements validation
Requirements management
3
What is Requirement Engineering?
Requirements is the description of the system, its used to define what a
system should do and how it should perform, which reflects the needs of
customers
Functional Requirements: defines the behavior, features, components, or functions that the
system must perform. It focuses on how the system should react to specific inputs and
behave in particular situations.
Non-Functional Requirements: It defines the system's quality, like performance, security,
usability, scalability, and standards.
Business requirements: it describe the level needs of the organization or stakeholders,
often focusing on goals and objectives.
User Requirements: it defines what the end-users expect from the system.
Can users be able to change something easil?.
Cont….
functional requirements include:
7
Importance of System Requirements
■ Clear Vision: They provide a shared understanding of the system's
functionality and performance across the development team and
stakeholders.
■ Scope Control: Well-defined requirements help control project scope and
prevent scope creep.
■ Testing and Validation: They serve as a basis for system testing and
validation to ensure the system works as expected.
■ Efficient Development: They help developers understand what features
to build, in what order, and how to design the system's architecture.
Challenges in Defining System Requirements
■ Ambiguity: Requirements may be vague or unclear, leading to
misinterpretation.
■ Changing Requirements: As the project progresses, new needs or
constraints may arise, requiring frequent updates to the requirements.
■ Conflicting Requirements: Different stakeholders may have conflicting
needs, making it difficult to prioritize or resolve certain requirements.
■ Complexity: Large systems may have interdependent requirements,
increasing the complexity of managing and implementing them.
Software Requirements Document
SRD is an official document that outlines the complete set of functional and
non-functional requirements for a software system.
11
Problems with Natural Language
Lack of Clarity
Precision is difficult without making the document difficult to read.
Requirements Confusion
Functional and non-functional requirements tend to be mixed up.
Requirements Amalgamation
Several different requirements may be expressed together.
Structured natural Language
Structured natural language is a way of writing system requirements where
the freedom of the requirements writer is limited and all requirements are
written in a standard way.
19
Common Techniques Used in Requirements
Analysis
■ Use Case Diagrams: Visualize user interactions with the system, helping
to define functional requirements.
■ Data Flow Diagrams (DFD): Map out the flow of data within the system
to understand processes and relationships.
■ Entity-Relationship Diagrams (ERD): Model the data relationships and
structures that will be needed for the system.
■ Storyboarding and Wireframes: Create visual representations of how the
system will look and function, used to clarify requirements.
■ SWOT Analysis: Identify strengths, weaknesses, opportunities, and threats
to better understand project challenges.
Requirements Specification
Requirements specification is the process of writing down the user and
system requirements in a requirements document.
■ if you are writing user requirements, you should not use software
jargon, structured notations, or formal notations. You should write user
requirements in natural language, with simple tables, forms, and
diagrams.
21
Key Components of the SRS
You need to establish a formal process for making change proposals and
linking these to system requirements.
Requirements Management Planning
During the requirements management stage, you have to decide on:
1. Requirements identification: Each requirement must be uniquely
identified.
2. A change management process: This is the set of activities that assess
the impact and cost of changes.
3. Traceability policies: These policies define the relationships between each
requirement and between the requirements and the system design that
should be recorded.
The traceability policy should also define how these records should be
maintained.
4. Tool support: Requirements management involves the processing of large
amounts of information about the requirements.
Requirements Change Management
Requirements change management should be applied to all proposed
changes to a system’s requirements after the requirements document has
been approved.
There are three principal stages to a change management process:
1. Problem analysis and change specification: the process starts with an
identified requirements problem to check that it is valid.
2. Change analysis and costing: The effect of the proposed change
should assessed using traceability information and general knowledge
of the system requirements.
3. Change implementation: The requirements document should be
follow to modified the system.
Chapter Assessment
By considering what we learn in this chapter, Write Software requirements
document that is based on the Hospital/ Banking/ Army systems or any
other that you prefer.