sdlc phases
Vad är programvaruutvecklings livscykel (SDLC)? Lär dig SDLC-faser, metoder, processer och modeller
Software Development Life Cycle (SDLC) är ett ramverk som definierar de steg som är involverade i utvecklingen av programvara i varje fas. Den täcker den detaljerade planen för att bygga, distribuera och underhålla programvaran.
SDLC definierar hela utvecklingscykeln, dvs. alla uppgifter som är involverade i planering, skapande, testning och distribution av en programvaruprodukt.
Vad du kommer att lära dig:
- Programvaruutveckling livscykelprocess
- SDLC-cykel
- SDLC-faser
- Programvaruutveckling Livscykelmodeller
- Slutsats
Programvaruutveckling livscykelprocess
SDLC är en process som definierar de olika faserna som är involverade i utvecklingen av programvara för att leverera en högkvalitativ produkt. SDLC-steg täcker programvarans hela livscykel, dvs från början till pension.
Att följa SDLC-processen leder till utveckling av programvaran på ett systematiskt och disciplinerat sätt.
Ändamål:
Syftet med SDLC är att leverera en högkvalitativ produkt som är enligt kundens krav.
SDLC har definierat sina faser som kravkrav, design, kodning, testning och underhåll. Det är viktigt att följa faserna för att tillhandahålla produkten på ett systematiskt sätt.
Till exempel, En programvara måste utvecklas och ett team är uppdelat för att arbeta med en produktfunktion och får arbeta som de vill. En av utvecklarna bestämmer sig för att utforma först medan den andra bestämmer sig för att koda först och den andra på dokumentationsdelen.
Detta kommer att leda till att projekt misslyckas, varför det är nödvändigt att ha god kunskap och förståelse bland teammedlemmarna för att leverera en förväntad produkt.
SDLC-cykel
SDLC Cycle representerar processen att utveckla programvara.
Nedan följer en schematisk framställning av SDLC-cykeln:
SDLC-faser
Nedan följer de olika faserna:
- Kravinsamling och analys
- Design
- Implementering eller kodning
- Testning
- Spridning
- Underhåll
# 1) Kravsamling och analys
Under denna fas samlas all relevant information från kunden för att utveckla en produkt enligt deras förväntningar. Oklarheter måste endast lösas i denna fas.
Affärsanalytiker och projektledare satte upp ett möte med kunden för att samla all information som vad kunden vill bygga, vem som kommer att vara slutanvändare, vad är syftet med produkten. Innan du bygger en produkt är en grundläggande förståelse eller kunskap om produkten mycket viktig.
Till exempel, En kund vill ha en applikation som involverar penningtransaktioner. I det här fallet måste kravet vara tydligt som vilken typ av transaktioner som kommer att göras, hur det kommer att göras, i vilken valuta det kommer att göras, etc.
När kravuppsamlingen är klar görs en analys för att kontrollera genomförbarheten av en produkts utveckling. I händelse av tvetydighet inleds ett samtal för vidare diskussion.
När kravet är klart förstått skapas SRS-dokumentet (Software Requirement Specification). Detta dokument bör förstås grundligt av utvecklarna och bör också granskas av kunden för framtida referens.
# 2) Design
I denna fas används kravet i SRS-dokumentet som en ingång och programvaruarkitektur som används för att implementera systemutveckling härleds.
# 3) Implementering eller kodning
Implementering / kodning startar när utvecklaren får designdokumentet. Programvarudesignen översätts till källkod. Alla komponenter i programvaran implementeras i denna fas.
python if-uttalande i en rad
# 4) Testning
Testningen startar när kodningen är klar och modulerna släpps för testning. I den här fasen testas den utvecklade programvaran noggrant och eventuella defekter som tilldelats tilldelas utvecklare för att få dem rättade.
Omprövning, regressionstest görs till den punkt då programvaran är enligt kundens förväntningar. Testare hänvisar till SRS-dokument för att se till att programvaran är enligt kundens standard.
# 5) Driftsättning
När produkten har testats distribueras den i produktionsmiljön eller först UAT (test av användaracceptans) görs beroende på kundens förväntningar.
När det gäller UAT skapas en kopia av produktionsmiljön och kunden tillsammans med utvecklarna gör testningen. Om kunden hittar applikationen som förväntat tillhandahålls kunden för att logga ut.
# 6) Underhåll
Efter utplaceringen av en produkt i produktionsmiljön tas underhåll av produkten, dvs om något problem uppstår och behöver åtgärdas eller någon förbättring ska göras, av utvecklarna.
Programvaruutveckling Livscykelmodeller
En livscykelmodell för programvara är en beskrivande representation av programvaruutvecklingscykeln. SDLC-modeller kan ha ett annat tillvägagångssätt men de grundläggande faserna och aktiviteten förblir desamma för alla modeller.
# 1) Vattenfallsmodell
Vattenfall modell är den allra första modellen som används i SDLC. Det är också känt som den linjära sekventiella modellen.
I den här modellen är resultatet av en fas ingången för nästa fas. Utvecklingen av nästa fas börjar först när den föregående fasen är klar.
- Först görs kravinsamling och analys. När kravet är fryst kan bara systemdesignen starta. Häri är det skapade SRS-dokumentet resultatet för kravfasen och det fungerar som en ingång för systemdesignen.
- I systemdesignprogramvaruarkitektur och design skapas dokument som fungerar som en input för nästa fas, dvs. implementering och kodning.
- I implementeringsfasen görs kodning och den utvecklade programvaran är ingången för nästa fas, dvs. testning.
- I testfasen testas den utvecklade koden noggrant för att upptäcka fel i programvaran. Defekter loggas in i spårningsverktyget och testas igen när de har åtgärdats. Felloggning, omprövning, regressionstest fortsätter tills den tid då programvaran är i live-tillstånd.
- I distributionsfasen flyttas den utvecklade koden till produktion efter att kunden har gett sig av.
- Eventuella problem i produktionsmiljön löses av utvecklarna som kommer under underhåll.
Fördelar med vattenfallsmodellen:
- Vattenfallsmodellen är den enkla modellen som lätt kan förstås och är den där alla faser görs steg för steg.
- Leveranserna i varje fas är väl definierade, och detta leder till ingen komplexitet och gör projektet lätt att hantera.
Nackdelar med vattenfallsmodellen:
- Vattenfallsmodellen är tidskrävande och kan inte användas i kortvariga projekt eftersom i den här modellen kan en ny fas inte startas förrän den pågående fasen är klar.
- Vattenfallsmodellen kan inte användas för de projekt som har osäkra krav eller där kravet fortsätter att förändras eftersom den här modellen förväntar sig att kravet ska vara tydligt i själva kravuppsamlings- och analysfasen och varje förändring i de senare stadierna skulle leda till högre kostnader som ändringar skulle krävas i alla faser.
# 2) V-formad modell
V- modell är också känd som Verification and Validation Model. I den här modellen går Verification & Validation hand i hand, dvs. utveckling och testning går parallellt. V-modellen och vattenfallsmodellen är desamma förutom att testplanering och testning börjar i ett tidigt skede i V-Model.
a) Verifieringsfas:
(i) Kravsanalys:
I denna fas samlas och analyseras all nödvändig information. Verifieringsaktiviteter inkluderar granskning av kraven.
(ii) Systemdesign:
När kravet är klart är ett system utformat, dvs arkitektur, komponenter i produkten skapas och dokumenteras i ett designdokument.
(iii) Design på hög nivå:
Design på hög nivå definierar arkitekturen / designen av moduler. Den definierar funktionaliteten mellan de två modulerna.
(iv) Lågnivådesign:
Low-level Design definierar arkitekturen / designen för enskilda komponenter.
(v) Kodning:
Kodutveckling sker i denna fas.
b) Valideringsfas:
(i) Enhetstestning:
Enhetstestning utförs med hjälp av de enhetstestfall som är utformade och utförs i lågfasdesignfasen. Enhetstester utförs av utvecklaren själv. Det utförs på enskilda komponenter som leder till tidig defektdetektering.
(ii) Integrationstestning:
Integrationstestning utförs med hjälp av integrationsprovfall i högnivå designfas. Integrationstestning är testningen som görs på integrerade moduler. Det utförs av testare.
(iii) Systemtestning:
Systemtestning utförs i systemdesignfasen. I denna fas testas hela systemet, dvs. hela systemets funktionalitet testas.
(iv) Godkännandeprovning:
Acceptansprovning är associerad med kravanalysfasen och görs i kundens miljö.
Fördelar med V - modell:
- Det är en enkel och lättförståelig modell.
- V –modellstrategi är bra för mindre projekt där kravet definieras och det fryser i ett tidigt skede.
- Det är en systematisk och disciplinerad modell som resulterar i en högkvalitativ produkt.
Nackdelar med V-Model:
- V-formad modell är inte bra för pågående projekt.
- Kravsändring i senare skede skulle kosta för högt.
# 3) Prototypmodell
Prototypmodellen är en modell där prototypen utvecklas före själva programvaran.
Prototypmodeller har begränsade funktionella funktioner och ineffektiv prestanda jämfört med den faktiska programvaran. Dummy-funktioner används för att skapa prototyper. Detta är en värdefull mekanism för att förstå kundernas behov.
Mjukvaruprototyper byggs före själva programvaran för att få värdefull feedback från kunden. Återkopplingar implementeras och prototypen granskas igen av kunden för eventuella ändringar. Denna process fortsätter tills modellen accepteras av kunden.
När kravuppsamlingen är klar skapas den snabba designen och prototypen som presenteras för kunden för utvärdering byggs.
Kundfeedback och det förfinade kravet används för att modifiera prototypen och presenteras igen för kunden för utvärdering. När kunden godkänner prototypen används den som ett krav för att bygga själva programvaran. Den faktiska programvaran är byggd med hjälp av modellen Waterfall model.
Fördelar med prototypmodell:
- Prototypmodellen minskar kostnaden och tiden för utveckling eftersom defekterna hittades mycket tidigare.
- Saknad funktion eller funktionalitet eller en förändring i krav kan identifieras i utvärderingsfasen och kan implementeras i den förfinade prototypen.
- Inblandning av en kund från början minskar förvirring i kravet eller förståelsen för någon funktion.
Nackdelar med prototypmodell:
- Eftersom kunden är inblandad i varje fas kan kunden ändra kravet på slutprodukten vilket ökar omfattningens komplexitet och kan öka produktens leveranstid.
# 4) Spiralmodell
Spiralmodellen inkluderar iterativ och prototyp-strategi.
Spiralmodelfaserna följs i iterationerna. Slingorna i modellen representerar fasen i SDLC-processen, dvs. den innersta slingan är kravuppsamling och analys som följer planering, riskanalys, utveckling och utvärdering. Nästa slinga är Designing följt av Implementering och sedan testning.
Spiral Model har fyra faser:
- Planera
- Riskanalys
- Teknik
- Utvärdering
(i) Planering:
Planeringsfasen inkluderar kravinsamling där all information som krävs samlas in från kunden och dokumenteras. Specifikationsdokument för programvarukrav skapas för nästa fas.
(ii) Riskanalys:
I denna fas väljs den bästa lösningen för de involverade riskerna och analys görs genom att bygga prototypen.
Till exempel kan risken med åtkomst till data från en fjärradatabas vara att dataåtkomsthastigheten kan vara för långsam. Risken kan lösas genom att bygga en prototyp av delsystemet för datatillgång.
(iii) Teknik:
När riskanalysen är klar, kodas och testas.
(iv) Utvärdering:
Kunden utvärderar det utvecklade systemet och planerar för nästa iteration.
Fördelar med spiralmodell:
- Riskanalys görs i stor utsträckning med hjälp av prototypmodellerna.
- Varje förbättring eller ändring av funktionaliteten kan göras i nästa iteration.
Nackdelar med spiralmodell:
- Spiralmodellen passar bäst för stora projekt.
- Kostnaden kan vara hög eftersom det kan ta ett stort antal iterationer som kan leda till hög tid att nå slutprodukten.
# 5) Iterativ inkrementell modell
Den iterativa inkrementella modellen delar upp produkten i små bitar.
Till exempel , Funktionen som ska utvecklas i iterationen bestäms och implementeras. Varje iteration går igenom faserna, nämligen kravanalys, design, kodning och testning. Detaljerad planering krävs inte i iterationer.
När iterationen är klar verifieras en produkt och levereras till kunden för utvärdering och återkoppling. Kundens feedback implementeras i nästa iteration tillsammans med den nyligen tillagda funktionen.
Följaktligen ökar produktens termer när det gäller funktioner och när iterationerna är färdiga innehåller den slutliga byggnaden alla produktens funktioner.
Faser av Iterativ & Inkrementell utvecklingsmodell:
- Startfas
- Utarbetningsfas
- Byggfas
- Övergångsfas
(i) Startfas:
Startfasen inkluderar projektets krav och omfattning.
(ii) Utarbetningsfas:
I utarbetningsfasen levereras en produktions arbetsarkitektur som täcker den risk som identifierats i startfasen och också uppfyller de icke-funktionella kraven.
(iii) Konstruktionsfas:
I byggfasen fylls arkitekturen i med koden som är redo att distribueras och skapas genom analys, design, implementering och test av funktionskravet.
(iv) Övergångsfas:
I övergångsfasen distribueras produkten i produktionsmiljön.
Fördelar med Iterativ och inkrementell modell:
- Varje ändring av kravet kan enkelt göras och kostar inte eftersom det finns en möjlighet att införliva det nya kravet i nästa iteration.
- Risk analyseras och identifieras i iterationerna.
- Fel upptäcks i ett tidigt skede.
- Eftersom produkten är uppdelad i mindre bitar är det enkelt att hantera produkten.
Nackdelar av Iterativ och inkrementell modell:
- Fullständiga krav och förståelse för en produkt krävs för att bryta ner och bygga stegvis.
# 6) Big Bang-modell
Big Bang-modellen har ingen definierad process. Pengar och ansträngningar sätts ihop då input och output kommer som en utvecklad produkt som kan vara eller inte vara densamma som vad kunden behöver.
Big Bang-modellen kräver inte mycket planering och schemaläggning. Utvecklaren gör kravanalys och kodning och utvecklar produkten enligt hans förståelse. Denna modell används endast för små projekt. Det finns inget testteam och ingen formell testning görs, och detta kan orsaka projektets misslyckande.
Fördelar av Big Bang-modellen:
- Det är en mycket enkel modell.
- Mindre planering och schemaläggning krävs.
- Utvecklaren har flexibiliteten att bygga sin egen programvara.
Nackdelar med Big Bang-modellen:
- Big Bang-modeller kan inte användas för stora, pågående och komplexa projekt.
- Hög risk och osäkerhet.
# 7) Agil modell
Agile Model är en kombination av Iterativ och inkrementell modell. Denna modell fokuserar mer på flexibilitet vid utveckling av en produkt snarare än på kravet.
I Agile delas en produkt upp i små stegvisa byggnader. Det utvecklas inte som en komplett produkt på en gång. Varje byggsteg i termer av funktioner. Nästa byggnad bygger på tidigare funktionalitet.
I smidiga iterationer kallas sprints. Varje sprint varar i 2-4 veckor. I slutet av varje sprint verifierar produktägaren produkten och efter hans godkännande levereras den till kunden.
Kundfeedback tas för förbättring och hans förslag och förbättringar bearbetas i nästa sprint. Testning görs i varje sprint för att minimera risken för eventuella fel.
Fördelar med Agile Model:
- Det möjliggör mer flexibilitet att anpassa sig till förändringarna.
- Den nya funktionen kan enkelt läggas till.
- Kundnöjdhet eftersom feedback och förslag tas i varje steg.
Nackdelar:
- Brist på dokumentation.
- Agile behöver erfarna och mycket skickliga resurser.
- Om en kund inte är klar över hur exakt de vill att produkten ska vara, skulle projektet misslyckas.
Slutsats
Att följa en lämplig livscykel är mycket viktigt för att projektet ska lyckas. Detta i sin tur gör ledningen enklare.
Olika programvaruutvecklingslivscykelmodeller har sina egna fördelar och nackdelar. Den bästa modellen för alla projekt kan bestämmas av faktorer som krav (oavsett om det är klart eller oklart), systemkomplexitet, projektets storlek, kostnad, begränsning av färdigheter etc.
Exempel, Vid ett oklart krav är Spiral och Agile-modeller bäst att använda eftersom den nödvändiga ändringen enkelt kan tillgodoses i alla led.
Vattenfallsmodellen är en basmodell och alla andra SDLC-modeller bygger bara på det.
Hoppas att du skulle ha fått enorm kunskap om SDLC.
Rekommenderad läsning
- Spiral Model - Vad är SDLC Spiral Model?
- Vad är SDLC Waterfall Model?
- Vad är programvarutestningens livscykel (STLC)?
- Programvarutestning QA-assistentjobb
- 10 BÄSTA anpassade programvaruutvecklingsföretag och tjänster 2021
- Praktisk programvarutestning - Ny GRATIS e-bok (Ladda ner)
- På plats - Offshore-modell av programvarutestningsprojekt (och hur man får det att fungera för dig)
- Varför har programvara fel?