Classes métiers (model)
Sommaire |
Stéréotype de classe
Un stéréotype de classe permet de qualifier la classe métier pour un usage particulier. Du stéréotype de classe découle des attributs, opérations et comportement par défaut qui sont pris en compte par le framework. Les stéréotypes de classe sont prédéfinis, ils ne peuvent pas être définis ou étendus lors de la modélisation. Le stéréotype d'une classe est déterminé lors de sa création et ne peut plus être modifié.
Les principaux stéréotypes de classe prédéfinis sont :
Stéréotype | Usage |
---|---|
Interface | Une interface est un modèle de classe qui peut être supportée par une ou plusieurs classe. |
Classe non persistante | Les classes non persistantes sont des classes métiers dont les objets ne sont pas stockés dans la base de données, elles servent principalement à exécuter des processus ou à fournir des services métiers. |
Classe persistante | Les classes persistantes sont les classes métiers dont les objets sont stockées dans la base de données, elles servent principalement à stocker des entités métiers. |
Classe d'association | Les classes d'association sont des classes persistantes utilisées pour stocker les membres des relations de multiplicités * *. Elles sont créées par l'assistant de création de rôle. |
Classe d'extension | Les classes d'extension permettent d'étendre le modèle d'une classe existante. Elles sont principalement utilisées pour découpler le modèle métier et obtenir un modèle faiblement couplé. |
Classe SQL | Les classes SQL sont des classes persistantes qui ne s'appuient pas sur un modèle objet mais sur un modèle relationnel. |
Classe vue non persistante | Les classes vues sont des classes permettant de présenter une vue à plat d'un ensemble de relations. Ce sont les équivalents objets des vues SQL. |
Classe vue persistante | Les classes vues persistantes sont des vues qui supportent des méthodes permettant de gérer la persistante des objets associés. |
Consultez la catégorie stéréotype pour la liste de tous les stéréotypes.
Classe dérivée
Le framework Ligne 1000 supporte le mécanisme d'héritage de classe simple.
Une classe dérivée hérite des propriétés et du comportement de sa classe ancêtre qu’elle enrichit de ses propres propriétés et comportements.
Une classe ne peut avoir qu’une seule classe ancêtre.
L’ensemble d’une classe et de ses classes dérivées constitue une hiérarchie de classe. Toute les classes d’une hiérarchie de classes persistantes seront enregistrées dans la même table de la base de données.
Classe abstraite
Les classes abstraites permettent de regrouper un ensemble de propriétés et de comportements communs à l’ensemble des classes d’une hiérarchie de classe.
Les classes abstraites sont des classes destinées à être dérivées. Il n’est pas possible de créer des objets dans une classe abstraite.
Les classes abstraites permettent de contrôler la manière dont une hiérarchie de classe est stockée dans la base de données. En effet chaque classe dérivée d’une classe abstraite possède sa propre table de stockage dans la base de données.
Extension de classe
L'extension est un mécanisme particulier de l'environnement Ligne 1000 qui permet d'ajouter des éléments de modèle à une classe existante.
L'intérêt de ce mécanisme est de faciliter le découpage des projets métier. En règle générale une extension de classe est située dans un paquet différent de la classe qu’elle enrichit.
Une classe métier peut avoir un nombre illimité d’extensions de classe. Les extensions de classe ne sont pas des classes métiers, il n’est pas possible de créer des objets dans une extension de classe.
Ce mécanisme s'apparente à l'héritage, mais il y a des différences fondamentales :
- Les éléments apportés par une extension de classe sont connus des objets de la classe de base ; dans le cas du mécanisme de dérivation, seuls les objets de la classe dérivée les connaissent.
- On ne peut pas surcharger les règles de la classe maître dans une extension de classe.
- Une méthode définie dans la classe maître ne peut être surchargée que par une seule méthode définie dans une extension.
D’autre part, par rapport aux mécanismes basés sur les interfaces de classe, il n’est pas nécessaire de définir et d’utiliser des « fabriques de classe » pour bénéficier des extensions de classe.
Les extensions peuvent être comparé au "class helper" existant dans certain langage de développement objet.
Création de classe
Pour créer une classe, cliquez droit sur le projet dans lequel vous souhaitez créer la classe, puis sur Ajouter et Ajouter Une Classe. Vous accédez au dialogue Informations de classe.
Le dialogue de propriété d'une classe :
- Voir les attributs de l’ancêtre
- Cette option permet d’afficher les attributs des classes ancêtres de celle-ci afin d’avoir une vision complète des attributs disponibles sur cette classe.
- Voir les attributs des extensions
- Cette option permet d’afficher les attributs des classes d’extension de cette classe afin d’avoir une vision complète des attributs disponibles sur cette classe.
Pour définir une nouvelle classe :
- Sélectionner le stéréotype de la classe. Ce champ est obligatoire et conditionne les caractéristiques de la classe.
- Renseignez le nom de la classe et un libellé. Ces champs sont obligatoires.
- Pour créer une classe dérivée, cliquez sur le bouton à droite de la zone Hérite de pour lancer l'explorateur de classes.
- Pour créer une classe d'extension, cliquez sur le bouton à droite de la zone Extension de pour lancer l'explorateur de classes. Sélectionnez une classe.
- Renseignez un court commentaire sur l'onglet description. Ce champ est obligatoire.
- Si besoin, renseignez les options avancées. Validez par le bouton OK.
Options avancées
Sélectionnez l'onglet Avancées pour renseigner les options avancées.
- Nom de la table SQL
- Format de libellé
- Format du message utilisé pour identifié l'objet dans l'interface utilisateur.
- Domaine de partage
- Information en lecture seule sur le domaine de partage de la classe.
- Cumuls verrouillés
- Classe abstraite
- Les classes abstraites sont utilisées comme classes de base des hiérarchies de classe.
- Classe singleton
- Les classes « Singleton » n’acceptent qu’un seul objet.
- Classe gérée en cache
- Les instances d’objets d'une classe gérée en cache sont maintenues en mémoire par le gestionnaire de cache même si elles ne sont plus utilisées, ceci pour améliorer les performances de l'application. Cet option n'est plus utilisée.
- Classe à verrouillage optimiste
- Voir Concurrence d’accès.
- Classe à verrouillage pessimiste
- Voir Concurrence d’accès.
- Classe en référentiel
- Les objets des classes « référentiel » sont enregistrés dans le base de données du référentiel. Ces classes sont utilisables par toutes les sociétés qui partagent le même référentiel.
- Utilise des éléments d'interface
- Gérer en pilotage
- Indique si les objets de cette classe doivent être suivi en pilotage.
- Classe d'association
- Taille de cache
- Cette zone permet de définir la limite maximale du cache d’instance pour cette classe. Le cache d’instance est utilisé pour améliorer les performances en permettant au framework de réutiliser les instances libérées au lieu de recréer de nouvelles instances. La valeur par défaut –1 correspond au paramétrage par défaut du framework.
Interfaces
Cet onglet permet de renseigner les interfaces supportées par la classe.
WS-SOAP
Cet onglet permet de renseigner des informations supplémentaires utilisées pour la sérialisation SOAP des objets de la classe dans le cadre d'utilisation en service.
- Adresse SOAP
- Indique l'adresse SOAP identifiant cette classe dans une entête HTTP; utilisé pour les classes support de service.
- Domaine SOAP
- Indique le domaine auquel appartient la classe; le domaine peut différer du domaine du paquet dans le cas ou le paquet contient plusieurs domaines. Ce cas de figure est cependant à éviter.
- Nom SOAP
- Indique le nom de l'élément sérialisant un objet de cet classe si il doit être différent du nom de la classe.
- Nom pluriel
- Indique le nom pluriel utilisé dans les URI SDATA pour accéder à une collection d'objet de cette classe.
— Modèle — Développement DSM —