Faze SDLC [explicate]: Cum să creați un software grozav în 2021
Publicat: 2019-10-02Cuprins
Înțelegerea procesului SDLC
Structura procesului de dezvoltare software
Modele SDLC
Învelire
Industria dezvoltării de software este în plină expansiune. Producem cantități masive de cod în fiecare an.
La baza industriei se află ciclul de viață al dezvoltării software (SDLC) - procesul care ghidează echipele de software cum să își structureze și să își planifice munca.
Deci, să mergem într-o călătorie prin terenul perfid al dezvoltării de software.
Vom analiza ce este de fapt SDLC și vom urmări evoluția acestuia. Vom vedea care sunt principalele modele utilizate de industrie.
Vom descoperi fazele SDLC, prin care trece o bucată de software înainte de a vedea lumina zilei - și actorii cheie din fiecare.
În cele din urmă, vă vom oferi o imagine de ansamblu asupra întregului proces.
Înțelegerea procesului SDLC
Construirea de software este un proces. Ca atare, are nevoie de un scop bine definit, mijloace pentru realizarea acestuia și modalități de măsurare, menținere și îmbunătățire a rezultatelor. Diferitele abordări ale dezvoltării software oferă toate acestea. Cu toate acestea, nu sunt toți tăiați din aceeași pânză. În funcție de circumstanțele dvs., poate fi necesar să optați pentru abordări extrem de diferite.
Acest lucru depinde de multe variabile, cum ar fi:
- industrie
- mărimea organizației
- echipă și proiect
- interval de timp estimat
- și bugetul alocat.
Ceea ce este comun este că fiecare componentă software urmează un anumit flux de proces SDLC .
Acest cadru prezintă etapele necesare până la finalizare, resursele necesare și sarcinile care trebuie îndeplinite pe parcurs.
Procesul de SDLC este în cele din urmă un program bine structurat a ceea ce trebuie realizat. Acesta decide cea mai bună abordare de dezvoltare software în limita estimată a timpului și a costurilor.
SDLC este adesea considerat un subset al termenului mai larg „ciclul de viață al dezvoltării sistemelor” - cel mai vechi cadru pentru dezvoltarea sistemelor informaționale.
A apărut la începutul anilor 1960 ca răspuns la necesitatea sistemelor de afaceri, capabile să proceseze cantități mari de date. Primul cadru SDLC bine documentat este paradigma de programare structurată din 1969.
O varietate de metodologii de dezvoltare software au apărut în anii '90. Unele dintre ele sunt programarea orientată pe obiecte, Scrum și procesul rațional unificat. Procesul agil unificat a apărut în 2005.
Structura procesului de dezvoltare software
Dezvoltarea unui produs software este o succesiune de etape bine coordonate. În funcție de abordarea de dezvoltare selectată, numărul etapelor SDLC poate varia.
Vom revizui aromele în 5 etape și 7 etape ale SDLC.
Versiunea în 5 etape
Versiunea în 5 etape a procesului de dezvoltare software este următoarea:
Cerințe și analiză
Aceasta este o fază crucială în care interacțiunea cu clientul și părțile interesate este esențială. Ei trebuie să determine rezultatul scontat, adică scopul produsului software. Pe lângă cerințele clienților, există tot felul de alți factori de luat în considerare. Acestea includ:
- Arhitectural
- Funcţional
- Funcțional
- Performanţă
- Și cele legate de design
Pentru a finaliza cu succes această etapă, este dezvoltat un document numit „specificația cerințelor software”. Este fundamentul a tot ceea ce va avea loc din acest moment.
Succesul unui proiect de dezvoltare depinde în mare măsură de analiza cerințelor. Interpretul cheie în această etapă este Business Analyst (BA). El gestionează toate comunicările pentru a aduna cerințele afacerii, pentru a efectua o analiză amănunțită și cel mai important - pentru a traduce aceste informații între părțile interesate și dezvoltatori.
Proiecta
Proiectarea software-ului se bazează pe cerințele stabilite. Aici ne dăm seama de mediul de dezvoltare, limbajele de programare, cadrul arhitectural, hardware etc. Este, de asemenea, momentul să stabilim strategia de testare care va fi utilizată. Rolul arhitectului de sistem este esențial aici. Aceștia trebuie să ia în considerare toate cerințele preliminare din documentul „specificații cerințe” și să furnizeze o hârtie de proiectare pentru a fi utilizată la pasul următor.
Faza de codificare
Până acum, dezvoltatorii sunt deja foarte conștienți de specificațiile de proiectare. Lucrarea se împarte în module și începe codarea. Clientul ar trebui, de asemenea, să fie implicat în această etapă. Se asigură că sunt luate toate măsurile pentru ca produsul să își îndeplinească așteptările. Producerea unui software de lucru este rezultatul final în această etapă.
Testarea
Acum că avem un produs funcțional, poate începe faza de testare. În funcție de strategia de testare prezentată în documentul cu specificațiile de proiectare, acest lucru se poate întâmpla într-o varietate de moduri.
Cu toate acestea, obiectivele rămân aceleași. În primul rând, verificați dacă toate cerințele inițiale sunt îndeplinite și, în al doilea rând, determinați dacă există erori în cod. Testerii sunt cei mai performanți aici. Rezultatul eforturilor lor este un software complet funcțional, gata de lansare.
întreținere
Nu există un produs software perfect. De aceea, serviciul pentru clienți joacă un rol imens în procesul de dezvoltare. Odată livrate către clientul final, apar probleme în timp real și trebuie reparate. Întreținerea continuă este o necesitate dacă doriți să aveți clienți mulțumiți.
Versiunea în 7 etape
Acum, aroma în 7 etape a acestui proces este puțin diferită. Are câteva etape suplimentare, care schimbă inevitabil și natura celorlalți. Hai să aruncăm o privire:
Planificare
O altă modalitate de a începe Procesul SDLC este cu o fază de planificare. Acesta precede colectarea cerințelor și caută în principal feedback. Contribuția părților interesate, a partenerilor de afaceri, a inginerilor și a clienților finali modelează domeniul de aplicare al proiectului. Această fază răspunde la întrebări precum:
- Ce trebuie făcut?
- Ce resurse sunt necesare?
- Cât timp ar dura?
- Cat va costa?
Cerințe și analiză
Aici, analiștii de afaceri compilează o listă de cerințe, pe baza feedback-ului de la client. Apoi, acestea le transmit inginerilor software. Comunicarea este esențială.
Această fază ar trebui să producă un document care să prezinte toate cerințele - și să servească drept bază pentru următoarea fază.
Proiectare sisteme
Cerințele software se află acum în arhitectura sistemului. În acest moment putem determina mijloacele funcționale și operațiunile de care avem nevoie pentru a livra proiectul. Odată pregătit, planul de proiectare este prezentat companiei. Încorporăm toate feedback-urile înainte de începerea programării reale.
Dezvoltare de software
Odată ce cerințele sunt clare, inginerii software pot începe să lucreze. Scopul în această etapă este un program de lucru, care este gata pentru testare. Acesta este și începutul producției în procesul SDLC .
Testarea
Rolul echipei de asigurare a calității este de a afla dacă au fost îndeplinite cerințele inițiale de afaceri. Inspectează calitatea codului software. Bug-urile se remediază. Există o listă întreagă de metode de testare a software-ului pe care trebuie să le parcurgeți: funcțional, integrare, testarea performanței și așa mai departe.
Testarea automatizării este o modalitate de automatizare a procesului de executare a testelor repetitive prin utilizarea de software extern, cum ar fi Bamboo și Jenkins.
Implementare
Odată ce codul a trecut de faza de testare, acesta este gata să fie implementat în mediul de producție. În funcție de politica companiei, acest proces poate necesita aprobare; cu toate acestea, în majoritatea cazurilor este un pas automat în ciclul de viață al dezvoltării software - ului .
Întreținere și operațiuni
Odată ce software-ul este lansat în producție, pot apărea tot felul de probleme. Prin monitorizare, aceștia se pot identifica și rezolva. Noile funcții își pot găsi și ele drumul în produs. Aceasta este faza în care performanța poate fi măsurată și îmbunătățită.
Modele SDLC
Procesul de dezvoltare a unui software este în mare parte universal. Există spațiu pentru a adăuga mai multe etape sau pentru a simplifica cele existente - dar este în mare parte același lucru.
Acest lucru nu este valabil atunci când ne uităm la metodele de dezvoltare . Deși toți observă procesul, o fac în moduri diferite.
Pentru a alege cel mai potrivit, există mai mulți factori cheie de luat în considerare. Este întotdeauna un echilibru între nevoile clientului și detaliile practice ale dezvoltării software-ului. Există factori, cum ar fi:
- complexitatea proiectului
- tehnologia selectată
- și dimensiunea echipei.
Toate acestea determină ce abordare poate funcționa cel mai bine. Vom face o prezentare generală a celor mai cunoscute și utilizate metodologii SDLC .
Cascadă
Modelul cascadei este un proces liniar de proiectare secvențială. Este cea mai veche metodologie cunoscută utilizată în ingineria software. Acesta își are originea în industria prelucrătoare și în construcții în anii 1970.
Progresul unui proiect de dezvoltare care urmează modelul cascadei merge strict pe conducta SDLC. O progresie este posibilă numai atunci când faza anterioară a SDLC a fost finalizată cu succes. Nu există un proces definit pentru a merge înapoi.
Cascada SDLC este o abordare foarte structurată. Funcționează bine atunci când:
- cerințele și activitățile sunt bine definite și înțelese
- tehnologia este fiabilă
- echipa de asistență este disponibilă și estimați un proiect pe termen scurt
Dezavantajul metodei este legat de lipsa sa de flexibilitate. Nu puteți implementa cerințe nou apărute pe parcurs. Deoarece nu există produse tangibile produse până târziu în procesul de dezvoltare, riscul și incertitudinea sunt ridicate. S-ar putea dovedi a fi o abordare foarte costisitoare, în cazul în care decideți să modificați cerințele sau domeniul de aplicare al proiectului din mers.
Iterativă
Această metodă se bazează pe noțiunea că software-ul poate fi construit printr-o succesiune de cicluri repetitive. Începe cu un set simplu de cerințe. La fiecare rundă, inginerii învață din comportamentul versiunilor anterioare ale software-ului și pot îmbunătăți funcționalitatea acestuia.
Cel mai mare avantaj al acestei abordări este că un prototip funcțional al software-ului este produs după finalizarea fiecărui ciclu. Acest lucru facilitează implementarea modificărilor, identificarea riscurilor. Testarea SDLC este relativ mai ușor atunci când se realizează la fiecare iterație.
Dezavantajele modelului iterativ de dezvoltare software se reduc la resurse și costuri. Creșterea numărului de iterații consumă mai multe resurse. Termenul de finalizare a proiectului este nedeterminat, la fel și riscul. Prin urmare, pentru ca această metodă să funcționeze, are nevoie de experți cu înaltă calificare care să efectueze analiza riscurilor.
Metodologia nu este potrivită pentru proiecte mai mici.
Agil
Abordarea agilă a dezvoltării software este relativ nouă. Totuși, a câștigat rapid popularitate în întreaga lume.
SDLC agil se bazează pe furnizarea de porțiuni mici de lucru de software și care caută feedback imediat de la client. La baza acestei abordări se află colaborarea puternică și comunicarea continuă între echipe. Fiecare ciclu durează aproximativ una până la trei săptămâni, moment în care modulul / caracteristica de lucru este livrat clientului. Procesul se repetă apoi.
Testarea se efectuează la fiecare iterație, ceea ce permite rezolvarea problemelor din timp. Încurajează demonstrarea funcționalității software-ului și obținerea de feedback. Modelul oferă o vizibilitate clară a rezultatelor. Pledează pentru munca în echipă și oferă flexibilitate inginerilor de software.
Întrucât nu există cerințe pentru documentația abundentă, există riscul dependenței de anumite persoane. Aceasta poate fi, de asemenea, o provocare atunci când vine vorba de transferul de cunoștințe către noii membri ai echipei.
A se sprijini
Metodologia de dezvoltare software Lean este considerată o parte a metodei de dezvoltare software Agile. Procesul SDLC ca urmare a metodologiei Lean este format din șapte principii:
- Eliminați deșeurile
- Amplificați învățarea
- Decideți cât mai târziu posibil
- Livrați cât mai repede posibil
- Împuternicește echipa
- Construiți integritatea
- Vedeți imaginea de ansamblu
Cheia înțelegerii acestui model este prin aceste principii. Acest lucru ar duce la transformarea acestora în practici agile funcționale și implementarea lor în procesul de lucru.
Principiile slabe sunt organizate în jurul ideii de a produce cât mai multă valoare adăugată posibil pentru utilizatorii finali - optimizând în același timp calitatea, viteza, costurile și așteptările afacerii. În acest scop, unele sarcini sunt eliminate (documentare grea) și altele optimizate (frecvența întâlnirilor).
DevOps
Modelul DevOps se bazează parțial atât pe Agile, cât și pe Lean . Este o abordare nou apărută, care se leagă de o strânsă colaborare între dezvoltarea software-ului și echipele de operațiuni pe parcursul întregului ciclu de viață al dezvoltării.
Aspectul cheie al acestei metodologii este accentul pus pe automatizarea procesului de dezvoltare. Scopul final este de a scurta SDLC și, în același timp, de a oferi rezultate inovatoare de înaltă calitate, aliniate la cerințele afacerii.
Cu această abordare, dezvoltatorii, echipele de operațiuni și membrii de asigurare a calității se află pe aceeași pagină. Folosesc aceleași instrumente și urmează aceleași procese. Acest lucru îmbunătățește comunicarea și duce la rezultate mai bune și mai oportune.
Spirală
Aceasta este o combinație de dezvoltare iterativă și unele dintre noțiunile modelului cascadei. Permite lansarea parțială a software-ului la fiecare ciclu iterativ.
Cele patru etape și repetițiile sunt numite „spirale”. Fazele SDLC sunt: planificarea și colectarea cerințelor; proiecta; dezvoltare și testare.
Analiza riscurilor are un rol cheie. La fiecare spirală, se efectuează o analiză a riscurilor, astfel încât orice riscuri potențiale să poată fi identificate, evitate sau depășite. Este potrivit pentru proiecte mari, deși managementul și procesul în sine pot fi complexe.
Învelire
Alegerea abordării corecte a dezvoltării software necesită cercetări semnificative. Definind domeniul de aplicare, cerințele și obiectivul proiectului dvs., puteți determina fazele SDLC pe care ar trebui să le urmeze produsul dvs.
Metodologia dvs. la alegere nu este doar un proces pentru dezvoltarea unui produs funcțional. Este un mod de a alinia valorile organizației și echipelor dvs. pentru a crea un mediu de lucru armonios.
FAQ
În funcție de metodologia pe care o alegeți, software-ul dvs. va trece printr-un număr diferit de etape. Următoarele activități ar trebui să facă parte din aceasta în ambele sensuri:
- Planificarea, colectarea cerințelor și analiza
- De acord asupra unui design sau a unei arhitecturi de sistem
- Generarea codului
- Testarea codului produs
- Implementarea codului într-un mediu de producție
- Întreținere și îmbunătățire continuă
Rinduire; Cerințe și analiză; Proiecta; Dezvoltare; Testare; Implementare; Întreținere.
Asta depinde de proiectul tău! Analiza dvs. a industriei, obiectivul proiectului, capacitățile și resursele disponibile, măsurarea timpului și a costurilor ar fi factorii îndrumători în selectarea celei mai bune metodologii SDLC.