Software Requirements and 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 role of requirements engineering (RE) in the engineering design process?

  • The process of coding software applications.
  • The process of defining, documenting, and maintaining requirements. (correct)
  • The process of deploying software to end-users.
  • The process of testing software for defects.

System requirements are defined the same way as user requirements, using natural language, tables, and diagrams that anyone can understand.

False (B)

What is the primary focus of functional requirements in software development?

what a system should do

In the context of requirements engineering, _______________ refers to system qualities like performance and security.

<p>nonfunctional requirements</p> Signup and view all the answers

Match the following characteristics to either Functional or Non-functional Requirements:

<p>Defines services required by the customer. = Functional Requirement Describes what the software should do. = Functional Requirement Defines system properties like reliability. = Non-functional Requirement Related to the system as a whole. = Non-functional Requirement</p> Signup and view all the answers

Which of the following is the best description of 'Requirements Elicitation'?

<p>The process of finding out the requirements for an intended software system. (D)</p> Signup and view all the answers

Questionnaires are used in requirements elicitation.

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

What is a common challenge during the requirements elicitation phase?

<p>clients don't always understand ICT</p> Signup and view all the answers

The process of documenting user and system requirements is known as ___________.

<p>requirements specification</p> Signup and view all the answers

Match the following to Approaches for requirements specification:

<p>Structured specifications, like VOLERE = Requirements specification Software Requirements Specification (SRS) = Requirements specification Uses cases = Requirements specification Agile software development approaches = Requirements specification</p> Signup and view all the answers

The software requirements documents should contain...

<p>Both user and system requirements. (A)</p> Signup and view all the answers

The software requirements document is a detailed design document.

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

List three attributes a valid requirement needs to meet.

<p>validity, consistent, complete</p> Signup and view all the answers

____________ involves demonstrating that the requirements define the system the customer wants.

<p>requirements validation</p> Signup and view all the answers

Match the follow Requirement Validations techniques with their descriptions:

<p>Requirements Reviews = Systematic manual analysis Prototyping = Using an executable model of the system to check requirements. Test-case generation = Developing tests for requirements to check testability.</p> Signup and view all the answers

What is the purpose of defining both user and system requirements in the requirements engineering process?

<p>To provide a comprehensive understanding of the system from different perspectives. (A)</p> Signup and view all the answers

Non-functional requirements are related to business, for example: Calculation of order value by Sales Department or gross pay by the Payroll Department

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

Briefly explain why requirements validation is considered a critical phase in software project?

<p>high error costs</p> Signup and view all the answers

During requirements elicitation, the use of ___________ involves holding an informal debate among various stakeholders to collect inputs for further requirements analysis.

<p>brainstorming</p> Signup and view all the answers

Match the Reader of different types of requirements specification with their requirement type.

<p>Client managers, System end-users, Client engineers, Contractor managers, System architects = User Requirements System end-users, Client engineers, System architects, Software developers = System Requirements</p> Signup and view all the answers

What is the main goal of requirement validation?

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

The software requirements document is mainly a design document to specify how the system should function.

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

In the context of requirements engineering, what are the key tasks involved in defining and managing requirements.

<p>elicitation, specification, validation, and management</p> Signup and view all the answers

In types of requirements, ________ constraints are I/O device capability and system representations.

<p>non functional</p> Signup and view all the answers

Which is the way to Requirement elicitation.

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

Flashcards

Software Requirements

A description of features and functionalities a target system must have.

Requirements Engineering

The process of defining, documenting, and maintaining requirements during the engineering design process.

System Requirements

Descriptions of system services and constraints generated during requirements engineering.

User Requirements

Requirements defined using natural language, understandable by all users.

Signup and view all the flashcards

System Requirements

Detailed specifications of system functions, services, and constraints.

Signup and view all the flashcards

Functional Requirement

Describes what a system should do, defining its features and functionalities.

Signup and view all the flashcards

Non-Functional Requirement

Specifies how the system should behave, focusing on qualities like performance and security.

Signup and view all the flashcards

Requirements Elicitation

Finding out requirements by communicating with clients and end users.

Signup and view all the flashcards

Requirements Specification

Writing down user and system requirements in a requirements document.

Signup and view all the flashcards

Requirements Validation

Ensuring requirements define what the customer wants.

Signup and view all the flashcards

Requirements Document

A document including both a definition of user requirements and a specification of system requirements.

Signup and view all the flashcards

Requirements Reviews

Systematic manual analysis of the requirements.

Signup and view all the flashcards

Prototyping

Using an executable model of the system to check requirements.

Signup and view all the flashcards

Test-case Generation

Developing tests for requirements to check testability.

Signup and view all the flashcards

Interviews

A strong medium to collect requirements.

Signup and view all the flashcards

Surveys

Organization may conduct surveys among various stakeholders

Signup and view all the flashcards

Brainstorming

An informal debate is held among various stakeholders and all their inputs are recorded for further requirements analysis.

Signup and view all the flashcards

Clients don't understand ICT.

Clients don't always understand ICT and hence, find it difficult to express what they want the system to do

Signup and view all the flashcards

Study Notes

  • Inconsistent and incomplete requirements are bad software requirements
  • Good software requirements should be clear, necessary, testable and comprehensible
  • The topics covered are requirement engineering, user requirements, functional and non-Functional requirements and the requirement engineering process.

Requirement

  • Software requirements are descriptions of features and functionalities of the target system
  • Requirements convey user expectations that can be obvious or hidden

Requirement Engineering

  • Requirements engineering (RE) is the process of defining, documenting, and maintaining requirements
  • System requirements describe system services and constraints generated during the requirement engineering process.

Types of Requirements

  • User requirements use natural language, tables, and diagrams to be easily understood by all users
  • User requirements describe functional and non-functional aspects in a way that is understandable by users without technical knowledge
  • System requirements provide detailed specifications of system functions, services, and constraints beyond user requirements
  • System requirements serve as the foundation for designing the system

User vs System Requirement example

  • User Requirement: The Mentcare system must generate monthly management reports showing the cost of drugs prescribed by each clinic
  • System Requirement: On the last working day of each month, the system generates a summary of the drugs prescribed
  • System Requirement: After 5:30 PM on the last working day of the month, the system produces a report for printing
  • System Requirement: The report generated for each clinic lists individual drug names, total prescriptions, doses, and cost
  • System Requirement: Separate reports will be created for drugs available in different dose unit.
  • System Requirement: Access to drug cost reports is restricted.

Functionality

  • Functional requirements describe what a system should do with its features and functionalities
  • Functional requirements define "what" a system does
  • Non-functional requirements specify how the system should behave.
  • Non-functional requirements focus on the system's quality attributes rather than its specific actions
  • Non-functional requirements define "how well" something is done

Functional vs Non-Functional Requirement

Feature Functional Requirement Non-functional Requirement
Definition Defines the services or functions needed by the customer. Describes system qualities and constraints.
Description Describes what the software should do. Describes how the software performs.
Focus Related to business tasks. Focuses on improving business performance.
Testability Easy to test. Difficult to test.
Scope Relates to individual system features. Pertains to the system as a whole.
Impact of Failure Failure to meet a functional requirement can degrade the system. Failure to meet a non-functional requirement may make the entire system unusable.

Types of Non-Functional requirements

  • Non functional requirements such as Product, Organizational and External requirements exist
  • Product Requirements include efficiency ,Security, Usability and Dependability of the software
  • Organization requirements include regulatory and ethical requirements
  • External Requirements accounts for Legislative, Accounting and security/safety

Key tasks in requirements engineering

  • Key tasks in requirements engineering are Elicitation, specification, validation and management

Requirements engineering processes

  • In 2016, Sommerville detailed the spiral view of the reg eng process

Requirements elicitation

  • Requirements Elicitation involves finding the requirements for an intended software system

Requirements elicitation methods

  • Key software elicitation tasks involve interviews, surveys brainstorming or questionnaires.

Challenges of requirements elicitation

  • Stakeholders will have different perspectives on the software.
  • Political influence effects requirements
  • Requirements can change during different stage of development

Requirements specification

  • Requirements specification is the process of writing down the user and system requirements in a requirements document.
  • Approaches that are used in requirement specification are Natural language specifications and structured specifications.
  • Software requirement specifications (SRS) and agile software development approaches are also other specification methods

The software requirements document

  • The requirements document is an official statement of what is needed of the system developers
  • Should include both a definition of user and system of requirements
  • Set of what the system should do rather than how should do it

Validation of Requirements

  • Requirements validation ensures the system meets customer expectations
  • Requirements error costs are high if validation is not done correctly
  • Correctness is the central theme with validity, consistency, completeness and verifiability being key for requirement validation

Requirements validation techniques

  • Requirements reviews are used to systematically analyze the requirements of the software
  • Prototyping involves using an executable model to check requirements by chapter
  • Test-case generation or developing test cases is part of creating tests for requirements to check for testability

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