maasdasd Flashcards
Describe the waterfall model
Linear approach where each stage of development is done consecutively where the customer does not see the product until it is completed
What are the advantages of the waterfall model (4)
Simple
Each stage is separate and self contained with well defined outcomes and written documentation
Easy to manage
Responsibilities clear at each step
What are the disadvantages of the waterfall model (4)
Not much user involvement after analysis
Carries a lot of risk
No working software produced until late on
If software is not what user wants it is usually to late to make changes
When to use Waterfall Model
Requirements are clear and fixed
No ambiguous requirements
Technology is well understood
Project is short
Describe the spiral model
Four basic steps of analysis, design, implementation and evaluation are repeatedly done.
Advantages of the spiral model (5)
Easy to manage
Software produced at early stage so problems and issues identified early
User gives feedback on each prototype so required changes can be made early
Functionality can be added during the process
End result is more likely to be what the user wants
Disadvantages of the spiral model (3)
Time consuming
More costly to develop
Not suitable for smaller projects
When to use the spiral model
For medium to high risk projects
When users are unsure of their needs
When the requirements are complex
For very large projects over many years
Describe the agile model.
Software is developed in rapid incremental cycles
Each version builds on previous functionality
Each version is tested before release
Advantages of the agile model (4)
Rapid continuous delivery of useful software leads to customer satisfaction
Customer feedback is constantly gotten
Software is easily adapted at any stage
Working software delivered frequently
What are the disadvantages of the agile model
Lack of emphasis on necessary design and documentation
Project can fail if customer not clear about desired outcome
Not suitable for novice programmers
When to use the agile model
When new changes need to be implemented
In an expanding or developing business where needs are constantly changing
What is Extreme Programing?
A type of agile development that advocates frequent releases in short development cycles to improve productivity
What is Rapid Application Development?
A software development method where workshops and focus groups used to gather requirements and prototyping is continually used to refine the system. Each part of the system is produced within a strict time limit.
When to use rapid application development
When requirements are not entirely clear
When end project needs to have excellent usability
When the user needs to be highly involved in development