- Historia
- Skapande
- Alternativ till vattenfallsmodellen
- Funktioner i spiralmodellen
- Riskkontroll
- Beskrivning av spiralen
- Generisk
- Flexibel
- meta
- Stages
- Bestäm mål, alternativ och begränsningar
- Utvärdering av risker
- Utveckling och testning
- Planera nästa cykel
- Exempel
- Fördel
- Cyklisk struktur
- Riskhantering
- Kundens deltagande och feedback
- Perfekt för stora projekt
- nackdelar
- Dyr
- Ganska komplex
- Tidsplanering
- Många steg
- referenser
Den spiral modell är en arketyp av ansökan utvecklingsprocessen. Det bygger på hypotesen att mjukvaruutveckling är en iterativ cykel som upprepas tills de fastställda målen uppnås. Det har förmågan att hantera det stora antalet risker som kan uppstå vid utveckling av programvara.
Det är en av de viktigaste modellerna för att stödja riskhantering. Som namnet antyder visas denna modell som spiralformad, där modellens olika stadier är fördelade i olika cykler. Antalet cykler i modellen är inte fast och kan variera från projekt till projekt.
Analys, utvärdering, planering och utveckling. Mjukvaruutveckling Spiralkälla: Beao commons.wikimedia.org
Historia
Skapande
Spiralmodellen definierades av den amerikanska professor i matematik och programvaruteknik Barry Boehm. Efter att ha presenterat sitt koncept 1986 för utveckling av komplexa applikationer publicerade han sin modell 1988 i en mer omfattande ram i sin artikel "En spiral modell för mjukvaruutveckling och förbättring".
En del av denna publikation 1988 skildrade grafiskt spiralmodellen och visade på ett omfattande sätt hur mjukvaruutvecklingsprocessen ser ut på ett spiralformat sätt och stöds av cykler.
Boehm är känd för sina många bidrag till mjukvaruteknik, till exempel den konstruktiva kostnadsmodellen (COCOMO), spiralmodellen för mjukvaruprocessen, G-teorin (win-win) strategi för kravbestämning och hantering. av programvaran.
Alternativ till vattenfallsmodellen
I sin publikation beskrev Boehm spiralmodellen som ett möjligt alternativ till den tidigare etablerade vattenfallsmodellen, som också fungerade som grund för hans praxis.
Spiralmodellen var inte den första som diskuterade cyklisk utveckling, men den var den första modellen som förklarade varför iteration är viktig. Som ursprungligen planerat har det riktats mot stora, komplexa projekt vars upprepningar vanligtvis sträcker sig från 6 månader till 2 år.
Denna modell antar inte att mjukvaruutvecklingsuppgifter är utformade linjärt, till skillnad från vattenfallsmodellen, utan ser dem snarare som iterativa uppgifter.
Denna cykliska modell påverkade Model Based Software Engineering Architecture (MBASE) och extrem programmering.
Funktioner i spiralmodellen
Riskkontroll
Det som mycket skiljer denna modell från andra mjukvaruprocessmodeller är att den uttryckligen känner igen risker. Således minskar det kraftigt misslyckanden i stora programvaruprojekt genom att upprepade gånger utvärdera risker och verifiera produkten under utveckling varje gång.
Denna datormodell innehåller komponenter från nästan alla andra modeller av programvarans livscykel, såsom vattenfallsmodellen, prototypmodellen, den iterativa modellen, den evolutionära modellen, etc.
På grund av detta kan den hantera nästan alla typer av risker som andra modeller i allmänhet inte hanterar. På grund av att det finns så många komponenter är den här modellen mycket mer komplex än de andra mjukvaruutvecklingsmodellerna.
Beskrivning av spiralen
Varje spiral varv representerar en komplett cykel, genom vilken de fyra kvadranterna alltid passerar, vilket representerar modellens fyra steg.
När spiralstorleken ökar, gör också de framsteg som gjorts. Därför utförs scenerna inte bara en gång, utan flera gånger på ett spiralformat sätt.
Även om denna cykliska upprepning gör att projektet långsamt närmar sig de fastställda målen, minimeras risken för att utvecklingsprocessen misslyckas.
Generisk
De fyra stadierna implementerar bara de grundläggande målen för en cykel, men de behöver inte manifesteras i varje cykel.
Ordningen för varje cykel bestäms inte heller strikt. Därför kan modellen kombineras när som helst med andra modeller.
Flexibel
Den är ganska flexibel, eftersom den genomför måldefinitionen, riskanalysen, utvecklings- och planeringsprocesserna separat för varje projektfas.
meta
Det betraktas som en metamodel eftersom den innehåller de andra modellerna. Om spiralen till exempel var en enda cykel skulle den representera vattenfallsmodellen, eftersom den innehåller den klassiska modellens gradvisa strategi.
Han använder också prototyptypsmetoden, eftersom han i början av varje cykel sätter ihop en prototyp för att hantera risk.
Dessutom är den kompatibel med den evolutionära modellen, eftersom spiralens iterationer kan betraktas som evolutionära nivåer, genom vilka det slutliga systemet byggs.
Stages
Bestäm mål, alternativ och begränsningar
Systemkraven definieras så mycket detaljer som möjligt, inklusive prestanda, hårdvara / mjukvarugränssnitt, viktiga indikatorer för framgång etc. och vilka mål som ska förknippas med den nuvarande utvecklingscykeln beaktas.
Dessutom undersöks olika alternativ för dess genomförande, såsom build vs. köpa, återanvända befintliga komponenter eller lägga ut etc.
Likaså fastställs begränsningar som kostnad, schema och gränssnitt, tidsförbrukning etc.
Utvärdering av risker
Alla föreslagna alternativ utvärderas. Målen och begränsningarna fungerar som avgörande referenser för att välja den bästa lösningen.
Dessutom identifieras de risker som kan hindra projektets framgång, till exempel brist på erfarenhet, ny teknik, trånga scheman, dåliga processer etc., genomföra de mest lönsamma strategierna med lägsta risk.
Slutligen används metoder som prototyper, simuleringar, analytiska modeller och användarundersökningar.
Utveckling och testning
All nödvändig utveckling genomförs med teknik och utvald lösning. Med varje iteration skapas en bättre version av applikationen.
Den faktiska koden skrivs och testas flera gånger tills önskat resultat har uppnåtts, vilket sedan kommer att tjäna som bas för framtida utvecklingssteg.
Planera nästa cykel
Efter avslutad en cykel börjar planeringen för nästa. Denna planering kan vara att fortsätta med projektet normalt om syftet med cykeln uppnåddes med tanke på definitionen av nästa mål.
Det kan också vara att hitta andra lösningar, om det tidigare utvecklingsstadiet visade sig vara felaktigt. Den befintliga strategin kan ersättas av ett av de tidigare definierade alternativen eller en ny. Med detta skulle ett nytt försök att nå det givna målet starta.
Exempel
USA: s militär antog spiralmodellen för utveckling och uppgradering av moderniseringsprogrammet Future Fighting Systems (SCF).
Officiellt lanserad 2003 föreställdes SCF: er för att utrusta trupper med fordon anslutna i realtid till ett utomordentligt snabbt och flexibelt nätverk av slagfält.
Projektet delades upp i fyra utvecklingsspiraler på cirka två år vardera. Spiral 1 planerades starta 2008 och leverera prototyper för användning och utvärdering.
Efter avslutad spiral 1 planerade spiral 2 att påbörjas 2010. Den slutliga produktutvecklingen planerades levereras 2015.
I augusti 2005 tillkännagav Boeing avslutningen av projektets första stora milstolpe, som var den funktionella översynen av systemen. Boeing och Science Applications International Corporation var projektledarna för projektet.
För oktober 2005 rekommenderade emellertid Pentagon att försena projektet på grund av den stora påverkan på kostnaderna från Irak-kriget och hjälp från orkanen Katrina.
Projektet avbröts 2009 efter det att budgetnedskärningarna hade uppstått utan att kunna bevisa fördelarna med spiralmodellen i detta uppdrag
Fördel
Cyklisk struktur
På grund av denna typ av struktur elimineras problem mellan design och tekniska krav på programvaran stillsamt, tack vare periodiska kontroller.
Riskhantering
Riskerna analyseras vid varje steg i produkten innan man fortsätter vidare. Detta hjälper till att övervinna eller mildra potentiella risker.
Alla anställda drar nytta av den stora betydelsen av riskanalys i denna modell, vilket möjligen representerar deras största fördel jämfört med andra processmodeller.
Regelbunden riskbedömning är värdefull när man använder nya tekniska miljöer, som i allmänhet är förknippade med en viss riskpotential på grund av frånvaro av empiriska värden.
Kundens deltagande och feedback
Kunderna är involverade i varje steg i projektet tills projektet är slutfört. Därför kan olika återkopplingar samlas för att förbättra nästa version av projektet.
Återkoppling kan också erhållas när som helst på grund av det spiralformade framsteget. Således kan kunder och användare integreras från början i utvecklingsprocessen.
Perfekt för stora projekt
Det är särskilt populärt och framträdande för stora och komplexa projekt, där budgetkontroll är en prioritering för kunder och utvecklare. Du har maximal kontroll över kostnader, resurser och kvalitet för programvaruprojektet.
nackdelar
Dyr
Det kan vara ganska dyrt, eftersom det kräver en hög kompetensnivå för riskanalys. Dessutom tar projekt mycket tid att utvecklas, vilket kan öka omkostnaderna.
Ganska komplex
En mycket aktiv och komplex tidigare ledning av projektet krävs, där varje cykel kontinuerligt och noggrant kontrolleras och dokumenteras.
Det är jämförelsevis mer komplexa än andra modeller, eftersom det finns många cykler, som var och en går igenom olika steg, vilket ökar ansträngningen för dokumentationsprocessen.
Kunskap om riskanalys och hantering, som ofta inte är tillgänglig, är väsentlig.
Tidsplanering
Tiden är svår att hantera eftersom antalet cykler är okänt. Dessutom kan utvecklingsprocessen försenas när som helst om viktiga beslut måste fattas inom en cykel eller genom ytterligare åtgärder vid planering av nästa cykel.
Många steg
Att ta många steg i programvaruutveckling är inte alltid gynnsam eftersom, trots testets mångsidighet, kan oavslutade delar av programmet nå det färdiga systemet.
Som en följd finns det alltid risken att konceptuella fel eller inkonsekvens påverkar slutprodukten.
referenser
- Victor Font Jr (2019). Spiralmodellen. Den ultimata guiden till SDLC. Hämtad från: ultimatesdlc.com.
- Ionos (2019). Spiralmodell: den riskdrivna mjukvaruutvecklingsprocessmodellen. Hämtad från: ionos.com.
- Techuz (2018). Vad är spiralmodell? En enkel förklaring av Spiral Software Development Life Cycle (SDLC). Hämtad från: techuz.com.
- One Stop Testing (2020). Spiralmodell. Hämtad från: onestoptesting.com.
- Geeks for Geeks (2020). Programvaruteknik - Spiralmodell. Hämtad från: geeksforgeeks.org.
- Chandu (2019). Spiralmodell i programvaruteknik. Hämtad från: medium.com.