Hva er en domenemodell?
En domenemodell er en disposisjonslignende oversikt over et spesifikt problem som brukes innen programvareteknikkfelt og konseptuell problemløsning. Hensikten med denne modellen er å dele et spesifikt problem ned i komponentene, og skape en visuell fremstilling av hvordan en spesifikk prosess fungerer. Gjennom bruk av domenemodeller kan programvareingeniører sikre at de forstår alle elementene i et problem før de begynner å kode en løsning eller implementere den i et programvare, forhåpentligvis spare tid, kostnader og krefter i gjennomføringen av det totale prosjektet.
Et flytskjema er en god representasjon av en domenemodell, da den viser hvordan de forskjellige enhetene som er involvert i et bestemt problem, henger sammen. I et flytskjema er alle de forskjellige brikkene i et puslespill koblet sammen på en logisk måte. For eksempel i forbindelse med en forsikringsordning, mens både den opprinnelige personen som dekkes og hans eller hennes barn alle vil falle i kategorien "forsikrede", ville barna også falle i en undergruppe av "forsikrede" klassen: "forsørgere ." Å visuelt konstruere disse forholdene kan forbedre kommunikasjonen på et prosjekt, og hjelpe alle involverte å forbli på samme side.
Å etablere nøkkelbegrepene og unike vokabularer for et spesifikt problem er et av de første trinnene mot å generere en domenemodell. Etter å ha oppført de forskjellige klassene og underklassene som er involvert - for eksempel "avhengig", "forsikret" og "forsikringsplan" - krever det å lage en domenemodell at modellereren kobler disse klassene i en logisk rekkefølge, og viser hvordan de samhandler med hverandre på en regelmessig. For eksempel vil "forsørgere" sjelden samhandle direkte med forsikringsselskapet; alle avhengiges interaksjoner vil skje gjennom en mellommann, den opprinnelige forsikrede. På grunn av dette vil klassen "forsørgere" være knyttet til "forsikret", og klassen "forsikret" knyttet til "forsikringsplan", uten direkte forbindelse mellom "forsikrede" og "forsikringsplan."
Den primære fordelen med en domenemodell er at den tydelig definerer og innkapsler et problem og ikke forlater noe. Ved å utføre dette nivået av grundig planlegging før du faktisk begynner kodingen av et prosjekt, blir problemet ofte lettere å løse, noe som fører til en klarere og mer kortfattet kode. Uten en domenemodell kan repeterende kode og ineffektiv ordning av klasser og rutiner forekomme. Mye som å forsøke å skrive et sammensatt papir uten en klar oversikt på forhånd, blir ting drastisk forenklet med en god arbeidsplan.