Les entités


o La classe des entités sans descripteurs ni méthodes
o La classe des entités avec descripteurs
o La classe des entités avec descripteurs et méthodes
Une entité est un granule du modèle structurel du domaine, en complémentarité avec les processus (classe Process), qui en sont le modèle fonctionnel, et les événements (classe Event), qui en sont le modèle dynamique.

Dans un simulateur écrit avec DIESE, une entité est décrite par ses caractéristiques propres (sous la forme de variables ou de fonctions) et par ses relations structurales avec d'autres entités.

Relations structurales entre entités

Les caractères structuraux sont les relations qui lient l'entité à ses parties. Dans DIESE, ces relations sont ramenées à seulement deux : la relation de composition et la relation ensembliste. Une entité est constituée d'un certain nombre de composants de types différents ou, exclusivement, contient un certain nombre d'éléments tous du même type. Réciproquement, une entité possède une, et une seule, super-entité (c'est-à-dire une entité dont elle est un composant), et appartient à un certain nombre de sur-ensembles (c'est-à-dire d'entités dont elle est élément, et qui peuvent être de différents types).

Pour mieux définir les notions de composant et d'élément, on peut ajouter que :


Caractéristiques propres des entités

Les descripteurs (proprement dit) d'une entité correspondent aux notions classiques de variables d'état et de propriétés à valeur constante. Dans DIESE, les descripteurs sont eux-aussi des objets. Ce sont des instances de sous-classes de Descriptor. Ces objets possèdent en particulier un attribut qui représente la valeur de la variable d'état ou de la constante. Toute entité, dans DIESE, possède un descripteur prédéfini dont la valeur est un tableau d'instances de Descriptor. On ajoute donc un élément à ce tableau pour chaque variable d'état et propriété à valeur constante de l'entité.

Il est d'autre part possible de doter une sous-classe d'entités par un ensemble de caractéristiques fonctionnelles, c'est-à-dire de connaissances procédurales sur l'entité. Dans la terminologie de la conception orientée objet, une telle caractéristique est généralement appelée 'méthode'.
Cette adjonction de méthodes à une entité dans le domaine d'application n'est pas inéluctable. En effet, et d'une part, des services généraux tels que la manipulation des variables d'état sont définis et fournis dans la bibliothèque DIESE. D'autre part, certaines connaissances procédurales sur l'entité sont en fait un granule du modèle fonctionnel du système dans lequel est incluse l'entité. On les représentera donc comme des processus et on les codera dans des sous-classes de Process de DIESE (voir la page dédiée).
Attacher un descripteur fonctionnel à une entité du domaine d'application peut être réalisé de deux manières :


En résumé : la conception générérale d'une entité

Toute entité est caractérisée par les attributs suivants :

Ce jeu d'attributs définit la classe de base BasicEntity. Certaines entités peuvent en outre posséder :

Ce complément définit la sous-classe DescriptedEntity de BasicEntity. Enfin, certaines entités peuvent posséder :

Ce complément définit la sous-classe Entity de DescriptedEntity. Les tableaux de descripteurs peuvent être vides.

Remarques importantes :

On décrit par ailleurs la notion de démon. Un démon est une structure permettant de spécifier des morceaux de code que DIESE doit exécuter lorsqu'on accède à la valeur d'un descripteur, lorsqu'on modifie cette valeur, ou encore lorsqu'on modifie la structure de l'entité. L'utilisateur exploite les méthodes normales d'accès et de modification, mais le résultat de ces méthodes (en terme de valeur renvoyée ou d'effets de bord) passe par le "filtre" du démon, et peut donc varier en fonction de l'état courant de l'entité ou de ses descripteurs.

Les trois classes de base d'entités

Ainsi DIESE propose-t-elle trois classes de base pour représenter une entité.

descripteurs fonctionnels pas de
descripteurs fonctionnels
variables d'état
et/ou constantes
Entity DescriptedEntity
Entity
pas de variables d'état
ni constantes
Entity BasicEntity
DescriptedEntity
Entity

Si l'entité possède des descripteurs fonctionnels (méthodes), c'est de la classe de base Entity que devra descendre la classe de l'entité considérée.
Si l'entité ne possède pas de descripteurs fonctionnels, mais possède des descripteurs au sens de variables d'état, elle pourra descendre d'Entity, mais DescriptedEntity suffirait comme classe de base, par mesure d'économie et de clarté.
Enfin, si l'entité ne possède de descripteurs d'aucun type, elle pourra descendre de DescriptedEntity ou d'Entity, mais BasicEntity suffirait comme classe de base.

Ces classes de base ne sont pas destinées à avoir des instances directes. Les entités du domaine d'application de l'utilisateur font l'objet de classes spécifiques au domaine, lesquelles doivent être créées comme des sous-classes d'une de ces trois classes de base.

Les trois liens en haut de la présente page décrivent chacun une des trois classes de base des entités.


This page was generated with the help of DOC++.