Requirements Engineering Overview

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Which of the following are classifications of software requirements? (Select all that apply)

  • Technical Requirements
  • Domain Requirements (correct)
  • Non-functional Requirements (correct)
  • Functional Requirements (correct)

Which requirement specifies the technical characteristics of the software system?

  • System Requirements (correct)
  • Business Requirements
  • User Requirements
  • Regulatory Requirements

Non-functional requirements describe what the software should do.

False (B)

Which of the following is NOT a classification of software requirements?

<p>Technical Requirements (C)</p> Signup and view all the answers

Which example describes a functional requirement?

<p>The system must allow users to log in using a username and password. (A)</p> Signup and view all the answers

Non-functional requirements describe what the software should do.

<p>False (B)</p> Signup and view all the answers

Which of the following is an example of a non-functional requirement?

<p>The system should process 1,000 transactions per second. (D)</p> Signup and view all the answers

Which type of requirement describes the business goals a software system aims to achieve?

<p>Business Requirements (A)</p> Signup and view all the answers

Flashcards

Requirements Engineering

The discipline involving creating and documenting requirements for a software system, crucial in the software development lifecycle for understanding, specifying, and managing system needs.

Functional Requirements

Describe what a software system should do (its functions).

Non-functional Requirements

Describe how a software system performs its functions (quality attributes, performance, security).

Domain Requirements

Requirements specific to the industry or area the software serves.

Signup and view all the flashcards

System Requirements

Technical characteristics of the software system, including architecture, components, and interfaces; derived from user and business requirements.

Signup and view all the flashcards

User Requirements

Describe what end-users want from the software (expressed in natural language).

Signup and view all the flashcards

Business Requirements

Describe the business goals that the software is expected to meet (e.g., revenue, market share).

Signup and view all the flashcards

Software Requirements Specifications (SRS)

A document containing a standardized and detailed description of the software's requirements.

Signup and view all the flashcards

Clear Requirements

Requirements easy to understand and have a single interpretation.

Signup and view all the flashcards

Correct Requirements

Requirements accurately reflect the intended system behavior and needs.

Signup and view all the flashcards

Functional Requirements

Describe what a software system should do; features and functions.

Signup and view all the flashcards

Non-functional Requirements

Describe how a software system performs; quality attributes, performance, security.

Signup and view all the flashcards

Domain Requirements

Software requirements specific to a particular industry or domain.

Signup and view all the flashcards

System Requirements

Technical characteristics of a software system; derived from user and business needs.

Signup and view all the flashcards

User Requirements

Describe what end-users want from a software system, usual in natural language.

Signup and view all the flashcards

Business Requirements

Describe business objectives the software aims to meet, like revenue or market share.

Signup and view all the flashcards

Requirements Engineering

Discipline of creating and documenting software requirements.

Signup and view all the flashcards

Software Requirements Specification (SRS)

Document containing a detailed description of software requirements.

Signup and view all the flashcards

Clear Requirements

Easy to understand and interpret requirements.

Signup and view all the flashcards

Correct Requirements

Requirements accurately reflect the intended software behavior.

Signup and view all the flashcards

Study Notes

Requirements Engineering

  • Requirements engineering is a critical step in software development.
  • It involves creating and documenting requirements.
  • Activities include elicitation, specification, analysis, verification, validation, and management.
  • The process ensures the system benefits the organization, reflects client desires, and is in a standardized format.

Classifications of Software Requirements

  • System requirements are statements of what a system must do to meet stakeholder needs.
  • These needs are derived from business and user requirements.
  • Requirements can be obvious, hidden, known, unknown, expected, or unexpected.
  • Software requirements are categorized into three types: functional, non-functional, and domain.

Functional Requirements

  • Define what the software should do.
  • Describe functions or features.
  • Example: User authentication—the system must allow users to log in using a username and password.
  • Example: Search functionality—the software allows users to search for products by name or category.

Non-functional Requirements

  • Describe how the software performs a task.
  • Define quality attributes, performance criteria, and constraints.
  • Examples:
    • Performance: The system should process 1,000 transactions per second.
    • Usability: The software should be easy to use and have a user-friendly interface.
    • Reliability: The system must have 99.9% uptime.
    • Security: Data must be encrypted during transmission and storage.

Domain Requirements

  • Specific to the industry or domain.
  • Include terminology, rules, and standards.
  • Example: Healthcare—the software must comply with HIPAA regulations for handling patient data.

Other Requirement Classifications

  • User requirements: Describe what end-users want from the system, expressed in natural language, usually through interviews, surveys, or user feedback.
  • System requirements: Define technical characteristics like architecture, hardware, and interfaces, expressed in technical terms.
  • Business requirements: Detail business goals and objectives for the software system.
  • Regulatory requirements: Include legal or regulatory standards the software must meet, such as data privacy, security, and accessibility.
  • Interface requirements: Specify interactions between the system and external components like databases, web services, or other software applications.
  • Design requirements: Detail the software architecture, data structures, algorithms, and other technical aspects.

Software Requirements Specifications (SRS)

  • The output of the requirements specification stage.
  • It documents requirements clearly, concisely, and unambiguously.

Qualities of a good SRS

  • Correctness: Includes all needed functionality.
  • Completeness: Includes all essential requirements (functionality, performance, design, constraints, attributes, external interfaces) and definitions, input data categories, diagrams, and units of measure.
  • Consistency: No conflicting requirements subsets.
  • Unambiguousness: Each requirement should have a single meaning.
  • Modifiability: The SRS should be adaptable to changes.
  • Verifiability: SRS details allow verification of the final software.
  • Traceability: Clear origin of requirements and linkage to other aspects.
  • Design Independence: Options for various design alternatives.
  • Testability: Requirements should be easily transformed into test cases.

Advantages of Classifying Requirements

  • Better organization and management.
  • Easier communication and collaboration.
  • Improved quality due to early identification of conflicts.
  • Effective traceability for demonstrating compliance.

Disadvantages of Classifying Requirements

  • Complexity;
  • Rigid structure limiting adaptability to change:
  • Incorrect classifications leading to errors.

Requirements Engineering Process (RE)

  • Identifies, elicits, analyzes, specifies, validates, and manages stakeholder needs.
  • Crucial for project success;
  • Stakeholder needs are met within budget, quality, and time.

Stages of Requirements Engineering

  • Elicitation: Gathering requirements from various stakeholders.
  • Analysis: Evaluating feasibility, consistency, and completeness of gathered requirements and resolutions of conflicts or contradictions.
  • Modeling: Understanding system behavior by using diagrams.
  • Specification: Documenting the requirements unambiguously and clearly.
  • Validation: Ensuring accuracy, completeness, and consistency of the requirements.
  • Management: Controlling changes and ensuring the requirements remain valid throughout the software development lifecycle.

Requirement Validation Techniques

  • Test case generation: Creates tests to check requirements.
  • Prototyping: Presents a working model to validate customer needs.
  • Requirements reviews: Collective review by a group to identify errors and ambiguities.
  • Automated consistency analysis: Automatically detects inconsistencies and errors.
  • Simulation: Replicates real-world scenarios to verify requirements.
  • Checklists for validation: Methodical verification of requirements.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser