Chapter 5: Requirements Engineering Process

🎯 Learning Objectives

By the end of this study session, you’ll be able to:

  • Define requirements engineering and explain its critical role in software development
  • Execute all five requirements engineering activities systematically
  • Navigate the challenges of requirements analysis using proven techniques
  • Apply viewpoint-oriented analysis to discover comprehensive requirements
  • Validate requirements effectively using multiple verification methods
  • Implement requirements management strategies for changing project needs

🌟 The Big Picture

Requirements engineering is your project’s foundation - it’s the systematic process of figuring out exactly what your software needs to do before you build it. Think of it as being a detective, translator, and diplomat all at once: you’ll discover what stakeholders really need, translate their wishes into clear technical specifications, and negotiate between conflicting demands to create a system that actually works.

📚 Core Concepts

What is Requirements Engineering?

Requirements engineering encompasses all activities needed to create and maintain a system requirements document. You’re essentially bridging the gap between what people want and what developers can build.

The Complete Process includes:

  1. Feasibility Studies - Can we actually build this?
  2. Requirement Elicitation and Analysis - What do people really need?
  3. Requirement Specification - How do we document it clearly?
  4. Requirement Validation - Did we get it right?
  5. Requirement Management - How do we handle changes?

1. Feasibility Studies - The Reality Check

Before diving into development, you need to determine if the project is actually doable. Think of this as your project’s health checkup.

The Three Critical Feasibility Types:

Legal Feasibility:

  • Ensures your product complies with all regulations and laws
  • Example: Medical software handling protected health information must meet HIPAA requirements
  • Identifies legal risks and their potential project impact

Operational Feasibility:

  • Examines how the new system will impact daily company operations
  • Determines what procedures need implementation
  • Assesses maintenance efforts required

Schedule Feasibility:

  • Analyzes timelines and deadlines for the proposed project
  • Determines realistic completion timeframes
  • Critical because projects that miss deadlines often fail to serve their intended purpose

2. Requirements Analysis & Elicitation - The Detective Work

This is where things get interesting (and challenging). You’re extracting requirements from stakeholders who often don’t know exactly what they want.

Why This Process is Genuinely Difficult

Stakeholder Challenges:

  • Unclear expectations - People know they have a problem but can’t articulate the solution
  • Different vocabularies - Technical teams and business users speak different languages
  • Varied expression styles - Everyone communicates requirements differently
  • Political factors - Office politics can influence what people say they need
  • Environmental changes - Economic and business shifts alter requirements mid-project

The Four Core Activities

2.1 Requirements Discovery - Finding What You Need

You’ll gather information from three main sources:

  • Stakeholders - The people who will use or be affected by the system
  • Documentation - Existing system specs, business processes, regulations
  • Similar Systems - Specifications from comparable projects

Viewpoint-Oriented Analysis - Your Strategic Framework

This approach systematically identifies all the different perspectives on your system. Think of it as creating a comprehensive guest list for your requirements gathering party.

The Three Essential Viewpoint Types:

Interactor Viewpoints:

  • People who directly interact with the system
  • Focus on system features and user interfaces
  • Example (ATM): Bank customers, bank staff, database systems

Indirect Viewpoints:

  • People who don’t use the system directly but influence its requirements
  • Contribute high-level requirements and constraints
  • Example (ATM): Bank managers, security staff, marketing department

Domain Viewpoints:

  • Standards and regulations that constrain the system
  • Industry-specific requirements that aren’t negotiable
  • Example (ATM): Standards for interbank communications, security protocols

Practical Example - College Library System

Interactor Viewpoints: Students, Lecturers, Tutors, System Engineers, Librarians Indirect Viewpoints: Library Manager, Finance Department, Book Suppliers
Domain Viewpoints: UI Standards, Classification Standards (Dewey Decimal, etc.)

Visual Reference - Library System Hierarchy:

All Viewpoints
├── Interactor VPs
│   ├── Students
│   ├── Lecturers
│   ├── Library Staff
│   └── System Engineers
├── Indirect VPs
│   ├── Library Manager
│   ├── Finance Department
│   └── Suppliers
└── Domain VPs
    ├── UI Standards
    └── Classification Standards

Why Create Viewpoint Hierarchies?

Creating structured viewpoint hierarchies serves three critical purposes:

  1. Efficiency Management - Large systems have numerous viewpoints. Hierarchies help identify which viewpoints share common requirements, so you don’t need to interview everyone separately
  2. Complete Coverage - Ensures you don’t miss any important perspectives during analysis
  3. Validation Tool - Helps determine whether a potential viewpoint is actually relevant to your project

2.2 Requirements Discovery Techniques

Interview: Direct conversations with stakeholders - your primary tool Prototyping: Build quick versions to clarify unclear requirements Scenarios: Walk through real-world use cases Observation: Watch people work to discover implicit requirements Real-life Examples: Study how similar systems actually get used

2.3 Requirements Classification & Organization

Once you’ve gathered requirements, you need to organize them logically:

  • Create requirement clusters around related functionality
  • Remove overlapping requirements that say the same thing differently
  • Group by system areas (e.g., Check In, Room Reservation, Check Out for a Hotel Management System)

2.4 Requirements Prioritization & Negotiation

Reality check time - you can’t build everything at once:

  • Prioritize requirements based on business value and technical feasibility
  • Resolve conflicts between different stakeholder needs
  • Negotiate compromises when requirements contradict each other

2.5 Requirements Documentation

Create documentation that is:

  • Complete - Nothing important is missing
  • Consistent - No contradictions between requirements
  • Aligned - Matches what stakeholders actually need

3. Requirements Specification

(This topic is covered in detail in Chapter 4 of your course materials)

The specification phase transforms your analyzed requirements into formal documentation that developers can use to build the system.


4. Requirements Validation - Getting It Right

Before anyone starts coding, you need to verify that your requirements are actually correct and buildable. Think of this as quality assurance for your requirements.

Five Critical Validation Aspects:

Validity:

  • Verify the functions users wanted are correct and actually needed
  • Confirm stakeholders really need what’s documented

Consistency:

  • Check for conflicts between requirements
  • Real Example: Electronic Library System conflict:
    • Requirement A: “Allow user to retrieve items in any format”
    • Requirement B: “No file conversion should be supported”
    • The Conflict: You can’t retrieve in “any format” without file conversion

Completeness:

  • Ensure all necessary requirements are captured
  • Verify nothing critical is missing

Realism Check:

  • Assess whether requirements are technically and economically feasible
  • Confirm the system can actually be built with available resources

Verifiability:

  • Requirements must be measurable and demonstrable
  • You need to be able to prove the final system meets each requirement

Validation Methods You Can Use:

  • Prototyping - Build working models to test requirement accuracy
  • Structured Walkthrough - Systematically review requirements with stakeholders
  • Formal Technical Reviews - Have technical experts evaluate requirement feasibility

5. Requirements Management - Handling Change

Requirements management deals with the reality that requirements will change throughout your project. It’s not about preventing change - it’s about managing it effectively.

The Two Core Components:

5.1 Management Planning

Create a comprehensive plan that provides:

  • Clear project objectives that everyone understands
  • Defined roles and responsibilities so nothing falls through cracks
  • Guidance resource that the entire team can reference

Think of your management plan as your project’s rulebook that keeps everyone aligned.

5.2 Change Management

This covers methods and processes for describing and implementing change in both internal and external processes.

Key Success Factors:

  • Prepare and support employees for upcoming changes
  • Establish clear steps for implementing changes
  • Monitor pre- and post-change activities to ensure successful implementation
  • Maintain effective communication - this is absolutely critical for change management success

The Change Management Reality: Effective communication isn’t just helpful - it’s the single most important factor that determines whether your change management succeeds or fails.


🔄 Putting It All Together

Requirements engineering isn’t a linear process - you’ll cycle through these activities multiple times as you refine your understanding. Start with feasibility studies to ensure your project is realistic, then dive deep into elicitation and analysis to discover what stakeholders really need. Use viewpoint-oriented analysis to make sure you haven’t missed anyone important, then validate everything before moving forward. Throughout the entire process, manage changes systematically so your project stays on track even as requirements evolve.

Remember: Good requirements engineering prevents most of the expensive problems that occur later in development. The time you invest here pays dividends throughout the entire project lifecycle.