Requirements Engineering SE Notes
Requirements Engineering SE Notes
• Requirements for a system are descriptions of the services it should provide and the constraints on its
operation.
• They reflect the needs of customers for a system serving a specific purpose, such as controlling a device,
placing an order, or finding information
• Requirements engineering is the process of finding out, analyzing, documenting, and checking the
services and constraints a system should fulfill.
• It involves a systematic approach to understanding and specifying what the system should do.
2. Non-functional requirements These are constraints on the services or functions offered by the system. They
include timing constraints, constraints on the devel- opment process, and constraints imposed by standards.
Non-functional require- ments often apply to the system as a whole, rather than individual system features or
services.
Functional requirements
3. Variability in Detail:
- Functional system requirements range from general statements to specific, detailed requirements reflecting
local practices or existing organizational systems.
5. Imprecision Challenges:
- Imprecision in requirements specifications often leads to software engineering problems.
- Ambiguous requirements may be interpreted differently by system developers, leading to misunderstandings
with customers and necessitating system changes.
9. Stakeholder Inconsistencies:
- Stakeholders, individuals or roles affected by the system, often have inconsistent needs.
- Inconsistent requirements may not be evident initially, leading to problems during deeper analysis or after
system delivery.
Non-functional requirements
- **Organizational Requirements:** Derived from customer and developer policies and procedures (e.g.,
operational processes, development standards, environmental requirements).
- **External Requirements:** Stem from factors external to the system and its development process (e.g.,
regulatory, legislative, and ethical requirements).
- Examples within each category include performance, reliability, security, operational processes, development
standards, and ethical considerations.
The software requirements document
1. Defini)on and Purpose:
- So5ware requirements document (SRS) is an official statement of what system developers should
implement.
- It includes both user requirements and detailed system requirements.
7. Level of Detail:
- Cri)cal systems require detailed requirements, especially for safety and security analysis.
- Outsourced projects need detailed and precise specifica)ons.
- In-house itera)ve development allows for less detail, resolving ambigui)es during system development.
3. User Requirements:
- Describe both functional and non-functional requirements in a way understandable by users without
technical knowledge.
- Should specify only the external behavior of the system.
- Should be written in natural language with simple tables, forms, and intuitive diagrams, avoiding software
jargon.
4. System Requirements:
- Expanded versions of user requirements used by software engineers for system design.
- Add detail and explain how user requirements should be provided.
- Used as part of the contract for system implementation.
- Ideally, describe only the external behavior and operational constraints of the system.
Requirements management
**Requirements Management:**
1. **Nature of Changing Requirements:**
- Large software systems often developed for 'wicked' problems, making complete definition challenging.
- Stakeholders' evolving understanding of the problem leads to changing requirements.
2. **Post-Installation Changes:**
- New requirements emerge after system installation due to unforeseen effects on business processes.
- Users discover new needs and priorities based on system experience.
- **Change Implementation:**
- Modify requirements document and, if necessary, system design and implementation.
- Organize the document for ease of change without extensive rewriting.
- Users prioritize changes, and high-priority changes may lead to dropping planned features in the next iteration.