sdlc phases
Wat is Software Development Life Cycle (SDLC)? Leer SDLC-fasen, methodologieën, processen en modellen
Software Development Life Cycle (SDLC) is een raamwerk dat de stappen definieert die nodig zijn bij de ontwikkeling van software in elke fase. Het behandelt het gedetailleerde plan voor het bouwen, implementeren en onderhouden van de software.
SDLC definieert de volledige ontwikkelingscyclus, d.w.z. alle taken die betrokken zijn bij het plannen, maken, testen en implementeren van een softwareproduct.
Wat je leert:
- Softwareontwikkeling levenscyclusproces
- SDLC-cyclus
- SDLC-fasen
- Levenscyclusmodellen voor softwareontwikkeling
- Gevolgtrekking
Softwareontwikkeling levenscyclusproces
SDLC is een proces dat de verschillende fasen definieert die betrokken zijn bij de ontwikkeling van software voor het leveren van een hoogwaardig product. SDLC-fasen bestrijken de volledige levenscyclus van een software, d.w.z. van het begin tot het buiten gebruik stellen van het product.
Het volgen van het SDLC-proces leidt tot de ontwikkeling van de software op een systematische en gedisciplineerde manier.
Doel:
Het doel van SDLC is om een hoogwaardig product te leveren dat voldoet aan de eisen van de klant.
SDLC heeft zijn fasen gedefinieerd als het verzamelen van vereisten, ontwerpen, coderen, testen en onderhoud. Het is belangrijk om de fasen te volgen om het product op een systematische manier te verstrekken.
Bijvoorbeeld Er moet software worden ontwikkeld en een team wordt verdeeld om aan een kenmerk van het product te werken en mag werken zoals ze willen. Een van de ontwikkelaars besluit eerst te ontwerpen, terwijl de ander besluit om eerst te coderen en de ander op het documentatiegedeelte.
Dit zal leiden tot het mislukken van het project, waardoor het noodzakelijk is om een goede kennis en begrip te hebben onder de teamleden om een verwacht product te kunnen leveren.
SDLC-cyclus
SDLC Cycle vertegenwoordigt het proces van het ontwikkelen van software.
Hieronder ziet u de schematische weergave van de SDLC-cyclus:
SDLC-fasen
Hieronder zijn de verschillende fasen weergegeven:
- Verzamelen en analyseren van vereisten
- Ontwerp
- Implementatie of codering
- Testen
- Inzet
- Onderhoud
# 1) Verzamelen en analyseren van vereisten
Tijdens deze fase wordt alle relevante informatie van de klant verzameld om een product volgens hun verwachting te ontwikkelen. Eventuele onduidelijkheden moeten alleen in deze fase worden opgelost.
Business analist en projectmanager hebben een bijeenkomst met de klant opgezet om alle informatie te verzamelen, zoals wat de klant wil bouwen, wie de eindgebruiker wordt, wat het doel van het product is. Voordat u een product gaat bouwen, is een basiskennis van of kennis van het product erg belangrijk.
Bijvoorbeeld Een klant wil een applicatie hebben waarbij het om geldtransacties gaat. In dit geval moet de vereiste duidelijk zijn, zoals wat voor soort transacties zullen worden gedaan, hoe het zal worden gedaan, in welke valuta het zal worden gedaan, enz.
Zodra het verzamelen van vereisten is voltooid, wordt een analyse uitgevoerd om de haalbaarheid van de ontwikkeling van een product te controleren. In geval van onduidelijkheid wordt er een oproep opgezet voor verdere bespreking.
Zodra de vereiste duidelijk is begrepen, wordt het SRS-document (Software Requirement Specification) gemaakt. Dit document moet grondig worden begrepen door de ontwikkelaars en moet ook door de klant worden bekeken voor toekomstig gebruik.
# 2) Ontwerp
In deze fase wordt de vereiste die is verzameld in het SRS-document gebruikt als een invoer en wordt de softwarearchitectuur die wordt gebruikt voor het implementeren van systeemontwikkeling afgeleid.
# 3) Implementatie of codering
Implementatie / codering begint zodra de ontwikkelaar het ontwerpdocument heeft ontvangen. Het software-ontwerp wordt vertaald naar de broncode. In deze fase worden alle componenten van de software geïmplementeerd.
hoe keuzerondje te selecteren in selenium webdriver
# 4) Testen
Het testen begint zodra de codering is voltooid en de modules zijn vrijgegeven voor testen. In deze fase wordt de ontwikkelde software grondig getest en worden eventuele gevonden defecten toegewezen aan ontwikkelaars om ze te verhelpen.
Opnieuw testen, regressietesten worden uitgevoerd tot het punt waarop de software voldoet aan de verwachting van de klant. Testers verwijzen naar het SRS-document om er zeker van te zijn dat de software voldoet aan de standaard van de klant.
# 5) Implementatie
Nadat het product is getest, wordt het in de productieomgeving of eerst geïmplementeerd UAT (User Acceptance Testing) wordt gedaan afhankelijk van de verwachting van de klant.
In het geval van UAT wordt een replica van de productieomgeving gemaakt en doet de klant samen met de ontwikkelaars de tests. Als de klant de applicatie vindt zoals verwacht, wordt er door de klant afgetekend om live te gaan.
# 6) Onderhoud
Na de implementatie van een product in de productieomgeving, wordt het onderhoud van het product, d.w.z. als er een probleem optreedt en moet worden opgelost of als er verbeteringen moeten worden aangebracht, door de ontwikkelaars worden verzorgd.
Levenscyclusmodellen voor softwareontwikkeling
Een softwarelevenscyclusmodel is een beschrijvende weergave van de softwareontwikkelingscyclus. SDLC-modellen hebben misschien een andere benadering, maar de basisfasen en activiteit blijven voor alle modellen hetzelfde.
# 1) Watervalmodel
Waterval model is het allereerste model dat wordt gebruikt in SDLC. Het is ook bekend als het lineaire sequentiële model.
In dit model is de uitkomst van de ene fase de input voor de volgende fase. De ontwikkeling van de volgende fase begint pas als de vorige fase is voltooid.
- Eerst worden vereisten verzameld en geanalyseerd. Zodra de vereiste is bevroren, kan alleen het systeemontwerp starten. Hierin is het aangemaakte SRS-document de output voor de Requirement-fase en fungeert het als input voor het systeemontwerp.
- In System Design Software-architectuur en -ontwerp worden documenten gecreëerd die als input dienen voor de volgende fase, d.w.z. implementatie en codering.
- In de implementatiefase wordt er gecodeerd en is de ontwikkelde software de input voor de volgende fase, namelijk testen.
- In de testfase wordt de ontwikkelde code uitvoerig getest om de defecten in de software te detecteren. Defecten worden geregistreerd in de defecttraceringstool en worden opnieuw getest zodra ze zijn opgelost. Loggen van fouten, opnieuw testen, regressietesten gaan door tot het moment dat de software in go-live staat.
- In de implementatiefase wordt de ontwikkelde code in productie genomen nadat de klant de handtekening heeft gezet.
- Eventuele problemen in de productieomgeving worden door de ontwikkelaars opgelost die onder onderhoud komen.
Voordelen van het Watervalmodel:
- Watervalmodel is het eenvoudige model dat gemakkelijk kan worden begrepen en het is het model waarin alle fasen stap voor stap worden uitgevoerd.
- De deliverables van elke fase zijn goed gedefinieerd, wat leidt tot geen complexiteit en maakt het project gemakkelijk beheersbaar.
Nadelen van het Watervalmodel:
- Watervalmodel is tijdrovend en kan niet worden gebruikt in kortlopende projecten, aangezien in dit model pas een nieuwe fase kan worden gestart als de lopende fase is voltooid.
- Watervalmodel kan niet worden gebruikt voor projecten met onzekere vereisten of waarbij de vereiste blijft veranderen, aangezien dit model verwacht dat de vereiste duidelijk zal zijn in de fase van het verzamelen van vereisten en analyse zelf en elke verandering in de latere fasen zou leiden tot hogere kosten aangezien de veranderingen zouden in alle fasen nodig zijn.
# 2) V-vormig model
V-model staat ook bekend als Verificatie- en Validatiemodel. In dit model gaan Verificatie & Validatie hand in hand, d.w.z. ontwikkelen en testen gaan parallel. V-model en watervalmodel zijn hetzelfde, behalve dat de testplanning en het testen in een vroeg stadium in V-Model beginnen.
a) Verificatiefase:
(i) Vereiste analyse:
In deze fase wordt alle benodigde informatie verzameld en geanalyseerd. Verificatieactiviteiten omvatten het herzien van de vereisten.
(ii) Systeemontwerp:
Zodra de vereiste duidelijk is, wordt een systeem ontworpen, d.w.z. architectuur, worden componenten van het product gemaakt en gedocumenteerd in een ontwerpdocument.
(iii) Ontwerp op hoog niveau:
Design op hoog niveau definieert de architectuur / het ontwerp van modules. Het definieert de functionaliteit tussen de twee modules.
(iv) Ontwerp op laag niveau:
Low-level Design definieert de architectuur / het ontwerp van individuele componenten.
(v) Codering:
Codeontwikkeling gebeurt in deze fase.
b) Validatiefase:
(i) Unit testen:
Testen van een eenheid wordt uitgevoerd met behulp van de unit testcases die zijn ontworpen en wordt gedaan in de Low-level ontwerpfase. Het testen van eenheden wordt uitgevoerd door de ontwikkelaar zelf. Het wordt uitgevoerd op individuele componenten, wat leidt tot vroege detectie van defecten.
(ii) Integratietesten:
Integratietesten wordt uitgevoerd met behulp van integratietestgevallen in de ontwerpfase op hoog niveau. Integratietesten zijn testen die worden uitgevoerd op geïntegreerde modules. Het wordt uitgevoerd door testers.
(iii) Systeemtesten:
Systeem testen wordt uitgevoerd in de systeemontwerpfase. In deze fase wordt het complete systeem getest, d.w.z. de volledige systeemfunctionaliteit wordt getest.
(iv) Acceptatietesten:
Acceptatietests zijn gekoppeld aan de fase van de behoefteanalyse en worden uitgevoerd in de omgeving van de klant.
Voordelen van V - Model:
- Het is een eenvoudig en gemakkelijk te begrijpen model.
- V-modelbenadering is goed voor kleinere projecten waarin de eis is gedefinieerd en deze in het vroege stadium vastloopt.
- Het is een systematisch en gedisciplineerd model wat resulteert in een kwalitatief hoogstaand product.
Nadelen van V-model:
- V-vormig model is niet goed voor lopende projecten.
- Verandering van eisen in een later stadium zou te hoog kosten.
# 3) Prototype-model
Het prototypemodel is een model waarin het prototype wordt ontwikkeld voorafgaand aan de eigenlijke software.
Prototypemodellen hebben beperkte functionele mogelijkheden en inefficiënte prestaties in vergelijking met de daadwerkelijke software. Dummy-functies worden gebruikt om prototypes te maken. Dit is een waardevol mechanisme om de behoeften van de klanten te begrijpen.
Softwareprototypes worden gebouwd voorafgaand aan de daadwerkelijke software om waardevolle feedback van de klant te krijgen. Feedback wordt geïmplementeerd en het prototype wordt opnieuw beoordeeld door de klant op eventuele wijzigingen. Dit proces gaat door totdat het model door de klant is geaccepteerd.
Zodra de vereisten zijn verzameld, wordt het snelle ontwerp gemaakt en wordt het prototype dat ter evaluatie aan de klant wordt gepresenteerd, gebouwd.
Feedback van klanten en de verfijnde eis wordt gebruikt om het prototype aan te passen en wordt opnieuw ter evaluatie aan de klant voorgelegd. Zodra de klant het prototype goedkeurt, wordt het gebruikt als een vereiste voor het bouwen van de eigenlijke software. De eigenlijke software is gebouwd met behulp van de Waterfall-modelbenadering.
Voordelen van prototypemodel:
- Prototypemodel vermindert de ontwikkelingskosten en -tijd omdat de defecten veel eerder worden gevonden.
- Ontbrekende functie of functionaliteit of een wijziging in de behoefte kan worden geïdentificeerd in de evaluatiefase en kan worden geïmplementeerd in het verfijnde prototype.
- Betrokkenheid van een klant vanaf de beginfase vermindert elke verwarring in de vereisten voor of het begrip van functionaliteit.
Nadelen van prototypemodel:
- Omdat de klant bij elke fase betrokken is, kan de klant de eis van het eindproduct wijzigen, wat de complexiteit van de scope vergroot en de levertijd van het product kan verlengen.
# 4) Spiraalmodel
Het spiraalmodel omvat een iteratieve en prototypebenadering.
In de iteraties worden spiraalvormige modelfasen gevolgd. De lussen in het model vertegenwoordigen de fase van het SDLC-proces, d.w.z. de binnenste lus is het verzamelen en analyseren van vereisten die volgt op de planning, risicoanalyse, ontwikkeling en evaluatie. De volgende lus is ontwerpen, gevolgd door implementatie en vervolgens testen.
Spiraalmodel heeft vier fasen:
- Planning
- Risico analyse
- Engineering
- Evaluatie
(i) Planning:
De planningsfase omvat het verzamelen van vereisten, waarbij alle vereiste informatie van de klant wordt verzameld en wordt gedocumenteerd. Het specificatiedocument voor softwarevereisten wordt gemaakt voor de volgende fase.
(ii) Risicoanalyse:
In deze fase wordt voor de risico's de beste oplossing gekozen en wordt er geanalyseerd door het prototype te bouwen.
Bijvoorbeeld kan het risico van toegang tot de gegevens uit een database op afstand zijn dat de toegangssnelheid van de gegevens te laag is. Het risico kan worden opgelost door een prototype van het gegevenstoegangssubsysteem te bouwen.
(iii) Techniek:
Zodra de risicoanalyse is voltooid, is het coderen en testen voltooid.
(iv) Evaluatie:
De klant evalueert het ontwikkelde systeem en plant voor de volgende iteratie.
Voordelen van Spiraalvormig Model:
- Risicoanalyse wordt uitgebreid gedaan met behulp van de prototypemodellen.
- Elke verbetering of wijziging in de functionaliteit kan in de volgende iteratie worden gedaan.
Nadelen van Spiral Model:
- Het spiraalmodel is alleen het meest geschikt voor grote projecten.
- De kosten kunnen hoog zijn omdat het een groot aantal iteraties kan vergen, wat kan leiden tot een hoge tijd om het eindproduct te bereiken.
# 5) Iteratief incrementeel model
Het iteratieve incrementele model verdeelt het product in kleine stukjes.
Bijvoorbeeld , De functie die in de iteratie moet worden ontwikkeld, wordt beslist en geïmplementeerd. Elke iteratie doorloopt de fasen, namelijk analyse van vereisten, ontwerpen, coderen en testen. Gedetailleerde planning is niet vereist in iteraties.
Zodra de iteratie is voltooid, wordt een product geverifieerd en aan de klant geleverd voor evaluatie en feedback. De feedback van de klant wordt samen met de nieuw toegevoegde functie in de volgende iteratie geïmplementeerd.
Daarom neemt het product toe in termen van functies en zodra de iteraties zijn voltooid, bevat de laatste build alle functies van het product.
Fasen van het iteratieve en incrementele ontwikkelingsmodel:
- Aanvangsfase
- Uitwerkingsfase
- Bouwfase
- Overgangsfase
(i) Aanvangsfase:
De aanvangsfase omvat de vereiste en reikwijdte van het project.
(ii) Uitwerkingsfase:
In de uitwerkingsfase wordt de werkarchitectuur van een product opgeleverd die het in de aanvangsfase geïdentificeerde risico dekt en tevens voldoet aan de niet-functionele eisen.
(iii) Bouwfase:
In de constructiefase wordt de architectuur ingevuld met de code die klaar is voor implementatie en tot stand komt door analyse, ontwerp, implementatie en testen van de functionele eis.
(iv) Overgangsfase:
In de Transitiefase wordt het product ingezet in de Productieomgeving.
Voordelen van een iteratief en incrementeel model:
- Elke wijziging in de vereiste kan eenvoudig worden doorgevoerd en zou niet kosten, aangezien er een mogelijkheid is om de nieuwe vereiste in de volgende iteratie op te nemen.
- Risico wordt geanalyseerd en geïdentificeerd in de iteraties.
- Gebreken worden in een vroeg stadium ontdekt.
- Omdat het product in kleinere brokken is verdeeld, is het gemakkelijk om het product te beheren.
Nadelen van Iteratief & Incrementeel Model:
- Volledige vereisten en begrip van een product zijn vereist om stapsgewijs af te breken en op te bouwen.
# 6) Big Bang-model
Big Bang-model heeft geen gedefinieerd proces. Geld en inspanningen worden bij elkaar gebracht omdat de input en output komt als een ontwikkeld product dat al dan niet hetzelfde is als wat de klant nodig heeft.
Big Bang Model vereist niet veel planning en planning. De ontwikkelaar voert de vereiste analyse en codering uit en ontwikkelt het product volgens zijn inzicht. Dit model wordt alleen gebruikt voor kleine projecten. Er is geen testteam en er vinden geen formele tests plaats, en dit kan een oorzaak zijn voor het mislukken van het project.
Voordelen van Big Bang Model:
- Het is een heel eenvoudig model.
- Er is minder planning en planning nodig.
- De ontwikkelaar heeft de flexibiliteit om zijn eigen software te bouwen.
Nadelen van het Big Bang-model:
- Big Bang-modellen kunnen niet worden gebruikt voor grote, lopende en complexe projecten.
- Hoog risico en onzekerheid.
# 7) Agile model
Agile Model is een combinatie van het iteratieve en incrementele model. Dit model richt zich meer op flexibiliteit bij het ontwikkelen van een product dan op de behoefte.
In Agile wordt een product opgesplitst in kleine incrementele builds. Het is niet in één keer als compleet product ontwikkeld. Elke build neemt toe in termen van functies. De volgende build is gebaseerd op eerdere functionaliteit.
In agile iteraties worden sprints genoemd. Elke sprint duurt 2-4 weken. Aan het einde van elke sprint verifieert de product owner het product en na zijn goedkeuring wordt het afgeleverd bij de klant.
Feedback van klanten wordt gebruikt voor verbetering en aan zijn suggesties en verbeteringen wordt gewerkt in de volgende sprint. Elke sprint wordt getest om het risico op storingen te minimaliseren.
Voordelen van Agile Model:
- Het biedt meer flexibiliteit om zich aan te passen aan de veranderingen.
- De nieuwe functie kan eenvoudig worden toegevoegd.
- Klanttevredenheid, aangezien de feedback en suggesties in elke fase worden opgenomen.
Nadelen:
- Gebrek aan documentatie.
- Agile heeft ervaren en hoogopgeleide middelen nodig.
- Als een klant niet duidelijk weet hoe hij het product precies wil hebben, dan mislukt het project.
Gevolgtrekking
Het naleven van een geschikte levenscyclus is erg belangrijk voor de succesvolle voltooiing van het project. Dit maakt op zijn beurt het beheer gemakkelijker.
Verschillende levenscyclusmodellen voor softwareontwikkeling hebben hun eigen voor- en nadelen. Het beste model voor elk project kan worden bepaald door factoren zoals vereiste (of het nu duidelijk of onduidelijk is), systeemcomplexiteit, omvang van het project, kosten, vaardigheidsbeperking, enz.
Voorbeeld in het geval van een onduidelijke vereiste, kunnen Spiral- en Agile-modellen het beste worden gebruikt, aangezien de vereiste verandering in elk stadium gemakkelijk kan worden ondergebracht.
Watervalmodel is een basismodel en alle andere SDLC-modellen zijn alleen daarop gebaseerd.
Ik hoop dat je een enorme kennis van SDLC zou hebben opgedaan.
Aanbevolen literatuur
- Spiraalmodel - Wat is het SDLC-spiraalmodel?
- Wat is het SDLC-watervalmodel?
- Wat is Software Testing Life Cycle (STLC)?
- Software testen QA Assistant Job
- 10 BESTE maatwerk softwareontwikkelingsbedrijven en -diensten in 2021
- Praktische softwaretests - Nieuw GRATIS eBook (download)
- Onsite - Offshore-model van softwaretestprojecten (en hoe u dit voor u kunt laten werken)
- Waarom heeft software bugs?