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