Model domene je pregled specifičnog problema koji se koristi u područjima softverskog inženjerstva i konceptualnog rješavanja problema nalik na skicu. Svrha ovog modela je rastaviti određeni problem na njegove sastavne dijelove, stvarajući vizualni prikaz kako određeni proces funkcionira. Korištenjem modela domene, softverski inženjeri mogu osigurati da razumiju sve elemente problema prije nego počnu kodirati rješenje ili ga implementirati u dio softvera, nadajmo se da će uštedjeti vrijeme, troškove i trud u završetku cjelokupnog projekta.
Dijagram toka je dobar prikaz modela domene, jer pokazuje kako se različiti entiteti uključeni u određeni problem međusobno povezuju. U dijagramu toka svi različiti dijelovi slagalice povezani su zajedno na logičan način. Na primjer, u kontekstu aranžmana osiguranja, dok bi i izvorni osiguranik i njegova ili njezina djeca svi spadali u kategoriju „osiguranih“, djeca bi također spadala u podskup klase „osiguranih“: „uzdržavani .” Vizualno konstruiranje ovih odnosa može poboljšati komunikaciju na projektu, pomažući svima koji su uključeni da ostanu na istoj stranici.
Uspostavljanje ključnih koncepata i jedinstvenog rječnika specifičnog problema jedan je od prvih koraka prema generiranju modela domene. Nakon navođenja različitih uključenih klasa i podklasa – kao što su “ovisni”, “osigurani” i “plan osiguranja” – stvaranje modela domene zahtijeva od modelara da poveže te klase u logičnom redoslijedu, pokazujući kako one međusobno djeluju na redovito. Na primjer, “ovisni” će rijetko komunicirati izravno s osiguravajućim društvom; sve interakcije uzdržavanih osoba odvijat će se preko posrednika, izvorne osigurane strane. Zbog toga će klasa “održavanih” biti povezana s “osiguranicima”, a klasa “osiguranih” povezana s “planom osiguranja”, bez izravne veze između “održavanih osoba” i “plana osiguranja”.
Primarna prednost modela domene je da jasno definira i sadrži problem, ne izostavljajući ništa. Izvođenjem ove razine dubinskog planiranja prije stvarnog početka kodiranja projekta, problem često postaje lakše riješiti, što dovodi do jasnijeg, sažetijeg koda. Bez modela domene može doći do ponavljanja koda i neučinkovitog rasporeda klasa i rutina. Slično kao pokušaj pisanja složenog rada bez prethodnog jasnog obrisa, stvari se drastično pojednostavljuju dobrim planom rada.