sdlc phases
Hvad er SDLC (Software Development Life Cycle)? Lær SDLC-faser, metoder, proces og modeller
Softwareudviklings livscyklus (SDLC) er en ramme, der definerer de trin, der er involveret i udviklingen af software i hver fase. Den dækker den detaljerede plan for bygning, implementering og vedligeholdelse af softwaren.
SDLC definerer den komplette udviklingscyklus, dvs. alle de opgaver, der er involveret i planlægning, oprettelse, test og implementering af et softwareprodukt.
Hvad du lærer:
- Softwareudvikling livscyklusproces
- SDLC-cyklus
- SDLC-faser
- Softwareudvikling Livscyklusmodeller
- Konklusion
Softwareudvikling livscyklusproces
SDLC er en proces, der definerer de forskellige faser involveret i udviklingen af software til levering af et produkt af høj kvalitet. SDLC-faser dækker den komplette livscyklus for en software, dvs. fra start til pensionering af produktet.
Overholdelse af SDLC-processen fører til udvikling af softwaren på en systematisk og disciplineret måde.
Formål:
Formålet med SDLC er at levere et produkt af høj kvalitet, der er i henhold til kundens krav.
SDLC har defineret sine faser som kravindsamling, design, kodning, test og vedligeholdelse. Det er vigtigt at overholde faserne for at levere produktet på en systematisk måde.
For eksempel, Der skal udvikles en software, og et team er opdelt i at arbejde på en funktion af produktet og får lov til at arbejde, som de vil. En af udviklerne beslutter at designe først, mens den anden beslutter at kode først og den anden på dokumentationsdelen.
Dette vil føre til projektfejl, hvorfor det er nødvendigt at have en god viden og forståelse blandt teammedlemmerne for at levere et forventet produkt.
SDLC-cyklus
SDLC Cycle repræsenterer processen med at udvikle software.
Nedenfor er den diagrammatiske gengivelse af SDLC-cyklussen:
SDLC-faser
Nedenfor er de forskellige faser:
- Kravindsamling og analyse
- Design
- Implementering eller kodning
- Testning
- Implementering
- Vedligeholdelse
# 1) Kravindsamling og analyse
I denne fase indsamles alle relevante oplysninger fra kunden for at udvikle et produkt efter deres forventning. Uklarheder må kun løses i denne fase.
Forretningsanalytiker og projektleder oprettede et møde med kunden for at indsamle alle de oplysninger, som hvad kunden ønsker at bygge, hvem der vil være slutbrugeren, hvad er formålet med produktet. Før du bygger et produkt, er en grundlæggende forståelse eller viden om produktet meget vigtig.
For eksempel, En kunde ønsker at have en applikation, der involverer pengetransaktioner. I dette tilfælde skal kravet være klart, ligesom hvilken type transaktioner der skal udføres, hvordan det vil blive udført, i hvilken valuta det vil blive udført osv.
Når kravindsamlingen er udført, foretages en analyse for at kontrollere gennemførligheden af udviklingen af et produkt. I tilfælde af tvetydighed oprettes et opkald til yderligere diskussion.
Når kravet er klart forstået, oprettes SRS-dokumentet (Software Requirement Specification). Dette dokument skal forstås grundigt af udviklerne og bør også gennemgås af kunden til fremtidig reference.
# 2) Design
I denne fase bruges kravet i SRS-dokumentet som en input- og softwarearkitektur, der bruges til implementering af systemudvikling, afledes.
# 3) Implementering eller kodning
Implementering / kodning starter, når udvikleren får Design-dokumentet. Softwaredesignet oversættes til kildekode. Alle komponenterne i softwaren implementeres i denne fase.
hvad er testplan i softwaretest
# 4) Test
Testen starter, når kodningen er afsluttet, og modulerne frigives til test. I denne fase testes den udviklede software grundigt, og eventuelle fundne mangler tildeles udviklere for at få dem rettet.
Gentestning, regressionstest udføres indtil det tidspunkt, hvor softwaren er som kundens forventning. Testere henviser til SRS-dokument for at sikre, at softwaren er i overensstemmelse med kundens standard.
# 5) Implementering
Når produktet er testet, implementeres det i produktionsmiljøet eller først UAT (test af brugeraccept) udføres afhængigt af kundens forventning.
I tilfælde af UAT oprettes en replika af produktionsmiljøet, og kunden sammen med udviklerne foretager testningen. Hvis kunden finder applikationen som forventet, leveres kunden til at logge af.
# 6) Vedligeholdelse
Efter implementeringen af et produkt i produktionsmiljøet, vedligeholdes produktet, dvs. hvis der opstår et problem og skal løses, eller der skal foretages en forbedring, af udviklerne.
Softwareudvikling Livscyklusmodeller
En softwarelevecyklusmodel er en beskrivende repræsentation af softwareudviklingscyklussen. SDLC-modeller kan have en anden tilgang, men de grundlæggende faser og aktivitet forbliver den samme for alle modeller.
# 1) Vandfaldsmodel
Vandfaldsmodel er den allerførste model, der bruges i SDLC. Det er også kendt som den lineære sekventielle model.
I denne model er resultatet af en fase input til den næste fase. Udviklingen af den næste fase starter kun, når den forrige fase er afsluttet.
- For det første udføres kravindsamling og analyse. Når kravet er fryset, kan kun systemdesign starte. Heri er det oprettede SRS-dokument output til kravsfasen, og det fungerer som et input til systemdesignet.
- I systemdesignsoftwarearkitektur og design oprettes dokumenter, der fungerer som input til den næste fase, dvs. implementering og kodning.
- I implementeringsfasen udføres kodning, og den udviklede software er input til den næste fase, dvs. test.
- I testfasen testes den udviklede kode grundigt for at opdage manglerne i softwaren. Fejl logges ind i fejlsporingsværktøjet og testes igen, når de er rettet. Fejllogning, gentest, regressionstest fortsætter indtil det tidspunkt, hvor softwaren er i live-tilstand.
- I implementeringsfasen flyttes den udviklede kode til produktion, når afmeldingen er givet af kunden.
- Eventuelle problemer i produktionsmiljøet løses af udviklerne, der kommer under vedligeholdelse.
Fordele ved vandfaldsmodellen:
- Vandfaldsmodel er den enkle model, som let kan forstås og er den, hvor alle faser udføres trin for trin.
- Leverancer af hver fase er veldefinerede, og dette fører til ingen kompleksitet og gør projektet let håndterbart.
Ulemper ved vandfaldsmodellen:
- Vandfaldsmodellen er tidskrævende og kan ikke bruges i projekter med kort varighed, da der i denne model ikke kan startes en ny fase, før den igangværende fase er afsluttet.
- Vandfaldsmodel kan ikke bruges til projekter, der har usikre krav, eller hvor kravet fortsætter med at ændre sig, da denne model forventer, at kravet skal være klart i selve kravindsamlings- og analysefasen, og enhver ændring i de senere faser vil føre til højere omkostninger som ændringer ville være påkrævet i alle faser.
# 2) V-formet model
V- Model er også kendt som Verification and Validation Model. I denne model går verifikation og validering hånd i hånd, dvs. udvikling og test går parallelt. V-model og vandfaldsmodel er den samme bortset fra at testplanlægning og test starter på et tidligt tidspunkt i V-Model.
a) Verifikationsfase:
(i) Kravsanalyse:
I denne fase indsamles og analyseres alle de krævede oplysninger. Verifikationsaktiviteter inkluderer gennemgang af kravene.
(ii) Systemdesign:
Når kravet er klart, er et system designet, dvs. arkitektur, produktets komponenter oprettes og dokumenteres i et designdokument.
(iii) Design på højt niveau:
Design på højt niveau definerer arkitekturen / designet af moduler. Den definerer funktionaliteten mellem de to moduler.
(iv) Lavt niveau design:
Design på lavt niveau definerer arkitekturen / designet af de enkelte komponenter.
(v) Kodning:
Kodeudvikling sker i denne fase.
b) Valideringsfase:
(i) Enhedstest:
Enhedstest udføres ved hjælp af enhedstestsager, der er designet og udføres i designfasen på lavt niveau. Enhedstest udføres af udvikleren selv. Det udføres på individuelle komponenter, som fører til tidlig detektering af defekter.
(ii) Integrationstest:
Integrationstest udføres ved hjælp af integrationstestsager i designfasen på højt niveau. Integrationstest er den test, der udføres på integrerede moduler. Det udføres af testere.
(iii) Systemtest:
Systemtest udføres i systemdesignfasen. I denne fase testes det komplette system, dvs. hele systemets funktionalitet testes.
(iv) Acceptantestning:
Acceptstest er forbundet med kravanalysefasen og udføres i kundens miljø.
Fordele ved V - Model:
- Det er en enkel og let forståelig model.
- V – model tilgang er god til mindre projekter, hvor kravet er defineret, og det fryser i den tidlige fase.
- Det er en systematisk og disciplineret model, der resulterer i et produkt af høj kvalitet.
Ulemper ved V-Model:
- V-formet model er ikke god til igangværende projekter.
- Kravsændring på et senere tidspunkt vil koste for højt.
# 3) Prototype Model
Prototypemodellen er en model, hvor prototypen er udviklet inden den aktuelle software.
Prototype-modeller har begrænsede funktionelle muligheder og ineffektiv ydeevne sammenlignet med den aktuelle software. Dummy-funktioner bruges til at oprette prototyper. Dette er en værdifuld mekanisme til forståelse af kundernes behov.
Softwareprototyper er bygget før den aktuelle software for at få værdifuld feedback fra kunden. Feedbacks implementeres, og prototypen gennemgås igen af kunden for ændringer. Denne proces fortsætter, indtil modellen accepteres af kunden.
Når kravindsamlingen er færdig, oprettes det hurtige design, og prototypen, der præsenteres for kunden til evaluering, bygges.
Kundefeedback og det raffinerede krav bruges til at ændre prototypen og præsenteres igen for kunden til evaluering. Når kunden godkender prototypen, bruges den som et krav til opbygning af den aktuelle software. Den egentlige software er bygget ved hjælp af modellen med vandfaldsmodellen.
Fordele ved prototypemodel:
- Prototypemodel reducerer omkostningerne og tiden for udvikling, da manglerne findes meget tidligere.
- Manglende funktion eller funktionalitet eller en ændring i krav kan identificeres i evalueringsfasen og kan implementeres i den raffinerede prototype.
- Inddragelse af en kunde fra det indledende trin reducerer enhver forvirring i kravet eller forståelsen af enhver funktionalitet.
Ulemper ved prototypemodel:
- Da kunden er involveret i hver fase, kan kunden ændre kravet til slutproduktet, hvilket øger omfanget af omfanget og kan øge leveringstiden for produktet.
# 4) Spiral Model
Spiralmodellen inkluderer iterativ tilgang og prototype.
Spiralmodelfaser følges i gentagelserne. Sløjferne i modellen repræsenterer fasen i SDLC-processen, dvs. den inderste sløjfe er kravindsamling og analyse, der følger planlægning, risikoanalyse, udvikling og evaluering. Næste løkke er Design efterfulgt af Implementering og derefter test.
Spiral Model har fire faser:
- Planlægning
- Risikoanalyse
- ingeniørarbejde
- Evaluering
(i) Planlægning:
Planlægningsfasen inkluderer kravindsamling, hvor alle de krævede oplysninger indsamles fra kunden og dokumenteres. Specifikationsdokument til softwarekrav oprettes til den næste fase.
(ii) Risikoanalyse:
I denne fase vælges den bedste løsning til de involverede risici, og analyse udføres ved at opbygge prototypen.
For eksempel , risikoen forbundet med adgang til data fra en ekstern database kan være, at dataadgangshastigheden kan være for langsom. Risikoen kan løses ved at opbygge en prototype af delsystemet til adgang til data.
(iii) Ingeniørarbejde:
Når risikoanalysen er udført, udføres kodning og test.
(iv) Evaluering:
Kunden evaluerer det udviklede system og planlægger den næste iteration.
Fordele ved spiralmodel:
- Risikoanalyse udføres i vid udstrækning ved hjælp af prototypemodellerne.
- Enhver forbedring eller ændring af funktionaliteten kan udføres i den næste iteration.
Ulemper ved spiralmodel:
- Spiralmodellen er kun bedst egnet til store projekter.
- Omkostningerne kan være høje, da det kan tage et stort antal iterationer, som kan føre til høj tid at nå det endelige produkt.
# 5) Iterativ inkrementel model
Den iterative inkrementelle model opdeler produktet i små bidder.
For eksempel , Funktion, der skal udvikles i iteration, besluttes og implementeres. Hver iteration gennemgår faserne, nemlig Kravsanalyse, Design, kodning og test. Detaljeret planlægning er ikke påkrævet i iterationer.
Når gentagelsen er afsluttet, verificeres et produkt og leveres til kunden for deres evaluering og feedback. Kundens feedback implementeres i den næste iteration sammen med den nyligt tilføjede funktion.
Derfor øges produktets antal med hensyn til funktioner, og når gentagelserne er afsluttet, indeholder den endelige build alle produktets funktioner.
Faser af Iterativ & Inkrementel Udviklingsmodel:
- Startfase
- Udarbejdelsesfase
- Byggefase
- Overgangsfase
(i) Startfase:
Startfasen inkluderer projektets krav og omfang.
(ii) Udarbejdelsesfase:
I udarbejdelsesfasen leveres et produkts arbejdsarkitektur, der dækker den risiko, der er identificeret i startfasen, og som også opfylder de ikke-funktionelle krav.
(iii) Konstruktionsfase:
I konstruktionsfasen udfyldes arkitekturen med den kode, der er klar til at blive implementeret og oprettes gennem analyse, design, implementering og test af funktionskravet.
(iv) Overgangsfase:
I overgangsfasen implementeres produktet i produktionsmiljøet.
Fordele ved Iterativ og inkrementel model:
- Enhver ændring i kravet kan let udføres og koster ikke, da der er mulighed for at indarbejde det nye krav i den næste iteration.
- Risiko analyseres og identificeres i iterationerne.
- Mangler opdages på et tidligt tidspunkt.
- Da produktet er opdelt i mindre stykker, er det let at administrere produktet.
Ulemper af Iterativ & Inkrementel Model:
- Komplet krav og forståelse af et produkt kræves for at nedbryde og opbygge trinvist.
# 6) Big Bang-model
Big Bang Model har ingen defineret proces. Penge og indsats er samlet, da input og output kommer som et udviklet produkt, som måske eller ikke er det samme som det, kunden har brug for.
Big Bang Model kræver ikke meget planlægning og planlægning. Udvikleren udfører kravanalysen og kodningen og udvikler produktet efter hans forståelse. Denne model bruges kun til mindre projekter. Der er intet testteam, og der udføres ingen formel test, og dette kan være en årsag til projektets fiasko.
Fordele af Big Bang Model:
- Det er en meget enkel model.
- Mindre planlægning og planlægning er påkrævet.
- Udvikleren har fleksibiliteten til at bygge sin egen software.
Ulemper ved Big Bang-modellen:
- Big Bang-modeller kan ikke bruges til store, igangværende og komplekse projekter.
- Høj risiko og usikkerhed.
# 7) Agil model
Agile Model er en kombination af den iterative og inkrementelle model. Denne model fokuserer mere på fleksibilitet under udvikling af et produkt snarere end på kravet.
I Agile opdeles et produkt i små trinvise builds. Det er ikke udviklet som et komplet produkt på én gang. Hver build-stigning med hensyn til funktioner. Den næste build bygger på tidligere funktionalitet.
I smidige iterationer betegnes som sprints. Hver sprint varer i 2-4 uger. I slutningen af hver sprint verificerer produktejeren produktet, og efter hans godkendelse leveres det til kunden.
Kundefeedback tages til forbedring, og hans forslag og forbedringer arbejdes med i næste sprint. Test udføres i hver sprint for at minimere risikoen for eventuelle fejl.
Fordele ved agil model:
- Det giver mere fleksibilitet til at tilpasse sig ændringerne.
- Den nye funktion kan let tilføjes.
- Kundetilfredshed, da feedback og forslag tages i hvert trin.
Ulemper:
- Manglende dokumentation.
- Agile har brug for erfarne og højt kvalificerede ressourcer.
- Hvis en kunde ikke er klar over, hvordan de nøjagtigt ønsker, at produktet skal være, ville projektet mislykkes.
Konklusion
Overholdelse af en passende livscyklus er meget vigtig for en vellykket afslutning af projektet. Dette gør ledelsen igen lettere.
Forskellige softwareudviklingslivscyklusmodeller har deres egne fordele og ulemper. Den bedste model for ethvert projekt kan bestemmes af faktorer som krav (om det er klart eller uklart), systemkompleksitet, projektets størrelse, omkostninger, færdighedsbegrænsning osv.
Eksempel, i tilfælde af et uklart krav, er Spiral og Agile modeller bedst at bruge, da den krævede ændring let kan imødekommes på ethvert tidspunkt.
Vandfaldsmodellen er en grundlæggende model, og alle de andre SDLC-modeller er kun baseret på det.
Håber du ville have fået enorm viden om SDLC.
Anbefalet læsning
- Spiral Model - Hvad er SDLC Spiral Model?
- Hvad er SDLC Waterfall Model?
- Hvad er STLC (Software Testing Life Cycle)?
- Software Testning QA Assistant Job
- 10 BEDSTE tilpassede softwareudviklingsfirmaer og -tjenester i 2021
- Praktisk softwaretest - Ny GRATIS e-bog (Download)
- Onsite - Offshore-model af softwaretestprojekter (og hvordan man får det til at fungere for dig)
- Hvorfor har software fejl?