Systemutvecklingslivscykel
För att ta reda på vilka undersystem som finns i systemet kan vi titta på en sådan modells livscykel. En livscykel innebär att vi granskar en process från början (när ett system skapas) till dess att den upphör (när systemet inte längre existerar). Ett sådant tillvägagångssätt kallas systemutvecklingscykel (systems development life cycle, SDLC). Det skapar en struktur för utmaningarna med att gå från början till slutet av systemet utan att glömma bort något steg.
Idag används ett antal olika SDLC-metoder – här följer de viktigaste för- och nackdelarna med sex av de vanligaste SDLC-metoderna.
Vattenfallsmodellen
Vattenfallsmodellen är den äldsta och enklaste av de strukturerade SDLC-metoderna och innebär att man slutför en fas och sedan går vidare till nästa. Man går inte tillbaka. Varje steg är beroende av information från det föregående steget och har sin egen projektplan. Vattenfallsmetoden är lättförståelig och enkel att hantera.
Förseningar i inledningsfasen kan dock rasera tidsplanen för hela projektet. Dessutom kan man inte åtgärda problem förrän man kommer till underhållssteget eftersom inga revisioner kan göras när ett steg väl är slutfört. Denna modell fungerar inte så bra om man behöver vara flexibel, eller om projektet löper under en lång tid.
V-modellen
Denna modell kallas även verifierings- och valideringsmodellen. V-modellen har utvecklats ur vattenfallsmodellen och kännetecknas av en tillhörande testfas för varje utvecklingssteg. Precis som vattenfallsmetoden börjar ett nytt steg först efter att det föregående har slutförts.
Denna modell är användbar om det inte finns några okända krav, eftersom det även här är svårt att gå tillbaka och göra ändringar.
Iterativ modell
Den iterativa modellen handlar om repetition. I stället för att börja med helt kända krav implementerar man en uppsättning programvarukrav, varefter man testar, utvärderar och preciserar ytterligare krav. En ny version av programvaran tas fram vid varje fas, eller upprepning. Börja om och upprepa till dess att hela systemet är klart.
En fördel jämfört med andra SDLC-metoder är att man med denna modell får en fungerande version tidigare i processen och att det blir billigare att implementera ändringar. En nackdel är att resurserna snabbt äts upp genom att processen upprepas om och om igen.
Spiralmodell
En av de mest flexibla SDLC-metoderna är spiralmodellen som är inspirerad av den iterativa modellen med dess upprepningar. Projektet genomgår fyra faser om och om igen i en "spiral" till dess att det är slutfört, vilket gör det möjligt att förfina det i flera omgångar.
Denna modell gör det möjligt att skapa ett mycket skräddarsytt projekt, och återkoppling från användaren kan integreras redan i ett tidigt skede av projektet. Risken är dock att man skapar en evig spiral för projektet, som upprepas om och om igen.
Big Bang-modellen
Big Bang-modellen skiljer sig åt lite från övriga SDLC-metoder genom att den inte följer någon specifik process och genom att väldigt lite tid läggs på planering. Merparten av resurserna läggs på utvecklingen och inte ens kunden kanske har ett fullt grepp om kraven. Detta är en av de SDLC-metoder som vanligen används för mindre projekt med bara en eller två mjukvaruingenjörer.
Big Bang rekommenderas inte för stora eller komplexa projekt eftersom det är en högriskmodell; om kraven missförstås i början kan man komma till slutet och inse att projektet kanske måste startas om från början.
Agil modell
Genom att bryta ned produkten i cykler kan den agila modellen snabbt skapa en fungerande produkt och den anses vara en mycket realistisk utvecklingsmetod. Modellen producerar löpande nya versioner, var och en med små, stegvisa förändringar jämfört med den föregående versionen. Vid varje upprepning testas produkten.
Denna modell betonar interaktion eftersom kunder, utvecklare och testare samarbetar genom projektet. Då modellen dock är mycket beroende av att kunden är delaktig kan det gå åt fel håll om kunden inte är tydlig med i vilken riktning han eller hon vill gå.
Vilken SDLC-metod är rätt?
Var och en av dessa SDLC-metoder erbjuder unika processer för de skiftande projektutmaningar ni kommer att ställas inför i ert yrkesliv. Att hitta rätt beror till stor del inte bara på det förväntade resultatet, utan på vilken typ av problem ni försöker lösa.