Affichage des articles dont le libellé est BRMS. Afficher tous les articles
Affichage des articles dont le libellé est BRMS. Afficher tous les articles

vendredi 4 novembre 2011

Ergonomie de visual rules modeler


Visual Rules édité par Bosch Software dispose d’un outil de modélisation dont l’ergonomie est particulièrement intéressante. Cette ergonomie permet de spécifier des raisonnements logiques de manière très intuitive c’est-à-dire sans nécessiter beaucoup de préalables techniques.
Vous n’avez ni besoin d’avoir préalablement formalisé votre vocabulaire, ni besoin d’avoir défini la structure de données, ni besoin d’avoir préalablement conçu votre modèle exécutable (XOM), ni non plus, besoin dans dans un premier temps, d’utiliser un langage formel prédéfini.

Dans une perspective de réappropriation de l’outil informatique par les métiers, le fait de  nécessiter peu de préalables est intéressant à plusieurs titres, il permet à de nombreux acteurs de démarrer sans beaucoup d’investissements intellectuels et  surtout il permet d’éviter ou de limiter le passage par des experts techniques souvent peu disponibles et pouvant, parfois, manquer d’expertise pédagogique.

Pour décrire votre logique vous utilisez une représentation arborescente et vous décrivez le sens de chaque noeud dans le langage de votre choix.
Un noeud de l’arbre équivaut à un test et une feuille à un résultat ou une action à lancer.
A tout moment vous pouvez écrire à côté du texte en clair un texte plus formel destiné à être interprété par la machine.

Bien que le formalisme “arbre de décisions” soit aussi utilisable avec jrules (ilog-ibm) ou de drools (red-hat). Cette approche est assez différente de celles de jrules (ilog-ibm) ou de drools (red-hat), elle est n’a pas que des avantages mais elle a celui de la simplicité. Les outils comme jrules ou drools ont plus tendance à nécessiter la mise en place préalable de domaines métiers (vocabulaire métier + structure objet ), sans pour autant d’ailleurs que ce soit indispensable.

Il faut signaler que visual rules n’utilise pas de moteur de règles à proprement parler, il permet d’éditer des règles sous des formes claires et lisibles, il permet de concevoir des logiques de décisions ou de raisonnement mais lorsque vous placez un test vous devez déterminer à l’avance où ce test ce déclenchera.



A titre d’exemple voici un arbre de décision qui permet de décider si une personne est ou n’est pas l’oncle d’une autre personne. La définition du concept “oncle” ou “tante” est réalisée à partir des relations de parenté “soeur”, frère, “fils” et fille.

Cette arborescence n’est pas exécutable au sens où les noeuds de l’arbre ne contiennent pas  encore de code formel (cet exercice sera réalisé dans un autre billet) mais elle constitue une première de familiarisation avec l’outil et avec la modélisation des logiques de raisonnement.

L’étape suivante est l’écriture d’expressions formelles avec son ensemble de préalables (structures de donnée, structures objets) exécutables par la machine. Cette deuxième étape aura tendance à remettre en cause, au moins partiellement une partie des travaux déjà réalisés. Que cela ne vous incite pas, pour autant,à sacrifier la première étape, elle est très utile pour éviter quelques allers-retours des plus ennuyeux !

jeudi 1 septembre 2011

Risques et arbre de décision

Les arbres de décisions, constituent un exemple de formalisme permettant de représenter des logiques de décisions.
S'ils sont réalisés à l'aide d'un BRMS ces arbres de décisions peuvent être directement exécutés par des machines au même titre qu'un programme informatique.

Voici un exemple simple d'arbre de décisions construit avec IBM Ilog jrules 7.1.
La logique présentée ici permet de décider si un particulier risque de se trouver en défaut de paiement.
Cette logique est une logique école et  n'a que peu d' intérêt en soi. La forme utilisée pour la représentée est le point qui nous intéresse.
La question qui mobilise notre attention est celle de l'intérêt de ce formalisme d'arbre par rapport  aux autres formalismes comme les tables ou de règles.
La logique de décisions présentée utilise ici trois conditions et aboutie à quatre conclusions.

Les trois conditions sont relatives :
- à l'ancienneté du client,
-  à la quantité d'incidents de paiement qu'il a rencontré,
- à son endettement.

Cet arbre équivaut à quatre règles :
1) Si le client est récent sa note est C.
2) Si le client est ancien et a connu beaucoup d'incidents sa note est B.
3) Si le client est ancien, n'a pas connu beaucoup d'incidents et est endetté sa note est A.
4) Si le client est ancien, n'a pas connu beaucoup d'incidents et n'est pas endetté sa note est AA.

Plus la note est proche de AAA plus la banque a confiance dans le particulier est une personne de confiance pour la banque.

Le formalisme d'arbre présenté a l'immense avantage sur le formalisme textuel d'être exécutable.
Le formalisme textuel a l'immense avantage d'être plus accessible et plus clair.

Il reste à prendre en compte le fait que je n'ai formalisé les règles sous forme de texte qu'après avoir formalisé l'arbre et que cet ordre de travail a très favorablement facilité l'écriture de règles simple à comprendre et logiquement ordonnées.

Il peut être intéressant de constater que les conditions utilisées pour évaluer le risque du particulier sont restées très floues : qu'est-ce qu'un client ancien ? à partir de combien les incidents sont nombreux ? à partir de quels critères doit-on considérer que qu'une personne est endettée ?

La réponse à chacune de ces questions est en soi un problème complexe que l'on peut ou non choisir d'automatiser. Et si l'on choisit de l'automatiser on peut à nouveau se poser la question du bon formalisme à utiliser.

vendredi 12 août 2011

Voeux et table de décisions

Voici un simple exemple de table de décision.

Elle a été conçue dans le cadre de la réalisation d’un générateur de voeux pour la nouvelle année qui permet d’envoyer automatiquement des voeux (un peu) personnalisé par mail électronique.

L’objet de cet exemple est de démontrer l’intérêt de ce formalisme pour un cas où la logique de décision est simple.

Voici la table de décision. Elle a été réalisée à l’aide du logiciel d’IBM Ilog jrules.
La plupart des BRMS permettent des réalisations similaires.


Cette table peut être maintenu par n’importe qui sait légèrement utilisé un tableur. Chaque case est éditable.

Les colonnes A et B expriment des conditions. Ces deux critéres caractérisent le destinataire du voeu. Le texte du voeu sera personnalisé en fonction du caractère professionnel ou amical de la relation et et en fonction du genre du destinataire..
Les colonnes C,D et E présentent le texte du voeu décomposé en trois parties : 1) la salutation, 2) le corps et 3) la signature.

Cette table de décision a ensuite été intégrée à un programme java qui fait l’interface avec un répertoire et un générateur de mail.

L’utilisateur de cette petite application doit gérer son répertoire et ajouter ces deux caractérisques à côté de leur adresse mail.

Chaque année il peut modifier le texte présentée à sa guise. Cet utiliaire très simple est cependant limité à du simple texte sans images et sans mise en forme sophistiquée.

lundi 31 janvier 2011

Drools 5.1 and Eclipse 3.6 Installation

Here is how I have installed Drools 5.1 and Eclipse 3.6.

It’s just like it is described in the drools documentation.

There are few differences :
  • Zip file names to download are given
  • At each step a test is given in order to check how things are going
  • Only one way of installation is given in order to simplify the installation process


  1. Java
    1. check java -version (java 1.5 is required)
  2. Drools documentation
    1. go to jboss.org/drools/downloads.html
    2. download drools documentation (50.8MB)
    3. read chapter 3 from drools introduction
  1. Eclipse modeling tools 3.6 (Helios)
    1. go to www.eclipse.org/downloads/
    2. download and extract eclipse modeling tools (249 MB)
    3. run eclipse
    4. check if you can find GEF 3.4 or greater
    5. exit eclipse
  2. Drools 3.5 Eclipse Workbench
    1. go to jboss.org/drools/downloads.html
    2. download Drools 3.5 Eclipse Workbench
    3. unzip this file in eclipse directory
    4. run eclipse
    5. it’s ok if you can open the drools perspectice
  3. Download Drools binaries 5.1
    1. go to jboss.org/drools/downloads.html
    2. download and extract the binaries
    3. run eclipse
    4. click windows/preferences/drools/drools runtime and enter the path where the downloaded file has been extracted
    5. click files/new/drools project
    6. enter a project  name
    7. click next and choose to add a  hello word test sample and to add a sample java class to load and run the hello world
    8. check : compile and run this project  as a java application