1.2.3 - software development Flashcards
waterfall lifecycle
Has a series of stages, each of which have to be completed before moving on to the next one. Each stage is large ad thorough and produces a large amount of documentation.
7 stages of the waterfall cycle
1- requirements
2- analysis
3- design
4- implementation
5- testing
6- deployment
7- maintenance
requirements stage of the waterfall lifecycle
- project team will work with the client to set out requirements for the whole program.
- these will be very hard to change after this stage is completed.
analysis stage of the waterfall lifecycle
The project team analyses:
- what solutions they have ready to implement
- what they can use or adapt to produce a solution
design stage of the waterfall lifecycle
The project team produces a solution design that meets all of the user’s requirements.
2 advantages of waterfall lifecycle
1- Easy to manage as team is only focusing on one stage at a time.
2- Fewer production issues during development due to amount of time invested into previous stages.
disadvantages of waterfall lifecycle
1- Inflexible and doesn’t cope with changing requirements which can cause delays and significant cost increases.
2- Doesn’t work very well for complex or long term projects as it would take too long to get through each stage.
3- Can be very difficult for the project team to capture all the user requirements in one go as the client often doesn’t know what they want.
usage of waterfall life cycle
- works well for small to medium projects
- effective when the client has a very clear picture of what they want to be developed.
agile methodology
- has a series of stages
- some of these stages are repeated to allow people to change their requirements and develop a product over sprints
user stories in agile methodologies
Descriptions of the different ways that the system will be used, what it will look like and what they expect it to do.
Describe a sprint in agile methodologies.
- A development sprint is a short time frame during which a specific user story is completed.
- A sprint planning meeting is held to prioritise and categorise these user stories and set up the work for the sprint.
- The product is a fully working deliverable that the client can use instantly.
What happens after a sprint in agile methodologies?
- The deliverable is given to the client.
- The product is evaluated and this info is fed back into the next sprint planning meeting.
- The sprint planning meeting and the sprint are repeated until the full scope of the project is agreed as finished.
3 advantages of agile methodology
1- The client can take a product to the market quicker.
2- Clients can receive incremental updates for the product.
3- The final product has absolute certainty that it is what the clients wanted as they are constantly involved with its development.
3 disadvantages of agile methodology
1- Less predictability compared to waterfall in terms of time and cost and the process constantly repeats.
2- Requires higher time input from the client as they are constantly required for feedback and consultation throughout the development process.
3- Can easily go off track and a project can last well beyond the initial idea, which means high cost and time.
usage of agile methodology
Best suited to projects where the client has a good idea of what they want but they also have a lot of time to invest into controlling the project and feeding back on it.
stages of extreme programming
1- extreme planning
2- extreme designing
3- extreme programming
4- extreme testing
5- acceptance testing
extreme planning stage of extreme programming
- Client is in constant contact with the project team to establish requirements.
- The project then goes into the ‘planning game’ to plan out releases and what will be in each iteration.
extreme designing stage of extreme programming
The project team will build simple designs to implement the needed functionality.
extreme programming stage of extreme programming
The programmers work in pair with one coding and the other critiquing the code.
extreme testing stage of extreme programming
- the code is tested in units
- integration testing is also completed to ensure it works together and the code is reviewed for efficiency and quality.
acceptance testing stage of extreme programming
- The client feeds back on the product in its current stage.
- This is then taken into the next iteration of extreme planning for the next release.
3 advantages of extreme programming
1- Can produce a product quickly that the client can use.
2- Constantly refactored in response to client feedback which saves time and money for developing.
3- Lower risk of failure.
3 disadvantages of extreme programming
1- The project can be too code-focused and not design-focused so may not be best possible product.
2- Produces little to no documentation.
3- If the developers are split geographically, it can cause issues when it is time for code review.
usage of extreme programming
Best suited to projects where the client has a constantly changing set of requirements and needs a product quickly at the lowest possible price.