Software development lifecycles & testing types Flashcards
Waterfall model
Requirements analysis
System design
Implementation
System testing
System deployment
System maintenence
Waterfall model advantages and disadvantages
adva
- Easy to understand, simple to use. Good for management control as each phase is completed before
- Provides structure for inexperienced staff
- Project milestones are well understood
- good when quality more important than cost
disad
- All requirements known upfront (deliverables for each phase are frozen)
- Can give a false impression of progress (different stages take different amounts of time)
- does not reflect problem-solving nature of software development (cannot change core features or functions)
- integration is done all at once at the end
- no customer input during process
Iterative ‘Prototyping’ methodologies
Sits between predictive and adaptive approaches
- characterised by building multiple prototypes
- can be RAD (Rapid application development), RP (Rapid prototyping) or IIM (iterative incremental model)
Rapid Application development
- focus on developing applications rapidly through frequent iterations and continuous feedback
- prioritise rapid prototyping over long-term planning, developing and testing phases
- not suitable for high risk projects (cannot do this for AI teslas for example)
- not suitable for large-scale projects (cannot just create a huge system multiple times)
Iterative incremental model
Similar to RAD but instead you create one piece of the project at a time
Prioritise requirements at start, begin by only completing the high priority requirements
incremental vs iterative
incremental - complete one piece at a time
iterative - start with a rough product and refine over time
Agile methodology
A modern version of incremental and iterative approaches
- based on concept of MVP (minimum viable product)
- focus on production of product in a short period with rapid release timescales
- different to iterative models as you are creating a series of products instead of prototypes
- less focused on documentation
- promotes collaboration between team and client
- reacts better to changing requirements
Agile manifesto
individuals and interactions over processes and tools
working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Readmore about
agile