Implémentation d’unDomain Specific Language     en entreprise Soutenance                                    PromotionMémoi...
Agenda Contexte Problématique Définition d’un DSL Mise en œuvre Réflexion Conclusion                        www.xebi...
CONTEXTEXebiaLa mission
Xebia Stage de fin d’étude chez Xebia IT Architect  ▶   Groupe d’experts dédié aux technologies Java  ▶   Présent au Pays...
La mission Module de facturation Refonte globale de l’outil de gestion interne Règles de facturation  ▶   Nombreuses  ▶...
L’existant Logiciel de facturation : Magora Une application / client Développement long Pas de factorisation des règle...
PROBLEMATIQUES
Problématiques Comment créer et modifier des règles ?  ▶   Utilisation d’un pseudo langage Comment éviter l’intervention...
Problématiques Comment introduire un DSL ?  ▶   Le rendre utilisable par les gens du métier  ▶   En expliquer la plus val...
QU’EST CE QU’UN DSL ?DéfinitionDifférents types
Définition Définition exacte pas évidente       « Domain Specific Language (noun):   a computer programming language of l...
Définition Existent depuis longtemps  ▶   awk, sed  ▶   CSS  ▶   Configurations XML  ▶   Excel                           ...
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, ...
MISE EN OEUVRESolutions choisiesRé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  ▶   Logici...
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  ▶   Pl...
Résultats Première version fonctionnelle  ▶   Adapté pour un seul client  ▶   Échéance imposé par le client  ▶   Jeune av...
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 techn...
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 ...
Et ensuite… Changements radicaux de certaines parties Très peu de changements pour d’autres Utilisation d’un DSL techni...
REFLEXIONS
Réflexions Projet particulièrement innovant et ambitieux  ▶   Trop ? Premiers résultats en quelques mois Mais problème ...
Réflexions Notion de DSL difficile à comprendre  ▶   Peur ? Très peu d’existant / d’éléments de comparaison Langages te...
Réflexions La programmation pour tous !  ▶   « Savoir utiliser l’informatique sans savoir programmer, c’est      comme sa...
CONCLUSION
Prochain SlideShare
Chargement dans…5
×

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

4 427 vues

Publié le

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

  1. 1. Implémentation d’unDomain Specific Language en entreprise Soutenance PromotionMémoire de fin Brice Argenson SUPINFO 2010 d’étude
  2. 2. Agenda Contexte Problématique Définition d’un DSL Mise en œuvre Réflexion Conclusion www.xebia.fr / blog.xebia.fr 2
  3. 3. CONTEXTEXebiaLa mission
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. PROBLEMATIQUES
  8. 8. 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
  9. 9. 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
  10. 10. QU’EST CE QU’UN DSL ?DéfinitionDifférents types
  11. 11. 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
  12. 12. Définition Existent depuis longtemps ▶ awk, sed ▶ CSS ▶ Configurations XML ▶ Excel www.xebia.fr / blog.xebia.fr 12
  13. 13. Différents types DSL externes DSL internes « Language Workbench DSL » www.xebia.fr / blog.xebia.fr 13
  14. 14. Différents types DSL pour personnes techniques ▶ Configuration XML, Expression Language, … DSL pour tous ▶ Excel, Kodu, … www.xebia.fr / blog.xebia.fr 14
  15. 15. MISE EN OEUVRESolutions choisiesRésultats
  16. 16. Choix méthodologiques Scrum www.xebia.fr / blog.xebia.fr 16
  17. 17. Choix méthodologiques www.xebia.fr / blog.xebia.fr 17
  18. 18. Choix méthodologiques www.xebia.fr / blog.xebia.fr 18
  19. 19. 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 dun plan prédéfini www.xebia.fr / blog.xebia.fr 19
  20. 20. Choix techniques www.xebia.fr / blog.xebia.fr 20
  21. 21. 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
  22. 22. 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
  23. 23. Résultats www.xebia.fr / blog.xebia.fr 23
  24. 24. Résultats www.xebia.fr / blog.xebia.fr 24
  25. 25. Résultats Application bien accueillie +500 factures < 1% d’erreur www.xebia.fr / blog.xebia.fr 25
  26. 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. 27. 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
  28. 28. 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
  29. 29. REFLEXIONS
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. CONCLUSION

×