Iteratiivne mudel Inkrementaalne mudel - JOstapjuk/Konspeekt_Agiil GitHub Wiki

Iteratiivne mudel

  • Definitsioon oma sõnadega

    Iteratiivne lähenemine tähendab, et projekt arendatakse läbi korduvate tsüklite või iteratsioonide. Igas iteratsioonis täiendatakse ja parendatakse eelnevalt arendatud funktsionaalsust vastavalt tagasisidele, eesmärgiga jõuda lõpuks täiusliku toote või lahenduseni.

  • Peamised omadused

    1. Tsükliline arendusprotsess – Iga iteratsioon on omamoodi mini-projekt, kus eesmärgiks on toote osaline valmimine.
    2. Tagasiside põhjal täiustamine – Kogutakse tagasisidet lõppkasutajatelt, et täiustada järgmises iteratsioonis arendatavat toodet.
    3. Prototüüpide loomine ja täiendamine – Esimeses iteratsioonis luuakse lihtne prototüüp, mis hiljem täiendatakse ja täiustatakse.
    4. Paindlikkus ja kohandamine – Iga iteratsioon pakub võimaluse muuta toote nõudeid vastavalt projekti arengule ja tagasisidele.
  • Iteratsiooni näide

    Näiteks, tarkvara arendamine, kus esimeses iteratsioonis luuakse põhifunktsioonid, nagu kasutaja registreerimine ja sisselogimine. Teises iteratsioonis lisatakse uusi funktsioone, nagu parooli taastamise võimalus ja profiilide haldamine.

  • Lisa skeem või joonis

    {CDA27B6A-C26C-435C-8FDA-90A4DFB934D2}

  • Eelised

    1. Kohene tagasiside – Arendajad saavad kiiresti aru, mis töötab ja mis mitte.
    2. Paindlikkus muudatusteks – Projekt võimaldab muudatusi igasuguses arendusetapis.
    3. Võime toota osalist tarkvara varem – Iga iteratsioon annab mingil määral valmis toote.
  • Puudused

    1. Aja- ja ressursikulu – Iga tsükkel võib nõuda rohkem aega ja ressursse, et toode oleks valmis.
    2. Kõrge risk täiustuste mittekooskõlalisuses – Üks iteratsioon võib halvasti mõjuda teistele, kui arendus ei ole hästi koordineeritud.

2. Inkrementaalne mudel

  • Definitsioon oma sõnadega

    Inkrementaalne mudel keskendub tarkvara arendamisele järkjärguliselt, kus iga järgmine etapp lisab süsteemile uusi funktsioone või omadusi. Erinevalt iteratiivsest mudelist on inkrementaalne areng rohkem suunatud suurenevale funktsionaalsusele.

  • Peamised etapid

    1. Nõuded – Määratakse ära süsteemi esialgsed nõuded.
    2. Disain – Luuakse süsteemi arhitektuur ja planeeritakse, kuidas iga inkrement (lisafunktsioon) välja arendatakse.
    3. Arendus – Arendatakse iga inkrement eraldi.
    4. Testimine – Iga inkrement testitakse iseseisvalt enne järgmise lisamist.
    5. Integreerimine – Kõik eelnevate inkrementide funktsionaalsus integreeritakse lõpptoote osaks.
  • Inkrementide näide

    Näiteks, veebirakenduse arendamine: alguses luuakse minimaalne veebileht, mis võimaldab ainult toote vaatamist. Järgmistes inkrementides lisatakse ostukorvi funktsioon, kasutaja registreerimine, ja lõpuks maksemeetodite integreerimine.

  • Lisa skeem või joonis

    {BDFFFC84-1C07-4B61-BA11-D96C18D54F9C}

  • Eelised

    1. Lihtne hallata – Kuna iga inkrement on väike, on seda lihtne arendada ja hallata.
    2. Funktsionaalsus täiendatakse pidevalt – Iga inkrement täiendub järjest rohkemate omadustega.
    3. Kasutajate tagasiside kiire kogumine – Esimene inkrement võib kohe kasutusele võtta, et tagasisidet saada.
    4. Madalam risk, kuna toode on juba osaliselt valmis.
  • Puudused

    1. Pikem kogumiskogemus – Toote täielik valmisolek võtab kauem aega.
    2. Integreerimise keerukus – Erinevad inkrementid võivad omavahel konfliktidesse sattuda, kui neid ei integreerita õigesti.

3. Võrdlus: Iteratiivne vs Inkrementaalne

  • Tabel või nimekiri võrdluseks
Kriteerium Iteratiivne mudel Inkrementaalne mudel
Lähenemine Tsükliline (korratakse iga iteratsiooni) Kasvav (uued funktsioonid lisatakse samm-sammult)
Tagasiside sagedus Kiire ja pidev igas tsüklis Pärast iga inkrementi
Sobivus projekti tüübile Sobib projektidele, mis vajavad paindlikkust Sobib projektidele, kus on vaja funktsionaalsust järjest juurde lisada
Riskide juhtimine Võimalik kiire kohandamine, kuid võib tekkida ka riskide kuhjumine Madalam risk iga inkrementi puhul, kuid terviku integreerimine võib olla keeruline
Funktsionaalsuse valmimise järjekord Funktsionaalsus valmib iteratsioonide jooksul Funktsionaalsus valmib iga inkrementi käigus

Iterative Model


Definition in Your Own Words

The iterative approach means that a project is developed through repetitive cycles or iterations. In each iteration, the product is enhanced and improved based on feedback, with the goal of reaching a complete and refined solution.


Key Characteristics

  1. Cyclic Development Process
    Each iteration functions like a mini-project, producing a partial but functional product.

  2. Feedback-Driven Improvements
    Feedback is gathered from users or stakeholders to guide enhancements in the next cycle.

  3. Prototyping and Refinement
    A basic prototype is created in the first iteration and improved over time.

  4. Flexibility and Adaptability
    Product requirements can be adjusted at each iteration based on progress and feedback.


Iteration Example

Example: In software development, the first iteration delivers core features like user registration and login. In the next iteration, new features such as password recovery and profile management are added.


Diagram

Iterative Model Diagram


Advantages

  1. Immediate Feedback
    Developers learn early what works and what doesn’t.

  2. Flexible for Changes
    Changes can be implemented in any development phase.

  3. Early Partial Product Delivery
    Each iteration results in a partially working product.


Disadvantages

  1. Time and Resource Intensive
    Each cycle may require considerable effort and cost.

  2. Risk of Inconsistent Enhancements
    Poor coordination may cause conflicts between iterations.


Incremental Model


Definition in Your Own Words

The incremental model focuses on building software step by step, where each stage adds new functionality to the existing system. Unlike the iterative model, the incremental model emphasizes growing product functionality with each delivery.


Main Stages

  1. Requirements
    Initial requirements for the system are defined.

  2. Design
    System architecture is created, and increments are planned.

  3. Development
    Each increment is developed separately.

  4. Testing
    Every increment is tested individually before integration.

  5. Integration
    All previous increments are combined into the final product.


Increment Example

Example: In a web app project, the initial version allows product browsing. The next increment adds a shopping cart, then user accounts, and finally payment integration.


Diagram

Incremental Model Diagram


Advantages

  1. Simple to Manage
    Small increments make development and management easier.

  2. Progressive Functionality
    Features are added progressively with each increment.

  3. Quick User Feedback
    The first increment can be deployed early for feedback.

  4. Lower Risk
    Early deliveries reduce overall project risk.


Disadvantages

  1. Longer Full Completion Time
    Final product readiness takes longer.

  2. Integration Complexity
    Improper integration may cause conflicts between increments.


Comparison: Iterative vs Incremental Model

Criteria Iterative Model Incremental Model
Approach Cyclical (repeats each iteration) Growing (adds features step by step)
Feedback Frequency Fast and continuous in each cycle After each increment
Best Fit Projects Projects needing flexibility Projects requiring gradual functionality expansion
Risk Management Quick adaptability, but risks may accumulate Lower risk per increment, integration can be complex
Functionality Delivery Order Delivered over multiple iterations Delivered incrementally, feature by feature