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 PortalITEC4140Software Requirements
Ctrl + K
Login
Explore
Search
Semester
Papers
CGPA
    ITEC4140

    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
    7 min read
    Topic 2 of 27
    Topic Study Note Illustration
    02

    Software Requirements

    Software requirements define the functionality, performance, and constraints of a software system. They serve as a bridge between what stakeholders expect and what developers need to implement....

    Software Requirements

    Software requirements define the functionality, performance, and constraints of a software system. They serve as a bridge between what stakeholders expect and what developers need to implement. Software requirements are typically classified into two broad categories: Functional Requirements and Non-Functional Requirements, along with other subcategories like Domain Requirements and Interface Requirements.

    Understanding and correctly defining software requirements is crucial to ensure that the developed system meets stakeholder needs, performs well, and adheres to business objectives. Inadequate or vague requirements can lead to costly errors, rework, and dissatisfaction from users or clients.

    Let's dive into the different types of software requirements:

    1. Functional Requirements

    Functional requirements describe what the system should do. They specify the system's behavior, the functions it must support, and how the system should respond to inputs. Essentially, functional requirements define the core operations of the system.

    • Example: In an online banking system, a functional requirement might be: "The system must allow users to transfer money between accounts."

    Functional requirements are typically expressed in terms of:

    • Use cases: Scenarios describing how a user interacts with the system.
    • User stories: Short, simple descriptions of a feature from the user's perspective.
    • Process flows: Diagrams showing the flow of control between different system components or actors.
    • Data requirements: Describes what data must be handled, processed, or stored by the system.

    Some examples of functional requirements:

    • The system shall allow the user to log in with a username and password.
    • The system shall validate and display an error message when invalid login credentials are entered.
    • The system shall generate a report of sales performance for the last quarter.

    2. Non-Functional Requirements (NFRs)

    Non-functional requirements define how the system should perform its functions. These describe the quality attributes of the system, such as its performance, security, scalability, usability, and reliability. NFRs are often just as critical, if not more so, than functional requirements, as they influence how well the system meets user expectations in real-world usage.

    Examples of non-functional requirements include:

    • Performance: Defines how quickly the system should respond to requests.

      • Example: "The system must respond to a user request within 2 seconds under normal load conditions."
    • Security: Specifies requirements related to the protection of data and the system.

      • Example: "The system must encrypt user passwords using SHA-256 encryption."
    • Scalability: Describes the ability of the system to handle increased loads.

      • Example: "The system must be able to handle 10,000 concurrent users without degradation in performance."
    • Usability: Defines how easy and intuitive the system should be for end users.

      • Example: "The system shall provide a user-friendly interface with clear navigation and support for accessibility features."
    • Availability: Describes the uptime and reliability of the system.

      • Example: "The system should have 99.9% uptime, with scheduled maintenance periods outside peak hours."
    • Maintainability: Specifies how easily the system can be updated or maintained over time.

      • Example: "The system shall be modular, allowing for easy replacement of components without affecting other parts of the system."

    3. Domain Requirements

    Domain requirements are requirements that are specific to the application domain and typically reflect the business rules, standards, or regulations governing the system. These requirements are driven by the problem domain in which the system will be used.

    For example, in a healthcare application, domain requirements might include:

    • The system must store patient data in compliance with the Health Insurance Portability and Accountability Act (HIPAA).
    • The system must follow medical billing codes as specified by the International Classification of Diseases (ICD-10).

    Domain requirements are often a combination of both functional and non-functional aspects, but they are typically driven by external regulations or standards.

    4. Interface Requirements

    Interface requirements define how the system should interact with external systems or hardware. These could involve communication protocols, data formats, or hardware specifications.

    Examples of interface requirements:

    • API requirements: The system should expose a RESTful API for third-party systems to integrate with, with endpoints for querying and updating data.
    • Database interface: The system must interact with a MySQL database and support specific SQL queries.
    • Hardware interface: The system must support a barcode scanner via USB for input.

    5. User Requirements

    User requirements are high-level statements that describe what end-users expect from the system. They are typically written in natural language and serve as the foundation for deriving more detailed functional requirements.

    Examples:

    • "The user should be able to access their account balance at any time."
    • "The user should be able to set up recurring payments for bills."

    User requirements are often captured in the form of user stories or use cases.

    6. System Requirements

    System requirements define the overall system behavior, including the hardware, software, network, and any other environmental conditions required for the system to function properly.

    Examples of system requirements:

    • "The system must run on Windows Server 2019 or higher."
    • "The system must support integration with an external payment gateway using the HTTPS protocol."
    • "The system must be compatible with mobile devices running iOS and Android."

    Key Characteristics of Good Software Requirements

    To ensure that software requirements are effective and lead to a successful system, they must have the following qualities:

    • Correct: The requirements must accurately represent the needs of the stakeholders and users.
    • Unambiguous: The requirements must be clear and not open to multiple interpretations.
    • Complete: The requirements must cover all necessary functionality and behavior, including edge cases.
    • Consistent: There must be no contradictions between requirements.
    • Feasible: The requirements must be achievable within the project's constraints (e.g., time, budget, technology).
    • Traceable: Each requirement should be traceable to its origin (e.g., a stakeholder request) and should be linked to design, implementation, and testing artifacts.
    • Verifiable: It must be possible to test the requirement to ensure that the system meets it.

    Requirement Documentation and Management

    Once requirements are gathered, they need to be documented and maintained over time. This includes:

    • Requirement Specification: A formal, detailed document that outlines all requirements.
    • Change Management: As requirements evolve or new ones are added, changes must be managed carefully to avoid scope creep and ensure that all stakeholders are aligned.
    • Version Control: To track changes to the requirements and maintain consistency across different versions of the system.

    Conclusion

    Software requirements are the foundation for building successful software systems. They define what the system should do (functional) and how it should do it (non-functional), as well as any constraints or regulations it must adhere to. Well-defined requirements help ensure that stakeholders, developers, and testers have a shared understanding of the system and its expected behavior. By carefully capturing and managing software requirements, organizations can mitigate risks, reduce costs, and deliver software that meets user needs and business objectives.

    ← Previous topic 1
    Introduction to Requirements Engineering
    Next topic 3 →
    Classification of 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%
    7mremaining
    1.1kwords
    Intermediatelevel
    On This Page

    No headings found

    Study Toolkit

    Subject Portal

    Software requirements engineering