Sunteți pe pagina 1din 22

REFERAT

pentru disciplina „Testarea și asigurarea calității”


Tema : Ciclul de viață al modelelor de dezvoltare software
Master Ingineria Calculatoarelor şi Comunicaţiilor, anul I, semestrul I

Student: George-Mihail Ciută

--- 2020 ---


Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Cuprins:

1. Modele de dezvoltare – SDLC ...................................................................................................... 3


1.1. Definiţie, importanţă, ciclul de viaţă ...............................................................................................................3
1.2. Modele SDLC: descriere, etape, avantaje, dezavantaje, utilizare....................................................................5
1.2.1. Modelul cascadă. ......................................................................................................................................5
1.2.2. Modelul V.................................................................................................................................................7
1.2.3. Modelul incremental .................................................................................................................................9
1.2.4. Modelul RAD ........................................................................................................................................ 11
1.2.5. Modelul agil........................................................................................................................................... 13
1.2.6. Modelul iterativ ..................................................................................................................................... 15
1.2.7. Modelul spirală ...................................................................................................................................... 17
2. Modele SDLC AGILE vs. traditionale ..................................................................................... 19
3. Concluzii ....................................................................................................................................... 21
Bibliografie ........................................................................................................................................... 22

Pagina 2 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

1. MODELE DE DEZVOLTARE – SDLC

1.1. Definiţie, importanţă, ciclul de viaţă


Modelele de dezvoltare sunt procese sau metodologii diverse, selectate pentru dezvoltarea proiectului în
funcţie de scopurile şi obiectivele acestuia. Modelele de dezvoltare software ajută la îmbunătăţirea
calităţii software-ului, precum şi a procesului de dezvoltare în general.
Există mai multe modele ale ciclului de viaţă de dezvoltare software care au fost dezvoltate pentru a
realiza diferite obiective cerute. SDLC (Software Development Life Cycle) este un mediu care descrie
activităţile realizate în cadrul fiecărei etape din procesul de dezvoltare software. SDLC constă dintr-un
plan detaliat, care descrie modul în care se va realiza dezvoltarea, întreţinerea şi înlocuirea software-ului
specific. Acest termen mai este cunoscut şi ca proces de dezvoltare software1.
Standardul internaţional pentru SDLC este ISO/IEC 12207. Acesta îşi propune să fie un standard, care
defineşte toate activităţile necesare pentru dezvoltarea şi întreţinerea software-ului. Figura de mai jos
este o reprezentare grafică a diferitelor etape ale unui SDLC tipic.

Figura 1. SDLC (http://www.tutorialspoint.com/sdlc/sdlc_overview.htm)

Un SDLC general constă din următoarele etape:2:

Pagina 3 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Etapa 1: Analiza şi planificarea cerinţelor


Analiza cerinţelor este cea mai importantă şi fundamentală etapă din SDLC. Aceasta este efectuată de
către membrii seniori ai echipei pe baza intrărilor de la client, de la departamentul de vânzări, pe baza
studiilor de piața şi experţilor din domeniul de industrie. Aceste informaţii sunt apoi utilizate pentru
planificarea de bază a proiectului şi efectuarea studiului de fezabilitate a produsului în domeniile
economic, operaţional şi tehnic. Planificarea cerinţelor de asigurare a calităţii şi identificare a riscurilor
asociate proiectului se realizează tot în etapa de planificare. Rezultatul studiului de fezabilitate tehnică
constă în definirea diverselor abordări tehnice care pot fi urmate pentru a implementa proiectul cu riscuri
minime.
Etapa 2: Definirea cerinţelor
După ce a fost realizată analiza cerinţelor se trece la definirea clară şi documentarea cerinţelor
produsului. Urmează apoi obţinerea aprobării clientului sau a analiştilor de piaţă prin intermediul SRS
(Software Requirement Specification). Documentul SRS cuprinde toate cerinţele produsului care vor fi
proiectate şi dezvoltate pe parcursul ciclului de viaţă al proiectului.
Etapa 3: Proiectarea arhitecturii produsului
SRS este referinţa de bază pentru realizarea celei mai bune arhitecturi de dezvoltare a produsului de
către arhitecţi. Pe baza cerinţelor prevăzute în SRS, este propusă de obicei, cel puţin o abordare de
proiectare a arhitecturii produsului, iar aceasta este documentată într-un DDS (Design Document
Specification). Acest DDS este revizuit de către toate părţile interesate importante şi pe baza unor
parametri (cum ar fi: evaluarea riscurilor, robusteţea produsului, modalitatea de proiectare, bugetul şi
constrângerile de timp) este selectată cea mai bună abordare de proiectare a produsului.
O abordare de proiectare defineşte în mod clar toate modulele arhitecturale ale produsului, împreună cu
comunicarea sa şi reprezentarea fluxului de date cu modulele externe şi furnizate de terţi (dacă este
cazul). Proiectarea internă a tuturor modulelor din arhitectura propusă trebuie să fie clar definită şi
detaliată în DDS.
Etapa 4: Implementarea sau dezvoltarea produsului
În acest stadiu al SDLC începe efectiv dezvoltarea şi se realizează produsul. Codul de programare este
generat în timpul acestei etape. În cazul în care proiectarea este realizată într-o manieră detaliată şi
organizată, generarea codului poate fi realizată fără prea multe complicaţii. Dezvoltatorii trebuie să
urmeze liniile directoare de codificare definite de organizaţia lor. Pentru a genera codul, dezvoltatorii
folosesc instrumente de programare cum ar fi: compilatoare, interpretoare, depanatoare etc. De
asemenea, utilizează pentru codificare diferite limbaje de programare de nivel înalt, cum ar fi C, C++,
Pascal, Java, PHP. Limbajul de programare este ales în funcţie de tipul software-ului care se dezvoltă.
Etapa 5: Testarea produsului
Etapa este, de obicei, un subset al tuturor etapelor din modelele SDLC moderne, deoarece activităţile de
testare sunt cele mai multe implicate în toate etapele SDLC-ului. Totuşi, această etapă se referă doar la
etapa de testare în situaţia în care sunt raportate, urmărite, fixate şi reanalizate defecte ale produsului
până când produsul ajunge la standardele de calitate definite în SRS.

Pagina 4 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Etapa 6: Operarea pe piaţă şi întreţinerea


După ce produsul a fost testat, acesta este gata de lansare pe piaţă. Produsul poate fi lansat într-un
segment limitat şi testat în mediul de afaceri real. Apoi, pe baza feedback-ul, produsul poate fi lansat
nemodificat sau cu îmbunătăţirile sugerate de segmentul de piaţă de direcţionare. După ce produsul este
lansat pe piaţă, întreţinerea acestuia se face pentru baza de clienţi existentă.

1.2. Modele SDLC: descriere, etape, avantaje, dezavantaje, utilizare


Există o multitudine de modele de dezvoltare software şi multe organizaţii adoptă propriul model.
Selectarea modelului are un impact puternic asupra testelor care se efectuează. Fazele independente,
aplicate pe toate nivelurile sunt: testarea şi validarea; şi managementul. Printre cele mai utilizate modele
de dezvoltare utilizate de organizaţii amintim:
• Modelul cascadă
• Modelul V
• Modelul incremental
• Modelul RAD (Rapid Application Development)
• Modelul agil
• Modelul iterativ
• Modelul spirală
Fiecare model prezintă avantaje şi dezavantaje şi trebuie ales în funcţie de necesităţile organizaţiei. În
continuare, sunt prezentate pentru fiecare model SDLC o scurtă descriere, etapele modelului, avantaje,
dezavantaje şi situaţii de utilizare3, 4, 5:

1.2.1. Modelul cascadă.


Modelul cascadă a fost definit prima dată de Winston W. Royce în 1970. Modelul mai este regăsit şi cu
numele de modelul ciclului de viaţă liniar-secvenţial. Este foarte simplu de înţeles şi de utilizat. În acest
model, fiecare etapă trebuie să fie finalizată în totalitate înainte de începerea următoarei etape. La
sfârşitul fiecărei etape, trebuie să aibă loc o revizuire pentru a determina dacă proiectul corespunde sau
nu cerinţelor. În acest model etapele nu se suprapun.

Pagina 5 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Figura 2. Diagrama modelului cascadă (Waterfall model)

Printre avantajele acestui tip de model, se pot menționa:


- documentaţia şi proiectarea structurii reprezintă un avantaj atunci când apar noi membrii în echipă;
- este un model uşor de utilizat şi simplu;
- este uşor de coordonat, datorită rigidităţii modelului - fiecare etapă are un rezultat așteptat şi un
proces de evaluare;
- etapele sunt implementate individual, pe rând;
- este recomandat pentru proiectele mici, în care cerinţele sunt foarte bine înţelese.

Printre dezavantajele acestui tip de model, se numără:


- cerinţele pot fi adăugate şi după finalul etapei de “culegere a cerinţelor”, fapt ce influențează în
mod negativ dezvoltarea produsului;
- problemele din cadrul unei etape nu sunt niciodată rezolvate complet în cadrul aceleiaşi etape;
- partiționarea în etape a proiectului nu este flexibilă;
- adăugarea de cerinţe noi de către client, conduce la costuri suplimentare, deoarece acestea nu pot
fi implementate în aceeași ediţie a produsului;

Pagina 6 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

- estimarea corecta a timpului si costului alocat pentru fiecare etapă este dificil de realizat;
- nu sunt realizate prototipuri până la finalizarea ciclului de viaţă;
- odată ce aplicaţia este în etapa de testare, este foarte dificil să se revină la etapa de concepţie în
cazul în care există probleme;
- există un risc şi o incertitudine mare;
- nu este recomandat pentru proiectele complexe şi orientate obiect;
- este considerat un model slab pentru proiectele lungi şi în curs de desfăşurare;
- nu este potrivit pentru proiectele în care cerinţele prezintă un grad de schimbare de la moderat spre
ridicat.

Modelul cascadă se recomandă să se utilizeze în următoarele cazuri:


- cerinţele sunt foarte bine cunoscute, clare şi fixe;
- definirea produsului este stabilă;
- tehnologia este înţeleasă;
- nu există cerinţe ambigue;
- resursele care necesită expertiză sunt disponibile gratis;
- proiectul este scurt.

1.2.2. Modelul V
Modelul V înseamnă modelul de Verificare şi Validare. Este considerat o extensie a modelului cascadă.
La fel ca modelul cascadă, ciclul de viaţă este o cale secvenţială de executare a proceselor. Fiecare fază
trebuie să fie finalizată înainte de a începe faza următoare. Testarea produsului este planificată în paralel
cu fază de dezvoltare corespunzătoare.

Pagina 7 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Figura 3. Diagrama modelului V

Figura 3. Diagrama modelului V

Avantaje ale modelului V:


- simplu şi uşor de utilizat;
- testarea activităţii (cum ar fi planificarea) - proiectarea testării se realizează înainte de codificare,
salvând timp şi crescând rata de succes faţă de modelul cascadă;
- are loc o urmărire proactivă a defectelor - defectele sunt găsite în stadiu incipient;

Pagina 8 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

- evită fluxul descendent de defecte;


- funcţionează bine pentru proiecte mici, în cazul în care cerinţele sunt uşor de înţeles;
- este uşor de coordonat, datorită rigidităţii modelului - fiecare etapă are un rezultat așteptat şi un
proces de evaluare.

Dezavantaje ale modelului V:


- este rigid şi puţin flexibil;
- software-ul este dezvoltat în etapa de implementare, prin urmare nu sunt realizate prototipuri ale
software-ului;
- dacă apar modificări pe parcurs, atunci documentele de testare, împreună cu documentele de
cerinţe trebuie să fie actualizate;
- există risc ridicat şi incertitudine;
- nu este un model bun pentru proiecte complexe şi orientate-obiect;
- este un model slab pentru proiecte lungi şi în curs de desfăşurare;
- nu este potrivit pentru proiecte în care cerinţele prezintă risc de schimbare moderat până la ridicat;
- odată ce aplicaţia este în faza de testare, întoarcerea şi schimbarea funcţionalităţii este dificilă.

Modelul se recomandă să se utilizeze în următoarele cazuri:


- pentru proiecte de dimensiuni mici până la medii şi în care cerinţele sunt clar definite şi fixe;
- atunci când resursele tehnice ample sunt disponibile împreună cu expertiza tehnică necesară.

1.2.3. Modelul incremental


În modelul incremental cerinţele sunt împărţite în subseturi de cerinţe. Modelul presupune cicluri
multiple de dezvoltare, ceea ce face ciclul de viaţă să arate ca un ciclu "multi-cascadă". Ciclurile sunt
apoi divizate în altele mai mici, practic module gestionate mai uşor. Fiecare modul trece prin etapele de:
cerinţe, proiectare, implementare şi testare. În timpul primului modul este realizată o versiune de lucru a
software-ului. Fiecare versiune ulterioară a modulului adaugă funcţionalitate la versiunea precedentă.
Procesul continuă până la realizarea completă a sistemului.

Pagina 9 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Figura 4. Diagrama modelului incremental

Avantaje ale modelului incremental:


- în fiecare etapă este livrat un produs executabil, care satisface o parte din cerinţele utilizatorului;
- prototipurile sunt livrate utilizatorului;
- feedback-ul utilizatorilor este distribuit pe întreg parcursul dezvoltării;
- este mai flexibil – implică costuri mai mici la schimbarea scopului şi cerinţelor;
- este uşor de testat şi depanat în timpul unei iteraţii mai mici;
- reduce costurile iniţiale de livrare;
- riscul este mai uşor de gestionat, deoarece piesele riscante sunt identificate şi tratate în timpul
iteraţiei;
- în cazul apariţiei unor schimbări în cerinţe, acestea pot fi încorporate în următorul prototip.

Dezavantaje ale modelului incremental:


- necesită o bună planificare şi proiectare;
- necesită o definire clară şi completă a întregului sistem înainte ca acesta să fie divizat şi construit
incremental;
- costul total este mai mare decât la modelul cascadă;
- erorile de proiectare sunt mai greu de eliminat;
- abordarea incrementală se poate transforma uşor într-una „codifică şi repară”;
- clientul vede ce se poate face şi poate cere mai mult;
- abordarea obiect furnizează un cadru confortabil pentru dezvoltarea prin evoluţie, într-o manieră
iterativă.

Pagina 10 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Modelul se recomandă să se utilizeze atunci când:


- cerinţele întregului sistem sunt clar definite şi înţelese;
- cerinţele majore sunt definite; cu toate acestea, unele detalii pot evolua în timp;
- este necesară o lansare mai devreme a produsului pe piaţă;
- se utilizează o noua tehnologie;
- există unele caracteristici şi obiective cu risc ridicat.

1.2.4. Modelul RAD


Modelul RAD (Rapid Application Development) este un tip de model incremental. În modelul RAD
componentele sau funcţiile sunt dezvoltate în paralel ca şi cum acestea ar fi mini-proiecte. Dezvoltările
sunt depozitate, livrate şi apoi asamblate într-un prototip de lucru. Clientul vede şi utilizează prototipul
şi oferă feedback cu privire la livrare şi cerinţele lor.

Figura 5. Diagrama modelului RAD

Pagina 11 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Figura 5. Diagrama modelului RAD

Avantaje ale modelului RAD:


- timp de dezvoltare redus;
- creşte reutilizarea componentelor;
- apar evaluări iniţiale rapide;
- încurajează feedback-ul clientului;
- integrarea timpurie rezolvă multe probleme de integrare;
- progresul poate fi măsurat;
- timpul de iterare poate fi scurtat, cu utilizarea de instrumente RAD puternice;
- se poate obţine productivitate cu mai puţini oameni şi în timp scurt.

Dezavantaje ale modelului RAD:


- depinde de o echipă puternică şi de performanţele individuale necesare pentru identificarea
cerinţelor de afacere;
- numai sistemele care pot fi modularizate pot fi construite folosind RAD;
- necesită dezvoltatori/proiectanţi de înaltă calificare;
- există o dependenţă mare de abilităţile de modelare;
- este inaplicabil proiectelor mai ieftine, deoarece costul de modelare şi generarea automată de cod
este foarte mare;

Pagina 12 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

- necesită implicarea utilizatorului în cadrul ciclului de viaţă.

Modelul se recomandă să se utilizeze atunci când:


- este necesară crearea unui sistem modularizat în 2-3 luni;
- există o disponibilitate mare de proiectanţi pentru modelare şi bugetul este suficient de mare
pentru a permite costul lor, împreună cu costul instrumentelor de generare automată a codului;
- resursele cu un nivel ridicat de cunoştinţe de afaceri sunt disponibile şi sistemul trebuie realizat
într-un interval scurt de timp (2-3 luni).

1.2.5. Modelul agil


Modelul de dezvoltare agilă este un tip de model incremental. Software-ul este dezvoltat în cicluri
rapide, incrementale. Acest procedeu duce la mici versiuni incrementale, care sunt dezvoltate pe
funcţionalităţile anterioare. Fiecare versiune este testată pentru a asigura calitatea software-ului. Modelul
este utilizat pentru aplicaţiile care trebuie dezvoltate într-un timp critic. Extreme Programming (XP) este
în prezent unul din cele mai bine cunoscute metode de dezvoltare agilă.

Figura 6. Diagrama modelului agil

Pagina 13 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Figura 6. Diagrama modelului agil (http://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm)

Avantaje ale modelului agil:


- obţinerea satisfacţiei clienţilor prin livrarea rapidă şi continuă a software-ului;
- oamenii şi interacţiunile sunt mai accentuate în cadrul modelului decât procesele şi instrumentele -
clienţii, dezvoltatorii şi testării interacționează constant;
- versiuni de lucru sunt livrate frecvent (mai degrabă săptămâni decât luni);
- conversaţia faţă-în-faţă este cea mai bună formă de comunicare;
- cooperare strânsă, de zi cu zi între oamenii de afaceri şi dezvoltatorii produsului;
- atenţie continuă către excelenţă tehnică şi proiectare bună;
- adaptare regulată la circumstanţele de schimbare;
- chiar şi schimbările târzii în cerinţe sunt binevenite;
- este o abordare realistă pentru dezvoltarea de software;
- promovează munca în echipă;
- poate fi dezvoltat rapid;

Pagina 14 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

- necesarul de resurse este minim;


- oferă versiuni de lucru parţiale anticipate;
- este un model bun pentru mediile care se schimbă în mod constant;
- există reguli minime;
- permite o dezvoltare simultană şi livrare într-un context general planificat;
- este uşor de gestionat;
- oferă flexibilitate pentru dezvoltatori.

Dezavantaje ale modelului agil:


- în cazul unor livrabile software, în special mari, evaluarea efortului necesar pe întreg parcursul
ciclului de dezvoltare software este dificil de realizat;
- nu se pune accent prea mare pe proiectare şi pe documentaţia necesară;
- necesită dezvoltatori cu experienţă;
- nu este potrivit pentru manipularea dependenţelor complexe;
- există risc mai mare la durabilitate, mentenabilitate şi extensibilitate;
- depinde foarte mult de interacţiunea cu clienţii, astfel încât, în cazul în care clientul nu este clar,
echipa poate fi condusă într-o direcţia greşită;
- există dependenţă individuală foarte mare, deoarece există documentaţie minimă generată;
- transferul de tehnologie către noi membri ai echipei poate fi destul de dificil din cauza lipsei de
documentaţie.

Modelul se recomandă să se utilizeze atunci când:


- sunt necesare noi modificări care trebuie implementate – noile schimbări implică costuri mici,
datorită frecvenţei versiunilor noi care sunt produse;
- există o planificare foarte limitată pentru a începe proiectul - spre deosebire de modelul cascadă,
modelul agil necesită o planificare minimă;
- atât dezvoltatorii sistemului cât şi părţile interesate au mai multă libertate şi opţiuni decât dacă
produsul software ar fi fost dezvoltat după un model secvenţial rigid.

1.2.6. Modelul iterativ


Un model de ciclu de viaţă iterativ nu începe cu o specificare completă a cerinţelor. În schimb,
dezvoltarea începe prin specificarea şi implementarea doar a unei parţi a software-ului, care poate fi apoi

Pagina 15 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

revizuită în scopul identificării unor cerinţe suplimentare. Acest proces se repetă, producând o nouă
versiune a software-ului pentru fiecare ciclu al modelului.

Figura 7. Diagrama modelului iterativ

Figura 7. Diagrama modelului iterativ


(http://www.tutorialspoint.com/sdlc/sdlc_iterative_model.htm)

Avantaje ale modelului iterativ:


- dezvoltarea şi îmbunătăţirea produsului pas cu pas permite urmărirea defectelor în stadii incipiente
şi evită fluxul descendent al acestora;
- permite obţinerea feedback-ului utilizatorilor;
- este necesar un timp mai mic pentru documentare şi este acordat un timp mai mare proiectării.

Dezavantaje ale modelului iterativ:


- fiecare fază a iteraţiei este rigidă, fără suprapuneri;

Pagina 16 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

- poate genera o arhitectura a sistemului sau de proiectare costisitoare, deoarece nu toate cerinţele
sunt culese pentru întregul ciclu de viaţă.

Modelul se recomandă să se utilizeze atunci când:


- cerinţele întregului sistem sunt clar definite şi înţelese;
- proiectul este mare;
- cerinţele majore sunt definite; oricum unele detalii pot evolua în timp.

1.2.7. Modelul spirală


Modelul spirală este asemănător cu modelul incremental, dar cu mai mult accent pus pe analiza riscului.
Modelul spirală are patru faze: planificare, analiza riscului, inginerie şi evaluare. Un proiect software
trece în mod repetat prin aceste faze în iteraţii (numite spirale în acest model). Spirala de bază, începe în
faza de planificare, cerinţele sunt colectate şi riscul este evaluat. Fiecare spirală ulterioară este dezvoltată
pe baza spiralei de bază (anterioară). Cerinţele sunt colectate în timpul fazei de planificare. În faza de
analiză a riscului, este realizat un proces pentru identificarea riscului şi a soluţiilor alternative. La
sfârşitul fazei de analiza de risc este realizat un prototip. Software-ul este produs în faza de inginerie.
Etapa de evaluare permite clientului să evalueze rezultatul proiectului înaintea spiralei următoare.

Figura 8. Diagrama modelului spirală

Pagina 17 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

Figura 8. Diagrama modelului spirală


(http://www.tutorialspoint.com/sdlc/sdlc_spiral_model.htm)

Avantaje ale modelului:


- presupune o atitudine pro-activă asupra riscurilor, cu o presupunere explicită a riscurilor şi a
rezolvării lor;
- este foarte flexibil;
- se realizează multe analize de risc, prin urmare este îmbunătăţită evitarea riscului;
- este bun pentru proiecte mari şi cu misiuni critice;
- se realizează un control asupra documentaţiei;
- pot fi adăugate ulterior funcţionalităţi suplimentare;
- software-ul este produs devreme în ciclul de viaţă software.

Dezavantaje ale modelului:


- este aproape imposibil de estimat de la început timpul şi costurile necesare;
- poate fi un model costisitor;

Pagina 18 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

- analiza de risc necesită expertiză ştiinţifică superioară;


- succesul proiectului depinde foarte mult de faza de analiză de risc;
- nu funcţionează bine pentru proiecte mai mici.

Modelul se recomandă să se utilizeze atunci când:


- evaluarea riscurilor şi costurilor este importantă;
- proiectele sunt cu risc mediu spre ridicat;
- utilizatorii nu sunt siguri de necesităţile lor;
- cerinţele sunt complexe;
- sunt realizate linii de produse noi;
- se aşteaptă schimbări semnificative (cercetare şi explorare).

2. MODELE SDLC AGILE VS. TRADITIONALE

Metodele agile se bazează pe metodele de dezvoltare software adaptive, în timp ce modelele tradiționale
SDLC (expl. modelul cascadă) se bazează pe o abordare predictivă.
Echipele în modelele tradiţionale SDLC, lucrează de obicei cu o planificare detaliată şi au o evidenţă
completă a sarcinilor şi caracteristicilor care trebuie livrate în următoarele câteva luni sau în timpul
ciclului de viaţă al produsului. Metodelor predictive depind în totalitate de analiza cerinţelor şi de
planificarea realizată la începutul ciclului. Orice modificări care vor fi încorporate vor trece printr-un
management strict de control al schimbării şi prin prioritizare.
Modelul agil utilizează abordarea adaptivă în cazul în care nu există o planificare detaliată şi există
claritate cu privire la sarcinile viitoare doar în ceea ce priveşte caracteristicile care trebuie să fie
dezvoltate. Echipa se adaptează la schimbările dinamice ale cerinţelor produsului. Produsul este testat
foarte frecvent, minimizând riscul unor defecţiuni majore în viitor. Interacţiunea cu clienţii este punctul
forte al metodologiei agile, iar comunicarea deschisă şi documentaţia minimă sunt caracteristicile tipice
ale mediului de dezvoltare agilă. Echipele lucrează în strânsă colaborare şi sunt de cele mai multe ori
localizate în acelaşi spaţiu geografic.
În timp ce SDLC agil este mult mai potrivit pentru dezvoltarea de proiecte mici-mijlocii, la proiecte la
scară largă este încă mai bine să se adopte SDLC tradiţional. Prin urmare, este important ca echipa de
dezvoltare să selecteze un SDLC care se potriveşte cel mai bine proiectului. Există unele criterii pe care
echipa de dezvoltare le-ar putea folosi pentru a identifica SDLC-ul dorit. Acestea includ:
- mărimea echipei;
- poziţia geografică;

Pagina 19 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

- dimensiunea şi complexitatea software-ului;


- tipul de proiect;
- strategia de afacere;
- capacitatea de inginerie ş.a.
De asemenea, este crucial pentru echipă să studieze diferenţele, avantajele şi dezavantajele fiecărui
SDLC înainte de a lua o decizie. În plus, echipa trebuie să studieze contextul de afaceri, cerinţele
industriei şi strategia de afaceri pentru a putea evalua SDLC-urile candidate pe baza criteriilor de
selecţie. Un proces de selecţie şi de adoptare SDLC este extrem de important deoarece acesta asigură
organizaţiei maximizarea şansei de a oferi software-ul cu succes. Prin urmare selectarea şi adoptarea
unui SDLC corespunzător este o decizie de management cu implicații pe termen lung.
Diagrama de mai jos prezintă diferenţele dintre procesele de dezvoltare tradiţională şi agilă.
Dezvoltarea agilă oferă o valoare crescută a afacerii, vizibilitate şi adaptabilitate mult mai devreme în
ciclul de viaţă, reducând semnificativ riscul proiectului6.

Figura 9. Dezvoltare agilă vs. tradiţională

Pagina 20 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

3. CONCLUZII

În concluzie putem spune ca fiecare model de ciclu de viață prezentat nu este nici mai bun, nici
mai prost decât altul doar se adresează unor tipuri de produse diferite.
Modelul în cascadă dă rezultate acceptabile numai în cazul în care este efectiv posibilă înlănţuirea
fazelor fără prea multe probleme. Se presupune că totalitatea cerinţelor să fie cunoscută în totalitate şi
problema să fie înteleasă în deplin de analişti. Trebuie de altfel ca soluţia finală să fie uşor de găsit de
proiectanţi şi implementarea să fie simplă - redusă la generarea automată a codului plecând de la
documentele de proiectare.
Modelul în V este util a fii folosit în proiecte micuțe sau medii în care cerințele sunt foarte clare
și stabile de la început. De asemenea, este de preferat folosirea acestui model când avem la dispoziție
resurse tehnice destul de avansate.
Modelul incremental poate fii folosit atunci când cerințele întregului model sunt complete foarte
bine definite și clar înțelese. Caracteristicile principale trebuiesc să fie foarte bine stabilite, alte detalii
mai pot fii schimbate în timp. Se folosesc atunci când există o cerere de livrare a produsului într-un timp
limitat.
Modelul de agile programming este folosit când este nevoie de implementarea unor modificări
noi. Oferă o libertate foarte mare schimbărilor. Aceste schimbări sunt introduse cu un preț foarte mic
datorită rapidității cu care sunt livrate noi variante de produs. Pentru a implementa o nouă
funcționalitate, programtorii pierd numai munca pe câteva zile sau chiar cateva ore.
Modelul spirala este indicat a fii folost atunci când pentru un proiect, riscurile și costurile sunt
foarte importante. Se folosește numai pentru proiecte mari. Se recomandă atunci când clienții nu sunt
foarte siguri de ceea ce își doresc de la produsul final. Indicat atunci când cerințele sunt complexe, când
produsul este nou și pentru modificări mari.

Pagina 21 din 22
Tema: Ciclul de viață al modelelor de dezvoltare software --- Disciplina: Testarea și asigurarea calității

BIBLIOGRAFIE
1. http://www.techopedia.com/definition/22193/software-development-life-cycle-sdlc
2
http://www.tutorialspoint.com/sdlc/sdlc_overview.htm
3
http://istqbexamcertification.com/what-are-the-software-development-models/
4
http://www.slideshare.net/J.T.A.JONES/software-development-life-cycle-model-1392777
5
http://www.tutorialspoint.com/sdlc/sdlc_overview.htm
6
http://www.versionone.com/Agile101/Agile-Software-Development-Benefits/

Pagina 22 din 22

S-ar putea să vă placă și