Understanding Requirements Engineering

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Which of the following best describes the purpose of requirements engineering?

  • To test the performance of a software system.
  • To write the code for a software application.
  • To establish the services a customer requires from a system and the constraints under which it operates. (correct)
  • To design the user interface of a system.

A system's response time should be less than 5 seconds. What type of requirement does this describe?

  • A reporting requirement.
  • A business rule.
  • A functional requirement.
  • A non-functional requirement. (correct)

Which of the following is the BEST example of a functional requirement for a library management system?

  • The system should have a user-friendly interface.
  • The system should have a response time of less than 2 seconds for all queries.
  • The system should allow users to search for books by title, author, or ISBN. (correct)
  • The system should be available 24/7.

Why is it important to describe only one piece of functionality in each functional requirement?

<p>It makes each requirement easier to understand, test, and implement. (C)</p> Signup and view all the answers

A company is creating functional requirements for an ordering system. Which of the following is MOST important to ensure consistency?

<p>Maintaining a consistent sentence structure and style across all functional requirements. (C)</p> Signup and view all the answers

When writing functional requirements, what is the importance of using active verbs and specific functions?

<p>To ensure that the requirements are easily testable and measurable. (A)</p> Signup and view all the answers

Which document is written as a contract between the client and contractor that describes detailed system services?

<p>Requirements specification. (B)</p> Signup and view all the answers

Which document serves as the basis for design and implementation of a software system?

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

What term describes problems that are so complex that they can never be fully understood, and where understanding evolves during system development?

<p>Wicked problems. (D)</p> Signup and view all the answers

Why are requirements often incomplete and inconsistent in large software systems?

<p>The problems these systems address are often very complex and not fully understood upfront. (D)</p> Signup and view all the answers

Which of the following is a common reason for inconsistency in software requirements?

<p>Different users have different requirements and priorities. (A)</p> Signup and view all the answers

Which of the following is MOST likely to be included in the appendices of a requirements document?

<p>System hardware platform description. (C)</p> Signup and view all the answers

What is the primary goal of ethnographic analysis in requirements engineering?

<p>To understand how people actually work by observing and analyzing their activities. (A)</p> Signup and view all the answers

Why is it important for analysts to be sensitive to social and organizational factors when gathering system requirements?

<p>They can influence or even dominate the system requirements. (C)</p> Signup and view all the answers

Which of the following is NOT a typical problem that arises when using natural language for writing requirements definitions?

<p>Excessive Formality. (D)</p> Signup and view all the answers

Why is it important to provide a rationale alongside each requirement?

<p>To help developers understand the application domain and why the requirement is stated in its current form. (C)</p> Signup and view all the answers

Why can writing the requirements specifications in natural language be problematic?

<p>It can be over-flexible and subject to different interpretations. (C)</p> Signup and view all the answers

What is an alternative to using natural language for writing software specifications?

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

Under what circumstance might a non-functional requirement be more critical than a functional one?

<p>When the non-functional requirements directly impact system usability or performance to the point where the system becomes unusable. (D)</p> Signup and view all the answers

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

<p>The system shall comply with the company's security policies. (D)</p> Signup and view all the answers

A law requires that all user data be encrypted. What kind of non-functional requirement is this?

<p>External requirement. (A)</p> Signup and view all the answers

What is the main issue with a requirement stating that 'errors shall be minimized'?

<p>It is not specific enough and cannot be objectively verified. (D)</p> Signup and view all the answers

How can a requirement be made more verifiable?

<p>By quantifying the requirement with specific numbers or measures. (A)</p> Signup and view all the answers

What kind of measure would relate to system robustness?

<p>Percentage of events causing failure. (D)</p> Signup and view all the answers

Why is it sometimes difficult to distinguish between functional and non-functional requirements?

<p>Requirements may be expressed as whole system requirements rather than constraints on individual functions. (A)</p> Signup and view all the answers

Which of the following is an example of a system-level requirement?

<p>The time required for training a system operator to be proficient in the use of the system must not exceed 2 working days. (B)</p> Signup and view all the answers

What is the primary goal of requirements validation?

<p>To demonstrate that the requirements define the system that the customer really wants. (B)</p> Signup and view all the answers

A team discovers a mistake in the project requirements after the software has been delivered. Why is fixing this mistake so expensive?

<p>It may cost up to 100 times the cost of fixing an implementation error. (B)</p> Signup and view all the answers

Which of the following is a key aspect of requirements checking?

<p>Consistency. (C)</p> Signup and view all the answers

What does 'realism' refer to in the context of requirements checking?

<p>Whether the requirements can be implemented given available budget and technology. (C)</p> Signup and view all the answers

Why should regular reviews be held during the requirements definition phase?

<p>To ensure that both client and contractor staff are involved and can resolve problems at an early stage. (D)</p> Signup and view all the answers

During a requirements review, what does 'verifiability' check ensure?

<p>That the requirement is realistically testable. (D)</p> Signup and view all the answers

During a requirements review, a checklist asks, 'Is the origin of the requirement clearly stated?' Which characteristic is being checked?

<p>Traceability. (A)</p> Signup and view all the answers

When organizing a requirements document, what is the primary reason for minimizing external references and modularizing sections?

<p>To facilitate requirements changes without extensive rewriting. (B)</p> Signup and view all the answers

Which statement best describes the difficulty in formulating a complete and consistent requirements specification?

<p>It is very difficult due to the inherent complexity and potential for conflicting stakeholder needs. (C)</p> Signup and view all the answers

What is a key distinction between a requirements definition, a requirements specification, and a software specification?

<p>They are ways of specifying software for different types of reader. (B)</p> Signup and view all the answers

Which of the following is the MOST important role of a requirements document?

<p>To act as a description for both customers and developers. (B)</p> Signup and view all the answers

Consider a system where users often make a purchase and then immediately request a refund. How would you modify your requirements gathering process to address this behaviour?

<p>Use ethnographic analysis to observe and understand the factors driving this behaviour, informing potential changes to the system's refund process or purchase flow. (C)</p> Signup and view all the answers

Flashcards

Requirements Engineering

Process of establishing the services a customer requires from a system, including constraints.

Functional Requirements

Describes what the system should do

Non-Functional Requirements

Describes how the system works, constraints on the system or development process.

Requirements Definition

Statement in natural language of what services the system provides with constraints, written for customers.

Signup and view all the flashcards

Requirements Specification

Structured document detailing descriptions of system services, serves as contract between client and contractor.

Signup and view all the flashcards

Software Specification

Detailed software description for design/implementation, written for developers.

Signup and view all the flashcards

Wicked Problems

Complex problems that can never be fully understood, understanding develops during system development and requirements are incomplete.

Signup and view all the flashcards

Non-functional requirements definition

Defines constraints on the system and the development process.

Signup and view all the flashcards

System Evolution

Defines fundamental assumptions and anticipated changes on which the system is based

Signup and view all the flashcards

Requirements Specification

Detailed listing of functional requirements

Signup and view all the flashcards

Ethnographic Analysis

Observing and analyzing how people actually work in their environment.

Signup and view all the flashcards

Social and Organisational Factors

Software systems operate within a social and organizational context influencing system requirements.

Signup and view all the flashcards

Non-functional requirements

Concerns system properties like reliability, response time, and storage requirements.

Signup and view all the flashcards

Product Requirements

Requirements specifying how the delivered product must behave.

Signup and view all the flashcards

Organizational Requirements

Requirements from organizational policies/procedures.

Signup and view all the flashcards

External Requirements

Requirements arising from factors external to the system

Signup and view all the flashcards

Requirement Verifiability

Ensuring requirements can be objectively verified.

Signup and view all the flashcards

Requirements Validation

Demonstrating that requirements define what the customer really wants.

Signup and view all the flashcards

Validity

Does the system provide functions best supporting customer needs?

Signup and view all the flashcards

Consistency

Are there any requirements conflicts?

Signup and view all the flashcards

Completeness

Are all functions required by the customer included?

Signup and view all the flashcards

Realism

Can the requirements be implemented given the available budget and technology?

Signup and view all the flashcards

Verifiability (Review Checks)

Determine if requirement is realistically testable

Signup and view all the flashcards

Comprehensibility (Review Checks)

Determine if the requirements are properly understood

Signup and view all the flashcards

Traceability (Review Checks)

Ensuring origin of requirement is clearly stated

Signup and view all the flashcards

Adaptability (Review Checks)

Check if a requirement can be changed without a large impact on other requirements.

Signup and view all the flashcards

Study Notes

Requirements Engineering

  • Requirements engineering is the process of defining the services a customer needs from a system.
  • It also identifies the constraints under which the system will operate and be developed.
  • Requirements can be functional, describing system services, or non-functional, setting constraints on the system or development process.

Functional vs. Non-Functional Requirements

  • Functional requirements describe what a system should do, like business rules or administrative functions.
  • Examples of functional requirements include transaction corrections, authentication, authorization levels, audit tracking, external interfaces, certification, reporting, historical data, and legal/regulatory needs.
  • Non-functional requirements describe how a system works, like performance, scalability, capacity, availability, reliability, recoverability, maintainability, and serviceability.
  • Functional requirements example: ability for a milk carton to contain fluid without leaking
  • Non-functional requirements example: ability for a hard hat to not break under pressure of less than 10,000 PSI
  • Functional requirement example: "The ability for the user to save a customer's personal record using the Customer Relationship Management system.”

Key Points for Writing Functional Requirements

  • Describe only one piece of functionality in each functional requirement.
  • Use a consistent sentence structure or styling for each functional requirement.
  • Example of consistent structure: "The ability for the user to print a customer’s personal record using the Customer Relationship Management system.”
  • Use active verbs and specific functions to ensure the requirement is testable.
  • Make sure the reader knows what they must do when they test the system to ensure the functional requirements are implemented correctly
  • Make sure the functional requirements are measurable in order to be testable

Requirements Definition vs. Specification

  • Requirements definition is a statement in natural language plus diagrams of the services the system provides and its operational constraints, written for customers
  • Requirements specification is a structured document detailing the system services, written as a contract between client and contractor.
  • Software specification is a detailed software description that can serve as a basis for design or implementation, written for developers.

Wicked Problems

  • Large software systems often address "wicked problems," which are highly complex and never fully understood.
  • Understanding of these problems evolves during system development.
  • Requirements for such systems are often incomplete and inconsistent.

Reasons for Inconsistency in Requirements

  • Large software systems aim to improve the current situation, but anticipating the new system's effects on the organization is challenging.
  • Different users have varying requirements and priorities.
  • A shifting compromise must constantly be made in the requirements.
  • System end-users and paying organizations have different requirements.
  • Clarifying requirements often requires prototyping.

Requirements Document Structure

  • Non-functional requirements definition sets constraints on the system and development process.
  • System evolution defines the fundamental assumptions and anticipated changes.
  • Requirements specification details functional requirements.
  • Appendices may include system hardware platform description or database requirements (e.g., ER model).

Ethnographic Analysis

  • This involves a social scientist observing and analyzing how people work.
  • The people do not have to explain their work
  • Social and organizational factors of importance get observed.
  • Ethnographic studies show that work is more complex than simple system models suggest.

Social and Organizational Factors

  • Software systems operate within a social and organizational context, influencing or dominating system requirements.
  • These factors aren't a single viewpoint but influence all viewpoints.
  • Good analysts consider these factors, but there's no systematic analysis method.

Writing Requirements Definitions

  • Natural language with diagrams and tables is the standard for writing requirements definitions.
  • This is universally understandable but problems can include a lack of clarity, with precision hard to achieve.
  • Requirements confusion could occur, with functional and non-functional requirements mixed up.
  • Requirements amalgamation could happen where several requirements are expressed together.

Requirements Rationale

  • Providing a rationale with each requirement is important.
  • This helps developers understand the application domain and why the requirement is stated as is.
  • The rationale is crucial when requirements change.
  • Rationale reduces the chance of unexpected effects from changes.

Requirements Specification Details

  • Specifications add detail to the requirements definition and should maintain consistency.
  • System models developed during requirements analysis usually present specifications.
  • These models may delineate parts of the system for development.
  • Specifications are often written in natural language, which can be problematic.

Problems with Natural Language

  • Natural language relies on specification readers and writers using the same words for the same concept
  • Natural language specification is over-flexible and subject to different interpretations
  • Requirements are not partitioned by language structures

Natural Language Alternatives

  • Structured English and Graphical notations
  • Structured natural language

Non-Functional Requirements

  • System properties and constraints are defined, like reliability, response time, and storage.
  • Process requirements are specified, mandating a CASE system, programming language, or development method.
  • If non-functional requirements are unmet, the system is useless

Non-Functional Classifications

  • Product requirements specify how the delivered product must behave (e.g., execution speed, reliability).
  • Organizational requirements derive from organizational policies/procedures (e.g., process standards).
  • External requirements arise from factors external to the system and its development (e.g., interoperability, legal).

Non-Functional Examples

  • Product: Communication between APSE and user must use the standard Ada character set.
  • Organizational: System development conforms to XYZCo-SP-STAN-2015 processes and deliverables.
  • External: The system allows users to check and correct personal data maintained within.

Requirements Verifiability

  • Requirements should be objectively verifiable.
  • Vague terms undermine verifiability.
  • Example: Define error rates and training times for system functions.

Requirements Measures

  • Speed: processed transactions/second, user/event response time, & screen refresh time
  • Size: K Bytes, & number of RAM chips
  • Ease of use: training time, & number of help frames
  • Reliability: mean time to failure, probability of unavailability, rate of failure occurrence, & availability
  • Robustness: time to restart after failure, percentage of events causing failure, & probability of data corruption on failure
  • Portability: percentage of target dependent statements, & number of target systems

Requirements Separation

  • Functional and non-functional requirements should be distinguished in a requirements specification.
  • Expressing requirements as whole system requirements, rather than individual functions, can be hard.
  • Distinguishing if a requirement is functional or non-functional can be difficult.
  • Safety requirements involve non-functional properties, potentially adding functions to the system.

System-Level Requirements

  • Some requirements constrain the system as a whole, not specific functions.
  • Example: "The time required for training a system operator to be proficient in the use of the system must not exceed 2 working days.”

Requirements Validation

  • This demonstrates that requirements define the system the customer wants.
  • Requirements errors are costly, so validation is important.
  • "Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error."
  • Prototyping is an important technique for requirements validation.

Requirements Checking

  • Validity checks if the system provides functions that support the customer's needs.
  • Consistency checks for conflicting requirements.
  • Completeness checks for all functions required by the customer.
  • Realism checks if requirements are implementable within budget and technology.

Requirements Reviews

  • Regular reviews should occur while formulating the requirements definition.
  • Client and contractor staff should participate.
  • Reviews can be formal (with completed documents) or informal.
  • Communication between developers, customers, and users can resolve early-stage problems.

Review Checks

  • Verifiability: Is the requirement realistically testable?
  • Comprehensibility: Is the requirement properly understood?
  • Traceability: Is the origin of the requirement clearly stated?
  • Adaptability: Can the requirement be changed without large impact on other requirements?

Requirements Document Changes

  • Organize the document to allow for easy changes without extensive rewriting.
  • Minimize external references and modularize sections.
  • Electronic documents facilitate changes.
  • A lack of standards for electronic documents can complicate the process.

Key Points

  • Formulating a complete and consistent requirements specification is challenging.
  • The requirements definition, specification, and software specification are ways to specify software for different readers.
  • The requirements document describes the project for customers and developers.

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