CP317 Software Engineering: Requirement Gathering
16 Questions
0 Views

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 best describes a functional requirement for an ATM?

  • The ATM software must be written in Python.
  • The ATM must allow users to withdraw cash. (correct)
  • The ATM must use a touch screen.
  • The ATM must be accessible to users with disabilities.

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

  • The system must support balance inquiries.
  • The system must process transactions in under 3 seconds. (correct)
  • The system must allow cash deposits.
  • The system must require a PIN for withdrawals.

An ATM system's ability to continue operating even if one of its servers fails is an example of which type of requirement?

  • Supportability requirement
  • Reliability requirement (correct)
  • Usability requirement
  • Performance requirement

Which category of requirements describes how end users will interact with an ATM?

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

In the FURPS model, what does the 'P' stand for?

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

Which of the following is primarily addressed by system requirements for an ATM?

<p>The programming languages used to develop the software. (D)</p> Signup and view all the answers

An ATM that records all transactions for auditing purposes satisfies which functional requirement?

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

What type of non-functional requirement is concerned with how easily an ATM can be upgraded or fixed?

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

Which of the following best describes the importance of accurate requirement gathering in software engineering?

<p>It ensures the software system meets customer needs, fostering accountability, and protecting reputation. (C)</p> Signup and view all the answers

In the context of defining requirements, what is the key distinction between using 'shall,' 'will,' and 'should'?

<p>'Shall' expresses a requirement, 'will' states a fact or declaration of purpose, and 'should' indicates a goal. (A)</p> Signup and view all the answers

Which of the following is NOT a primary focus of requirement categorization?

<p>Prioritizing requirements using the MOSCOW method. (A)</p> Signup and view all the answers

A project team is using the MOSCOW method to prioritize requirements. They have identified a 'Could' requirement. What does this indicate?

<p>The requirement is optional and will only be implemented if time and resources permit. (B)</p> Signup and view all the answers

A software development team is working on a new e-commerce platform. Which of the following is the BEST example of a business requirement?

<p>The platform aims to increase online sales by 20% within the next fiscal year. (D)</p> Signup and view all the answers

Which of the following scenarios exemplifies the importance of hard skills in understanding software engineering requirements?

<p>A software engineer uses their knowledge of data structures to optimize the performance of a search algorithm required by the system. (C)</p> Signup and view all the answers

A software development company is creating a mobile app for a local library. Which of the following represents a non-functional requirement for this app?

<p>The app shall respond to user interactions within 2 seconds on a standard smartphone. (C)</p> Signup and view all the answers

During a requirements gathering session, a stakeholder mentions a feature that would be nice to have but isn't essential for the initial release. According to the MOSCOW method, how should the team categorize this requirement?

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

Flashcards

ATM functions

Actions an ATM must perform, like cash withdrawal or balance inquiry.

User requirements

How end-users interact with the software.

System requirements

System specifications needed for software to function.

Functional requirements

Detailed functions the project should perform.

Signup and view all the flashcards

Non-functional requirements

Qualities and constraints on product behavior.

Signup and view all the flashcards

Non-functional requirements

Quality of product's behavior or constraints.

Signup and view all the flashcards

FURPS

Functionality, Usability, Reliability, Performance, Supportability.

Signup and view all the flashcards

Usability requirement

How easy the system is to use and understand.

Signup and view all the flashcards

Requirement (Definition)

A documented physical or functional need that a design, product, or process aims to satisfy.

Signup and view all the flashcards

Requirement Gathering

Understanding customer needs and features that the system aims to satisfy.

Signup and view all the flashcards

Importance of Requirements

Accountability, delivering software that meets customer needs, maintaining reputation.

Signup and view all the flashcards

Skills for Understanding Requirements

Using precise language and understanding the stakeholder needs. Examples: communication, analysis, negotiation.

Signup and view all the flashcards

Correct Terms in Requirements

"Shall" indicates a requirement, "Will" states a fact or purpose, "Should" indicates a goal.

Signup and view all the flashcards

MOSCOW Method

A method for prioritizing requirements (Must have, Should have, Could have, Won't have).

Signup and view all the flashcards

Prioritizing Requirements (Why?)

To differentiate and address mission-critical elements first.

Signup and view all the flashcards

Requirement Categorization

Grouping requirements into meaningful clusters.

Signup and view all the flashcards

Study Notes

  • CP317 Software Engineering covers requirement gathering.
  • Requirement gathering is the most important part of software engineering.

Requirements

  • A requirement is a singular, documented physical or functional need that a design, product, or process aims to satisfy.
  • In software engineering, requirements are documented customer needs or features that a computer system aims to satisfy.

Importance of Requirements

  • Important for understanding what needs to be done.
  • Establishes accountability and responsibility.
  • Ensures reputation and integrity when building software for customers.
  • Accurate requirements are crucial, demanding earnestness, meticulousness, and no assumption.

Reasons for Software Project Failure

  • Unclear project requirements are a top reason for failure.

Skills for Understanding Requirements

  • Understanding requirements in software engineering requires both hard and soft skills.

Characteristics of Good Requirements

  • Use Correct Terms:
    • Shall = requirement
    • Will = facts or declaration of purpose
    • Should = goal
  • Example System Requirements:
    • The system "shall" operate at 12V.
    • The software "shall" acquire sensor data from the motor.
    • The data structure "shall" contain a linked list.
  • Good Requirements:
    • Understandable, Correct/Precise, Unambiguous
    • Complete and Fully Documented
    • Consistent, not contradictory
    • Interoperable with known dependencies
    • Verifiable/Valid for testing
    • Singular, appearing once only
    • Traceable through design, test, and delivery
    • Prioritized for relative importance
    • Achievable with available capability and resources

Prioritizing Requirements

  • MOSCOW Method:
    • Must have: vital things needed
    • Should have: important but not vital
    • Could have: "nice-to-haves"
    • Won't have: provide little to no value
  • Prioritizing helps to:
    • Focus on important user and customer needs.
    • Focus on development effort.
    • Manage projects more effectively with staged delivery plans.
  • Prioritization aids in making trade-offs and allocating resources.

Categorizing Requirements

  • Requirement categorization involves grouping requirements into meaningful clusters.

  • Business Requirements:

    • High-level goals that explain what the customer aims to achieve with the project.
    • Example: ATM - cash withdraw, deposit, a transfer of money, balance inquiry....
  • User Requirements:

    • Describe how end users will use the software product. Example: ATMs requirement to insert card, enter pin, amount selection etc..
  • System Requirements:

    • System requirements are the configuration that a system must have in order for a hardware or software application to run smoothly such that to achieve business requirements and user requirements.
    • Necessary configurations for hardware or software applications for smooth, efficient operation, to achieve business/user needs.
    • Example: touchscreen, computer language, size.

Relationships Between Business, User and System Requirements:

  • Business requirements are at the highest level, concerning sponsor point of view, Scope of the project, and business objectives.
  • User requirements at the intermediate Level, concerning user point of view, user goals, and user inputs & outputs
  • Systems requirements are at the lower level , concerning what the system does (functional) and how well does the system do it (non-functional)

Functional Requirements

  • Detailed statements about a project's desired capabilities.
  • Authentication, Business Rules, External Interfaces, Audit Tracking etc Examples:
    • Authentication
    • Authorization levels
    • Audit tracking
    • Business rules
    • Transaction Types

Non-Functional Requirements

  • Statements about the product's quality, behavior, or constraints on achieving results.
  • Based on IEEE-Std 830-1993, includes performance, operational, resource, verification, acceptance, documentation, security, and portability requirements.
    • Performance
    • Security
    • Portability
    • Documentation
    • Operational requirements

Functional vs. Non-functional Requirements

  • Functional: verb based, mandatory with use cases; defines product feature, easy to capture.
  • Non Functional: attribute based, non mandatory defined by quality attribute scenario; defines product properties, difficult to capture

FURPS

  • The categories are functionality, usability, reliability, performance and supportability.
  • An acronym for categorizing system requirements and was developed by HP.

FURPS+

  • Includes functionality, usability, reliability, performance, supportability, design constraints, implementation, interface, and physical requirements.

Studying That Suits You

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

Quiz Team

Related Documents

Description

This content covers requirement gathering, the most important part of software engineering. Requirements are documented needs that a design or product aims to satisfy. Understanding requirements requires both hard and soft skills.

More Like This

Use Quizgecko on...
Browser
Browser