Software Requirements Document 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

What is a key characteristic of viable requirements?

  • They should be easily understood by all stakeholders.
  • They should include statistical data.
  • They must comply with the project’s constraints. (correct)
  • They need to be changed frequently.

Why is it important to provide rationale with requirements?

  • It enhances the aesthetic appeal of the documentation.
  • It reduces the overall project cost significantly.
  • It helps developers understand the application domain and the context of requirements. (correct)
  • It allows stakeholders to make unilateral decisions.

What is a common mistake when writing requirements in terms of verifiability?

  • Using specific metrics to quantify performance.
  • Describing all possible scenarios of software use.
  • Including vague terms such as 'errors shall be minimized.' (correct)
  • Employing clear and unambiguous language.

Which statement describes a successful training outcome as a requirement?

<p>The average number of errors made by experienced users should not exceed two per day after training. (D)</p> Signup and view all the answers

Which of the following is NOT a factor in determining the viability of a requirement?

<p>The amount of emotional support stakeholders offer. (C)</p> Signup and view all the answers

What is the primary purpose of requirements validation?

<p>To confirm that requirements match the customer's needs (C)</p> Signup and view all the answers

Which method is emphasized as an important technique for validating requirements?

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

What does the completeness check in requirements checking signify?

<p>Every function requested by the customer is documented (B)</p> Signup and view all the answers

Why is it important to involve both client and contractor staff in requirements reviews?

<p>To enhance communication and identify potential issues early (C)</p> Signup and view all the answers

What can make changes to the requirements document easier?

<p>Keeping document sections modular and electronic (A)</p> Signup and view all the answers

What is a primary issue with ambiguous requirements?

<p>They can be interpreted in multiple ways. (A)</p> Signup and view all the answers

Why can natural language (NL) specifications be problematic?

<p>Natural language is inherently ambiguous. (D)</p> Signup and view all the answers

What is the benefit of using a glossary in requirements specification?

<p>It helps clarify terms that may have multiple meanings. (A)</p> Signup and view all the answers

What characterizes mathematical specifications?

<p>They are unambiguous and based on mathematical concepts. (D)</p> Signup and view all the answers

Which approach uses templates for expressing requirements specifications?

<p>Structured natural language. (A)</p> Signup and view all the answers

What is a limitation of NL structures in requirements specification?

<p>They are inadequate to structure system requirements. (C)</p> Signup and view all the answers

What is the primary function of fit criteria in requirements?

<p>To quantify the requirement for testing. (D)</p> Signup and view all the answers

What can be a major drawback of using formal specifications?

<p>Most customers cannot understand them. (C)</p> Signup and view all the answers

What is a key characteristic of a requirements document?

<p>It should specify what the system should do rather than how it should do it. (C)</p> Signup and view all the answers

In writing a requirements document, which verb should be used for mandatory requirements?

<p>Shall (D)</p> Signup and view all the answers

What major problem might exist in a requirements document?

<p>Requirements can be incomplete and inconsistent. (B)</p> Signup and view all the answers

Which of the following is not included in the criteria for completeness of a requirements document?

<p>Detailed instructions on system design (C)</p> Signup and view all the answers

What is advised in the guidelines for writing requirements regarding technical language?

<p>Avoid using computer jargon. (A)</p> Signup and view all the answers

Which of the following contributes to the inconsistency of requirements?

<p>Different stakeholders having varying requirements and priorities. (B)</p> Signup and view all the answers

Which aspect should be focused on when validating a requirements document?

<p>Alignment with IEEE requirements document standards. (C)</p> Signup and view all the answers

What kind of behaviors should a requirements document specify?

<p>External system behaviors and constraints. (C)</p> Signup and view all the answers

Flashcards

Correctness of Requirements

Each requirement statement accurately represents the functionality needed for the system.

Viability of Requirements

Requirements should be feasible and achievable with available resources (technology, time, money).

Requirements Rationale

Explanations behind the requirements, helping developers understand the 'why' behind each one.

Requirements Verifiability

Requirements should be written in measurable and testable ways.

Signup and view all the flashcards

Problem with Vague Requirements

Vague terms like 'easy to use' or 'minimize errors' are problematic because they're subjective and hard to measure. Quantifiable targets make verification easier.

Signup and view all the flashcards

Requirements Separation

Separating functional requirements, which describe what the system must do, from non-functional requirements, which specify how the system must perform.

Signup and view all the flashcards

Requirements Validation

A process to ensure that the defined requirements truly reflect the customer's needs and expectations.

Signup and view all the flashcards

High Cost of Requirements Errors

The cost of fixing a requirements error after software delivery can be significantly higher than fixing a coding error.

Signup and view all the flashcards

Prototyping for Requirements Validation

A technique used to evaluate requirements by creating a working model of the system.

Signup and view all the flashcards

Requirements Checking

Ensuring that the system meets the customer's needs, is internally consistent, complete, and achievable within budget and technology limitations.

Signup and view all the flashcards

Software Requirements Document

A formal document outlining the needs and expectations for a software system.

Signup and view all the flashcards

Requirements Document Focus

They define what the software should do, not how it should be built.

Signup and view all the flashcards

Requirements Document Guidelines

A standard format ensures consistency and readability. Mandatory requirements use 'shall', while desired features use 'should'.

Signup and view all the flashcards

Requirements Document: External Behavior

It describes the system's interaction with the outside world.

Signup and view all the flashcards

Requirements Document: Implementation Constraints

These constraints limit the software's implementation, like specific technology or platforms to be used.

Signup and view all the flashcards

Requirements Document: Changeability

It should be easy to change requirements as they may evolve during development.

Signup and view all the flashcards

Requirements Document: Life Cycle Considerations

Predicting future changes to the system and incorporating them from the start.

Signup and view all the flashcards

Requirements Document: Handling Unexpected Events

The document should describe how the system will handle unexpected situations.

Signup and view all the flashcards

Requirements Ambiguity

When requirements are unclear or have multiple interpretations, leading to confusion and misunderstandings.

Signup and view all the flashcards

Ambiguity in NL Specification

Describing the difficulty of using natural language for precise requirements due to its inherent ambiguity. Words can have multiple meanings which complicates the understanding of requirements.

Signup and view all the flashcards

Structured Natural Language

The use of standardized forms or templates to express requirements systematically, reducing ambiguity and improving clarity.

Signup and view all the flashcards

Design Description Languages

A language like a programming language, but with more abstract features for defining requirements. It uses an operational model of the system.

Signup and view all the flashcards

Graphical Notations

Graphical notations, often accompanied by text annotations, used to define the functional requirements of a system.

Signup and view all the flashcards

Mathematical Specifications

Mathematical notations based on concepts like finite-state machines or sets, providing unambiguous specifications for system functionality.

Signup and view all the flashcards

Use-Case Descriptions

An approach to specifying requirements by defining clear steps and actions for users in a system.

Signup and view all the flashcards

Over-Flexibility In NL Specifications

The issue of multiple ways to express the same meaning in NL requirements, leading to redundancy and potential inconsistencies.

Signup and view all the flashcards

Study Notes

Software Requirements Document

  • A software requirements document is an official statement of what is required of system developers.
  • It should define and specify requirements.
  • It is not a design document, but should focus on what the system should do, not how.

Key Points

  • Identify major components of the requirements document.
  • Identify potential problems in the requirements document.
  • Understand requirements document validation.
  • Learn IEEE requirements document standards.

Guidelines for Writing Requirements

  • Create a standard format for all requirements.
  • Use consistent language, using "shall" for mandatory and "should" for desirable requirements.
  • Use text highlighting to identify key parts of requirements.
  • Avoid computer jargon.

Requirements Document Requirements

  • Detail external system behaviour.
  • Specify implementation constraints.
  • Ensure requirements are easily modifiable.
  • Predict and document system lifecycle changes.
  • Characterise responses to unexpected events.

Complex Problems

  • System complexity may make thorough understanding impossible during development.
  • Requirements can often be incomplete and inconsistent due to this complexity.

Reasons for Inconsistency

  • Large software systems often have effects on the organization that are difficult to foresee.
  • Different users and organizations have different priorities and requirements.

Requirements Completeness

  • A complete requirements document includes those relating to functionality, performance, design constraints, attributes, and external interfaces.
  • It should describe all required features. Gaps in specification lead to assumptions.

Requirements Ambiguity

  • Ambiguous requirements lead to different interpretations by developers and users.
  • Examples include vagueness in statements about acceptable user numbers.

Ambiguity

  • The natural language used in requirements is inherently ambiguous.
  • Each requirement should have only one interpretation.
  • Use clear and concise language, and use a glossary when necessary to avoid confusion.
  • Define "fit criteria" to test solutions against requirements.

Problems with Natural Language Specifications

  • Ambiguity: Readers and writers of requirements may have different interpretations of the same words.
  • Over-flexibility: Multiple ways to express the same thing in the specification may confuse.
  • Lack of modularisation: Natural language is often poorly suited to structuring system requirements.

Alternatives to Natural Language Specifications

  • Structured Natural Language: Uses standard forms and templates for requirements.
  • Design Description Languages: Uses programming language-like abstract features for defining an operational model.
  • Graphical Notations: Uses visual representations supplemented by text to specify functional requirements.
  • Mathematical Specifications: Uses concepts like finite-state machines to create precise and unambiguous requirements, but can be difficult for customers to understand.

Correctness

  • Every requirement statement must accurately represent the functionality required.

Viability

  • Requirements must be viable within the constraints of the project.
  • Technical skills, time, budget, and stakeholder acceptance are viability concerns.

Requirements Rationale

  • Providing rationale for requirements helps developers understand the application domain and justifies current form.
  • Important for making changes to requirements without unforeseen effects

Requirements Verifiability

  • Requirements should be precise and measurable, allowing objective verification.
  • Vague terms like "minimize errors" should be quantified.
  • Define metrics, such as an experienced user completing tasks within a set time and number of errors.

Requirements Separation

  • Functional and non-functional requirements should be explicitly separated.
  • Non-functional requirements (e.g., safety) may involve the addition of functions to the system.

Requirements Validation

  • Validating requirements ensures the system meets customer needs accurately.
  • Error costs associated with requirements errors typically high, making validation crucial.
  • Prototyping helps in requirements validation.

Requirements Checking

  • Validate requirements by ensuring that they meet customer needs, checking for conflicts, and confirming if all relevant functionalities are included.
  • Requirements must be achievable given budget and technology.

Requirements Reviews

  • Hold regular reviews to check requirements during their formulation.
  • Involve client and contractor staff to ensure everyone's input is captured.
  • Early communication to resolve issues quickly

Requirements Document Changes

  • Organize the document to facilitate modifications without extensive rewriting.
  • Minimize external references and use modular sections.
  • Electronic documents facilitate changes.

IEEE Requirements Standard

  • The IEEE standard document structure includes a general description, specific requirements, appendices, and an index.
  • It is a generic structure adapted to specific systems.

IEEE Recommendations

  • The IEEE recommendations detail the structure of a software requirement document, specifying sections like Introduction, Overview and Specific 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

Software Requirements Engineering Quiz
1 questions
Especificación de Requisitos de Software
10 questions
IEEE Software Requirements Specifications
41 questions
Use Quizgecko on...
Browser
Browser