2.3 (SOFTWARE DEVELOPMENT MODELS) Flashcards
Pros and cons of waterfall development model
Pros:
Simple and linear: Easy to understand and follow, with each stage progressing linearly to the next
Clear stages and milestones: Each phase has specific deliverables and milestones, making progress easy to measure
Suitable for well-defined projects: Works best when the requirements are clear and unlikely to change during development
Cons:
Inflexible: Changes are difficult to implement once the project has started, as the model doesn’t easily allow for revisiting previous stages
Expensive to fix late problems: If a problem appears later in the development cycle, it can be costly and time-consuming to fix
Long development cycle: The sequential nature may lead to a longer development time, especially if stages are delayed
Pros and cons of Agile/Extreme development model
Pros:
Highly adaptable: Can quickly respond to changes in requirements, even late in development
Frequent communication: Encourages constant communication between team members and stakeholders
Quality focus: Emphasizes technical excellence and good design, with continuous testing throughout the development cycle
Customer collaboration: Encourages working closely with customers to ensure the developed product meets their needs
Cons:
Requires experienced team members: Can be challenging to implement without knowledgeable and skilled developers
Intensive collaboration can lead to burnout: The constant communication and collaboration can be tiring for team members
May lack documentation: The focus on adaptability and immediate coding may result in insufficient documentation
Scope creep: The flexible nature may lead to uncontrolled changes in requirements
Pros and cons of spiral development model
Pros:
Flexibility: Allows for changes and adaptations at various stages of development
Risk management: Emphasizes risk assessment and mitigation, helping to identify and address issues early
Strong customer involvement: Encourages feedback and input from clients throughout the development process
Incremental releases: Provides early partial working solutions, enabling early usage and feedback
Cons:
Complexity: Can be more complex and harder to manage compared to other methodologies
Time-consuming: The emphasis on planning, risk management, and iterations may lead to a longer development process
Expensive: Often requires more resources, particularly in risk assessment and iterative design
Not suitable for small projects: The extensive planning and risk management might be overkill for simple or small-scale projects
Pros and cons of Rapid application development (RAD) model
Pros:
Speed: Enables rapid development and delivery of a high-quality system at a relatively low investment cost
User involvement: Clients are involved throughout the development process, ensuring that the system aligns with user needs and expectations
Flexibility: Allows for changes and adaptations to be made quickly as requirements evolve
Incremental development: Promotes development in small increments, with constant feedback and adaptation
Cons:
Dependent on strong team collaboration: Requires skilled and collaborative team members, which can be a challenge to assemble
Potential lack of quality: The focus on speed might lead to skipping rigorous testing or documentation, impacting the quality
Not suitable for small projects: The intense collaboration and iterative approach might be overkill for simple or small-scale projects
Can lead to scope creep: The flexible nature may lead to uncontrolled changes in requirements
When to use waterfall development model
Well-defined, small projects with stable requirements
suitable for novice programmers
When to use agile development model
Fast-paced projects with changing requirements
Experienced programmers required
When to use spiral development model
Complex projects needing extensive risk management
Long development times in which new technologies may develop
When to use rapid application development (RAD) model
Projects requiring quick delivery with active user participation