Réserver une Démo
Pré. Proc.

Intégrer dans l'élément de classe UML

Une fois qu'un Modèle Décision est créé et simulé, vous pouvez générer un module DMN en Java, JavaScript , C++ ou C# et le tester.

Le module DMN peut être intégré à un élément de classe UML , de sorte que le code généré à partir de cet élément de classe puisse réutiliser le module DMN et être bien structuré. Puisqu'un élément de classe peut définir une Statemachine , après intégration avec le module DMN, la simulation Statemachine Exécutable pourra génériquement utiliser la puissance du module DMN.

Dans cette rubrique, nous expliquerons le processus d'intégration d'un Modèle DMN avec un élément de classe UML , en tenant compte des éléments suivants :

  • Exigence de l'élément de classe
  • Modèles DMN
  • Liaison DMN à la classe et à Intelli-sense
  • Génération de code sur l'élément Class

Exigences relatives à l'élément de classe

Supposons que nous ayons une classe Demandeur avec une opération AffordabilityForProduct qui évalue si le demandeur peut se permettre un produit de prêt.

Un modèle simplifié ressemble à ceci :

A view of Class element to be used for integration with a DMN model using Sparx Systems Enterprise Architect.

Le demandeur de classe contient deux attributs, qui sont en fait calculés à partir de données plus basiques telles que le revenu mensuel du demandeur, ses dépenses, ses remboursements existants, son âge et son statut professionnel.

Dans cet exemple, cependant, nous simplifions le modèle en sautant ces étapes et en fournissant directement le revenu disponible et le score de risque.

Modèles DMN

Dans cet exemple, nous avons deux modèles DMN disjoints pour montrer qu'une classe UML peut intégrer plusieurs modèles DMN.

Calculateur de versements

Ce modèle DMN calcule le remboursement mensuel en fonction du montant, du taux et des modalités. Il est composé d'un InputData, d'un Décision et d'un Métier Knowledge Modèle .

An example of DMN Module showing it in simulation mode using Sparx Systems Enterprise Architect.

Calculateur de facteur de contingence de crédit

Ce modèle DMN calcule le facteur de contingence de crédit en fonction du score de risque du demandeur. Il est composé d'un InputData, de deux Décisions et de deux Métier Knowledge Models.

An example of DMN Module showing it in simulation mode using Sparx Systems Enterprise Architect.

Note : dans cet exemple, nous nous concentrons sur la manière d'intégrer des modules DMN dans un élément de classe ; les détails des éléments DMN ne sont pas décrits ici.

Générer du code pour les deux modèles DMN

Cliquez sur l'icône Générer un code et vérifiez que vous pouvez voir cette string dans la fenêtre Sortie système, onglet « DMN » :

Le module DMN est compilé avec succès.

Note : Étant donné que ce modèle utilise une fonction PMT intégrée, la Bibliothèque DMN doit être incluse :

Cliquez sur l'icône Générer un code et vérifiez que vous pouvez voir cette string dans la fenêtre Sortie système, page « DMN » :

Le module DMN est compilé avec succès.

Liaison DMN à la classe et à Intelli-sense

Placez les deux artefacts DMNSimConfiguration sur le diagramme de classe.

Integrate a DMN Model and Class Element by placing DMNSimConfiguration artifacts on the class diagram in Sparx Systems Enterprise Architect.

Utilisez le Quick Linker pour créer un connecteur de dépendance du demandeur de classe vers chacun des artefacts DMN.

Lors de la création du connecteur, une dialogue vous prompt de choisir l'opération à lier au module DMN.

Lorsque le module DMN est lié à l'opération :

  • L'opération prend un stéréotype <<dmnBinding>>
  • Le connecteur de dépendance est lié à l'opération
Plusieurs artefacts DMN peuvent être liés à la même opération.

A diagram showing a Class that that is connected to two DMN Simulaiton Artifacts setting the integration of a Class to a DMN module.

Après les liaisons DMN, Intelli-sense pour l'éditeur de code de l'opération prendra support les modules DMN. Pour déclencheur l'Intelli-sense, utilisez ces combinaisons de touches :

  • Ctrl+Espace - dans la plupart des cas
  • Ctrl+Maj+Espace - lorsque Ctrl+Espace ne fonctionne pas après une parenthèse '(' ; par exemple, les arguments d'une fonction, ou à l'intérieur des parenthèses d'une condition 'Si'
  • Les attributs de classe seront répertoriés - m_RiskScore, m_DisposableIncome
  • Les paramètres de fonctionnement seront répertoriés - Montant, Taux, Durée
  • Les opérations seront répertoriées - AffordabilityForProduct
  • Tous les modules DMN liés seront répertoriés - Contingency_Factor_Calculator, Installment_Calculator
Il est assez facile de composer le code avec support Intelli-sense. En accédant au module DMN, toutes les données d'entrée, les décisions et les modèles de connaissances Métier seront répertoriés pour la sélection.

Cette illustration montre que nous sélectionnons « Get_Required_monthly_installment() » dans Installment_Calculator.

Il s’agit de l’implémentation finale de l’opération.

Génération de code pour la classe (avec intégration DMN)

« Générer un code sur la classe candidate » produit ce code :

  • Les modules DMN sont générés en tant qu'attributs de la classe
  • Le code de l'opération dmnBinding est mis à jour
Note : que l'option de génération soit « Écraser » ou « Synchroniser », le code de l'opération sera mis à jour s'il possède le stéréotype « dmnBinding ».

Apprenez Plus