web-dev-qa-db-fra.com

La base de données dans un diagramme de séquence doit-elle être représentée comme acteur ou limite?

Je concevons un système composé d'une application Web et d'une base de données. Je utilise le <<Entity>> - <<Control>> - <<Boundary>> stéréotypes dans mon diagramme UML.

Dans le diagramme de séquence suivant, j'ai déjà une interaction avec un système dans le nuage. Je veux maintenant montrer également la base de données interne (sur le même serveur). Dois-je le représenter comme acteur ou comme <<Entity>>? Et si je dois obtenir des informations à partir de la base de données, dois-je mettre un objet limite entre la base de données et l'entité (comme cloudBoundary entre Student et le système de cloud)?

enter image description here

4
khalid

Version courte:

La base de données joue techniquement le même rôle que votre système de cloud, même s'il est local sur votre serveur. Donc, vous pourriez le représenter avec un acteur (si vous devez vraiment choisir quelque chose).

Au fur et à mesure que la base de données est externe à votre système, vous auriez bien sûr besoin de disposer d'un ou plusieurs objets frontières (par exemple passerelles ) pour permettre aux autres objets d'interagir avec elle.

Explications

L'approche Entity-Control-Control-Boundary est étroitement liée à la modélisation des cas d'utilisation:

  • L'idée de leur inventeur, Ivar Jacobson, était de dériver de manière systématique les classes requises dans un système de mettre en œuvre les cas d'utilisation identifiés.
  • La philosophie est donc que les classes limites représentent le lien entre les acteurs et les cas d'utilisation, que les classes de contrôle sont mappées sur certains cas d'utilisation et que les classes d'entités représentent les objets de domaine.

Dans un modèle de cas d'utilisation, les acteurs sont des humains ou un système externe qui interagissent avec le système dans le but de réaliser un cas d'utilisation (c'est-à-dire une intention d'acteur ou d'une exigence d'entreprise). Pour cette raison, les bases de données ne font généralement pas partie des diagrammes de cas d'utilisation.

Les bases de données apparaissent si vous creusez sous la surface de l'utilisation. La base de données ne doit pas elle-même être une entité, ni un contrôle, ni une frontière. Même si, d'un point de vue de cas d'utilisation, la base de données pourrait être comprise dans le cadre du système à l'étude (car ce n'est pas un système externe impliqué dans les interactions commerciales), techniquement, il reste un composant indépendant, externe au système que vous se développent.

Les <<Entity>> stéréotype est suffisamment courant qu'il a été normalisé en UML, totalement conforme à la compréhension de la BCE:

<<Entity>>: Une composante d'information persistante représentant un concept d'entreprise.

Clairement, votre base de données n'est pas une entité en fonction de cette compréhension. Même si vous développez votre propre base de données à partir de zéro dans le cadre du système.

<<Boundary>> et <<Control>> sont stéréotypes non standard . Mais si vous avez besoin d'accéder à la base de données externe, vous auriez besoin d'un objet limite d'agissant en tant que connecteur/passerelle.

Si vous développez une base de données à partir de la rayure, dans le cadre de votre système, la base de données elle-même serait composée de beaucoup de <<Control>> Objets qui géreraient le flux d'informations et d'interactions en relation avec les autres contrôles, entités et limites (en particulier les objets de flux qui représenteraient la limite au système de fichiers).

1
Christophe