Software cycles
waterfall model
feasibility study
Technical - does technology exist to solve the problem ?
Economic - Is it within the budget of the firm?
Legal - needs to comply with laws
Operational - can the system be run?
Time frame schedule - can it be done on time? (within time frame)
Analysis
The results of fact finding ,
a requirement specification or a user requirement document
Design
Implementation
a solution is created
Testing
an outline of the test strategy
results of all testing that has been carried out
an actions required after testing
Installation
This involves installing the new system or instructions how to do it
Evaluation
A time to reflect on the project
Maintenance
Could include releasing updates or fixing broken hardware
can continue for years
could be the most expensive phase of a project.
Advantages of the waterfall model
- This model is used only when the requirements are very well known, clear and fixed.
- Product definition is stable.
- Technology is understood.
- There are no ambiguous requirements
- Ample resources with required expertise are available freely
- The project is short.
Drawbacks of the waterfall model
- in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
- No working software is produced until late during the life cycle.
- High amounts of risk and uncertainty.
- Not a good model for complex and object-oriented projects.
- Poor model for long and ongoing projects.
- Not suitable for the projects where requirements are at a moderate to high risk of changing.
- you can only do one section at once for example you have to build the whole program before you can test(cant test little parts)
the waterfall models are likely to be used in defence projects for example air craft carries use them because
Spiral model
Is a model where each phase is done more than once.it spirals round repeats, there is feedback between each stage - a good example of where the spiral model can be used is when there are many customizations that are needed and will need to be altered many times before commercial release.
Rapid application development (RAD)
They use Prototypes in order to test it to make sure it is feasible in realistic circumstances and see how it is accepted with the clients , it also enables feedback and improvements as they can keep making new small prototypes until the finals product is created.
Clients get to see something very quickly instead of waiting 5 years to find out its not how they wanted it
Extreme programing (XP)
Pair programming is when people work in a team of two and question each other and test each other in order to improve the productivity and output
Test driven development - tests that are made before the development thinking about tests before starting coding and planning ahead
continuous
Agile methodologies
A sprint is a task that takes no more than two weeks and is broken down into smaller tasks
Scrum is a small team of no more than seven people each people has a different task. At the start of the day they have a meeting of what they are planning
this means problems issues and risks are solved each day being in a constant cycle of building and testing so if the environment changes its fine because they can adapt