Iteratiivne mudel Inkrementaalne mudel - romanSan17/py123 GitHub Wiki

Iterative Model

image

Definition in Your Own Words

The iterative software development model involves creating a product through several repeated cycles (iterations). Each cycle includes planning, development, testing, and analysis phases. With each new cycle, the product is improved and refined.

Key Characteristics

  • Cyclicity: Development is conducted in repeated cycles, each improving on the previous one.

  • Flexibility: Changes can be made in each cycle based on feedback received.

  • Prototyping: A prototype is often used, which is deployed and refined in each cycle.

  • Focus on Testing: Each iteration includes testing, which helps identify errors early.

  • Feedback: Feedback from users and stakeholders is gathered at each cycle to improve the product.

Example of an Iteration

In the development of an e-commerce web application, the team might start with a basic version of the website with minimal functionality (for example, just a product catalog). Then, in each cycle, new features are added, such as a search system, a shopping cart, a payment system, etc. After each cycle, the team receives feedback from users and makes adjustments in the next cycle.

Add a Diagram or Image

Advantages

  • Flexibility in Changes: Changes can be easily made based on feedback received.

  • Early Error Detection: Testing in each cycle allows errors to be detected early.

  • Improvement in Quality: The product is gradually refined and improved with each iteration.

Disadvantages

  • Inefficiency for Large Projects: Constant changes can make planning and managing large projects difficult.

  • Requires Significant Resources for Feedback: To fully utilize the iterative model, feedback needs to be constantly gathered and analyzed, which requires additional time and effort.

Incremental Model

image

Definition in Your Own Words

The incremental development model is based on adding functionality to the product step by step. Each new phase (increment) represents a working version of the product with added functionality that will be further improved. Each increment is developed with the previous one in mind.

Main Stages

  • Requirements: The first stage involves gathering the basic requirements for the product.

  • Design: The system architecture is defined, and the main components are designed.

  • Increment Development: Each increment involves developing new features that are added to the existing product.

  • Testing: Each increment is tested for correctness.

  • Deployment: After testing, the increment is deployed into the system.

Example of Increments

An example of the incremental approach could be the development of a taxi-ordering mobile app. In the first stage, basic functionality for submitting requests is created. In the second stage, integration with maps for tracking routes is added. In the third stage, the payment feature is introduced, and so on. Each increment adds new functionality, but a working product is already available.

Advantages

  • Gradual Improvement: Functionality is added step by step, making it easier to manage the process.

  • Early Use of the Product: Each increment is a working version that can be tested and used.

  • Flexibility in Adaptation: It's easier to adapt the product to changing requirements during development.

Disadvantages

  • Integration Problems: Sometimes integrating new increments with existing parts of the system can cause issues.

  • Uncertainty of Final Product: It can be difficult to predict exactly what the final product will look like since it evolves gradually. image