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
- Tsükliline arendusprotsess – Iga iteratsioon on omamoodi mini-projekt, kus eesmärgiks on toote osaline valmimine.
- Tagasiside põhjal täiustamine – Kogutakse tagasisidet lõppkasutajatelt, et täiustada järgmises iteratsioonis arendatavat toodet.
- Prototüüpide loomine ja täiendamine – Esimeses iteratsioonis luuakse lihtne prototüüp, mis hiljem täiendatakse ja täiustatakse.
- 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
-
Eelised
- Kohene tagasiside – Arendajad saavad kiiresti aru, mis töötab ja mis mitte.
- Paindlikkus muudatusteks – Projekt võimaldab muudatusi igasuguses arendusetapis.
- Võime toota osalist tarkvara varem – Iga iteratsioon annab mingil määral valmis toote.
-
Puudused
- Aja- ja ressursikulu – Iga tsükkel võib nõuda rohkem aega ja ressursse, et toode oleks valmis.
- 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
- Nõuded – Määratakse ära süsteemi esialgsed nõuded.
- Disain – Luuakse süsteemi arhitektuur ja planeeritakse, kuidas iga inkrement (lisafunktsioon) välja arendatakse.
- Arendus – Arendatakse iga inkrement eraldi.
- Testimine – Iga inkrement testitakse iseseisvalt enne järgmise lisamist.
- 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
-
Eelised
- Lihtne hallata – Kuna iga inkrement on väike, on seda lihtne arendada ja hallata.
- Funktsionaalsus täiendatakse pidevalt – Iga inkrement täiendub järjest rohkemate omadustega.
- Kasutajate tagasiside kiire kogumine – Esimene inkrement võib kohe kasutusele võtta, et tagasisidet saada.
- Madalam risk, kuna toode on juba osaliselt valmis.
-
Puudused
- Pikem kogumiskogemus – Toote täielik valmisolek võtab kauem aega.
- 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
-
Cyclic Development Process
Each iteration functions like a mini-project, producing a partial but functional product. -
Feedback-Driven Improvements
Feedback is gathered from users or stakeholders to guide enhancements in the next cycle. -
Prototyping and Refinement
A basic prototype is created in the first iteration and improved over time. -
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
Advantages
-
Immediate Feedback
Developers learn early what works and what doesn’t. -
Flexible for Changes
Changes can be implemented in any development phase. -
Early Partial Product Delivery
Each iteration results in a partially working product.
Disadvantages
-
Time and Resource Intensive
Each cycle may require considerable effort and cost. -
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
-
Requirements
Initial requirements for the system are defined. -
Design
System architecture is created, and increments are planned. -
Development
Each increment is developed separately. -
Testing
Every increment is tested individually before integration. -
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
Advantages
-
Simple to Manage
Small increments make development and management easier. -
Progressive Functionality
Features are added progressively with each increment. -
Quick User Feedback
The first increment can be deployed early for feedback. -
Lower Risk
Early deliveries reduce overall project risk.
Disadvantages
-
Longer Full Completion Time
Final product readiness takes longer. -
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 |