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
    ITEC4140
    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
    ITEC4140›Requirement Characteristics
    Software requirements engineeringTopic 6 of 27

    Requirement Characteristics

    8 minread
    1,345words
    Intermediatelevel

    Characteristics of Good Requirements

    In Requirements Engineering, the quality of the requirements plays a critical role in determining the success of the software development project. A well-defined and clear set of requirements ensures that the system meets stakeholders' needs, is feasible to implement, and is delivered on time and within budget. The characteristics of good requirements help in creating a strong foundation for design, development, and testing.

    Below are the key characteristics of good requirements:


    1. Correctness

    • Definition: A requirement is correct if it accurately reflects the needs and expectations of stakeholders, and if it represents the true business goals.
    • Explanation: The requirement should describe exactly what the system needs to do, without any errors or misinterpretations. This characteristic ensures that the system’s functionalities are in line with the users' needs and business objectives.

    Example:

    • Incorrect: "The system must allow users to log in."
    • Correct: "The system must allow users to log in using their email address and password, with an option for multi-factor authentication."

    2. Clarity

    • Definition: A requirement is clear if it is written in a precise, understandable, and unambiguous way.
    • Explanation: Ambiguity in requirements can lead to misunderstandings, misinterpretations, and incorrect implementation. A clear requirement leaves no room for confusion and ensures that all stakeholders have the same understanding of what is being requested.

    Example:

    • Ambiguous: "The system should perform well under heavy load."
    • Clear: "The system must handle 1,000 concurrent users with an average response time of less than 2 seconds."

    3. Consistency

    • Definition: A requirement is consistent if it does not conflict with other requirements or parts of the system.
    • Explanation: Consistency ensures that no two requirements contradict each other. Conflicting requirements may lead to difficult decisions during design or implementation and could lead to system failures.

    Example:

    • Inconsistent: "The system must support up to 10,000 concurrent users" and "The system must support up to 5,000 concurrent users."
    • Consistent: "The system must support up to 10,000 concurrent users."

    4. Completeness

    • Definition: A requirement is complete if it provides all necessary information to fully describe what the system must do, without leaving any gaps or ambiguities.
    • Explanation: A complete requirement specifies all the conditions under which it should be met, and all behaviors the system should exhibit. Incomplete requirements can result in unimplemented features or overlooked use cases.

    Example:

    • Incomplete: "The system must allow users to register."
    • Complete: "The system must allow users to register by providing a unique email address, password, and agreeing to the terms and conditions. The system must validate the email format and password strength."

    5. Verifiability

    • Definition: A requirement is verifiable if it can be tested or validated through inspection, demonstration, or analysis.
    • Explanation: Verifiability ensures that the requirement can be objectively checked to see if it has been successfully implemented. If a requirement cannot be tested or verified, it is impossible to confirm whether it has been properly fulfilled.

    Example:

    • Non-verifiable: "The system must be user-friendly."
    • Verifiable: "The system must have a usability score of 80% or higher on the System Usability Scale (SUS) after user testing."

    6. Traceability

    • Definition: A requirement is traceable if there is a clear connection between it and its origins, as well as between the requirement and its implementation or test cases.
    • Explanation: Traceability helps ensure that each requirement is tracked throughout the software development process. It also allows teams to verify that all requirements have been fulfilled and supports impact analysis when requirements change.

    Example:

    • A requirement such as "The system must store user data securely" should be traceable to a specific business need or regulatory compliance standard (e.g., GDPR) and linked to corresponding design and test cases.

    7. Feasibility

    • Definition: A requirement is feasible if it is achievable within the project's constraints (such as time, budget, and technology).
    • Explanation: Feasibility ensures that the requirement can be realistically implemented given the resources available. If a requirement is not feasible, it may need to be revised, deferred, or dropped entirely.

    Example:

    • Feasible: "The system must be able to support up to 10,000 users simultaneously."
    • Infeasible: "The system must be able to support 1 million users simultaneously with 99.999% uptime, within a budget of $10,000."

    8. Modifiability

    • Definition: A requirement is modifiable if it can be changed or updated without causing major disruptions or inconsistencies in the system.
    • Explanation: Requirements often evolve over time due to changes in business needs, technology, or stakeholder feedback. Modifiability ensures that changes can be made in a controlled manner, with minimal impact on the system as a whole.

    Example:

    • A modifiable requirement: "The system must allow users to register with email and password."
    • A non-modifiable requirement: "The system must only allow registration with a government-issued ID" (if this is restrictive and difficult to change).

    9. Understandability

    • Definition: A requirement is understandable if it can be easily read and interpreted by both technical and non-technical stakeholders.
    • Explanation: Requirements should be written in clear, simple language that can be understood by all stakeholders, including business analysts, developers, testers, and end-users.

    Example:

    • Unclear: "The system will provide access control mechanisms for users."
    • Clear: "The system must allow users to log in and restrict access to certain features based on their role (e.g., admin, user, guest)."

    10. Prioritization

    • Definition: A requirement is prioritized if it is assigned a level of importance, based on its business value or impact on the system.
    • Explanation: Not all requirements are of equal importance. Some features are critical to the system's success, while others are "nice-to-haves." Prioritizing requirements helps ensure that the most important and high-value features are implemented first.

    Example:

    • High Priority: "The system must allow users to reset their password."
    • Low Priority: "The system should allow users to change their profile picture."

    11. Unambiguousness

    • Definition: A requirement is unambiguous if there is only one possible interpretation of it.
    • Explanation: Ambiguity in requirements can lead to different interpretations, which in turn can cause inconsistencies in the system's design, implementation, and testing. Requirements should be clear and precise, leaving no room for multiple interpretations.

    Example:

    • Ambiguous: "The system should be fast."
    • Unambiguous: "The system should process user requests and provide a response within 3 seconds."

    Summary of Characteristics of Good Requirements:

    Characteristic Description Example
    Correctness Accurately reflects the needs of the stakeholders and business goals. "The system must allow users to log in with email and password."
    Clarity Written in a precise, understandable way without ambiguity. "The system must handle 1,000 concurrent users."
    Consistency Does not conflict with other requirements or parts of the system. "The system supports 10,000 concurrent users."
    Completeness Provides all the necessary information without leaving gaps. "The system must validate email format and password strength."
    Verifiability Can be tested or validated through inspection or testing. "The system must respond to a login request within 2 seconds."
    Traceability Easily linked to its origin, design, implementation, and testing artifacts. "This requirement comes from the GDPR compliance standard."
    Feasibility Can be realistically implemented within the project's constraints (time, budget, technology). "The system must be able to support 10,000 users simultaneously."
    Modifiability Can be changed or updated with minimal impact on the system. "Users must be able to reset their passwords via email."
    Understandability Can be understood by both technical and non-technical stakeholders. "The system must display a loading icon when the page is loading."
    Prioritization Assigned a level of importance based on its business value or impact. "The system must allow secure payments (high priority)."
    Unambiguousness Only one interpretation is possible. "The system must complete a user registration within 5 minutes."

    Conclusion

    Good requirements are the backbone of a successful software development project. By ensuring that requirements are correct, clear, consistent, and complete, teams can reduce the risk of misunderstandings, scope creep, and project delays. Verifiable, traceable, and feasible requirements, combined with a clear understanding of priorities and modifiability, help maintain alignment between stakeholders and the development team, ensuring the final product meets its objectives.

    Previous topic 5
    Levels and Layers of Requirements
    Next topic 7
    Analyzing Quality Requirements

    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,345
      Code examples0
      DifficultyIntermediate