V softvérovom inžinierstve je proces vývoja softvéru procesom rozdelenia práce na vývoji softvéru do menších, paralelných alebo postupných krokov alebo čiastkových procesov s cieľom zlepšiť riadenie návrhu a/alebo produktu. Je známy aj ako životný cyklus vývoja softvéru (SDLC). Metodika môže zahŕňať predbežné definovanie konkrétnych výstupov a artefaktov, ktoré vytvára a dokončuje projektový tím na vývoj alebo údržbu aplikácie.
Väčšinu moderných vývojových procesov možno vágne označiť za agilné. Medzi ďalšie metodiky patria vodopád, prototypovanie, iteratívny a inkrementálny vývoj, špirálový vývoj, rýchly vývoj aplikácií a extrémne programovanie.
"Model" životného cyklu sa niekedy považuje za všeobecnejší termín pre kategóriu metodík a "proces" vývoja softvéru za špecifickejší termín na označenie konkrétneho procesu, ktorý si zvolila konkrétna organizácia [potrebná citácia] Napríklad existuje mnoho špecifických procesov vývoja softvéru, ktoré zodpovedajú modelu špirálového životného cyklu. Táto oblasť sa často považuje za podmnožinu životného cyklu vývoja systémov.
Vývoj softvéru zvyčajne zahŕňa tieto kroky:
- Výber metodiky na vytvorenie rámca, v ktorom sa uplatňujú kroky vývoja softvéru. Opisuje celkový pracovný postup alebo plán projektu. Medzi metodiky môžu patriť agilný vývoj, DevOps, rýchly vývoj aplikácií (RAD), Scaled Agile Framework (SAFe), vodopád a iné. (Pozri slovník pojmov.)
- Zhromažďovanie požiadaviek s cieľom pochopiť a zdokumentovať, čo požadujú používatelia a iné zainteresované strany.
- Výber alebo vytvorenie architektúry ako základnej štruktúry, v rámci ktorej bude softvér fungovať.
- Vypracovanie návrhu na základe riešení problémov vyplývajúcich z požiadaviek, často vrátane procesných modelov a storyboardov.
- Vytvorenie modelu pomocou modelovacieho nástroja, ktorý používa modelovací jazyk, ako je SysML alebo UML, na vykonanie včasného overenia, prototypovania a simulácie návrhu.
- Konštruovanie kódu vo vhodnom programovacom jazyku. Zahŕňa vzájomné a tímové preskúmanie s cieľom včas odstrániť problémy a rýchlejšie vytvoriť kvalitný softvér.
- Testovanie pomocou vopred naplánovaných scenárov ako súčasť návrhu softvéru a kódovania - a vykonávanie testovania výkonnosti na simuláciu testovania záťaže aplikácie.
- Správa konfigurácie a chýb s cieľom pochopiť všetky softvérové artefakty (požiadavky, návrh, kód, testovanie) a vytvoriť odlišné verzie softvéru. Stanovenie priorít zabezpečenia kvality a kritérií vydania na riešenie a sledovanie chýb.
- Nasadzovanie softvéru na používanie a reagovanie na problémy používateľov a ich riešenie.
- V prípade potreby migrácia údajov do nového alebo aktualizovaného softvéru z existujúcich aplikácií alebo zdrojov údajov.
- Riadenie a meranie projektu s cieľom zachovať kvalitu a dodávku počas celého životného cyklu aplikácie a vyhodnocovať proces vývoja pomocou modelov, ako je napríklad Capability Maturity Model (CMM).