Vmodel vs Vannfallsmodell
En av de eldste debattene innen programvare er debatten mellom fossen og V-modellen. Denne debatten dreier seg om den beste programvaremodellen som utviklere kan benytte seg av. Det er ulike faser som er involvert i programvareutviklingsprosessen. Fasene er like i både fossen og V-modellen, og det eneste som hittil har vært omstridt er tilnærmingen som disse to modellene kan oppnås av.
I V-modellen er det mange aktiviteter som, når de tegnes sammen på et skjematisk diagram, danner en V-form. Hver fase som er sagt, har en tilsvarende fase som er involvert i testing. Denne modellen på grunn av like mange test og utvikling refereres til som verifikasjons- og valideringsmodell. Verifikasjonssiden handler om utviklingsenden mens validering omhandler testfaser. Blant aktivitetene som verifikasjonen kommer til å omfatte, er kravanalyse der informasjon er samlet fra sluttbrukeren. Denne informasjonen er viktig i utviklingen av programvaredokumentasjonen.
Neste opp er systemdesign, som tar sikte på å forberede funksjonell utforming av programvare. Den neste tingen som følger i tråd er arkitektonisk design. Dette kalles også høyt nivå design som grensesnitt forholdet og databasen tabeller og avhengighetene av tabellene. Den siste fasen i utviklingsprosessen er koding der hele prosjektet er oppdelt i små seksjoner for koding som deretter slås sammen for å skape hele systemet.
Valideringssiden, på den andre siden, har fire stadier som i verifikasjonsfasen. Disse fasene begynner med enhetstesting, deretter integreringstesting, systemtesting og til slutt brukernes aksepttesting der hele systemet vurderes som en helhet.
Fossemodellen er den tidligste programvareutviklingsprosedyren, med opprinnelse fra industri- og byggebransjen. Det grunnleggende konseptet i denne prosessen er at det er en sekvensiell prosessstrøm som skaler ned etter hverandre, sett i en foss. Disse faser av vannfallsmodellen inkluderer kravsamling og analyse der kundens krav er samlet. Dette trinnet fører til designfasen, hvor det meste av programvaren er opprettet og deretter gjennomføringsfasen der programvarekoden er skrevet. Fasen som følger er testing og feilsøking, som fører til levering og endelig vedlikeholdsfasen.
Hovedforskjellen mellom de to modellene er at testaktivitetene utføres etter at utviklingen er over. V-modellen ser ut til å ligne en modell som har en gitt start og slutt mens vannfallsmodellen er kontinuerlig iterativ. V-modellen er forskjellig ved å være en samtidig prosess. Fra den forskjellige programvaren som er produsert i markedet, synes programvare som produseres ved hjelp av V-prosessen å være lavere, da det er mange testaktiviteter i motsetning til vannfallsmodellen som har en enkelt testfase når prosjektet er fullført.
Det kan derfor sies at bruken av V-modellen er foretrukket når det er kontinuerlige endringer som må inkluderes. Dette er for en person eller en utvikling som har klienten urolig over behovene til prosjektet, idet de fortsetter å forandre hva det er de oppfatter for å virke som ideelle. Personer med faste krav som ikke vil endre seg i utviklingsfasen av prosjektet, bør bosette seg på vannfallsmodellen. Det er også viktig å merke seg at endringer i V-modellen er billige å implementere da testingen er og utvikling skjer samtidig. Dette er ikke tilfelle med vannfallsmodellen, som har en tendens til å være en kostbar affære, da eventuelle programvarefeil ikke kan bli lagt merke til før det kommer til testfasen.