“Software Engineering” For Beginners
Requirement definition & types
- A condition or capability needed by a user.
- Types:
- Functional requirement
- Non-functional requirement
Functional requirement
- It specifies what the system should do – the services, tasks, or functions it must perform.
- Examples:
- User can login using username and password.
- System should generate monthly reports.
- Atm should dispense cash.
- Key point: it describes behavior or functionality.
Non-functional requirement
- It specifies how the system performs a function – quality attributes of the system.
- examples:
- System should respond within 2 seconds.
- System should support 10,000 users.
- Data must be encrypted.
- System availability should be 99.9%.
- Common categories: performance, security, reliability, usability, scalability, maintainability.
SRS (software requirement specification)
- A formal document describing system requirements clearly.
- Benefits: acts as contract, avoids misunderstandings.
- Purpose: defines system scope, acts as agreement between client and developer, helps in design and testing.
Requirement elicitation
- Collecting requirements from stakeholders.
- Methods: interviews, questionnaires, observation, prototyping.
Key process steps
- Elicitation: engage stakeholders to uncover domain details, services, and constraints.
- Analysis: classify, prioritize (e.g., mandatory vs. optional), and negotiate trade-offs.
- Specification: create models like use cases, er diagrams, or data flow diagrams in a software requirements specification (srs) document.
- Validation: review for accuracy via prototypes or walkthroughs.