Class 1 Flashcards
What is a process?
A process is a set of activities that
interact to produce a result.
What are the activities
in software development?
Specification
Designing
Implementing
Testing
Maintaining
A software process model
is a description
of the sequence of activities carried out in
a SE project, and the relative order of
these activities.
By changing the SP model, we can improve and/or
tradeoff:
- Development speed (time to market)
- Product quality
- Project visibility
- Administrative overhead
- Risk exposure
- Customer relations
- etc.
Code-and-fix model
> starts with little or no initial planning
➢ usually no documentation
➢ anyone who has knowledge of coding can use this
Code-and-fix model pros
Low overhead
Low expertise, anyone can use it!
Code-and-fix model cons
No way to assess progress or
manage the project
Does not fit a complex project
Unclear what and when will be
delivered
Low quality
…
Waterfall model
➢ every step is strictly documented and predefined
➢ follow a very strict lifecycle
➢ well defined milestones, outputs
➢ finish one step before moving to the next step
Waterfall model pros
Simple to use and understand
Has clear deliverables and
milestones
Management is simple
Easy to classify and prioritize tasks
Waterfall model cons
Too rigid
Non-adaptive design constraints
Ignores mid-process client feedback
Testing in the very end, which does
not give the option of identifying the
problem in advance
no working software is produced
until late during the life cycle
Why is waterfall model is not popular now?
- Main assumption: all requirements can be
determined at the beginning, no change later on - This does not correspond to current software development
- Data shows change rates from 35%–50% for large projects
- “change” is the most expensive operation in the waterfall model
- Feedback (from clients, programmers) comes very/too late
- Note: that doesn’t mean you should fall into the
opposite extreme and do no planning at all
The broken iron triangle
Resources (Cost, Budget)
Scope (Features, Functionality)
schedule (Time)
What kinds of projects can use
waterfall model?
The requirements are precisely
documented
aviation system
warehousing systems
There are no ambiguous requirements
Product definition is stable, no changes
Prototype model
➢ help customers and
developers understand the
system requirements
➢ build a prototype, adjust the
requirements, and revise
the prototype until have a
clear picture
Prototype model pros
Can help reduce risk of incorrect
user requirements
Missing functionality can be
identified easily
Projects have a higher visibility
Prototype model cons
Requires extensive customer
collaboration
Difficult to know how long project
will last, users may change
requirements now and then
Easy to fall back into code-and-fix
without proper design, customer
feedback evaluation
What kinds of projects can use
prototype model?
When the requirements are unclear
When the users are involved
Spiral model
➢ a combination of waterfall and
prototype models
➢ includes risk analysis and risk
management
➢ each iteration identifies and
solves the sub-problems with the
highest risk