Podcast
Questions and Answers
Which of the following best describes a functional requirement for an ATM?
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?
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?
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?
Which category of requirements describes how end users will interact with an ATM?
In the FURPS model, what does the 'P' stand for?
In the FURPS model, what does the 'P' stand for?
Which of the following is primarily addressed by system requirements for an ATM?
Which of the following is primarily addressed by system requirements for an ATM?
An ATM that records all transactions for auditing purposes satisfies which functional requirement?
An ATM that records all transactions for auditing purposes satisfies which functional requirement?
What type of non-functional requirement is concerned with how easily an ATM can be upgraded or fixed?
What type of non-functional requirement is concerned with how easily an ATM can be upgraded or fixed?
Which of the following best describes the importance of accurate requirement gathering in software engineering?
Which of the following best describes the importance of accurate requirement gathering in software engineering?
In the context of defining requirements, what is the key distinction between using 'shall,' 'will,' and 'should'?
In the context of defining requirements, what is the key distinction between using 'shall,' 'will,' and 'should'?
Which of the following is NOT a primary focus of requirement categorization?
Which of the following is NOT a primary focus of requirement categorization?
A project team is using the MOSCOW method to prioritize requirements. They have identified a 'Could' requirement. What does this indicate?
A project team is using the MOSCOW method to prioritize requirements. They have identified a 'Could' requirement. What does this indicate?
A software development team is working on a new e-commerce platform. Which of the following is the BEST example of a business requirement?
A software development team is working on a new e-commerce platform. Which of the following is the BEST example of a business requirement?
Which of the following scenarios exemplifies the importance of hard skills in understanding software engineering requirements?
Which of the following scenarios exemplifies the importance of hard skills in understanding software engineering requirements?
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?
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?
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?
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?
Flashcards
ATM functions
ATM functions
Actions an ATM must perform, like cash withdrawal or balance inquiry.
User requirements
User requirements
How end-users interact with the software.
System requirements
System requirements
System specifications needed for software to function.
Functional requirements
Functional requirements
Signup and view all the flashcards
Non-functional requirements
Non-functional requirements
Signup and view all the flashcards
Non-functional requirements
Non-functional requirements
Signup and view all the flashcards
FURPS
FURPS
Signup and view all the flashcards
Usability requirement
Usability requirement
Signup and view all the flashcards
Requirement (Definition)
Requirement (Definition)
Signup and view all the flashcards
Requirement Gathering
Requirement Gathering
Signup and view all the flashcards
Importance of Requirements
Importance of Requirements
Signup and view all the flashcards
Skills for Understanding Requirements
Skills for Understanding Requirements
Signup and view all the flashcards
Correct Terms in Requirements
Correct Terms in Requirements
Signup and view all the flashcards
MOSCOW Method
MOSCOW Method
Signup and view all the flashcards
Prioritizing Requirements (Why?)
Prioritizing Requirements (Why?)
Signup and view all the flashcards
Requirement Categorization
Requirement Categorization
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.
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.