sdlc phases
Ce este ciclul de viață al dezvoltării software-ului (SDLC)? Aflați fazele, metodologiile, procesele și modelele SDLC
Ciclul de viață al dezvoltării software (SDLC) este un cadru care definește pașii implicați în dezvoltarea software-ului în fiecare fază. Acesta acoperă planul detaliat pentru construirea, implementarea și întreținerea software-ului.
SDLC definește ciclul complet de dezvoltare, adică toate sarcinile implicate în planificarea, crearea, testarea și implementarea unui produs software.
Ce veți învăța:
- Dezvoltarea software-ului Procesul ciclului de viață
- Ciclul SDLC
- Faze SDLC
- Modele de ciclu de viață de dezvoltare software
- Concluzie
Dezvoltarea software-ului Procesul ciclului de viață
SDLC este un proces care definește diferitele etape implicate în dezvoltarea de software pentru livrarea unui produs de înaltă calitate. Etapele SDLC acoperă ciclul complet de viață al unui software, adică de la început până la retragerea produsului.
Aderarea la procesul SDLC duce la dezvoltarea software-ului într-un mod sistematic și disciplinat.
Scop:
Scopul SDLC este de a livra un produs de înaltă calitate, conform cerințelor clientului.
SDLC și-a definit fazele ca, colectarea cerințelor, proiectarea, codificarea, testarea și întreținerea. Este important să respectați fazele pentru a furniza produsul într-un mod sistematic.
De exemplu, Trebuie dezvoltat un software și o echipă este împărțită pentru a lucra la o caracteristică a produsului și i se permite să funcționeze așa cum doresc. Unul dintre dezvoltatori decide să proiecteze mai întâi, în timp ce celălalt decide să codeze mai întâi, iar celălalt din partea documentației.
Acest lucru va duce la eșecul proiectului din cauza căruia este necesar să aveți o bună cunoaștere și înțelegere între membrii echipei pentru a livra un produs așteptat.
Ciclul SDLC
Ciclul SDLC reprezintă procesul de dezvoltare a software-ului.
Mai jos este reprezentarea schematică a ciclului SDLC:
Faze SDLC
Mai jos sunt prezentate diferitele faze:
- Colectarea și analiza cerințelor
- Proiecta
- Implementare sau codificare
- Testarea
- Implementare
- întreținere
# 1) Adunarea și analiza cerințelor
În această fază, toate informațiile relevante sunt colectate de la client pentru a dezvolta un produs conform așteptărilor lor. Orice ambiguități trebuie soluționate numai în această fază.
Analistul de afaceri și managerul de proiect au stabilit o întâlnire cu clientul pentru a strânge toate informațiile, cum ar fi ceea ce clientul dorește să construiască, cine va fi utilizatorul final, care este scopul produsului. Înainte de a construi un produs, este foarte important să înțelegeți sau să cunoașteți produsul.
De exemplu, Un client dorește să aibă o aplicație care implică tranzacții cu bani. În acest caz, cerința trebuie să fie clară, cum ar fi ce fel de tranzacții vor fi efectuate, cum se vor face, în ce monedă se vor face etc.
Odată ce colectarea cerințelor este făcută, se face o analiză pentru a verifica fezabilitatea dezvoltării unui produs. În caz de ambiguitate, este stabilit un apel pentru discuții suplimentare.
Odată ce cerința este înțeleasă în mod clar, se creează documentul SRS (Software Requirement Specification). Acest document ar trebui să fie bine înțeles de către dezvoltatori și, de asemenea, ar trebui să fie revizuit de către client pentru referințe viitoare.
# 2) Proiectare
În această fază, cerința adunată în documentul SRS este utilizată ca intrare și derivă arhitectura software utilizată pentru implementarea dezvoltării sistemului.
# 3) Implementare sau codificare
Implementarea / Codificarea începe odată ce dezvoltatorul primește documentul de proiectare. Proiectarea software-ului este tradusă în cod sursă. Toate componentele software-ului sunt implementate în această fază.
ce sunt metadatele în depozitarea datelor
# 4) Testare
Testarea începe după finalizarea codificării și modulele sunt eliberate pentru testare. În această fază, software-ul dezvoltat este testat temeinic și orice defecte găsite sunt atribuite dezvoltatorilor pentru a le remedia.
Retestarea, testarea de regresie se face până la momentul în care software-ul este conform așteptărilor clientului. Testerii trimit documentul SRS pentru a se asigura că software-ul este conform standardului clientului.
# 5) Implementare
Odată ce produsul este testat, acesta este implementat în mediul de producție sau mai întâi UAT (test de acceptare a utilizatorului) se face în funcție de așteptările clienților.
În cazul UAT, se creează o replică a mediului de producție, iar clientul împreună cu dezvoltatorii efectuează testarea. Dacă clientul găsește aplicația așa cum era de așteptat, atunci deconectarea este furnizată de client pentru a intra în direct.
# 6) Întreținere
După desfășurarea unui produs în mediul de producție, întreținerea produsului, adică dacă apare o problemă și trebuie rezolvată sau trebuie făcută orice îmbunătățire, este asigurată de dezvoltatori.
Modele de ciclu de viață de dezvoltare software
Un model al ciclului de viață al software-ului este o reprezentare descriptivă a ciclului de dezvoltare a software-ului. Modelele SDLC ar putea avea o abordare diferită, dar fazele și activitatea de bază rămân aceleași pentru toate modelele.
# 1) Model de cascadă
Model cascadă este primul model utilizat în SDLC. Este, de asemenea, cunoscut sub numele de model secvențial liniar.
În acest model, rezultatul unei faze este intrarea pentru faza următoare. Dezvoltarea fazei următoare începe numai când faza anterioară este finalizată.
- În primul rând, se realizează colectarea și analiza cerințelor. Odată ce cerința este înghețată, atunci numai proiectarea sistemului poate începe. Aici, documentul SRS creat este rezultatul pentru faza de cerințe și acționează ca o intrare pentru proiectarea sistemului.
- În arhitectura și proiectarea software-ului de proiectare a sistemelor, sunt create documente care acționează ca o intrare pentru faza următoare, adică implementare și codificare.
- În faza de implementare, codificarea se face, iar software-ul dezvoltat este elementul de intrare pentru faza următoare, adică testarea.
- În faza de testare, codul dezvoltat este testat temeinic pentru a detecta defectele software-ului. Defectele sunt conectate la instrumentul de urmărire a defectelor și sunt retestate odată remediate. Înregistrarea erorilor, retestarea, testarea de regresie continuă până la momentul în care software-ul este în stare activă.
- În faza de implementare, codul dezvoltat este mutat în producție după ce clientul a dat deconectarea.
- Orice problemă din mediul de producție este rezolvată de dezvoltatorii care intră în întreținere.
Avantajele modelului de cascadă:
- Modelul cascadei este modelul simplu care poate fi ușor de înțeles și este cel în care toate fazele sunt realizate pas cu pas.
- Livrabilele fiecărei faze sunt bine definite și acest lucru nu duce la nicio complexitate și face proiectul ușor de gestionat.
Dezavantaje ale modelului Waterfall:
- Modelul cascadei consumă mult timp și nu poate fi utilizat în proiectele de scurtă durată, deoarece în acest model nu se poate începe o nouă fază până la finalizarea fazei în curs.
- Modelul de cascadă nu poate fi utilizat pentru proiectele care au cerințe incerte sau în care cerința continuă să se schimbe, deoarece acest model se așteaptă ca cerința să fie clară în faza de colectare și analiză a cerințelor în sine și orice modificare în etapele ulterioare ar duce la costuri mai mari, deoarece modificări ar fi necesare în toate fazele.
# 2) Model în formă de V
V- Model este, de asemenea, cunoscut sub numele de model de verificare și validare. În acest model, verificarea și validarea merg mână în mână, adică dezvoltarea și testarea sunt paralele. Modelul V și modelul cascadă sunt aceleași, cu excepția faptului că planificarea și testarea testelor încep într-un stadiu incipient în modelul V.
a) Faza de verificare:
(i) Analiza cerințelor:
În această fază, toate informațiile necesare sunt colectate și analizate. Activitățile de verificare includ revizuirea cerințelor.
(ii) Proiectarea sistemului:
Odată ce cerința este clară, este proiectat un sistem, adică arhitectură, componentele produsului sunt create și documentate într-un document de proiectare.
(iii) Proiectare la nivel înalt:
Proiectarea la nivel înalt definește arhitectura / designul modulelor. Acesta definește funcționalitatea dintre cele două module.
(iv) Proiectare la nivel scăzut:
Proiectarea la nivel scăzut definește arhitectura / designul componentelor individuale.
(v) Codificare:
Dezvoltarea codului se face în această fază.
b) Faza de validare:
(i) Testarea unității:
Testarea unității se efectuează folosind cazurile de testare unitară care sunt proiectate și se realizează în faza de proiectare la nivel scăzut. Testarea unității este efectuată chiar de dezvoltator. Se efectuează pe componente individuale care duc la detectarea timpurie a defectelor.
(ii) Testarea integrării:
Testarea integrării se realizează folosind cazuri de testare a integrării în faza de Proiectare la nivel înalt. Testarea integrării este testarea care se face pe module integrate. Este efectuat de testeri.
(iii) Testarea sistemului:
Testarea sistemului se efectuează în faza Proiectare sistem. În această fază, sistemul complet este testat, adică este testată întreaga funcționalitate a sistemului.
(iv) Testarea acceptării:
Testarea acceptării este asociată cu faza de analiză a cerințelor și se face în mediul clientului.
Avantajele modelului V:
- Este un model simplu și ușor de înțeles.
- Abordarea V-model este bună pentru proiectele mai mici în care cerința este definită și se îngheață în faza incipientă.
- Este un model sistematic și disciplinat care are ca rezultat un produs de înaltă calitate.
Dezavantaje ale modelului V:
- Modelul în formă de V nu este bun pentru proiectele în derulare.
- Modificarea cerinței în etapa ulterioară ar costa prea mult.
# 3) Model de prototip
Modelul prototip este un model în care prototipul este dezvoltat înainte de software-ul propriu-zis.
Modelele prototip au capacități funcționale limitate și performanțe ineficiente în comparație cu software-ul real. Funcțiile fictive sunt folosite pentru a crea prototipuri. Acesta este un mecanism valoros pentru înțelegerea nevoilor clienților.
Prototipurile software sunt construite înainte de software-ul propriu-zis pentru a obține feedback valoros de la client. Feedback-urile sunt implementate, iar prototipul este revizuit din nou de către client pentru orice modificare. Acest proces continuă până când modelul este acceptat de client.
Odată ce colectarea cerințelor este finalizată, se creează proiectarea rapidă și se construiește prototipul care este prezentat clientului pentru evaluare.
Feedback-ul clienților și cerința rafinată sunt utilizate pentru a modifica prototipul și sunt prezentate din nou clientului pentru evaluare. Odată ce clientul aprobă prototipul, acesta este utilizat ca o cerință pentru construirea software-ului propriu-zis. Software-ul propriu-zis este construit folosind abordarea modelului Waterfall.
Avantajele modelului de prototip:
- Modelul prototip reduce costurile și timpul de dezvoltare, deoarece defectele se găsesc mult mai devreme.
- Caracteristica sau funcționalitatea lipsă sau o modificare a cerinței pot fi identificate în faza de evaluare și pot fi implementate în prototipul rafinat.
- Implicarea unui client încă din etapa inițială reduce orice confuzie în cerința sau înțelegerea oricărei funcționalități.
Dezavantaje ale modelului de prototip:
- Deoarece clientul este implicat în fiecare fază, acesta poate modifica cerința produsului final, ceea ce crește complexitatea domeniului de aplicare și poate crește timpul de livrare al produsului.
# 4) Model în spirală
Modelul în spirală include abordare iterativă și prototip.
Fazele modelului spiralat sunt urmate în iterații. Buclele din model reprezintă faza procesului SDLC, adică bucla cea mai interioară este de colectare și analiză a cerințelor care urmează planificarea, analiza riscurilor, dezvoltarea și evaluarea. Următoarea buclă este Proiectare urmată de Implementare și apoi testare.
Modelul în spirală are patru faze:
- Planificare
- Analiza de risc
- Inginerie
- Evaluare
(i) Planificare:
Faza de planificare include colectarea cerințelor în care toate informațiile solicitate sunt colectate de la client și sunt documentate. Documentul cu specificațiile cerințelor software este creat pentru faza următoare.
(ii) Analiza riscurilor:
În această fază, cea mai bună soluție este selectată pentru riscurile implicate și analiza se face prin construirea prototipului.
De exemplu , riscul implicat în accesarea datelor dintr-o bază de date la distanță poate fi ca rata de acces la date să fie prea lentă. Riscul poate fi rezolvat prin construirea unui prototip al subsistemului de acces la date.
(iii) Inginerie:
Odată efectuată analiza riscurilor, se efectuează codarea și testarea.
(iv) Evaluare:
Clientul evaluează sistemul dezvoltat și planifică următoarea iterație.
Avantajele modelului spiralat:
- Analiza riscurilor se face pe scară largă utilizând modelele prototip.
- Orice îmbunătățire sau modificare a funcționalității poate fi făcută în următoarea iterație.
Dezavantaje ale modelului spiralat:
- Modelul în spirală este cel mai potrivit numai pentru proiectele mari.
- Costul poate fi ridicat, deoarece ar putea dura un număr mare de iterații, ceea ce poate duce la timp ridicat pentru a ajunge la produsul final.
# 5) Modelul incremental iterativ
Modelul incremental iterativ împarte produsul în bucăți mici.
De exemplu , Caracteristica care urmează să fie dezvoltată în iterație este decisă și implementată. Fiecare iterație trece prin faze și anume Analiza cerințelor, proiectarea, codificarea și testarea. Planificarea detaliată nu este necesară în iterații.
Odată ce iterația este finalizată, un produs este verificat și este livrat clientului pentru evaluare și feedback. Feedback-ul clientului este implementat în următoarea iterație împreună cu noua funcție adăugată.
Prin urmare, produsul crește în ceea ce privește caracteristicile și odată ce iterațiile sunt finalizate, versiunea finală deține toate caracteristicile produsului.
Faze ale modelului de dezvoltare iterativă și incrementală:
- Faza de început
- Faza de elaborare
- Faza de construcție
- Faza de tranziție
(i) Faza de început:
Faza inițială include cerința și scopul proiectului.
(ii) Faza de elaborare:
În faza de elaborare, arhitectura de lucru a unui produs este livrată, care acoperă riscul identificat în faza inițială și, de asemenea, îndeplinește cerințele nefuncționale.
(iii) Faza de construcție:
În faza de construcție, arhitectura este completată cu codul care este gata de implementare și este creat prin analiza, proiectarea, implementarea și testarea cerinței funcționale.
(iv) Faza de tranziție:
În faza de tranziție, produsul este implementat în mediul de producție.
Avantajele modelului iterativ și incremental:
- Orice modificare a cerinței poate fi realizată cu ușurință și nu ar costa, deoarece există posibilitatea de a încorpora noua cerință în următoarea iterație.
- Riscul este analizat și identificat în iterații.
- Defectele sunt detectate într-un stadiu incipient.
- Deoarece produsul este împărțit în bucăți mai mici, este ușor de gestionat produsul.
Dezavantaje a modelului iterativ și incremental:
- Cerința completă și înțelegerea unui produs sunt necesare pentru a descompune și a construi treptat.
# 6) Modelul Big Bang
Modelul Big Bang nu are niciun proces definit. Banii și eforturile sunt puse împreună, deoarece intrarea și ieșirea vin ca un produs dezvoltat care ar putea fi sau nu același cu ceea ce are nevoie clientul.
Modelul Big Bang nu necesită multă planificare și programare. Dezvoltatorul efectuează analiza și codificarea cerințelor și dezvoltă produsul conform înțelegerii sale. Acest model este utilizat doar pentru proiecte mici. Nu există o echipă de testare și nu se efectuează testări formale, iar acest lucru ar putea fi o cauză a eșecului proiectului.
Avantaje al modelului Big Bang:
- Este un model foarte simplu.
- Este necesară mai puțină planificare și programare.
- Dezvoltatorul are flexibilitatea de a construi propriul software.
Dezavantaje ale modelului Big Bang:
- Modelele Big Bang nu pot fi utilizate pentru proiecte mari, în derulare și complexe.
- Risc ridicat și incertitudine.
# 7) Model agil
Modelul Agile este o combinație a modelului iterativ și incremental. Acest model se concentrează mai mult pe flexibilitate în timp ce dezvoltă un produs, mai degrabă decât pe cerință.
În Agile, un produs este împărțit în mici versiuni incrementale. Nu este dezvoltat ca produs complet dintr-o singură dată. Fiecare construcție crește în ceea ce privește caracteristicile. Următoarea versiune este construită pe funcționalități anterioare.
În iterațiile agile sunt denumite sprinturi. Fiecare sprint durează 2-4 săptămâni. La sfârșitul fiecărui sprint, proprietarul produsului verifică produsul și după aprobarea acestuia, acesta este livrat clientului.
Feedback-ul clienților este luat pentru îmbunătățire, iar sugestiile și îmbunătățirile sale sunt lucrate în următorul sprint. Testarea se face în fiecare sprint pentru a minimiza riscul eventualelor defecțiuni.
Avantajele modelului Agile:
- Permite mai multă flexibilitate pentru a se adapta la schimbări.
- Noua funcție poate fi adăugată cu ușurință.
- Satisfacția clienților, deoarece feedback-ul și sugestiile sunt luate în fiecare etapă.
Dezavantaje:
- Lipsa documentației.
- Agile au nevoie de resurse cu experiență și de înaltă calificare.
- În cazul în care un client nu știe cât de exact vrea să fie produsul, atunci proiectul ar eșua.
Concluzie
Respectarea unui ciclu de viață adecvat este foarte importantă pentru finalizarea cu succes a proiectului. Acest lucru, la rândul său, facilitează gestionarea.
Diferite modele de ciclu de viață de dezvoltare software au propriile lor avantaje și dezavantaje. Cel mai bun model pentru orice proiect poate fi determinat de factori precum Cerință (indiferent dacă este clar sau neclar), Complexitatea sistemului, Dimensiunea proiectului, Costul, Limitarea abilităților etc.
Exemplu, în cazul unei cerințe neclare, modelele Spiral și Agile sunt cel mai bine utilizate, deoarece schimbarea necesară poate fi adaptată cu ușurință în orice etapă.
Modelul cascadă este un model de bază și toate celelalte modele SDLC se bazează numai pe asta.
Sper că ați fi dobândit cunoștințe imense despre SDLC.
Lectură recomandată
- Model în spirală - Ce este modelul în spirală SDLC?
- Ce este modelul de cascadă SDLC?
- Ce este ciclul de viață al testelor software (STLC)?
- Testare software Job asistent QA
- Cele mai bune 10 companii și servicii personalizate de dezvoltare de software în 2021
- Testare practică a software-ului - Nouă carte electronică GRATUITĂ (Descărcare)
- La fața locului - Model offshore de proiecte de testare software (și cum să-l faci să funcționeze pentru tine)
- De ce software-ul are erori?