Development Methodologies Flashcards
What are the 7 stages of the software development lifecycle?
- feasibility (is the problem solvable?)
- requirements (working out what the solution needs to do)
- analysis and design (working out how the solution needs to do it)
- implementation (coding the solution)
- testing (testing it works)
- deployment (installing it in the target environment)
- evaluation (asking the user if they are satisfied with the product)
What is the 8th magic hidden phase of the software development lifecycle
Maintainence 🌈
What are the advantages of the waterfall model?
- simple and easy to manage
- everyone is clear on responsibilities
- clear objectives
- easy to see if project is on schedule
What are the disadvantages of the waterfall model?
- carries much risk
- the user is not involved except at the beginning
- misunderstanding requirements could lead to a hard to fix project
- therefore not suitable for complex projects
Where should the waterfall model be used?
Large scale, well understood, low risk projects
What are the advantages of rapid application development?
- requirements don’t need to be clear at the start
- meetings with the user throughout can provide requirements
- continuous feedback from the user creates an excellent solution
What are the disadvantages of rapid application development?
- focused on usability rather than efficiency of the product, not suited for projects requiring code efficiency
- regular contact with the client must be maintained
- scales poorly with large teams
Where should rapid application development be used?
When initial requirements are not fully understood
What are the advantages of the spiral method?
- risk is at the heart of this model
- excellent for high risk projects
What are the disadvantages of the spiral methodology?
- complex nature if risk analysis can be expensive as this is a specialised skill
- project can suffer if risk analysis is done badly
When should the spiral methodology be used?
Large scale, high risk projects, especially if the user doesn’t understand the requirements upfront
What are the advantages of agile and extreme programming?
- emphasises programming, so likely to be high quality code
- promotes respect and collaboration, so leads to a productive development team
What are the disadvantages of agile and extreme programming?
- requires a closely collaborating team, so unlikely to work if the team is spread across a large area geographically
- client must have a full time representative on the team
- some processes involved can be expensive
When should agile and extreme programming be used?
When the emphasis of the project is on quality of code
What are the stages of the waterfall lifecycle?
- requirements
- design
- coding
- testing
- evaluation