✅1.2.3 Software Development Flashcards
What is the Waterfall lifecycle model?
A sequential software development process divided into distinct phases, analysis, design, development, testing, implementation and maintenance. Where each phase must be completed before the next one begins.
Identify the stages of the waterfall lifecycle model
Analysis, Design, Development, Testing, Implementation and Maintenance.
What type of projects is the waterfall lifecycle model suited to?
Projects where the user’s requirements are clearly understood and well specified
Explain 2 advantages of the waterfall model in software development?
- Easy to understand and follow, with each stage progressing linearly to the next
- Each phase has specific deliverables and milestones, making progress easy to measure
Explain 3 disadvantages of the waterfall model in software development?
- It’s inflexible meaning if the client’s requirements change mid-project, it can be very challenging to implement these changes since it would require revisiting earlier stages.
- The model heavily relies on getting the requirements right at the start. If there is any misunderstanding or the client is unsure about their need, the final product may not meet expectations.
- Testing only occurs after the development phase, which can lead to discovering major issues late in the project, making them harder and more expensive to fix.
What is the spiral model?
An iterative software development process. It consists of four main phases: determining objectives, identifying and managing risks, development and testing, and planning the next iteration. This process repeats, with each cycle producing a prototype that evolves based on client feedback.
Identify the stages of the spiral model
- Determining objectives
- Identifying and managing risks
- Development and testing
- Planning the next iteration
What type of projects are spiral programming methodologies suited to?
Large, high-risk projects where requirements may change, and risk management is essential
Explain 3 advantages of the spiral model in software development?
- The model is very flexible, allowing changes to be made at any point. This makes it particularly suitable for projects where requirements may not be clear from the outset or may change during development.
- It has a strong focus on risk management, meaning by assessing risks continuously, the project can be adjusted or even halted if necessary to avoid costly mistakes.
- The frequent feedback loops ensure the client is involved throughout the development process, which helps in aligning the final product with the client’s expectations and needs.
Explain 3 disadvantages of the spiral model in software development?
- The iterative nature of the spiral model can make it more complex and expensive, as it requires regular reassessments, planning, and prototype development.
- Since the project is developed in multiple iterations, it can take longer to reach the final product, especially if there are many cycles due to evolving requirements or unforeseen issues.
- Effective risk assessment and iteration planning require a high level of expertise. Poor management can lead to an excessive number of iterations, increasing the project’s duration and cost.
What is Agile (Extreme Programming)?
A type of Agile software development methodology that promotes adaptability and high customer involvement throughout every stage of the project.
What type of projects are agile methodologies suited to?
Small to medium-sized projects where requirements can change and customer involvement is high
Give two advantages of agile methodologies.
- The development process is broken down into short iterations, allowing changes to be made at any point. This makes it particularly suitable for projects where requirements may not be clear from the outset or may change during development.
- Agile encourages collaboration, to ensure the client is involved throughout the development process, which helps in aligning the final product with the client’s expectations and needs.
Give two disadvantages of agile methodologies.
- Agile methodologies do not have a formal focus on risk analysis. While risks are addressed within each iteration, there is no structured, comprehensive process for ongoing risk management, which makes it less suitable for large, high-risk projects.
- Unsuitable for large-scale projects. As the collaborative and iterative nature of Agile can become harder to manage as the project size and team grow, potentially causing inefficiencies and coordination problems in large projects.
Give 2 advantages of rapid action development (RAD)?
- Very flexible, allowing changes to be made quickly as requirements evolve
- The client is involved throughout the development process, which helps in aligning the final product with the client’s expectations and needs.
Give 2 disadvantages of rapid action development (RAD)?
- Not suitable for small projects as the intense collaboration and iterative approach might be overkill for simple or small-scale projects.
- Can lead to scope creep as the flexible nature may lead to uncontrolled changes in requirements.
What type of projects are Rapid Application Development (RAD) programming methodologies suited to?
Projects where rapid delivery is required and where requirements can be developed and refined on the go