software development

Cards (16)

  • What are the different approaches to software development
    • waterfall life cycle
    • spiral model
    • agile methodologies
    • rapid application development
    • extreme programming
  • Describe Waterfall lifecycle
    • each stage is completed one after the other
    • one must be completed before the next one begins
    • stages:
    • analysis
    • design
    • testing
    • evaluation
  • Benefits of waterfall model for software development
    • suitable when user requirements are well-understood and clearly specified
    • well-structured and understood, making it easier to plan with clear lines of responsibility
    • large projects can be divided into smaller sub projects, each following their own waterfall
  • Criticisms of the waterfall method for software development
    • very rigid
    • extensive documentation required
    • lack of user involvement
    • heavy dependence on accurate requirement specifications
    • challenging when users can't fully articulate needs
    • testing schedules late in the cycle, making it challenging to address defects
    • limited feedback review during development
  • Describe the spiral model for software development
    • iterative waterfall method
    • involves creating a prototype following waterfall method and then acting on feedback in evaluation stage and fixing until the user is happy
  • describe the benefits of the spiral model for software development
    • suitable for large scale/ high risk projects
    • emphasis on risk management allows for flexible/ adaptive approach to development
  • criticisms of the spiral model for software development
    • requires a risk management expert
    • increasing costs
  • Describe agile methodologies for software development
    • advocates building prototypes, testing and incorporating feedback quickly
    • emphasises iterative changes
    • emphasises frequent contact with users
  • benefits of agile methodologies
    • suitable for small -> medium projects
    • increased customer satisfaction due to frequent contact
  • criticism of agile methodologies
    • may lead to scope creep
  • describe rapid application development for software development
    • based on prototyping
    • emphasises adaptability over planning
  • benefits to rapid application development
    • suited for projects with unclear requirements
    • suitable for smaller projects with smaller development teams which include users
    • continuous feedback
  • criticisms of rapid application development
    • sloppiness due to 'try-it-and-see' approach
    • ignores importance of ensuring overall system architecture is correct
    • project can be extended due to user input
  • describe extreme programming for software development
    • agile method
    • focuses on code refinement (compared to RAD)
    • frequent releases in short development cycles (shorter than RAD)
    • continuous communication with customer
    • programming done in pairs
  • benefits of extreme programming
    • high quality code leads to fewer bugs and less time spent fixing them
    • strong focus on user involvement to meat requirements
  • criticisms of extreme programming
    • scope creep
    • high communication/collaboration challenging if team not in same location
    • client must commit to active user involvement throughout project