Object Oriented Software Engineering: Models of Software Development

Evolutionary Model

  • Definition: A hybrid model that combines elements of both the iterative and incremental models of software development.

  • Process:

    • Involves delivering the system incrementally over time rather than a single 'big bang' release.

    • Initial requirements and architecture need to be envisioned.

    • Ideal for projects where feature sets are likely to change based on user feedback.

    • Users can access the product at the end of each developmental cycle to provide feedback for the next cycle.

    • The iterative cycle allows the software product to evolve continuously.

  • Advantages:

    • Higher user satisfaction with continuous deliveries.

    • Adaptable to changing requirements through incremental development.

Applications of Evolutionary Model

  • Usage Context:

    • Suitable for large projects with module-based implementation.

    • Effective when customers want core features quickly rather than waiting for full functionality.

    • Common in object-oriented software development where systems can be easily divided into object units.

Iterative (Waterfall) Model

  • Overview:

    • An adaptation of the classic waterfall model, incorporating changes to enhance usability.

    • Allows feedback paths from each phase to preceding ones to correct errors early.

    • Different from the classical model as it emphasizes correcting earlier errors rather than waiting until later phases.

  • Phases:

    • Feasibility Study

    • Requirement Analysis

    • Design

    • Coding and Unit Testing

    • Integration and System Testing

    • Maintenance

  • Benefits:

    • Early detection of errors reduces correction time.

    • Flexibility to adapt based on findings at each stage.

Incremental Process Model

  • Definition: Also known as the Successive Version Model.

  • Process:

    • The system is built incrementally, starting with just a few basic features.

    • Successive versions are developed and delivered until the complete system is realized.

    • Focus on developing core features first, refining them through successive iterations.

  • Life Cycle Activities:

    • Requirements are broken down into smaller, manageable modules.

    • Planning is done incrementally to allow for flexible adaptation to customer needs.

The Spiral Model

  • Overview:

    • A risk-driven model emphasizing iterative cycles through multiple phases.

    • Each phase represents a complete software development cycle.

    • Project management is crucial in determining the number of phases based on project risks.

  • Phases:

    1. Planning

    2. Risk Analysis

    3. Engineering

    4. Evaluation

  • Advantages:

    • Handles project risks effectively.

    • Flexible to changes in requirements.

    • Encourages customer involvement and satisfaction through early visibility of the product.

  • Disadvantages:

    • Complex and expensive; best for large projects.

    • Dependence on skilled risk analysis can be challenging.

Prototyping Model

  • Definition: A method to create a working model of the final product for customer validation.

  • Purpose:

    • Helps customers visualize the final product and provide feedback early in the development process.

    • Allows for refining through repeated iterations until an acceptable model is developed.

  • Steps:

    1. Requirement Gathering and Analysis

    2. Quick Design

    3. Building Prototype

    4. Initial User Evaluation

    5. Refining Prototype

    6. Implement and Maintain

  • Advantages:

    • Early visibility of product leads to better customer satisfaction.

    • Flexibility in design adjustments based on feedback.

  • Disadvantages:

    • Can be costly and time-consuming if requirements vary frequently.

    • Risk of sub-optimal solutions from rushing prototypes.

Practice Questions

  1. For a well understood data processing application, which model is best?
    (A) The waterfall model (B) Prototyping model (C) The incremental model (D) The spiral model

  2. If every requirement in the SRS has only one interpretation, it's termed:
    (A) Correct (B) Unambiguous (C) Consistent (D) Verifiable

  3. Risk analysis in the Spiral Model occurs:
    (A) In the first loop (B) In the first and second loop (C) In every loop (D) Before using the Spiral Model

  4. What is modifying software to adapt to changing environments called?
    (A) Adaptive maintenance (B) Corrective maintenance (C) Perfective maintenance (D) Preventive maintenance

  5. Changes made to reduce future system failure chances are termed:
    (A) Preventive Maintenance (B) Adaptive Maintenance (C) Corrective Maintenance (D) Perfective Maintenance