Pré. | Proc. |
Intégrer dans l'élément de classe UML
Après la création et la simulation d'un Modèle Décision , 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 peut réutiliser le module DMN et être bien structuré. Puisqu'un élément Class peut définir une Statemachine , après intégration avec le module DMN, la simulation Statemachine Exécutable pourra de manière générique 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 de :
- 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
Exigence de l'élément de classe
Supposons que nous ayons un demandeur de classe 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 du groupe 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 d'emploi.
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 versement
Ce modèle DMN calcule le remboursement mensuel en fonction du montant, du taux et des conditions. Il est composé d'un InputData, d'un Décision et d'un Métier Knowledge Modèle .
Calculatrice du facteur d'éventualité 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 Decisions 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 Class ; le détail des éléments DMN n'est pas décrit ici.
Code Générer pour les deux modèles DMN
Cliquez sur l'icône Générer Code, et vérifiez que vous pouvez voir cette string dans la fenêtre System Output, onglet 'DMN' :
Le module DMN est compilé avec succès.
Note : Comme ce modèle utilise une fonction intégrée PMT, la Bibliothèque DMN doit être incluse :
Cliquez sur l'icône Générer Code, et vérifiez que vous pouvez voir cette string dans la fenêtre System Output, 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 à chacun des artefacts DMN.
A la création du connecteur, une boîte de 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 Dépendance est lié à l'opération
Après les liaisons DMN, Intelli-sense pour l'éditeur de code de l'opération prendra en support modules DMN. Pour déclencher l'Intelli-sense, utilisez ces combinaisons de touches :
- Ctrl+Espace - dans la plupart des cas
- + 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 'If'
- Les attributs de classe seront listés - m_RiskScore, m_DisposableIncome
- Les paramètres de fonctionnement seront listés - Montant, Taux, Terme
- Les opérations seront listé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()' à partir de la calculatrice de versement.
Il s'agit de la mise en œuvre finale de l'opération.
Génération de code pour la classe (avec intégration DMN)
'Code Générer sur Classe Demandeur' produit ce code :
- Le ou 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