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 025 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
4 025
Sur SlideShare
0
Issues des intégrations
0
Intégrations
25
Actions
Partages
0
Téléchargements
106
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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.
  • 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.
  • 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

    ×