- Istorie
- Creare
- Alternativă la modelul cascadei
- Caracteristicile modelului în spirală
- Controlul riscurilor
- Descrierea spiralei
- Generic
- Flexibil
- metamodel
- etape
- Determinați obiectivele, alternativele și constrângerile
- Evaluarea riscurilor
- Dezvoltare și testare
- Planificarea ciclului următor
- Exemplu
- Avantaj
- Structura ciclică
- Managementul riscurilor
- Participarea și feedback-ul clienților
- Ideal pentru proiecte mari
- Dezavantaje
- Scump
- Destul de complex
- De gestionare a timpului
- Mulți pași
- Referințe
Modelul spiral este un arhetip al procesului de dezvoltare a aplicației. Se bazează pe ipoteza că dezvoltarea de software este un ciclu iterativ care se repetă până la atingerea obiectivelor stabilite. Are capacitatea de a face față numărului mare de riscuri care pot apărea la dezvoltarea unui software.
Este unul dintre cele mai importante modele de sprijinire a gestionării riscurilor. După cum sugerează și numele său, acest model este prezentat sub formă de spirală, unde diferitele etape ale modelului sunt distribuite în cicluri diferite. Numărul de cicluri din model nu este fix și poate varia de la proiect la proiect.
Analiză, evaluare, planificare și dezvoltare. Sursa spirală de dezvoltare software: Beao commons.wikimedia.org
Istorie
Creare
Modelul spiralului a fost definit de profesorul de matematică și inginer software american Barry Boehm. După ce și-a prezentat conceptul în 1986 pentru dezvoltarea de aplicații complexe, și-a publicat modelul în 1988 într-un cadru mai cuprinzător în articolul său „Un model spiral de dezvoltare și îmbunătățire a software-ului”.
O parte din această publicație din 1988 a reprezentat grafic modelul spiral, arătând într-un mod cuprinzător cum arată procesul de dezvoltare a software-ului într-un mod spiral și susținut de cicluri.
Boehm este cunoscut pentru numeroasele contribuții la ingineria software, precum modelul costurilor constructive (COCOMO), modelul spiral al procesului software, abordarea G-Theory (câștig-câștig) la determinarea și gestionarea cerințelor. a software-ului.
Alternativă la modelul cascadei
În publicația sa, Boehm a descris modelul în spirală ca o posibilă alternativă la modelul de cascadă stabilit anterior, care a servit și ca bază pentru practica sa.
Modelul în spirală nu a fost primul care a discutat despre dezvoltarea ciclică, dar a fost primul model care a explicat de ce iterația este importantă. După cum a fost planificat inițial, a fost vizat proiecte mari și complexe ale căror iterații variază de obicei între 6 luni și 2 ani.
Acest model nu presupune că sarcinile de dezvoltare software sunt concepute liniar, spre deosebire de modelul cascadei, ci le consideră mai degrabă drept sarcini iterative.
Acest model ciclic a influențat Arhitectura Software Inginerie Software (MBASE) și programare extremă.
Caracteristicile modelului în spirală
Controlul riscurilor
Ceea ce diferențiază foarte mult acest model de celelalte modele de procese software este faptul că recunoaște explicit riscurile. Astfel, reduce considerabil eșecul proiectelor software mari, evaluând în mod repetat riscurile și verificând produsul în curs de dezvoltare.
Acest model de computer conține componente din aproape orice alt model al ciclului de viață al software-ului, cum ar fi modelul cascadei, modelul de prototipare, modelul iterativ, modelul evolutiv ș.a.
Din această cauză, este capabil să gestioneze aproape orice tip de risc pe care alte modele în general nu se ocupă. Cu toate acestea, datorită faptului că are atât de multe componente, acest model este mult mai complex decât celelalte modele de dezvoltare software.
Descrierea spiralei
Fiecare viraj al spiralei reprezintă un ciclu complet, prin care trec întotdeauna cei patru cadranți, reprezentând cele patru etape ale modelului.
Pe măsură ce mărimea spiralei crește, la fel se înregistrează progresele înregistrate. Prin urmare, etapele nu sunt executate o singură dată, ci de mai multe ori, în mod spiral.
Deși această repetare ciclică face ca proiectul să se apropie lent de obiectivele stabilite, riscul ca procesul de dezvoltare să eșueze este puternic redus.
Generic
Cele patru etape implementează doar obiectivele de bază ale unui ciclu, dar nu trebuie să se manifeste în fiecare ciclu.
Ordinea fiecărui ciclu nu este strict determinată. Prin urmare, modelul poate fi combinat în orice moment cu alte modele.
Flexibil
Este destul de flexibil, deoarece realizează procesele de definire, analiză a riscurilor, dezvoltare și planificare a obiectivelor separat pentru fiecare fază a proiectului.
metamodel
Este considerat un metamodel deoarece include celelalte modele. De exemplu, dacă spirala ar fi un ciclu unic, ar reprezenta modelul cascadei, deoarece încorporează abordarea treptată a acestui model clasic.
De asemenea, folosește abordarea modelului de prototipare, deoarece la începutul fiecărui ciclu el asamblează un prototip pentru a gestiona riscul.
Mai mult, este compatibil cu modelul evolutiv, deoarece iterațiile spiralei pot fi considerate niveluri evolutive, prin care se construiește sistemul final.
etape
Determinați obiectivele, alternativele și constrângerile
Cerințele de sistem sunt definite în detalii cât mai multe, inclusiv performanță, interfețe hardware / software, indicatori cheie de succes etc. și care sunt obiectivele asociate cu ciclul actual de dezvoltare sunt luate în considerare.
În plus, sunt examinate diferite alternative pentru implementarea sa, cum ar fi build vs. cumpărați, reutilizați componentele existente sau externalizați etc.
De asemenea, sunt determinate restricții precum costul, programul și interfețele, consumul de timp etc.
Evaluarea riscurilor
Toate alternativele propuse sunt evaluate. Obiectivele și constrângerile servesc ca determinare a referințelor pentru a selecta cea mai bună soluție.
În plus, sunt identificate riscuri care pot împiedica succesul proiectului, cum ar fi lipsa de experiență, noile tehnologii, programele strânse, procesele deficitare etc., punerea în aplicare a celor mai profitabile strategii cu cel mai scăzut risc.
În cele din urmă, sunt utilizate metode precum prototipuri, simulări, modele analitice și sondaje ale utilizatorilor.
Dezvoltare și testare
Toată dezvoltarea necesară este realizată, folosind tehnologia și soluția selectată. La fiecare iterație se creează o versiune mai bună a aplicației.
Codul propriu-zis este scris și testat de mai multe ori până la obținerea rezultatului dorit, care va servi drept bază pentru etapele viitoare de dezvoltare.
Planificarea ciclului următor
După finalizarea unui ciclu, începe planificarea pentru următorul. Această planificare ar putea continua cu proiectul în mod normal dacă s-ar atinge obiectivul ciclului, având în vedere definiția următorului obiectiv.
Ar putea fi și găsirea altor soluții, dacă etapa anterioară de dezvoltare s-ar dovedi defectuoasă. Strategia existentă ar putea fi înlocuită cu una dintre alternativele definite anterior sau cu una nouă. Prin aceasta, o nouă încercare de a atinge obiectivul dat ar fi început.
Exemplu
Armata Statelor Unite a adoptat modelul în spirală pentru dezvoltarea și modernizarea programului de modernizare a sistemelor de luptă în viitor (SCF).
Lansate oficial în 2003, SCF-urile au fost preconizate să echipeze trupele cu vehicule conectate în timp real la o rețea extraordinar de rapidă și flexibilă de câmpuri de luptă.
Proiectul a fost împărțit în patru spirale de dezvoltare de aproximativ doi ani fiecare. Spiral 1 a fost programat să înceapă în 2008 și să livreze prototipuri pentru utilizare și evaluare.
După finalizarea spiralei 1, spirală 2 a fost programată să înceapă în 2010. Dezvoltarea produsului final a fost programată să fie livrată în 2015.
În august 2005, Boeing a anunțat finalizarea primei repere majore a proiectului, care a fost revizuirea funcțională a sistemelor. Boeing și Science Applications International Corporation au fost co-liderii proiectului.
Cu toate acestea, pentru octombrie 2005, Pentagonul a recomandat întârzierea proiectului din cauza impactului ridicat asupra costurilor din războiul din Irak și a ajutorului uraganului Katrina.
Proiectul a fost anulat în 2009 după apariția reducerilor bugetare, fără a putea dovedi beneficiile modelului spiral în această misiune
Avantaj
Structura ciclică
Datorită acestui tip de structură, problemele dintre proiectare și cerințele tehnice ale software-ului sunt eliminate tacit, datorită verificărilor periodice.
Managementul riscurilor
Riscurile sunt analizate în fiecare etapă a produsului înainte de a continua. Acest lucru ajută la depășirea sau atenuarea riscurilor potențiale.
Toți angajații beneficiază de importanța deosebită a analizei riscurilor în acest model, reprezentând posibil cel mai mare avantaj al acestora față de alte modele de proces.
Evaluarea regulată a riscurilor este valoroasă atunci când se utilizează medii tehnice noi, care sunt, în general, asociate cu un potențial risc particular datorită absenței valorilor empirice.
Participarea și feedback-ul clienților
Clienții sunt implicați în fiecare etapă a proiectului, până la finalizarea proiectului. Prin urmare, pot fi adunate diferite feedback-uri pentru a îmbunătăți următoarea versiune a proiectului.
De asemenea, feedback-ul poate fi obținut în orice moment datorită avansului în formă de spirală. Astfel, clienții și utilizatorii pot fi integrați de la început în procesul de dezvoltare.
Ideal pentru proiecte mari
Este deosebit de popular și proeminent pentru proiecte mari și complexe, unde controlul bugetar este o prioritate pentru clienți și dezvoltatori. Aveți un control maxim asupra costurilor, resurselor și calității proiectului software.
Dezavantaje
Scump
Poate fi destul de scump, deoarece necesită un nivel ridicat de expertiză pentru analiza riscurilor. În plus, proiectele necesită mult timp pentru a se dezvolta, ceea ce poate crește aerul.
Destul de complex
Este necesară o gestionare prealabilă foarte activă și complexă a proiectului, unde fiecare ciclu este controlat și documentat în mod continuu și atent.
Este relativ mai complex decât alte modele, deoarece există multe cicluri, fiecare traversând diferite etape, crescând astfel efortul procesului de documentare.
Cunoașterea analizei și gestionării riscurilor, care de multe ori nu este disponibilă, este esențială.
De gestionare a timpului
Timpul este greu de gestionat, deoarece numărul de cicluri nu este cunoscut. În plus, procesul de dezvoltare poate fi întârziat în orice moment, dacă deciziile importante trebuie luate într-un ciclu sau prin acțiuni suplimentare atunci când planificați următorul ciclu.
Mulți pași
Făcând mai mulți pași în dezvoltarea de software nu este întotdeauna favorabil, deoarece, în ciuda versatilității testării, părțile neterminate ale programului pot ajunge la sistemul terminat.
În consecință, există întotdeauna pericolul ca orice eroare conceptuală sau inconsecvență să afecteze produsul final.
Referințe
- Victor Font Jr (2019). Modelul spiral. Ghidul final al SDLC. Luat de la: ultimatesdlc.com.
- Ionos (2019). Model spiral: modelul procesului de dezvoltare software bazat pe riscuri. Luat de la: ionos.com.
- Techuz (2018). Ce este modelul spiral? O simplă explicație a ciclului de viață al dezvoltării de software spiral (SDLC). Luat de la: techuz.com.
- Testare unică (2020). Model spiral. Luat de la: onestoptesting.com.
- Geeks for Geeks (2020). Inginerie software - model spiral. Luat de la: geeksforgeeks.org.
- Chandu (2019). Model spiral în inginerie software. Luat de la: medium.com.