- Zgodovina
- Ustvarjanje
- Alternativa modelu slapov
- Značilnosti modela spiral
- Nadzor tveganja
- Opis spirale
- Splošno
- Prilagodljiv
- Metamodel
- Obdobja
- Določite cilje, alternative in omejitve
- Ocena tveganj
- Razvoj in testiranje
- Načrtovanje naslednjega cikla
- Primer
- Prednost
- Ciklična zgradba
- Upravljanje s tveganji
- Sodelovanje strank in povratne informacije
- Idealno za velike projekte
- Slabosti
- Draga
- Precej zapleteno
- Upravljanje časa
- Veliko korakov
- Reference
Spiralni model, je arhetip procesa razvoja aplikacij. Temelji na hipotezi, da je razvoj programske opreme iterativni cikel, ki se ponavlja, dokler niso doseženi zastavljeni cilji. Ima sposobnost obvladovanja velikega števila tveganj, ki bi se lahko pojavila pri razvoju katere koli programske opreme.
Je eden najpomembnejših modelov za podporo obvladovanju tveganj. Kot že ime pove, je ta model prikazan v obliki spirale, kjer se različne stopnje modela porazdelijo v različne cikle. Število ciklov v modelu ni določeno in se lahko razlikuje od projekta do projekta.
Analiza, ocena, načrtovanje in razvoj. Vir za razvoj programske opreme Spiralni vir: Beao commons.wikimedia.org
Zgodovina
Ustvarjanje
Spiralni model je opredelil ameriški matematik in profesor programskega inženirstva Barry Boehm. Potem ko je leta 1986 predstavil svoj koncept za razvoj kompleksnih aplikacij, je svoj model leta 1988 objavil v bolj obsežnem okviru v svojem članku "Spiralni model razvoja in izboljšav programske opreme".
Del te publikacije iz leta 1988 je grafično prikazal model spiral, ki na celovit način prikazuje, kako izgleda spiralni postopek razvoja programske opreme in podprt s cikli.
Boehm je znan po številnih prispevkih k programskemu inženiringu, kot so konstruktivni model stroškov (COCOMO), spiralni model programskega procesa, pristop G-teorije (win-win) k določanju in upravljanju zahtev. programske opreme.
Alternativa modelu slapov
V svoji publikaciji je Boehm opisal spiralni model kot možno alternativo že uveljavljenemu modelu slapov, ki je služil tudi kot osnova za njegovo prakso.
Spiralni model ni bil prvi, ki je razpravljal o cikličnem razvoju, vendar je bil prvi model, ki je razložil, zakaj je iteracija pomembna. Kot je bilo prvotno načrtovano, je bil usmerjen v velike zapletene projekte, katerih ponovitve so običajno od 6 mesecev do 2 let.
Ta model ne predvideva, da so naloge za razvoj programske opreme oblikovane linearno, za razliko od modela slapov, temveč jih vidi kot iterativne naloge.
Ta ciklični model je vplival na modelno arhitekturo programske opreme (MBASE) in ekstremno programiranje.
Značilnosti modela spiral
Nadzor tveganja
To, kar ta model močno razlikuje od drugih modelov programskega procesa, je, da izrecno prepozna tveganja. Tako močno zmanjšuje neuspeh velikih programov programske opreme tako, da večkrat oceni tveganja in vsakič preveri izdelek v razvoju.
Ta računalniški model vsebuje komponente skoraj vsakega drugega modela življenjskega cikla programske opreme, kot so model slapov, model prototipiranja, iterativni model, evolucijski model itd.
Zaradi tega je sposoben obvladati skoraj vse vrste tveganj, ki jih drugi modeli na splošno ne obvladajo. Ker pa ima toliko komponent, je ta model veliko bolj zapleten kot drugi modeli za razvoj programske opreme.
Opis spirale
Vsak zavoj spirale predstavlja celoten cikel, skozi katerega vedno prehajajo štirje kvadranti, ki predstavljajo štiri stopnje modela.
Kolikor se velikost spirale povečuje, se tudi napredek doseže. Zato se etape ne izvajajo samo enkrat, ampak večkrat, spiralno.
Čeprav se s cikličnim ponavljanjem projekt počasi približa zastavljenim ciljem, je tveganje, da razvojni proces ne uspe, močno zmanjšano.
Splošno
Štiri stopnje izvajajo le osnovne cilje cikla, vendar jih ni treba manifestirati v vsakem ciklu.
Tudi vrstni red vsakega cikla ni natančno določen. Zato je mogoče model kadarkoli kombinirati z drugimi modeli.
Prilagodljiv
Je precej prilagodljiv, saj ločeno opredeljuje cilje, analizo tveganj, razvoj in načrtovanje načrtov za vsako fazo projekta.
Metamodel
Velja za metamodel, ker vključuje druge modele. Če bi bila spirala na primer en sam cikel, bi predstavljala model slapa, saj vključuje postopni pristop tega klasičnega modela.
Uporablja tudi pristop prototipiranja modelov, saj na začetku vsakega cikla sestavi prototip za upravljanje tveganja.
Poleg tega je združljiv z evolucijskim modelom, saj lahko iteracije spirale štejemo za evolucijske ravni, skozi katere je zgrajen končni sistem.
Obdobja
Določite cilje, alternative in omejitve
Sistemske zahteve so opredeljene čim bolj podrobno, vključno z zmogljivostjo, vmesniki strojne / programske opreme, ključnimi kazalci uspešnosti itd. in kakšni cilji naj bodo povezani s trenutnim razvojnim ciklom.
Poleg tega se preučujejo različne alternative za njegovo izvajanje, kot so gradnja vs. kupiti, ponovno uporabiti obstoječe komponente ali oddajati zunanje vire itd.
Določene so tudi omejitve, kot so stroški, razpored in vmesniki, poraba časa itd.
Ocena tveganj
Ocenjujejo se vse predlagane alternative. Cilji in omejitve služijo kot referenca za izbiro najboljše rešitve.
Poleg tega so opredeljena tveganja, ki lahko ovirajo uspeh projekta, na primer pomanjkanje izkušenj, novih tehnologij, težek časovni razpored, slabi procesi itd., Izvajanje najučinkovitejših strategij z najnižjim tveganjem.
Končno se uporabljajo metode, kot so oblikovanje prototipov, simulacije, analitični modeli in ankete uporabnikov.
Razvoj in testiranje
Ves potreben razvoj se izvaja s pomočjo tehnologije in izbrane rešitve. Z vsako ponovitvijo se ustvari boljša različica aplikacije.
Dejanska koda se napiše in preizkusi večkrat, dokler ne dosežemo želenega rezultata, ki bo nato podlaga za prihodnje razvojne korake.
Načrtovanje naslednjega cikla
Po zaključku enega cikla se začne načrtovanje naslednjega. To načrtovanje bi lahko nadaljevalo s projektom običajno, če bi bil dosežen cilj cikla ob upoštevanju opredelitve naslednjega cilja.
Lahko bi našli tudi druge rešitve, če bi se prejšnja stopnja razvoja izkazala za napačno. Obstoječo strategijo je mogoče nadomestiti z eno od predhodno opredeljenih alternativ ali novo. S tem bi se lotil novega poskusa doseganja zastavljenega cilja.
Primer
Vojska ZDA je sprejela spiralni model za razvoj in nadgradnjo programa za posodobitev sistemov Future Fighting Systems (SCF).
Uradno predstavljeni leta 2003 so bili SCF zasnovani za opremljanje vojakov z vozili, ki so v realnem času povezani v izjemno hitro in prilagodljivo mrežo bojišč.
Projekt je bil razdeljen na štiri razvojne spirale po približno dve leti. Spirala 1 naj bi se začela leta 2008 in dobavila prototipe za uporabo in oceno.
Po dokončanju spirale 1 naj bi se spirala 2 začela leta 2010. Končni razvoj izdelka naj bi bil dobavljen leta 2015.
Avgust 2005 je Boeing napovedal dokončanje prvega pomembnega mejnika, ki je bil funkcionalna prenova sistemov. Med voditelji projekta sta bila Boeing in Science Applications International Corporation.
Vendar pa je za oktober 2005 Pentagon priporočil odložitev projekta zaradi velikega vpliva na stroške iz iraške vojne in pomoči orkana Katrina.
Projekt je bil preklican leta 2009, ko so se pojavila znižanja proračuna, ne da bi v tej misiji lahko dokazali prednosti spiralnega modela
Prednost
Ciklična zgradba
Zaradi tovrstne strukture se težave med oblikovanjem in tehničnimi zahtevami programske opreme tiho odstranijo, zahvaljujoč občasnim preverjanjem.
Upravljanje s tveganji
Tveganja se analizirajo na vsaki stopnji izdelka, preden nadaljujemo. To pomaga premagati ali omiliti potencialna tveganja.
Vsi zaposleni imajo koristi od velikega pomena analize tveganja v tem modelu, ki morda predstavlja njihovo največjo prednost pred drugimi modeli procesov.
Redna ocena tveganja je koristna pri uporabi novih tehničnih okolij, ki so na splošno povezana s posebnim potencialom tveganja zaradi odsotnosti empiričnih vrednosti.
Sodelovanje strank in povratne informacije
Kupci so vključeni v vsako fazo projekta, dokler projekt ni končan. Zato je mogoče zbrati različne povratne informacije za izboljšanje naslednje različice projekta.
Povratne informacije lahko kadar koli dobite tudi zaradi vnaprej oblikovanega spirala. Tako lahko stranke in uporabnike že od začetka vključimo v razvojni proces.
Idealno za velike projekte
Posebej je priljubljen in izstopa za velike in zapletene projekte, pri katerih je nadzor nad naročniki in razvijalci prednostna naloga. Imate največji nadzor nad stroški, viri in kakovostjo programske opreme.
Slabosti
Draga
Lahko je precej drago, saj za analizo tveganja zahteva visoko raven strokovnega znanja. Poleg tega si projekti vzamejo veliko časa, kar lahko poveča režijske stroške.
Precej zapleteno
Potrebno je zelo aktivno in zapleteno predhodno vodenje projekta, kjer je vsak cikel nenehno in skrbno nadzorovan in dokumentiran.
Je sorazmerno bolj zapleten kot drugi modeli, saj obstaja veliko ciklov, od katerih vsak poteka v različnih fazah, s čimer se poveča napor dokumentacijskega postopka.
Ključnega pomena je poznavanje analize in obvladovanja tveganj, ki pogosto ni na voljo.
Upravljanje časa
Časa je težko obvladati, saj število ciklov ni znano. Poleg tega se lahko razvojni postopek kadarkoli zavleče, če je treba sprejeti pomembne odločitve v enem ciklu ali z dodatnimi ukrepi pri načrtovanju naslednjega cikla.
Veliko korakov
Narediti veliko korakov pri razvoju programske opreme ni vedno naklonjen, saj lahko kljub vsestranskosti testiranja nedokončani deli programa dosežejo končni sistem.
Posledično vedno obstaja nevarnost, da bo vsaka konceptualna napaka ali neskladnost vplivala na končni izdelek.
Reference
- Victor Font Jr (2019). Spiralni model. Vrhunski priročnik za SDLC. Vzeto iz: ultimatesdlc.com.
- Ionos (2019). Spiralni model: model procesa razvoja programske opreme, ki temelji na tveganju. Vzeto iz: ionos.com.
- Techuz (2018). Kaj je spiralni model? Preprosta razlaga življenjskega cikla razvoja programske opreme Spiral (programska oprema). Vzeto iz: techuz.com.
- Preizkušanje na enem mestu (2020). Spiralni model. Vzeto iz: onestoptesting.com.
- Geeks za Geeks (2020). Programska oprema - spiralni model. Izvedeno iz: geeksforgeeks.org.
- Chandu (2019). Spiralni model v programski tehniki. Vzeto s: medium.com.