SE Chapter3
SE Chapter3
SE Chapter3
Requirement Elicitation
Requirement elicitation
Requirement validations
Types of requirements
Functional requirement
Non-functional requirement
Implemented
Expressed in By
Structured By Realized By
Terms Of Verified
By
class...
class...
class... ?
class....?
Use Case Application Solution
Domain Subsystems Source Test
Model Domain
Objects Code Cases
Objects
Requirements Requirements
elicitation Specification
:nonfunctional
requirements
:functional
model
:dynamic model
Observation:
To understand the activity, task, tools used, and events performed by others.
Questionnaires:
an incredible method to find solutions to questions you can’t answer by yourself.
Interviewing:
To Talk with stakeholders who you think can give essential knowledge into the
requirements
Brainstorming:
To generate new ideas and find a solution for a specific issue
Prototyping:
Valuable device for business analysts to decide whether the solution being created is
actually what the stakeholder’s demand
Document analysis:
Extremely valuable requirements elicitation method which is generally utilized in the IT
industry.
SE Lecture Note 10/16/2023
Technique Good for Kind of data Plus Minus
Questionnaires Answering specific Quantitative and Can reach many people with The design is crucial.
questions qualitative data low resource Response rate may be
low. Responses may not
be what you want
Interviews Exploring issues Some quantitative Interviewer can guide Time consuming.
but mostly interviewee. Encourages Artificial environment
qualitative data contact between developers may intimidate
and users interviewee
Focus groups Collecting multiple Some quantitative Highlights areas of Possibility of dominant
and workshops viewpoints but mostly consensus and conflict. characters
qualitative data Encourages contact between
developers and users
Naturalistic Understanding context Qualitative Observing actual work gives Very time consuming.
observation of user activity insight that other techniques Huge amounts of data
cannot give
Studying Learning about Quantitative No time commitment from Day-to-day work will
documentation procedures, regulations, users required differ from documented
and standards procedures
As the definition of the system matures and stabilizes, developers and the client
agree on a system specification in the form of use cases.
Depending on the source of the requirements, requirements elicitation activities
scenarios, developers derive from the scenarios a set of use cases that
completely represent the future system.
Usability Implementation
Reliability Interface
Robustness
Operation
Safety
Performance Packaging
Response time Legal
Scalability
Throughput
Licensing
Availability
Certification
Supportability Regulation
Adaptability
Maintainability
SE Lecture Note 10/16/2023
Functional Vs Non-Functional Requirements
Identifying actors
Actors represent external entities that interact with the system.
An actor can be human or an external system.
Dispatcher- the police officer responsible for answering 911 calls and
dispatching resources to an incident.
Flow of events 1. Bob, driving down main street in his patrol car notices
smoke coming out of a warehouse. His partner, Alice,
activates the “Report Emergency” function from her
FRIEND laptop.
2. Alice enters the address of the building, a brief
description of its location...
3. John, the Dispatcher, is alerted to the emergency by a
beep of his workstation...
4. Alice receives the acknowledgment.
Exit condition The FieldOfficer receives the acknowledgment and the selected
response.
ViewMap describes the flow of events for viewing a city map (e.g.,
scrolling, zooming, query by street name)
It is used by both OpenIncident and AllocateResources use cases.
Generalization relationships
Generalization/specialization relationships are a third mechanism for
The Authenticate use case is a high-level use case describing, in general terms, the process of
authentication.
AuthenticateWithPassword and AuthenticateWithCard are two specializations of Authenticate.
SE Lecture Note 10/16/2023
Cont…
issues:
User interface and human factors: what kind of interface should the
system provide?
Hardware considerations: are there hardware compatibility requirements?
• Will the system interact with other hardware systems?
Error handling and extreme conditions: How should the system handle
exceptions?
Quality issues: How reliable /available /robust should the system be?