ScholarQuill logoScholarQuillUniversity Notes
  • Notes
  • Past Papers
  • Blogs
  • Todo
Login
ScholarQuill logoScholarQuillUniversity Notes
Login
NotesPast PapersBlogsTodo
More
SubjectsDiscussionCGPA CalculatorGPA CalculatorStudent PortalCourse Outline
About
About usPrivacy PolicyReportContact
Notes
Past Papers
Blogs
Todo
Analytics
    Current Subject
    🧩
    Software requirements engineering
    ITEC4148
    Progress0 / 27 topics
    Topics
    1. Introduction to Requirements Engineering2. Software Requirements3. Classification of Requirements4. Requirements Process5. Levels and Layers of Requirements6. Requirement Characteristics7. Analyzing Quality Requirements8. Software Requirements in the Context of Systems Engineering9. Requirement Evolution10. Requirement Traceability11. Requirement Prioritization12. Trade-Off Analysis13. Risk Analysis and Impact Analysis14. Requirement Management15. Interaction Between Requirement and Architecture16. Requirement Elicitation17. Elicitation Sources and Techniques18. Requirement Specification and Documentation19. Specification Sources and Techniques20. Requirements Validation and Techniques21. Management of Requirements22. Introduction to Management23. Requirements Management Problems24. Managing Requirements in an Acquisition Organization25. Managing Requirements in Supplier Organizations26. Managing Requirements in Product Organizations27. Requirements Engineering for Agile Methods
    ITEC4148›Requirement Elicitation
    Software requirements engineeringTopic 16 of 27

    Requirement Elicitation

    8 minread
    1,436words
    Intermediatelevel

    Requirement Elicitation in Software Engineering

    Requirement elicitation is the process of gathering, discovering, and defining the requirements of a software system from stakeholders. It is the first and one of the most critical steps in the requirements engineering process. The goal is to uncover all the needs and expectations of users, customers, and other relevant stakeholders to ensure that the final system will fulfill its intended purpose and align with business goals.

    Effective elicitation ensures that the right requirements are identified early on, reducing the risk of project failure, misunderstandings, and costly changes later in the development process. Since the information gathered during elicitation serves as the foundation for system design and development, it requires careful planning and skillful communication.


    1. Objectives of Requirement Elicitation

    The primary goals of requirement elicitation are:

    • Understanding Stakeholder Needs: To uncover the true needs, expectations, and desires of stakeholders (such as users, customers, business owners, and system administrators).

    • Capturing Functional and Non-Functional Requirements: To gather both functional (what the system should do) and non-functional (how the system should perform, such as performance, security, and usability) requirements.

    • Clarifying System Boundaries: To define what is inside and outside the scope of the system, ensuring there is a clear understanding of the project’s scope.

    • Creating a Shared Understanding: To ensure all stakeholders have a common understanding of the system’s requirements and its goals.

    • Minimizing Ambiguities: To identify and resolve any ambiguities in requirements early in the process, reducing the chances of misunderstandings and rework.

    • Establishing Traceability: To lay the groundwork for establishing traceability of requirements from conception through to design, implementation, and testing.


    2. Key Steps in the Requirement Elicitation Process

    Requirement elicitation is an iterative process that often involves several phases. Below are the key steps typically involved in eliciting requirements:

    1. Identify Stakeholders

    • The first step in elicitation is identifying all the relevant stakeholders who will provide input into the system’s requirements. Stakeholders include:
      • End-users (primary users of the system)
      • Customers (who fund or commission the system)
      • Business owners (those who define the business goals)
      • Developers, architects, and testers (who will build and validate the system)
      • Regulatory bodies, suppliers, and partners (if applicable)
    • It’s important to ensure that all relevant perspectives are considered, especially those that might be indirectly affected by the system.

    2. Prepare Elicitation Plan

    • Before gathering requirements, it’s important to plan the elicitation process:
      • Define Elicitation Techniques: Decide on the methods you’ll use to gather requirements (interviews, workshops, surveys, etc.).
      • Establish Timeframe: Determine how long each elicitation activity will take and when it should be completed.
      • Select Participants: Choose the key stakeholders for each elicitation activity.
      • Define Goals: Set clear goals for what needs to be gathered during the elicitation.

    3. Choose Elicitation Techniques

    • There are several techniques for gathering requirements, each with its strengths and weaknesses. The choice of technique depends on the context, stakeholders, and types of requirements (functional vs. non-functional). Some common techniques include:

    a. Interviews:

    • Structured or unstructured conversations with stakeholders to gather their expectations, needs, and insights.
    • Can be one-on-one or in groups, and they can be informal or formal.

    b. Workshops:

    • Facilitated sessions where stakeholders come together to discuss and define requirements.
    • Useful for resolving conflicting requirements and fostering collaboration.

    c. Surveys and Questionnaires:

    • Useful for collecting input from a large group of people. These are especially useful for gathering quantitative data or opinions.

    d. Observation:

    • Watching users perform tasks in their real-world environment to understand how they interact with the system or how the system should behave in practice.
    • This method is especially useful for uncovering tacit knowledge that users might not explicitly express in interviews or surveys.

    e. Document Analysis:

    • Reviewing existing documentation (such as business process documents, previous project documentation, or competitor analysis) to extract relevant information about the system requirements.

    f. Prototyping:

    • Creating a prototype (a working model) of the system or part of the system to help stakeholders visualize requirements and provide feedback. This is especially useful for systems with complex or ambiguous user interfaces.

    g. Brainstorming:

    • A group activity where stakeholders generate as many ideas or requirements as possible in a short time, followed by refinement and prioritization.

    h. Use Cases and User Stories:

    • Describing how a user interacts with the system to achieve specific goals. This helps in understanding the system’s functional requirements from the user's perspective.

    4. Gathering Requirements

    • With the chosen elicitation techniques in place, the next step is to actively gather the requirements from stakeholders. During this process:
      • Listen carefully: Pay attention to both what is said and how it is said. Stakeholders may reveal subtle insights about their needs.
      • Ask clarifying questions: Dig deeper to understand the context behind statements and to uncover hidden or implicit requirements.
      • Document everything: Record requirements as they are gathered, either in notes or directly into a formal system for tracking. Ensure clarity, completeness, and traceability.

    5. Analyze and Refine Requirements

    • Once requirements have been gathered, it’s time to analyze them:
      • Categorize requirements: Organize requirements into functional (what the system should do) and non-functional (how the system should perform) categories.
      • Identify conflicts and ambiguities: Look for contradictions between different requirements, or ambiguities that need to be clarified.
      • Prioritize requirements: Not all requirements are equally important. Work with stakeholders to identify and prioritize critical requirements, especially in resource-constrained projects.
      • Validate with stakeholders: Share the gathered requirements with stakeholders to ensure that they are complete, accurate, and reflect their needs.

    6. Document Requirements

    • After the analysis, the next step is to formally document the requirements. Common documentation formats include:
      • Functional Specifications: A detailed description of the functional requirements.
      • Use Cases: Detailed scenarios outlining how users interact with the system.
      • User Stories: A lightweight approach often used in agile methodologies, describing features in simple, user-centric terms.
      • Requirement Specifications Documents: Formal, structured documents that capture both functional and non-functional requirements.
    • Documenting requirements ensures they are traceable, testable, and clear to both the development team and stakeholders.

    3. Challenges in Requirement Elicitation

    Despite its importance, requirement elicitation often faces several challenges:

    • Incomplete or Unclear Requirements: Stakeholders may have a vague idea of what they want but may not be able to articulate it clearly. This can lead to misunderstandings and missing or incorrect requirements.

    • Stakeholder Conflicts: Different stakeholders may have conflicting requirements or priorities. For example, business managers may want a system that is fast, while users may prioritize usability. Facilitating collaboration and negotiation is essential.

    • Hidden Requirements: Some requirements are implicit or tacit, and users may not express them explicitly. These can be uncovered through techniques like observation, prototyping, and asking probing questions.

    • Changing Requirements: Requirements often change as new information is discovered or as stakeholders refine their understanding. Managing scope creep and ensuring changes are well-documented and agreed upon is a critical challenge.

    • Eliciting Non-Functional Requirements: Non-functional requirements (e.g., performance, security, scalability) are often harder to elicit because they are abstract and require a deeper understanding of system constraints and trade-offs.

    • Time and Resource Constraints: Eliciting requirements can be time-consuming and resource-intensive, especially for large projects with many stakeholders. Balancing thoroughness with efficiency is crucial.


    4. Best Practices for Effective Elicitation

    To maximize the effectiveness of the elicitation process, several best practices can be followed:

    1. Involve Stakeholders Early and Continuously: Engage stakeholders from the very beginning of the project and maintain continuous communication throughout the project lifecycle.

    2. Use a Combination of Elicitation Techniques: Different techniques provide different perspectives and are suited to different types of stakeholders. Using a combination of methods will help uncover more comprehensive and accurate requirements.

    3. Clarify and Validate Requirements Frequently: Regularly validate requirements with stakeholders to ensure alignment with their needs and expectations. Don't assume that what you’ve gathered is final or complete.

    4. Prioritize Requirements: Not all requirements have the same importance. Use prioritization techniques (like MoSCoW or weighted scoring) to focus on delivering the most important features first.

    5. Use Prototypes or Models: Prototyping or modeling can help clarify ambiguous requirements and ensure that stakeholders have a better understanding of the system.

    6. Document Everything Clearly: Clear, detailed, and well-organized documentation is essential for preventing misunderstandings and maintaining traceability throughout the project.

    7. Manage Stakeholder Expectations: Help stakeholders understand project constraints (e.g., time, budget) and guide them in setting realistic expectations regarding what can and cannot be done.

    8. Be Prepared for Change: Requirements often evolve over time. Establish a process for managing changes and ensuring they are properly documented and communicated.


    Conclusion

    **Requirement elicitation

    Previous topic 15
    Interaction Between Requirement and Architecture
    Next topic 17
    Elicitation Sources and Techniques

    Past Papers

    Open this section to load past papers

    Click on Show Past Papers to see past papers.
    On This Page
      Reading Stats
      Est. reading time8 min
      Word count1,436
      Code examples0
      DifficultyIntermediate