Labs ICT
โญ Pro Login

Requirements Engineering

How to gather, analyze, and validate software requirements.

Requirements Engineering

Requirements engineering is the process of defining, documenting, and maintaining software requirements. Good requirements are the foundation of successful software projects. Without them, you're building without a blueprint.

Types of Requirements


  +--------------------------------------------------+
  |              REQUIREMENTS TYPES                  |
  +--------------------------------------------------+
  |                                                  |
  |   Functional Requirements                        |
  |   - What the system MUST DO                      |
  |   - Examples:                                    |
  |     * User can login with email/password         |
  |     * System generates monthly reports           |
  |     * Admin can manage user accounts             |
  |                                                  |
  |   Non-Functional Requirements                   |
  |   - HOW the system performs                      |
  |   - Examples:                                    |
  |     * Page loads in under 2 seconds              |
  |     * System handles 10,000 concurrent users     |
  |     * Data encrypted at rest                     |
  |                                                  |
  |   Constraints                                    |
  |   - Limitations and restrictions                 |
  |   - Examples:                                    |
  |     * Must use existing database                 |
  |     * Budget cannot exceed $50,000               |
  |     * Must comply with GDPR                      |
  |                                                  |
  +--------------------------------------------------+

Gathering Requirements

Requirements come from many sources. Stakeholders, users, business analysts, and technical constraints all contribute. The key is to ask the right questions and validate assumptions.

Techniques:

  • Interviews with stakeholders
  • Surveys and questionnaires
  • Workshops and focus groups
  • Observation of existing workflows
  • Analysis of competitor systems
  • Review of existing documentation

Requirement Quality Criteria (SMART)


  Good Requirements are:
  ======================

  S - Specific        : Clear and unambiguous
                       "User enters email to login"
                       NOT "User can login somehow"

  M - Measurable      : Can be tested and verified
                       "Response time < 2 seconds"
                       NOT "System is fast"

  A - Achievable      : Realistic given constraints
                       "Support 1,000 users in Phase 1"
                       NOT "Support 1 billion users on day one"

  R - Relevant        : Aligns with project goals
                       "Integrate with payment gateway"
                       NOT "Add dancing hamster animation"

  T - Traceable       : Can be tracked to design/code/test
                       Each requirement has a unique ID
                       Linked to test cases

Common Pitfalls

  • Ambiguous language ("the system should be fast")
  • Missing non-functional requirements
  • Scope creep from uncontrolled changes
  • Not validating with actual users
  • Assuming rather than asking

Key Takeaways

  • Requirements engineering prevents costly rework later
  • Distinguish between functional and non-functional requirements
  • Use SMART criteria for writing good requirements
  • Always validate requirements with stakeholders

๐Ÿงช Quick Quiz

What is a Functional Requirement?