Razvoj programske opreme je proces, ki zahteva natančno načrtovanje in predvidevanje. Za dokumentiranje razvoja programske opreme je na voljo več tehnik. Unified Modeling Language (UML) je standardna metoda, ki se uporablja za dokumentiranje artefaktov, potrebnih za razvoj programske opreme.
UML je zbirka najboljših praks oblikovanja, ki se že vrsto let uporabljajo v skupnosti za razvoj programske opreme. Unified Modeling Language je prvič predstavila leta 1996 Skupina za upravljanje objektov (OMG). Začetno različico UML je ustvarila skupina strokovnjakov za razvoj programske opreme, ki se pogosto imenujejo trije amigosi.
Trije amigosi so Grady Booch, James Rumbaugh in Ivar Jacobson. Veljajo za vodje in ustanovitelje projekta poenotenja standardnih metod leta 1996, ki je pripeljal do ustvarjanja Unified Modeling Language. To prizadevanje za združitev je vzelo najboljše pristope za načrtovanje in razvoj programske opreme ter ustvarilo okvir za večkratno uporabo, ki ga je bilo mogoče zlahka razumeti.
Pristop oblikovanja UML uporablja grafične zapise kot komunikacijsko napravo za programe programske opreme in skupnost uporabnikov. Ti grafični zapisi pomagajo skupini za razvoj programske opreme raziskati morebitne načrte in pasti. Unified Modeling Language se običajno uporablja kot načrt za načrtovanje programske aplikacije. Ta načrt pojasnjuje, kako bo programska aplikacija zgrajena.
Agilno modeliranje (AM) je primer pristopa k načrtovanju programske opreme, ki uporablja UML. AM je zbirka praks in načel za načrtovanje programske opreme. Procesu UML pogosto očitajo, da je obremenjujoč za razvojno ekipo, zlasti na področju upravljanja z dokumenti. Agilno modeliranje poskuša vzeti potrebne dele UML in jih racionalizirati v okvir agilnega oblikovanja. Agilno modeliranje uporablja dokumente UML kot grobe osnutke načrta in ne končne načrte ali uradni dokument. To odpravlja potrebo po rednih posodobitvah dokumentov UML.
Testiranje na podlagi modela (MBT) je postopek, kjer se testiranje zaključi na podlagi definiranih načrtov. Te zasnove so zgrajene na podlagi zahtev sistema. Določene zahteve se nato uporabijo za generiranje testnih primerov, ki so napisani kot testni skripti. Artefakti MBT lahko nato ustvarijo potrebne informacije za razlago pričakovanega stanja sistema.
Eden najbolj zapletenih procesov v razvoju programske opreme je integracija komponent. Model-Driven Integration (MDI) je proces, zasnovan za poenostavitev integracijskih prizadevanj aplikacije. Znotraj MDI je ustvarjen dizajn v Unified Modeling Language, ki predstavlja nadzor izmenjave poti v programski opremi.