Class 1 Flashcards
(46 cards)
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
Spiral model phases
Plan
* communicate with the clients to get the necessary requirements
Risk Analysis
* identify all the possible risks and alternative solutions
Engineering
* develop/test the software
Customer evaluation
* customers/clients evaluate the developed system.
Risk analysis
Example Risks
Personnel shortfalls
Unrealistic schedules and budgets
Developing the wrong software functions
Developing the wrong user interface
Continuing stream of requirement changes
Shortfalls in externally furnished components
Shortfalls in externally performed tasks
Real-time performance shortfalls
Spiral model pros
Has risk and cost management
More flexible, changing
requirements can be handled
Allows for extensive use of
prototypes
High visibility, users see the system
early
Spiral model cons
Management is more complex
Large number of intermediate
stages, which requires excessive
documentation
Could be expensive for small
projects
Relies on developers to have risk-
assessment expertise
What kinds of projects can use spiral
model?
It is favored for large, expensive, and
complicated systems
For high-risk projects
Agile models
plan quickly, develop quickly, release quickly, and revise quickly
➢a user-centered and practice-
based model
➢a collection of practices based on
several values and proven
software engineering principles
➢development is divided into small
iterations, at the end of each
iteration, a working product is
delivered