Model domeny to zarys konkretnego problemu używanego w dziedzinach inżynierii oprogramowania i koncepcyjnego rozwiązywania problemów. Celem tego modelu jest rozbicie konkretnego problemu na części składowe, tworząc wizualną reprezentację działania określonego procesu. Korzystając z modeli domen, inżynierowie oprogramowania mogą upewnić się, że rozumieją wszystkie elementy problemu przed rozpoczęciem kodowania rozwiązania lub implementacji go w oprogramowaniu, mając nadzieję, że oszczędzają czas, wydatki i wysiłek podczas ukończenia całego projektu.
Schemat blokowy jest dobrą reprezentacją modelu domeny, ponieważ pokazuje, w jaki sposób różne jednostki zaangażowane w konkretny problem są ze sobą powiązane. Na schemacie blokowym wszystkie elementy układanki są ze sobą połączone w logiczny sposób. Na przykład w kontekście umowy ubezpieczeniowej, podczas gdy zarówno pierwotna ubezpieczona osoba fizyczna, jak i jej dzieci, wszystkie należałyby do kategorii „ubezpieczonych”, dzieci również należałyby do podzbioru kategorii „ubezpieczonych”: „osoby pozostające na utrzymaniu”. ”. Wizualne budowanie tych relacji może poprawić komunikację w projekcie, pomagając wszystkim zaangażowanym pozostać na tej samej stronie.
Ustalenie kluczowych pojęć i unikalnego słownictwa konkretnego problemu jest jednym z pierwszych kroków w kierunku wygenerowania modelu domeny. Po wymienieniu różnych zaangażowanych klas i podklas — takich jak „zależne”, „ubezpieczony” i „plan ubezpieczeniowy” — utworzenie modelu domeny wymaga od projektanta połączenia tych klas w logicznej kolejności, pokazując, jak współdziałają one ze sobą na podstawy. Na przykład „osoby pozostające na utrzymaniu” rzadko będą kontaktować się bezpośrednio z firmą ubezpieczeniową; wszystkie interakcje osoby na utrzymaniu będą przebiegać przez pośrednika, pierwotnego ubezpieczonego. W związku z tym klasa „osoby pozostające na utrzymaniu” zostanie powiązana z „ubezpieczonymi”, a grupa „ubezpieczonych” z „planem ubezpieczeniowym”, bez bezpośredniego związku między „osobami na utrzymaniu” a „planem ubezpieczeniowym”.
Główną zaletą modelu domeny jest to, że jasno definiuje i zawiera problem, niczego nie pomijając. Wykonując ten poziom dogłębnego planowania przed faktycznym rozpoczęciem kodowania projektu, problem często staje się łatwiejszy do rozwiązania, co prowadzi do jaśniejszego i bardziej zwięzłego kodu. Bez modelu domeny może wystąpić powtarzający się kod i nieefektywne rozmieszczenie klas i procedur. Podobnie jak w przypadku próby napisania złożonego artykułu bez wcześniejszego jasnego zarysu, wszystko jest drastycznie uproszczone dzięki dobremu planowi pracy.