1.2.3 Software Development [old] Flashcards
What are the 5 programming methodologies?
- Waterfall lifecycle
- Agile methodologies
- Extreme programming
- Spiral model
- Rapid Application Development
Waterfall Lifecycle
Each stage of development is completed one at a time in a linear sequence, from start to finish. Results from a completed stage are input into the next.
List the five stages in the waterfall life cycle.
Analysis
Design
Implementation
Evaluation
Maintenance
What must be done if a change needs to be made within a project being developed using the waterfall model?
Programmers must revisit all levels between the current stage and the stage at which a change needs to be made.
What type of projects would the waterfall method be good for?
Projects which are
- Large scale
- Static and low risk, requiring little user input
For example, a piece of general-purpose software.
What type of projects is the waterfall model absolutely unsuitable for?
- High risk projects
- Complex projects
When does the waterfall model produce working software?
Late during the life cycle. Problems may not be discovered until it is too late.
Waterfall Advantages
- Straightforward to manage
- Clearly documented
Waterfall Disadvantages
- Lack of flexibility
- No risk analysis
- Limited user involvement.
Agile Methodologies
An iterative process that produces software prototypes over short sprints.
Each prototype is user tested and any feedback and change in requirements will be accounted for in future sprints.
What are the 6 stages of agile methodologies?
- Analyse requirements
- Design prototype
- Build prototype
- User feedback
- Refine prototype
- Final Product
Agile methodologies focuses less on documentation with the aim of what?
Giving priority to user satisfaction.
What is agile methodologies ideal for?
Small to medium projects with unclear initial requirements.
Agile Methodologies benefits
- Produces high quality code
- Flexible to changing requirements
- Regular user input
Agile Methodologies drawbacks
- Poor documentation
- Requires consistent interaction between user and programmer
Extreme Programming
A type of agile model where the development team consists of a pair of programmers alongside a representative end-user.
What is extreme programming ideal for?
Small to medium projects with unclear initial requirements requiring excellent usability.
Extreme Programming Drawbacks
- High cost of 2 people working on one project
- Teamwork is essential. Programmers must communicate effectively
- Hard to produce high quality documentation, due to iterative nature.
Extreme Programming Benefits
- Produces high quality code
- Constant user involvement means high usability.
Spiral Model
An iterative version of the waterfall model. Stages are refined and repeated until the final product is complete. The first cycle works towards an initial prototype, and each successive cycle produces a refined prototype.
What are the four key stages in the spiral model?
- Analysing system requirements
- Pinpointing and mitigating risks
- Development, testing and implementation
- Evaluating to inform the next iteration
What does the spiral model focus on?
Effectively managing risk-heavy projects
A project is using the spiral model. What happens if it is found to be too risky at any point?
It is terminated.
What is the spiral model good for?
Large, risk intensive projects with a high budget