Better yet, it is required that the behavior of an information system can be modified by the business expert, without having to wait for the computer service to be available.
The MRA enables the implementation of information systems driven by the job (action item), for the job and in the perspective of the job. Technical experts (developers) are concerned only by the application logic system while the business experts are responsible for the maintenance of the business (which changes often) in a zero-development environment using natural language publishers. The development cycle is, then, getting shorter because of the easier design for test scenarios, through coding, and business experts work closely with the technical team by participating in all phases of the life cycle and development. Hence, with the ARM, each field applications are run and managed by business experts in the field.
4. Baamtu : ses hommes, ses activités, son ambition
• Mouhamed Moustapha Diouf
• Docteur Ingénieur en Informatique (Génie logiciel) de la faculté des sciences
de Bordeaux
• Directeur Général de Baamtu
•Architect en SI
•Expert approche par règles métier
•Scrum Master
•Plusieurs publications dans des revues scientifiques
•J’ai travaillé pour :
•Génigraph/Genitech
•Alti
•Veterans affairs
•Voyages-sncf.com technlogies
•Caisse d’épargne
•Jujitsu, Cinema, Basket-ball, Footboot et … le tiéré
www.baamtu.com
5. Baamtu : ses hommes, ses activités, son ambition
• Présente en France et au Sénégal
• Résultat d’une passion et d’une aventure humaine.
• Depuis 5 ans en France et depuis 3 ans au Sénégal.
• Equipe très expérimentée dans le service
• Haut niveau d’expertise, qualité de service irréprochable
• Savoir faire technique et fonctionnel éprouvé
• Conception et mise en œuvre de SI
• Conduite et suivi de projets
• Forte compétence locale.
• Compétence technique très élevée
• Compétence fonctionnelle et partenariat avec Cabinets d’études
• Service commercial dynamique et réactif
www.baamtu.com
6. Baamtu : ses hommes, ses activités, son ambition
Accompagner nos clients et les orienter dans leur
besoin de faire évoluer leur SI afin de s’adapter
perpétuellement.
Proposer des ressources de qualité pouvant intervenir
aux phases :
• pré-cadrage, cadrage, d'expression des besoins
• définition d'architectures
• réalisation (développement, test, recette, audit)
• assistance technique.
www.baamtu.com
7. Baamtu : ses hommes, ses activités, son ambition
• Desktop : Microsoft et Java (Swing, SWT/JFace).
• Web : du PHP au Java, en y intégrant des solutions de RIA (Rich Internet
Application). Nos ingénieurs travaillent depuis longtemps et régulièrement avec
les frameworks Web les plus prisés : Symphony, Dojo, Struts, JBoss
Seam, Grails, Spring, Play!, etc.
• Architectures multicouches utilisant l'orchestration de processus (BPM) avec
externalisation des règles métier (JRules, Jess, JBoss Rules, etc), SOA
• Mobile : WAP, J2ME, Androïd (Notre jeu a été sélectionné pour figurer dans le
nouveau HTC Tatoo).
• Méthodologies agiles
www.baamtu.com
8. Baamtu : ses hommes, ses activités, ses ambitions
• Les activités de Baamtu
• Intégrateur de solutions libres
• Elaboration et mise en œuvre d’architectures applicatives complexes
• Développement de solutions de mobilité
• Contributeur actif dans la communauté OpenERP
• Plate forme de développement offshore
• Les ambitions de Baamtu
• LA référence en termes de SSII au Sénégal et en Afrique de l’ouest
• LA référence africaine sur l’intégration, la formation et les services autour
OpenERP
• Favoriser le développement des PME-PMI africaines
• en les dotant de solutions logicielles à forte valeur ajoutée
• en les accompagnant dans la maîtrise et l’évolution de leur SI
www.baamtu.com
9. C’est quoi OpenERP ?
Progiciel de gestion intégrée pour
entreprise, distribuée sous licence libre (GPL) et qui
répond de manière efficace à la complexité et aux
besoins croissants des entreprises.
Largement répandu Full Web OpenSource
Couverture fonctionnelle
Déploiement exceptionnelle
Un éditeur fort: Tiny
Rapide
Architecture
technique solide Solution ouverte
Conception
modulaire www.baamtu.com
10. C’est quoi OpenERP ?
Large couverture fonctionnelle
Gestion des Gestion de stocks
Portail
ventes
Gestion de
Gestion Gestion production
documentaire comptable et
financière Etats SYSCOHDA
CRM/SRM Gestion des achats
Gestion budget
Gestion de projets Gestion des Points de vente
immobilisations
www.baamtu.com
11. BCompta: la solution comptable Syscohada
Gestion comptable et financière
BCompta : la solution
comptable conforme
Syscohada
www.baamtu.com
12. BCompta: la solution comptable Syscohada
• Paramétrage plan de compte Syscohada
• Journaux comptables
• Gestion des paiements (conditions de
paiement, échéanciers)
• Politiques de prix
• Lettrage et Reconciliation
• Rapprochement bancaire
• Traitements périodiques
• Relances multiniveaux
• Tableaux de bord comptables, Indicateurs de
gestion
• Comptabilité analytique
• Analyse financière des tiers (créances et dettes)
• Gestion budgétaire
• Edition d’états (Rapports génériques, états
syscohada)
• Gestion des immobilisations
www.baamtu.com
13. BCompta: le paramétrage
Le plan de compte Syscohada
• Organisation hiérarchique (évaluation dynamique)
• Types de compte (configurables, extensibles)
• Taxes applicables
• Exercices et périodes fiscales
• Gestion multi-devises
• Multi sociétés
« Souplesse » et « Extensibilité»
www.baamtu.com
14. BCompta: les écritures comptables
Saisie/génération des écritures
• Ecritures manuelles
• Saisie par journal
• Saisie par mouvements
• Ecritures récurrentes
• Modèles d’écriture souples
• Exécution périodique
• Génération automatique des écritures
• Depuis la brique Gestion Commerciale
• Depuis la brique Ressources Humaines
• Depuis les autres modules fonctionnels
• Saisies validées selon profils (reformuler)
www.baamtu.com
15. BCompta: reporting & éditions d’états
Editions et reporting
• Rapports génériques (avec plusieurs filtres)
• Balance simple (soldes de comptes)
• Balance détaillée à 8 colonnes (avec R.A.N)
• Grand livre
• Impression des journaux
• Etats récapitulatifs TVA (A voir ?)
• Personnalisation des rapports (A voir)
•Etat suivi des Tiers
• Balance âgée des tiers
• Balance des tiers
• Grand livre des tiers
• Etats Syscohada
• Bilan, CDR (Système normal/allégé)
• Tafire
• Autres états
www.baamtu.com
16. BCompta: traitements périodiques
Quelques traitements périodiques
• Validation de mouvements de compte
• Rapprochement / lettrage
• Lettrage/de-lettrage manuel
• Lettrage automatique (multicritères + profondeur)
• Rapprochement bancaire
• Rapprochement à partir d’un relevé papier
• Rapprochement à partir de relevé électronique (extension)
• Traitement de fin de période
• Clôture de période ou d’exercice
• Génération d’écritures de début d’exercices
www.baamtu.com
17. BCompta: édition syscohada
Etats Syscohada
• Développement en collaboration avec experts
fonctionnels
• Plusieurs phases de validation
• Plusieurs jeux de balance importés et testés
• Système normal ou allégé
• Souplesse du paramétrage
• Définition des agrégats Bilan/CDR/Tafire
• Définition d’agrégats « manuels »
• Pas d’export/import de balance
• Prise en compte dynamique
• Impression pilotée
• Personnalisation des états
• Module de contrôle en amont
www.baamtu.com
18. Baamtu : ses hommes, ses activités, ses ambitions
• Baamtu, des ressources de qualité à votre
service
• Tanoor Dieng : Ingénieur web (7 ans)
• Tidiane Sy : Ingénieur génie logiciel (9 ans)
• Diabel Ndaw : Ingénieur génie logiciel (15 ans)
• Mouhamed DIOUF : Dr Ingénieur logiciel (8 ans)
• Arona Samb : direction commerciale
• El Hadj Gaye : Ingénieur génie logiciel
• Daouda Mar : Ingénieur génie logiciel
• Partenariat avec Arc informatique
• Partenariat avec 01-Graph
www.baamtu.com
20. Sommaire
1.Approche classique en génie logiciel
a. Rapide présentation
b. Limitation
2.Approche par règles métier (ARM)
a. C’est quoi?
b. C’est quoi une règle métier?
c. C’est quoi un moteur de règles?
d. C’est quoi un BRMS?
3.Qu’apporte l’ARM
4.Jboss Rules aka Drools
1.Les composants
2.Comment l’utiliser
www.baamtu.com
21. Approche classique en génie logiciel
• L'informatisation d'un système suit un
cycle de vie :
Une étude préalable : analyse de
l'existant, recensement des besoins
utilisateurs, étude de faisabilité et
rédaction d'un cahier des charges.
Une analyse fonctionnelle : élaboration
d'une solution conceptuelle
(abstraction des moyens
informatiques) et rédaction d'un
dossier de conception.
Une analyse organique : définition des
structures de données, choix des
matériels et établissement du planning
et des budgets de réalisation.
Une phase de développement :
réalisation effective du système
informatique, tests du logiciel réalisé.
Mise en service : rédaction d'un
manuel, formation des
utilisateurs, exploitation et
maintenance du système.
www.baamtu.com
22. Limitations
Dans une tel mode la
coopération entre les deux
pôles métier et système est
limitée car elle n'a lieu qu'en
début et fin de phase.
Une fois le système livré,
lorsque la logique métier
changera, il faudra à
nouveau faire appel à
l'équipe système pour
traduire ces nouveaux
besoins dans l'application.
Malgré l’évolution des cycles
de vie et de développement,
la maintenance reste chère
et réservée aux experts
techniques.
www.baamtu.com
23. Approche par Règles Métier: c’est quoi?(1/4)
Dans toute application, on ne se pose plus la question de
savoir « est-ce que le métier changera ? » mais plutôt « quand
ces changements vont-ils intervenir ? ».
Un système doit être capable de s'adapter rapidement aux
changements du marché.
Mieux encore, il faudrait que le comportement d'un système
d'information puisse être modifié par l'expert métier, sans
avoir à attendre que le service informatique soit disponible.
L'ARM permet la réalisation de systèmes d'information guidés
par le métier, pour le métier et en vue du métier.
www.baamtu.com
24. Approche par Règles Métier: c’est quoi?(2/4)
Les règles métier permettent de séparer la logique métier (le
comportement) et la logique système d'une application (le
comment).
Ex :
Construction
des parties
d’un mail
Ex :
assemblage
et envoi
du mail
www.baamtu.com
25. Approche par Règles Métier: c’est quoi?(3/4)
Les experts techniques (développeurs) ne s'occupent que de la
logique système applicative tandis que les experts métiers se
chargent de la maintenance métier (qui change le plus
souvent) dans un environnement zéro-développement en
utilisant des éditeurs en langage naturel.
Le cycle de développement devient plus court car de la
conception aux scénarii de tests, en passant par le codage, les
experts métiers travaillent en étroite collaboration avec
l'équipe technique en participant à toutes les phases du cycle
de vie et de développement.
Avec l'ARM, dans chaque domaine les applications sont
dirigées et gérées par les experts métier du domaine.
www.baamtu.com
26. Approche par Règles Métier: c’est quoi?(4/4)
Les règles sont au cœur de toute
application, cependant le plus
difficile est de les recenser et de
les structurer pour une meilleure
gestion.
L'utilisation d'un gestionnaire de
règles métier ou Business Rules
Management System (BRMS)
facilite le recensement et la mise
en œuvre des règles métier.
En cas de maintenance de
la logique métier, l’expert
technique n’interviennent
pas tout le temps
www.baamtu.com
27. C’est quoi une règle métier? (1/3)
Les règles métier permettent une encapsulation des besoins de
l'utilisateur.
Les règles métier sont des règles qui sont sous la juridiction des
experts métier.
Le terme « règle métier » a un sens différent selon un point de vue
métier ou IT. Cependant on peut dire que :
les règles métier sont des formulations qui définissent ou
contraignent quelques aspects d'un métier. Son but est de
structurer un métier (politique, savoir-faire), de contrôler ou
d'influencer le comportement d'un métier.
www.baamtu.com
28. C’est quoi une règle métier? (2/3)
De manière plus basique et simple on peut dire qu'une règle métier est
un couple de SI – ALORS
SI étant la partie condition (Left Hand Side)
ALORS la partie action (ou Right Hand Side) qui est exécutée si la
partie condition est évaluée à vraie.
Les règles métier sont du ressort des experts fonctionnels du domaine.
Les règles métier peuvent provenir des déclarations de la politique de
l'entreprise, d'un système d'information existant ou tout simplement de
personnes travaillant dans l'entreprise et qui ont su acquérir au fil des
années une expérience considérable.
www.baamtu.com
29. C’est quoi une règle métier? (3/3)
Il existe plusieurs manières de définir une règles métier :
En langage métier
En langage technique
En table de décision
1
2
3
www.baamtu.com
30. C’est quoi un moteur de règles? (1/2)
L'un des principaux avantages d'avoir un BRMS complet est la réduction
de la complexité de mise en œuvre d'une logique applicative complexe
pour permettre l'exécution de la logique métier.
Le BRMS fournit un outil plus sophistiqué pour l'exécution des règles : le
moteur de règles.
Les moteurs de règles peuvent être subdivisés en deux catégories : ceux
qui font un chaînage avant (forward chaining) et ceux qui font le chaînage
arrière (backward chaining) :
Le chaînage avant est orienté données et est donc « réactif ». Les faits
(données) sont injectés dans la mémoire de travail ou working
memory (WM) entraînant l'élection d'une ou plusieurs règles pouvant
être exécutées.
Le chaînage arrière est orienté but ou résultat (goal-driven). Exemple :
j’ai 500 euros, combien de types et de pots de peinture je peux
acheter.
Un moteur peut supporter les deux type de chaînage, on dit qu’il est
hybride.
www.baamtu.com
31. C’est quoi un moteur de règles? (1/2)
Fonctionnement : si les expressions booléennes qui sont définies dans la
partie condition, sont évaluées à vraie alors exécuter les actions de
manière séquentielle.
Les règles métier sont exécutées, et leur ordre d'exécution contrôlé par le
moteur de règles.
La performance d'un moteur de règles varie beaucoup avec
l'implémentation.
Sans optimisation, les performances diminuent avec le nombre de règles
grandissant dans la base de connaissance ou repository de règles.
Cependant la plupart des moteurs de règles en chaînage avant utilise un
algorithme à base de RETE pour optimiser ces performances qui sont
finalement asymptotiquement indépendant du nombre de règles.
www.baamtu.com
32. Fonctionnement d’un moteur de règles
Les règles sont exécutées
par le moteur de règles.
Vérification des conditions
sur tous les faits dans la
WM.
Les faits sont des beans :
les données connues du
problème
(solutions, passagers, etc)
Sélection des règles qui
satisfont les conditions.
Résolutions des éventuels
conflits.
Exécution de la partie
action des règles
sélectionnées
www.baamtu.com
33. C’est quoi un BRMS?
BRMS = Business Rules Management System
C’est système de gestion de règles métier (ce qu’est un SGBD pour une
BD)
Ce que doit proposer un bon gestionnaire de règles :
Un éditeur de règles en langage naturel
Les outils de management :
Un lieu de stockage pour règles métier.
Utilisation d’un ruleflow
Assistant de gestion de l’intégrité des règles.
Archivage (logging).
Système de verrou.
La gestion des permissions (accès au repository)
Versionnement
Les outils de suivi (profiling)
Les outils de debuggage et de traçage
Recherche par requête
www.baamtu.com
34. Qu’apporte l’ARM (pour le métier)
Meilleur réalisation de l’intention : utilisation d’éditeurs en langage
naturel.
Evolution plus rapide : modification des règles métier et à chaud.
Plus de collaboration avec l’expertise technique et participation
réelle au cycle de vie et de développement.
Mise en place de ses propres scénarii de test.
Mise en place de la logique métier en même temps que l’ossature
technique.
Création et gestion d’un repository de règles
(droit, templating, requettes, profiling, versionning).
Meilleur organisation de l’exécution des règles métier
(ruleflow, prioritisation).
Plusieurs manières d’écrire des règles (langage naturel, table de
décision, arbre de décision).
Possibilité de recharger un ruleset et de les rejouer.
www.baamtu.com
35. Qu’apporte l’ARM (pour le technique)
Les experts technique ne s’occupent de la partie qui les intéresse
c’est-à-dire l’infrastructure technique.
Plus de collaboration avec les experts fonctionnels (pas d’effet
boule de neige).
Mise en place de modèles métier plus simples (pour faciliter les
appels de procédure).
Intervient uniquement pour les évolutions techniques.
Utilisation d’algorithmes de pattern matching performants et
éprouvés.
Commencer les développements sans que tout le métier ne soit
identifié.
Peu de retour en arrière parce que la logique de l’application a
changée en cours de développement.
www.baamtu.com
36. L’approche par règles métier et SOA
Quelque soit l’entreprise et le domaine, les règles métier sont
présentent, influençant tous les aspects de l’organisation.
Elles souvent codées en dur ou disséminées dans le savoir faire des
experts, pouvant engendrer une perte de connaissance (known-
how) pour l’organisation.
Dans un context SOA (services atomiques et autonomes), un EDM
(Entreprise Decision Management) à pour objectif d’éviter ceci
traitant les règles métier comme n’importe quel asset de
l’entreprise.
Les règles peuvent être gérées de manière centraliser avec BRMS
et puis être exposées à travers des protocoles standards
(SOAP, JMS, JSON, …)
www.baamtu.com
37. Enterprise Decision Management (1/2)
Support Service Validation
Service
Decision Service
Loan Service Account Service
Entreprise Data
Service
DB
www.baamtu.com
39. JBoss Rules aka Drools
Outil open source :
Forte communauté (Jboss & Red hat)
Mature : existe depuis bientôt 10 ans
Performant (implémentation de Rete (OO Rete))
Passé d’un simple moteur de règles vers un vrai BRMS durant ces 5
dernières années
www.baamtu.com
40. Les Composants de Drools
Le moteur de règles ou rule engine (drools-experts)
Authoring : Drools Rule Language (DRL) fournit une grammaire
(vocabulaire) complète pour l’écriture de règles. On peut écrire ces
règles en langage « naturel » (Domain Specific Langage ou DSL) ou
sous forme de tables de décision
Un BRMS : Guvnor depuis la version 4.0. Guvnor offre la possibilité
de centraliser les règles (Rules Repository) et de éditeurs Zero-client
et d’autres fonctionnalités.
« Drools jBPM » pour la gestion de process métier
Drools Fusion pour faire du CEP
Drools Planner : optimiseur de planification automatique
Qu’utiliserons-nous?
www.baamtu.com
41. Modes d’intégration
Mode embedded :
Le moteur de règles (qui est une simple composant java) est
packager avec l’application qui l’utilise.
Application
Service 1 Service n
.drl
Moteur de règles
Service 2
DB
www.baamtu.com
42. Modes d’intégration
Mode distributed ou réparti :
Le moteur de règles est exposé comme un service web (EDM)
www.baamtu.com
43. Modes d’intégration
On peut également utiliser des patterns d’entreprise pour
l’intégration en mode distributed :
Un ESB (transformation, orchestration, etc)
Un framework de médiation de service
Messaging
Spring
Etc
Comment invoquer le service de décision (règles) :
Stateless (des avantages, des inconvénients mais idéal dans un
context SOA )
Statefull (des avantages, des inconvénients surtout en terme de
haute dispo et scalabilite)
www.baamtu.com