Software Development

    Cards (21)

    • Waterfall Methodology
      Waterfall contains distinct development stages. Each stage has a clear deliverable and is suitable for projects where the requirements are well known and unlikely to change.
    • RAD
      Rapid Application Development
      A prototype is planned and created by developers with requirements stated from users. The prototype is tested and deployed to users. Users provide feedback for improvement which is carried out in the next iteration of development.
      This iterative development process is carried out until user satisfaction is achieved and then the prototype is a final product.
    • Spiral Methodology
      Spiral development is a combination of waterfall and agile methodologies.

      It is a risk driven development process where the requirements of a prototype are established and a risk assessment is carried out. After the prototype is developed and deployed users provide feedback for the next iteration of development.

      This process is repeated until the prototype is a final product.
    • Agile (Extreme Programming)
      A prototype is planned by users and developers and then developed using pair programming ensuring good quality code. The prototype is tested and deployed to users. Users constantly provide feedback for next iterations where the prototype can be developed further.
      This incremental and iterative development is repeated until the prototype becomes a final product.
    • Disadvantages of Waterfall
      Carries Alot of risk - Users do not see the product until the project is near end of development.
      Process is not reversible - If an error is encountered it is difficult to return to a previous stage to fix it.
      Requirements must be understood - Not suitable for complex projects where the requirements can change.
    • Advantages of Waterfall
      Simplicity - Easy for developers to follow the stages of development due to its linear fasion.
      Clear Deliverables - After each stage there is a clear output.
      Easy to track - Development is sequential and project progress can be easily tracked. Efficient time management.
    • Waterfall Suitability
      Not suitable for large complex projects where the requirements can easily change.
      Ease of management can make it suitable for large projects IF requirements are well understood and carry little risk.
    • Advantages of RAD
      Continuous User Feedback - The final product will have good usability and be in line with user requirements.
      Flexibility - Changes can easily be made after user feedback.
      Requirements do not need to be fully known - With basic requirements understood and constant user feedback, RAD development can be quick.
    • Disadvantages of RAD
      Continous communication - Regular contact with a user must be maintained. This can be time consuming and expensive.
      Scalability - Scales poorly for large projects and big teams.
      May lack quality - As speed and usability is prioritised the quality of the code can be below average.
    • RAD suitability
      Suitable for projects where initial requirements are not fully understood.

      Suitable for small projects.
    • Spiral Advantages
      Risk Management - Risks of project are understood and mitigations are made.
      Flexibility - Changes can easily be made at various stages of development.
    • Spiral Disadvantages
      Complex - Difficult to follow the development process and carry out risk management.
      Risk - If risk management is carried out poorly the project suffers.
      Time Consuming - Alot of time is spent in planning and carrying out risk management.
    • Spiral Suitability
      Suitable for large scale projects that involve a high level of risk. Requirements do not need to be fully understood.
    • Agile Advantages
      Good Quality of Code - Emphasises programming so quality of end code is very high.
      Upmost user satisfaction - End product is of very high quality and functions as expected leading to satisfied users.
    • Agile Disadvantages
      Expensive - Processes involved to carry out pair programming can be expensive.
      User feedback - One user must be in contact with the team at all times.
      Experienced team required - Highly professional developers are needed and have to work in close collaboration.
    • Agile Suitability
      Projects that require a final product finished to a high quality standard agile and extreme programming processes are ideal.
    • Black Box Testing
      Checks whether an input produces the expected output.
    • White box testing
      Tests the algorithm in the code making sure all parts of the algorithm functions as intended.
    • Difference between Black Box and White Box testing
      Blackbox testing only checks for the correct output of the code.
      Whitebox testing checks the efficiency of the code by identifying and testing all possible paths of execution in the code.
    • Alpha Testing
      Testing where the prototype is released to a smaller group of people ranging from internal employees and their friends and families.
    • Beta Testing
      Testing where the prototype is released to a larger group of people through a beta program.