Implémentation d’un
Domain Specific Language
     en entreprise




 Soutenance
                                    Promotion
Mémoire de fin   Brice Argenson
                                  SUPINFO 2010
   d’étude
Agenda

 Contexte

 Problématique

 Définition d’un DSL

 Mise en œuvre

 Réflexion

 Conclusion

                        www.xebia.fr / blog.xebia.fr   2
CONTEXTE


Xebia
La mission
Xebia


 Stage de fin d’étude chez Xebia IT Architect

  ▶   Groupe d’experts dédié aux technologies Java
  ▶   Présent au Pays Bas, en France et en Indes
  ▶   Un modèle d’entreprise vertueux
       » Relations proches avec le client
       » Partage de connaissance
       » Participation à la communauté




 Envoyé en régie chez un client grand compte

                                 www.xebia.fr / blog.xebia.fr   4
La mission


 Module de facturation

 Refonte globale de l’outil de gestion interne

 Règles de facturation

  ▶   Nombreuses

  ▶   Changent souvent




                         www.xebia.fr / blog.xebia.fr   5
L’existant


 Logiciel de facturation : Magora

 Une application / client

 Développement long

 Pas de factorisation des règles

 Pas de connexion à la BDD métier


                       www.xebia.fr / blog.xebia.fr   6
PROBLEMATIQUES
Problématiques


 Comment créer et modifier des règles ?

  ▶   Utilisation d’un pseudo langage



 Comment éviter l’intervention des développeurs ?
  ▶   Interprétation au « Runtime »



 Utilisation d’un DSL !

                              www.xebia.fr / blog.xebia.fr   8
Problématiques


 Comment introduire un DSL ?

  ▶   Le rendre utilisable par les gens du métier

  ▶   En expliquer la plus value

  ▶   Accompagner les utilisateurs




                               www.xebia.fr / blog.xebia.fr   9
QU’EST CE QU’UN DSL ?


Définition
Différents types
Définition


 Définition exacte pas évidente




       « Domain Specific Language (noun):
   a computer programming language of limited
  expressiveness focused on a particular domain »
                 - Martin Fowler -



                      www.xebia.fr / blog.xebia.fr   11
Définition


 Existent depuis longtemps
  ▶   awk, sed

  ▶   CSS

  ▶   Configurations XML

  ▶   Excel




                           www.xebia.fr / blog.xebia.fr   12
Différents types


 DSL externes

 DSL internes

 « Language Workbench DSL »




                   www.xebia.fr / blog.xebia.fr   13
Différents types


 DSL pour personnes techniques

  ▶   Configuration XML, Expression Language, …


 DSL pour tous

  ▶   Excel, Kodu, …




                             www.xebia.fr / blog.xebia.fr   14
MISE EN OEUVRE


Solutions choisies
Résultats
Choix méthodologiques


 Scrum




                 www.xebia.fr / blog.xebia.fr   16
Choix méthodologiques




                 www.xebia.fr / blog.xebia.fr   17
Choix méthodologiques




                 www.xebia.fr / blog.xebia.fr   18
Choix méthodologiques


 Quatre principes directeurs :

  ▶   Individus et interactions contre processus et outils

  ▶   Logiciel qui fonctionne contre documentation exhaustive

  ▶   Collaboration du client contre négociation de contrat

  ▶   Réponse au changement contre suivi d'un plan prédéfini




                               www.xebia.fr / blog.xebia.fr     19
Choix techniques




                   www.xebia.fr / blog.xebia.fr   20
Choix techniques


 DSL interne en Groovy

  ▶   Démarrage rapide


  ▶   Coût d’entrée faible

  ▶   Compétences en Groovy

  ▶   Plus rassurant




                              www.xebia.fr / blog.xebia.fr   21
Résultats


 Première version fonctionnelle

  ▶   Adapté pour un seul client

  ▶   Échéance imposé par le client

  ▶   Jeune avec quelques maladresses d’implémentation


       » Dette technique !




                              www.xebia.fr / blog.xebia.fr   22
Résultats




            www.xebia.fr / blog.xebia.fr   23
Résultats




            www.xebia.fr / blog.xebia.fr   24
Résultats



 Application bien accueillie

 +500 factures

 < 1% d’erreur




                       www.xebia.fr / blog.xebia.fr   25
Et ensuite…


 Nouvelles échéances
  ▶   2 mois
  ▶   2 mois et demi
  ▶   3 mois


 Règles foncièrement différentes

 Dette technique

 Manque de temps !

                       www.xebia.fr / blog.xebia.fr   26
Et ensuite…


 Référents métier ne s’impliquent pas assez

 Intérêt et complexité de le solution mal compris

 Échéances plus importantes !

  ▶   Abandon du DSL  augmentation de la
      productivité




                      www.xebia.fr / blog.xebia.fr   27
Et ensuite…


 Changements radicaux de certaines parties

 Très peu de changements pour d’autres

 Utilisation d’un DSL technique

 Améliorations par rapport à l’existant

  ▶   Mais toujours un besoin de développeur(s)




                             www.xebia.fr / blog.xebia.fr   28
REFLEXIONS
Réflexions


 Projet particulièrement innovant et ambitieux
  ▶   Trop ?


 Premiers résultats en quelques mois

 Mais problème d’adoption par le métier




                      www.xebia.fr / blog.xebia.fr   30
Réflexions


 Notion de DSL difficile à comprendre

  ▶   Peur ?


 Très peu d’existant / d’éléments de comparaison

 Langages textuels effrayants

  ▶   DSL graphiques ?




                         www.xebia.fr / blog.xebia.fr   31
Réflexions


 La programmation pour tous !

  ▶   « Savoir utiliser l’informatique sans savoir programmer, c’est
      comme savoir lire sans savoir écrire ! » - Bernard Ourghanlian


 Exemple de succès :

  ▶   Excel




                              www.xebia.fr / blog.xebia.fr             32
CONCLUSION

Soutenance mémoire : Implémentation d'un DSL en entreprise

  • 1.
    Implémentation d’un Domain SpecificLanguage en entreprise Soutenance Promotion Mémoire de fin Brice Argenson SUPINFO 2010 d’étude
  • 2.
    Agenda  Contexte  Problématique Définition d’un DSL  Mise en œuvre  Réflexion  Conclusion www.xebia.fr / blog.xebia.fr 2
  • 3.
  • 4.
    Xebia  Stage defin d’étude chez Xebia IT Architect ▶ Groupe d’experts dédié aux technologies Java ▶ Présent au Pays Bas, en France et en Indes ▶ Un modèle d’entreprise vertueux » Relations proches avec le client » Partage de connaissance » Participation à la communauté  Envoyé en régie chez un client grand compte www.xebia.fr / blog.xebia.fr 4
  • 5.
    La mission  Modulede facturation  Refonte globale de l’outil de gestion interne  Règles de facturation ▶ Nombreuses ▶ Changent souvent www.xebia.fr / blog.xebia.fr 5
  • 6.
    L’existant  Logiciel defacturation : Magora  Une application / client  Développement long  Pas de factorisation des règles  Pas de connexion à la BDD métier www.xebia.fr / blog.xebia.fr 6
  • 7.
  • 8.
    Problématiques  Comment créeret modifier des règles ? ▶ Utilisation d’un pseudo langage  Comment éviter l’intervention des développeurs ? ▶ Interprétation au « Runtime »  Utilisation d’un DSL ! www.xebia.fr / blog.xebia.fr 8
  • 9.
    Problématiques  Comment introduireun DSL ? ▶ Le rendre utilisable par les gens du métier ▶ En expliquer la plus value ▶ Accompagner les utilisateurs www.xebia.fr / blog.xebia.fr 9
  • 10.
    QU’EST CE QU’UNDSL ? Définition Différents types
  • 11.
    Définition  Définition exactepas évidente « Domain Specific Language (noun): a computer programming language of limited expressiveness focused on a particular domain » - Martin Fowler - www.xebia.fr / blog.xebia.fr 11
  • 12.
    Définition  Existent depuislongtemps ▶ awk, sed ▶ CSS ▶ Configurations XML ▶ Excel www.xebia.fr / blog.xebia.fr 12
  • 13.
    Différents types  DSLexternes  DSL internes  « Language Workbench DSL » www.xebia.fr / blog.xebia.fr 13
  • 14.
    Différents types  DSLpour personnes techniques ▶ Configuration XML, Expression Language, …  DSL pour tous ▶ Excel, Kodu, … www.xebia.fr / blog.xebia.fr 14
  • 15.
    MISE EN OEUVRE Solutionschoisies Résultats
  • 16.
    Choix méthodologiques  Scrum www.xebia.fr / blog.xebia.fr 16
  • 17.
    Choix méthodologiques www.xebia.fr / blog.xebia.fr 17
  • 18.
    Choix méthodologiques www.xebia.fr / blog.xebia.fr 18
  • 19.
    Choix méthodologiques  Quatreprincipes directeurs : ▶ Individus et interactions contre processus et outils ▶ Logiciel qui fonctionne contre documentation exhaustive ▶ Collaboration du client contre négociation de contrat ▶ Réponse au changement contre suivi d'un plan prédéfini www.xebia.fr / blog.xebia.fr 19
  • 20.
    Choix techniques www.xebia.fr / blog.xebia.fr 20
  • 21.
    Choix techniques  DSLinterne en Groovy ▶ Démarrage rapide ▶ Coût d’entrée faible ▶ Compétences en Groovy ▶ Plus rassurant www.xebia.fr / blog.xebia.fr 21
  • 22.
    Résultats  Première versionfonctionnelle ▶ Adapté pour un seul client ▶ Échéance imposé par le client ▶ Jeune avec quelques maladresses d’implémentation » Dette technique ! www.xebia.fr / blog.xebia.fr 22
  • 23.
    Résultats www.xebia.fr / blog.xebia.fr 23
  • 24.
    Résultats www.xebia.fr / blog.xebia.fr 24
  • 25.
    Résultats  Application bienaccueillie  +500 factures  < 1% d’erreur www.xebia.fr / blog.xebia.fr 25
  • 26.
    Et ensuite…  Nouvelleséchéances ▶ 2 mois ▶ 2 mois et demi ▶ 3 mois  Règles foncièrement différentes  Dette technique  Manque de temps ! www.xebia.fr / blog.xebia.fr 26
  • 27.
    Et ensuite…  Référentsmétier ne s’impliquent pas assez  Intérêt et complexité de le solution mal compris  Échéances plus importantes ! ▶ Abandon du DSL  augmentation de la productivité www.xebia.fr / blog.xebia.fr 27
  • 28.
    Et ensuite…  Changementsradicaux de certaines parties  Très peu de changements pour d’autres  Utilisation d’un DSL technique  Améliorations par rapport à l’existant ▶ Mais toujours un besoin de développeur(s) www.xebia.fr / blog.xebia.fr 28
  • 29.
  • 30.
    Réflexions  Projet particulièrementinnovant et ambitieux ▶ Trop ?  Premiers résultats en quelques mois  Mais problème d’adoption par le métier www.xebia.fr / blog.xebia.fr 30
  • 31.
    Réflexions  Notion deDSL difficile à comprendre ▶ Peur ?  Très peu d’existant / d’éléments de comparaison  Langages textuels effrayants ▶ DSL graphiques ? www.xebia.fr / blog.xebia.fr 31
  • 32.
    Réflexions  La programmationpour tous ! ▶ « Savoir utiliser l’informatique sans savoir programmer, c’est comme savoir lire sans savoir écrire ! » - Bernard Ourghanlian  Exemple de succès : ▶ Excel www.xebia.fr / blog.xebia.fr 32
  • 33.

Notes de l'éditeur

  • #5 Xebia a été fondé au Pays Bas en 2001 avec pour objectif l’amélioration de la qualité du développement Java. En 2004, de nombreuses entreprises telles que KLM, UWV, Prorail, Achmea et Rabo Bank avaient fait confiance à Xebia. Après le succès des différents projets, de nouvelles antennes virent le jour dont une à Gurgaon en Inde et une à Paris en France. Peu après de nouveaux comptes tels que EDF, SFR et Saint-Gobain s’ajoutèrent à leurs clients.
  • #12 un langage de programmation informatique : Un DSL est un langage informatique utilisé par les humains pour communiquer à la machine ce qu’elle doit faire. une expressivité limitée : Un DSL fournit le minimum de fonctionnalité nécessaire pour un domaine donné. On ne peut construire une application complète avec un DSL, mais il peut être utilisé pour une partie précise.  dédié à un domaine : Un langage limité n’a d’intérêt que s’il est prévu à un usage précis.