Hva er involvert i utvikling av datamaskinprogramvare?
Programvareutviklingsprosessen krever nøye analyse, spesifikasjoner, arkitekturdesign og implementering. De neste trinnene inkluderer programvaretesting, dokumentasjon, opplæring og kontinuerlig brukerstøtte. Flere forskjellige typer datamaskinprogramvareutviklingsmodeller er tilgjengelige for å hjelpe programvareutviklere med å lage forskjellige dataprogrammer. Denne utviklingslivssyklusen involverer alle trinn fra den første programvareideen eller konseptet til implementeringen av det endelige produktet. Noen av prosessene som brukes i utvikling av datamaskinprogramvare er fossefall, iterative, inkrementelle og smidige prosessmodeller.
Ettersom behovene for å utvikle dataprogramvare endres, vil metodene for å utvikle den programvaren også gjøre det. De viktigste ingrediensene i utviklingen av et program bestemmes av den forskjellige typen utviklingsprosess som brukes. De fleste programvareutviklere vil bruke en kombinasjon eller deler av hver prosess i utvikling av dataprogramvare.
Den første prosessen i utvikling av datamaskinprogramvare kalles fossefallet. Denne utviklingsmodellen begynner med å se nærmere på alle kravene til potensiell applikasjonsprogramvare, designe og integrere den faktiske programvaren, gjennomføre nødvendig testing eller validering, endelig installasjon og sørge for kontinuerlig vedlikehold av programvaren. I denne utviklingsprosessen for datamaskinprogramvare må hver fase være fullført før neste fase startes. Vurderinger og endringer kan brukes etter at hver utviklingsfase er fullført.
Prosessen med iterativ og trinnvis programvareutvikling ligger i det andre ytterpunktet av programvareutviklingsprosesser fra fossemodellen. Denne prosessen brukes av utviklere når en kunde kanskje ikke vet nøyaktig hva de trenger fra et bestemt dataprogram. Behovsanalyse, programmering og komponentutvikling blir gjentatt i korte sykluser, eller iterasjoner, til det endelige dataprogrammet er fullført. Denne prosessen bruker informasjonsinnsamling og arbeid med en rekke mindre komponenter for å gi full funksjonalitet til det ferdige programmet.
Agile datamaskinprogramvareutvikling er mindre strukturert enn fossen eller iterative / inkrementelle utviklingsmodeller. Å utvikle programvare med den smidige utviklingsmodellen krever mer kreativitet enn struktur. I denne modellen er programvaren i konstant fluks, følger ingen logisk prosess og forblir ufullstendig. Menneskene som utvikler programvaren og måtene de samarbeider på er viktigere enn selve prosessen. Kraften i denne kreative programvareutviklingsprosessen ligger i styrking og samarbeid av utviklingsteamet, så vel som i dets kapasitet til å svare på endringer som trengs.