Methodologies Flashcards
What are the purposes of software development methodologies?
Capturing what system needs to do, decomposing, keeping track of change, allocating staff, debugging, testing
What are the 7 stages of a methodology? (PRACTEM)
Problem definition/feasibility, requirements, analysis/design, coding, testing, evaluation, maintenance
What is the Waterfall lifecycle model?
The waterfall lifecycle model decomposes the process into 7 stages - completes them sequentially, difficult to revisit past stages. Suited to large scale projects
Advantages of waterfall
Easy to manage, clearly documented
Disadvantages of waterfall
User not involved, not flexible to change
What is rapid application development (RAD)?
Involves building a prototype which is constantly evaluated and refined with customer until it becomes the final product - suited to smaller projects
Advantages of RAD
User-focused, tailored to requirements through client feedback
Disadvantages of RAD
Quality of code may be reduced, poor documentation
What is the spiral model?
A model used to evaluate risk - the riskiest elements of the project are dealt with first - it then iterates until the project is complete. Works for projects that are large and high-risk
Advantages of spiral
Great for high risk projects, many prototypes created, user requirement changes can be incorporated into project
Disadvantages of spiral
High costs, less focus on effectiveness of code
What are agile methods?
Combination of changing requirements per iteration - reviewed with client after each iteration. Suited for small, collaborative teams
Advantages of agile
High quality code, client involved throughout
Disadvantages of agile
Limited documentation, may take longer due to level of communication with client
What is XP?
An agile method where the focus is on high-quality code - minimised documentation. Iterates from a small project and gets larger in each iteration - works for small teams