Hvad er involveret i udvikling af computersoftware?
Softwareudviklingsprocessen kræver omhyggelig analyse, specifikation, arkitekturdesign og implementering. De næste trin inkluderer softwaretest, dokumentation, træning og løbende brugersupport. Flere forskellige typer computersoftwareudviklingsmodeller er tilgængelige for at hjælpe softwareudviklere med at oprette forskellige computerprogrammer. Denne udviklingslivscyklus involverer alle trin fra den indledende softwareide eller koncept til implementering af det endelige produkt. Nogle af processerne, der bruges til udvikling af computersoftware, er vandfalds-, iterative, inkrementelle og smidige procesmodeller.
Efterhånden som behovene for at udvikle computersoftware ændres, så vil metoderne til at udvikle denne software også ændre sig. De vigtigste ingredienser i udviklingen af et softwareprogram bestemmes af den forskellige type udviklingsproces, der anvendes. De fleste softwareudviklere vil bruge en kombination eller dele af hver proces i udvikling af computersoftware.
Den første proces i udvikling af computersoftware kaldes vandfaldsmodellen. Denne udviklingsmodel begynder med at se nærmere på alle kravene til potentiel applikationssoftware, designe og integrere den aktuelle software, udføre den nødvendige test eller validering, endelig installation og levere løbende vedligeholdelse af softwaren. I denne computersoftwareudviklingsproces skal hver fase afsluttes, før den næste fase startes. Anmeldelser og ændringer kan bruges, når hver udviklingsfase er afsluttet.
Processen med iterativ og inkrementel udvikling af computersoftware ligger i det andet ekstreme af softwareudviklingsprocesser fra vandfaldsmodellen. Denne proces bruges af udviklere, når en kunde muligvis ikke ved nøjagtigt, hvad de har brug for fra et specifikt computerprogram. Behovsanalyse, programmering og komponentudvikling gentages i korte cyklusser eller iterationer, indtil det endelige computersoftwareprogram er afsluttet. Denne proces bruger informationsindsamling og arbejde på en række mindre komponenter for at hjælpe med at bringe fuld funktionalitet til det færdige program.
Agil computersoftwareudvikling er mindre struktureret end vandfaldet eller iterative / inkrementelle udviklingsmodeller. Udvikling af software med den smidige udviklingsmodel kræver mere kreativitet end struktur. I denne model er software i konstant flux, følger ingen logisk proces og forbliver ufuldstændig. De mennesker, der udvikler softwaren, og måderne de samarbejder på er vigtigere end selve processen. Kraften i denne kreative softwareudviklingsproces ligger i empowerment og samarbejde af udviklingsholdet såvel som i dets kapacitet til at reagere på nødvendige ændringer.