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 :
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 .
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.
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.
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
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
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