Razvoj softvera je proces koji zahtijeva precizno planiranje i predviđanje. Postoji nekoliko dostupnih tehnika za dokumentiranje razvoja softvera. Unified Modeling Language (UML) standardna je metoda koja se koristi za dokumentiranje artefakata potrebnih za razvoj softvera.
UML je zbirka najboljih praksi dizajna koja se već dugi niz godina koristi u zajednici za razvoj softvera. Unified Modeling Language je prvi put uveden 1996. godine od strane Object Management Group (OMG). Početnu verziju UML-a kreirala je grupa stručnjaka za razvoj softvera koji se često nazivaju tri amigosa.
Tri amigosa su Grady Booch, James Rumbaugh i Ivar Jacobson. Oni se smatraju vođama i utemeljiteljima projekta objedinjavanja standardnih metoda 1996. koji je doveo do stvaranja Unified Modeling Language. Ovaj napor ujedinjenja uzeo je najbolje pristupe za dizajn i razvoj softvera i stvorio okvir za ponovno korištenje koji se mogao lako razumjeti.
Pristup UML dizajnu koristi grafičke zapise kao komunikacijski uređaj za softverske projekte i korisničku zajednicu. Ove grafičke oznake pomažu timu za razvoj softvera istražiti potencijalne dizajne i zamke. Unified Modeling Language se obično koristi kao nacrt za dizajn softverske aplikacije. Ovaj nacrt objašnjava kako će se izgraditi softverska aplikacija.
Agilno modeliranje (AM) primjer je pristupa dizajnu softvera koji koristi UML. AM je zbirka praksi i principa za dizajniranje softvera. UML proces se često kritizira jer je opterećujući razvojni tim, posebno u području upravljanja dokumentima. Agilno modeliranje pokušava uzeti potrebne dijelove UML-a i pojednostaviti ih u okvir agilnog dizajna. Agilno modeliranje koristi UML dokumente kao grube nacrte dizajna, a ne konačne nacrte ili formalni dokument. To uklanja potrebu za redovitim ažuriranjima UML dokumenata.
Testiranje temeljeno na modelu (MBT) je proces u kojem se testiranje završava na temelju definiranih dizajna. Ovi dizajni su izgrađeni prema zahtjevima sustava. Definirani zahtjevi se zatim koriste za generiranje testnih slučajeva, koji su napisani kao testne skripte. MBT artefakti mogu zatim generirati potrebne informacije za objašnjenje očekivanog stanja sustava.
Jedan od najsloženijih procesa u razvoju softvera je integracija komponenti. Integracija vođena modelom (MDI) je proces dizajniran da pojednostavi integracijski napor aplikacije. Unutar MDI-a kreiran je dizajn u Unified Modeling Languageu koji predstavlja kontrolu putova razmjene u softveru.