Lecture 3
Lecture 3
Lecture 3
CAPTURING REQUIREMENTS
Requirements challenges
• Customers cannot describe the software.
– They only have very faint ideas.
• Customers propose problematic functional
description (everyone thinks differently).
– They will later blame software developers for data
conflicts.
• Customers talk a lot and their ideas just don't
add up.
– These customers do not like to write it down.
Requirements Tasks
• Finding out what users need
• Documenting users' needs
• Avoiding premature design assumptions
• Resolving conflicting requirements
• Eliminating redundant requirements
– Customers often want to build a software that can
do everything.
• Make sure requirements are traceable
– Track the changes to requirements.
Sources of Requirements
• Stakeholders
– People affected in some way by the system
– Stakeholders describe requirements at different
levels of detail
• Documents
• Existing system
• Understanding of business domain
User Requirements Examples - 1
• The system shall maintain records of all payments
made to employees on accounts of salaries, bonuses,
travel/daily allowances, medical allowances, etc.
• The system shall connect with the central computer
to send daily sales and inventory data from every
retail store.
• The system shall maintain records of all library
materials including books, serials, newspapers and
magazines, video and audio tapes, reports,
collections of transparencies, CD-ROMs, DVDs, etc.
User Requirements Examples - 2
• The app should let a shipper see a list of customer
orders around a chosen area.
• The app should let a shipper make a phone call to
the customer of the orders that he has picked.
• The app should let a shipper take a photo and save it
to the system as proof that he has received the
shipment package.
• The response time of all operations should be less
than 1 second.
• The app should operate on Android 5 or later and iOS
10 or later.
Functional vs. Non-Functional
• Functional requirement: description of the
software's explicit behaviors, what it should and
shouldn't do.
– Are often specific & measurable
• Non-functional requirement: constraints on the
services or functions offered by the software.
– Performance, security, availability…
– Speed, size, ease of use…
– Development constraints: time, process, policies
– Applies to the whole software system
Quatitative non-functional requirements
Action
• A type of diagram
where actions can be
presented as part of
activity flows.