Lecture 7
Lecture 7
Lecture 7
Software engineering method
Fall 2022
Outline
Drawbacks
Time/cost for developing a prototype may be
high
Evolutionary prototyping model
Advantages
Addresses risks early
Produces steady signs of progress, builds customer
confidence
Useful when requirements are unknown or changing
Customer involvement ("What do you think of this
version?")
Agile models
Drawbacks
Requires experienced management and
highly skilled developers
Prioritizing requirements can be difficult
when there are multiple stakeholders
Best for small to medium (sub) projects
What model would you choose and
why?
Project management triangle (pick any two)
Consider
The project and task at hand
Well-definedness of requirements
Risk management and quality/cost control
Customer involvement and feedback
Experience of management and team members
SDLC models summary
All
models have the same goals: manage risks
and produce high quality software.
Allmodels involve the same activities and
steps
Specification, design, implementation, testing,
etc
All models have advantages and drawbacks.
The choice of process model depends on the
team and the target software product.
Software requirements
Requirements specify what to build
describe what, not how
describe the problem, not the solution
reflect system design, not software design
Benefits
Understand what is required of the software
Communicate this understanding precisely to all
development parties
Control production to ensure that system meets specs
(including changes)
Software requirements
Often underrated
Usually mis-communicated
Great consequences from requirements failure
Requirements for different roles
Customers
show what should be delivered; contractual base
Managers
a scheduling / progress indicator
Designers
provide a spec to design
Programmers
list a range of acceptable implementations / output
QA / testers
a basis for testing, validation, verification
Classifying requirements (classic)
Functional: map inputs to outputs
“The user can search either all databases or a subset”
“Every order gets an ID the user can save to account
storage”
Nonfunctional: other constraints
dependability,reusability, portability, scalability,
performance, safety
“Our deliverable documents shall conform to the XYZ
process”
“The system shall not disclose any personal user
information”
Classifying requirements (Faulk)
Behavioral (user-visible): about the artifact
usuallymeasurable and objective
features, performance, security
Development quality attributes: about the
process
usually subjective
flexibility, maintainability, reusability
Classifying requirements
(deliverables)
Customer requirements
Written by customers
Casual, informal
Prototypes
By software engineers
Requirements elicitation
Getting requirements from customers
Customers don’t always know what they want.
Customers do know what they want...it just changes
over time.
Tecniques
Interview,document analysis, prototyping
Old system investigation, observing customer’s
workplace
The #1 reason that projects succeed is user
involvement