1.2.3 Software Development - Methodologies Flashcards
Waterfall model
Each stage is completed before the next begins
The customer does not see the product until the end
Any change to the user requirements likely requires a restart
Waterfall advantages
Simple to understand
Straightforward to manage
All self-contained
Waterfall disadvantages
Little user advantages
Software only produced late on
Too late to change if the user doesn’t like it
Waterfall model uses
Short projects with clear requirements
Spiral model
Continually looping through analysis, design, development and evaluation stages
Each loop forms a more refined prototype
Spiral advantages
Easy to manage
Some software produced early
Lots of user feedback
Can add functionality throughout
Spiral disadvantages
Time-consuming
Costly
Not suitable for smaller projects
Spiral uses
For long, fairly high-risk products with changing user requirements
Agile model
A collection of methodologies to improve the flexibility of software development
Sections are developed in parallel
A prototype is delivered early on, which is developed in an iterative manner
Agile advantages
Happens quickly
Constant interaction with customers
Adaptable, changes can be implemented whenever
Agile disadvantages
A lack of emphasis on design/documentation
Needs clarity on desired outcome
Agile uses
When small, frequent changes are needed or when needs rapidly change
Extreme programming
An agile model involving a pair of programmers alongside an end-user
High quality code is produced by having it critiqued as it is written
Rapid Application Development
Uses workshops/focus groups to find user requirements
Partially functioning prototypes are continually built upon based on user feedback until the prototype is the final solution
RAD advantages
Very fast
A lot of feedback with customers