web-dev-qa-db-fra.com

Quelle est la différence entre la modélisation de données et la modélisation de domaine?

À propos - en référence à la modélisation des données, je parle de modèles de données logiques ou conceptuels - et non de modèles physiques.

La question s'est posée lors d'une discussion au travail; naturellement, j'ai sauté sur Wikipédia pour mettre en place des définitions de base - en espérant qu'elles clarifieraient la différence - mais ils ne l'ont pas fait.

Un schéma conceptuel ou modèle de données conceptuel est une carte des concepts et de leurs relations.

Les modules de données logiques semblent très similaires (d'après cette définition):

Un modèle de données logique (LDM) en ingénierie des systèmes est une représentation des données d'une organisation, organisée en termes d'entités et de relations et est indépendant de toute technologie de gestion de données particulière.

Tandis que...

Un modèle domain , ou DOM (Domain Object Model) dans la résolution de problèmes et le génie logiciel peut être considéré comme un modèle conceptuel d'un système décrivant les différentes entités impliquées dans ce système et leurs relations.

Les différences entre le modèle de domaine et le modèle de données conceptuel semblent particulièrement obscures.

Une des choses qui ajoute à cette confusion est que (d'après ce que j'ai vu) un modèle de domaine est généralement modélisé à l'aide d'un diagramme de classes UML - l'entité de classe dans un diagramme de classes UML prend en charge les méthodes - notre collègue maintient qu'un modèle de domaine doit ne pas contenir "opérations". Je peux comprendre les modélisateurs de domaine utilisant un sous-ensemble d’un diagramme de classes UML - mais n’est-il pas dangereux de supposer que les utilisateurs s’abstiendront d’inclure des "opérations" si les outils qu’ils utilisent les prennent en charge?

27
Adrian K

Bonne question, le problème est que cela dépend de la définition des termes, je pense qu'ils diffèrent légèrement en fonction des sources. Je serais d'accord avec les réponses précédentes - les modèles de domaine de réponse servent à décrire le domaine du problème, du moins le partie vous devez développer une solution. Vous décrivez toutes les différentes entités, leurs relations et leur comportement. Je pense que c'est également la vue du point de vue de la conception pilotée par domaine. Les modèles de données, en revanche, sont utilisés pour décrire les données dans votre système et leurs relations ou associations. Ceci est utile pour décrire ce qui doit être stocké dans le système et peut également donner des indications sur la manière de procéder. Je pense que les modèles de données s'appliqueraient à votre règle "pas d'opération", car ils ne sont pas importants à cet égard.

11
Gabriel Ščerbák

La modélisation de domaine (au sens de la conception pilotée par le domaine) consiste à modéliser le comportement des concepts de domaine, tandis que la modélisation de données se concentre principalement sur ... les données.

Cela ne signifie pas que la modélisation de domaine ignore les structures de données. Cela met davantage l'accent sur les opérations et sur la manière dont elles peuvent être utilisées pour résoudre des problèmes. 

Je ne connais pas grand chose aux techniques de modélisation de domaine, mais DDD implique (à part la modélisation des données et du comportement) également la modélisation explicite de limites de cohérence (agrégats).

5
Szymon Pobiega

C'est un vieux fil, mais voici une réponse légèrement améliorée pour clarifier certaines des autres postées ici.

Le concept de 'domaine' (et d'autres types de modèles tels que conceptuels, logiques et physiques) est orthogonal à la technique utilisée pour représenter le modèle (par exemple, ERD, UML, etc.). Un modèle de domaine est essentiellement identique à un modèle conceptuel, mais différentes méthodologies de conception peuvent avoir des termes et définitions légèrement différents. Bien qu'il soit courant de dessiner des modèles de domaine utilisant UML ou ERD pour décrire des entités et leurs relations (ou classes/méthodes en UML), cela ne s'applique qu'à la modélisation des informations à gérer par un système - logiquement, le concept de modélisation de domaine (ou conceptuelle). modélisation, modélisation logique ou physique, etc.) peuvent s'appliquer à toute situation problématique et à une solution. En fonction de la nature du problème et de l'approche utilisée, d'autres techniques de modélisation pourraient être utilisées pour atteindre le même objectif.

En résumé, la modélisation de domaine et la modélisation conceptuelle sont essentiellement la même chose, à part les définitions épissées. Le concept s'applique à what le modélisateur essaie de communiquer. Le concept de modélisation de données (c.-à-d. ERD) ou de modélisation orientée objet (c.-à-d. UML) fait référence à comment le modélisateur le communique.

2
Rob Meredith

Je dirais qu'un modèle de domaine décrit les problèmes (ce que nous voulons gérer/résoudre) sur un domaine donné. Le modèle de données décrirait la solution (comment nous allons le résoudre) au problème décrit dans le modèle de domaine.

Cependant, nous sommes vraiment dans des eaux troubles ...

0
Rui Curado