ScholarQuill logoScholarQuillUniversity Notes
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
Study Tools
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
Contact
ScholarQuill logo
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
ScholarQuill logoScholarQuillUniversity Notes
Study PortalITEC4148Requirement Characteri…
Ctrl + K
Login
Explore
Search
Semester
Papers
CGPA
    ITEC4148

    Software requirements engineering

    Progress0 / 27 done
    Topics27
    1Introduction to Requirements Engineering2Software Requirements3Classification of Requirements4Requirements Process5Levels and Layers of Requirements6Requirement Characteristics7Analyzing Quality Requirements8Software Requirements in the Context of Systems Engineering9Requirement Evolution10Requirement Traceability11Requirement Prioritization12Trade-Off Analysis13Risk Analysis and Impact Analysis14Requirement Management15Interaction Between Requirement and Architecture16Requirement Elicitation17Elicitation Sources and Techniques18Requirement Specification and Documentation19Specification Sources and Techniques20Requirements Validation and Techniques21Management of Requirements22Introduction to Management23Requirements Management Problems24Managing Requirements in an Acquisition Organization25Managing Requirements in Supplier Organizations26Managing Requirements in Product Organizations27Requirements Engineering for Agile Methods
    8 min read
    Topic 6 of 27
    Topic Study Note Illustration
    06

    Requirement Characteristics

    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...

    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 view and download past papers

    Click on Show Past Papers to load available exam papers.

    Reading Progress
    0%
    8mremaining
    1.3kwords
    Intermediatelevel
    On This Page

    No headings found

    Study Toolkit

    Subject Portal

    Software requirements engineering