În modelul iterativ, procesul iterativ începe cu o implementare simplă a unui set mic de cerințe software și îmbunătățește iterativ versiunile în evoluție până când sistemul complet este implementat și gata de a fi implementat.
Un model de ciclu de viață iterativ nu încearcă să înceapă cu o specificație completă a cerințelor. În schimb, dezvoltarea începe prin specificarea și implementarea doar a unei părți a software-ului, care este apoi revizuită pentru a identifica alte cerințe. Acest proces se repetă apoi, producând o nouă versiune a software-ului la sfârșitul fiecărei iterații a modelului.
Model iterativ – Proiectare
Procesul iterativ începe cu o simplă implementare a unui subset de cerințe software și îmbunătățește iterativ versiunile în evoluție până când sistemul complet este implementat. La fiecare iterație, se fac modificări de proiectare și se adaugă noi capacități funcționale. Ideea de bază din spatele acestei metode este de a dezvolta un sistem prin cicluri repetate (iterativ) și în porțiuni mai mici la un moment dat (incremental).
Următoarea ilustrație este o reprezentare a modelului iterativ și incremental –
Dezvoltarea iterativă și incrementală este o combinație între proiectarea iterativă sau metoda iterativă și modelul de construcție incrementală pentru dezvoltare. „În timpul dezvoltării de software, mai mult de o iterație a ciclului de dezvoltare de software poate fi în curs de desfășurare în același timp.” Acest proces poate fi descris ca o abordare de „achiziție evolutivă” sau de „construcție incrementală”.”
În acest model incremental, întreaga cerință este împărțită în diverse construcții. În timpul fiecărei iterații, modulul de dezvoltare trece prin fazele de cerințe, proiectare, implementare și testare. Fiecare versiune ulterioară a modulului adaugă funcții la versiunea anterioară. Procesul continuă până când sistemul complet este gata conform cerinței.
Cheia pentru o utilizare cu succes a unui ciclu de viață iterativ de dezvoltare a software-ului este validarea riguroasă a cerințelor și testarea de verificare & a fiecărei versiuni a software-ului în raport cu aceste cerințe în cadrul fiecărui ciclu al modelului. Pe măsură ce software-ul evoluează prin cicluri succesive, testele trebuie să fie repetate și extinse pentru a verifica fiecare versiune a software-ului.
Modelul iterativ – Aplicație
Ca și alte modele SDLC, dezvoltarea iterativă și incrementală are unele aplicații specifice în industria software. Acest model este cel mai adesea utilizat în următoarele scenarii –
-
Cerințele sistemului complet sunt clar definite și înțelese.
-
Cerințele majore trebuie definite; cu toate acestea, unele funcționalități sau îmbunătățiri solicitate pot evolua în timp.
-
Există o constrângere de timp față de piață.
-
O nouă tehnologie este utilizată și este învățată de echipa de dezvoltare în timp ce lucrează la proiect.
-
Resursele cu seturile de competențe necesare nu sunt disponibile și se planifică să fie utilizate pe bază de contract pentru iterații specifice.
-
Există unele caracteristici și obiective cu risc ridicat care se pot schimba în viitor.
Modelul iterativ – avantaje și dezavantaje
Avantajul acestui model este că există un model de lucru al sistemului într-un stadiu foarte timpuriu de dezvoltare, ceea ce face mai ușoară găsirea defectelor funcționale sau de proiectare. Descoperirea problemelor într-un stadiu timpuriu al dezvoltării permite luarea de măsuri corective într-un buget limitat.
Dezavantajul acestui model SDLC este că este aplicabil numai proiectelor de dezvoltare software mari și voluminoase. Acest lucru se datorează faptului că este greu de împărțit un sistem software de mici dimensiuni în alte mici incremente/module utilizabile.
Avantajele modelului SDLC iterativ și incremental sunt următoarele –
-
Orice funcționalitate funcțională poate fi dezvoltată rapid și la începutul ciclului de viață.
-
Rezultatele sunt obținute devreme și periodic.
-
Se poate planifica dezvoltarea paralelă.
-
Progresul poate fi măsurat.
-
Este mai puțin costisitor să se modifice domeniul de aplicare/cerințele.
-
Testarea și depanarea în timpul iterațiilor mai mici sunt ușoare.
-
Riscurile sunt identificate și rezolvate în timpul iterației; și fiecare iterație este o etapă ușor de gestionat.
-
Mai ușor de gestionat riscul – partea cu risc ridicat este realizată mai întâi.
-
Cu fiecare increment, produsul operațional este livrat.
-
Problemele, provocările și riscurile identificate din fiecare increment pot fi utilizate/aplicate la următorul increment.
-
Analiza riscurilor este mai bună.
-
Suportă cerințele în schimbare.
-
Timp inițial de operare este mai mic.
-
Se potrivește mai bine pentru proiectele mari și critice.
-
În timpul ciclului de viață, software-ul este produs devreme, ceea ce facilitează evaluarea și feedback-ul clientului.
Dezavantajele modelului SDLC iterativ și incremental sunt următoarele –
-
Este posibil să fie necesare mai multe resurse.
-
Deși costul modificării este mai mic, dar nu este foarte potrivit pentru cerințele în schimbare.
-
Este necesară mai multă atenție din partea managementului.
-
Pot apărea probleme de arhitectură sau de proiectare a sistemului, deoarece nu toate cerințele sunt colectate la începutul întregului ciclu de viață.
-
Definirea incrementelor poate necesita definirea sistemului complet.
-
Nu este potrivit pentru proiecte mai mici.
-
Complexitatea managementului este mai mare.
-
Este posibil ca sfârșitul proiectului să nu fie cunoscut, ceea ce reprezintă un risc.
-
Sunt necesare resurse foarte calificate pentru analiza riscurilor.
-
Procesul proiectelor depinde foarte mult de faza de analiză a riscurilor.
.