6

Ich habe eine Frage zu einer Terminologie, die mich seit Ewigkeiten verwirrt und ich kann es einfach nicht herausfinden. Wikipedia neigt, diese Dinge zu erklären, sehr formal, was für mich sehr schwer zu verstehen ...Unterschied zwischen Domänenmodell, konzeptuellem Modell und Geschäftsmodell usw.

Die Begriffe, die ich zu kämpfen habe, zu verstehen ist: problem domain, conceptual model, domain model, business model, business domain, business logic, Domain-Logik usw. Einige von ihnen bedeuten das Gleiche, einige werden synonym verwendet, einige von ihnen bedeuten unterschiedliche Dinge in verschiedenen Kontexten. Was ich verlange, ist eine High Level-Übersicht, so dass ich nicht über diese Begriffe verwirrt bin ...

Sind diese Begriffe alle Teil von domain driven design? Ist es OO sprechen? In welchem ​​Kontext sollte ich sie platzieren?

Das ist, was ich bisher verstehen:

  • Eine Domain ist der Gegenstand (das heißt, die Welt, die Sie modellieren) und ein Modell versucht, ein Konzept/Thema prägnant zu erklären.
  • Daher versucht ein Domänenmodell (= konzeptuelles Modell), die Domäne prägnant zu erklären.
  • So würde ein Geschäftsmodell erklären, was ein Unternehmen tut, und daher wäre ein Unternehmen das gleiche wie eine Domäne, außer dass eine Domäne breiter ist, sie ist nicht nur auf ein Geschäft beschränkt.

Ich habe einige Erfahrung in ER-Modellierung, und ich verstehe von wikipedia, dass ein ER-Modell eines von vielen Techniken, die das konzeptionelle Modell darzustellen verwendet wird (Domänenmodell).

Ich könnte völlig falsch sein, aber es sollte Ihnen zeigen, wo meine Verwirrung ...

+0

Sind eine Domäne und eine Problemdomäne das gleiche? – user1534664

Antwort

5

Ich bezweifle, gibt es eine umfassende, formale Definition dieser Begriffe, aber nach meiner Erfahrung allgemein anerkannten Definitionen sind die folgenden:

Eine Domain ist ein Bereich von Interesse, oder wie Sie sagen, der Gegenstand. Wenn es sich bei dem betroffenen Bereich um ein Unternehmen handelt, handelt es sich um eine Geschäftsdomäne. Der Begriff Problem Domain ist allgemeiner.

Ein konzeptionelles Modell ist eine Abstraktion der Konzepte und Beziehungen in einer Domain: Ich würde zustimmen, dass die Begriffe Domain Model und Conceptual Model weitgehend austauschbar sind. Der einzige Unterschied ist, dass der Begriff Conceptual Model die Tatsache betont, dass dies ein Modell der Konzepte ist und kein Software-Design widerspiegelt.

Die Begriffe Geschäftslogik und Domänenlogik beziehen sich normalerweise auf die Regeln, die das korrekte Verhalten der Entitäten innerhalb der Domäne definieren. Es ist möglich, einige dieser Regeln im Domänenmodell zu erfassen, z. B. durch Einschränkungen für Beziehungen oder mithilfe von Zustandsdiagrammen. Ob Sie die Domänenlogik als einen notwendigen Teil des Domänenmodells betrachten, hängt wahrscheinlich davon ab, wie formell Ihre Modellierung sein muss und welche Domäne betroffen ist.

+0

Danke viel =) Was meinst du mit: "Der einzige Unterschied ist, dass der Begriff Conceptual Model betont, dass dies ein Modell der Konzepte ist und nicht ein Software-Design widerspiegelt". Sie meinen, ein konzeptionelles Modell wird nicht immer für das Software-Design verwendet, aber ein Domänenmodell ** immer ** ist? – user1534664

+0

Woher kommen diese Begriffe auch? Domain-getriebenes Design? Oder sind sie allgemeine Informatikbegriffe?Ich habe gesehen, dass sie viel früher benutzt wurden, als ich ASP.NET MVC machte. – user1534664

+0

Wenn wir von der Domain sprechen, sprechen wir auch über die Problemdomäne, oder? Da ist das Problemgebiet. – user1534664