Metodologija razvoja programske opreme (SDM) je sredstvo, s katerim se program ustvari z generiranjem kode in uporabo različnih orodij. To se v bistvu nanaša na sam proces in način njegovega upravljanja, da se zagotovi, da je razvoj končan pravočasno in v razumnem proračunu. Metodologija razvoja programske opreme lahko ima številne oblike, odvisno od narave ustvarjenega programa in uporabljenih orodij. Na splošno pa SDM ureja potreba po zagotavljanju delitve nalog na obvladljive elemente in proces, ki gre skozi številne, razširitvene ponovitve.
V metodologiji razvoja programske opreme je mogoče uporabiti veliko različnih okvirov, ki se običajno uporabljajo za organizacijo procesa ustvarjanja novega programa. Več ogrodij je mogoče uporabiti skupaj za ustvarjanje enega SDM, nato pa je mogoče številne metodologije združiti v družino SDM. Uporaba metodologije razvoja programske opreme pogosto vzpostavlja in spodbuja najboljše prakse pri ustvarjanju nove programske opreme za skupino razvijalcev. Brez SDM, na katerega bi morali gledati med razvojem, lahko proces zlahka postane kaotičen in vodi v izgubo tako finančnih sredstev kot časa.
Ena najpogostejših in preprostih vrst metodologije razvoja programske opreme se imenuje model “slap”. Pred uporabo tega SDM je treba določiti posebne cilje za določen proces in celoten razvojni cikel razbiti na različne elemente. Nato se lahko približamo enemu samemu elementu in ga popeljemo skozi vrsto korakov, od katerih je vsak vizualiziran kot procesija navzdol, ki ustvarja koncept »slapa«. Ta vrsta metodologije razvoja programske opreme se v mnogih situacijah ne uporablja več, saj so jo nadomestile novejše metode, vendar še naprej služi kot osnovni primer, kako je treba strukturirati SDM.
“Spiralni” model je postal ena priljubljena metodologija razvoja programske opreme, saj uspe zajeti dva pomembna elementa procesa v eni vizualizaciji. Na splošno je spirala ena sama črta, ki se začne v središču in se premika navzven v koncentričnih obročkih, ki postanejo večji, vendar potekajo skozi isto krožno obliko. To se uporablja kot model za razvoj programske opreme, saj se vsak element programa začne z majhnim in se med razvojem povečuje. Ko se to zgodi, gre tudi skozi številne faze, kot so razvoj, vrednotenje in analiza, skozi različne ponovitve. Vse to ustvarja en sam poenoten proces, ki se navzven povečuje, ko se premika skozi ponavljajoče se korake, podobno kot spirala.