+ All Categories
Home > Technology > Soutenance mémoire : Implémentation d'un DSL en entreprise

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

Date post: 29-Nov-2014
Category:
Upload: brice-argenson
View: 3,209 times
Download: 1 times
Share this document with a friend
Description:
 
33
Implémentation d’un Domain Specific Language en entreprise Soutenance Mémoire de fin d’étude Brice Argenson Promotion SUPINFO 2010
Transcript
Page 1: Soutenance mémoire : Implémentation d'un DSL en entreprise

Implémentation d’un Domain Specific Language

en entreprise

Soutenance Mémoire de fin

d’étudeBrice Argenson

Promotion SUPINFO 2010

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

Agenda

Contexte

Problématique

Définition d’un DSL

Mise en œuvre

Réflexion

Conclusion

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

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

CONTEXTE

XebiaLa mission

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

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

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

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

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

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

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

PROBLEMATIQUES

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

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

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

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

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

QU’EST CE QU’UN DSL ?

DéfinitionDifférents types

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

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

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

Définition

Existent depuis longtemps

▶ awk, sed

▶ CSS

▶ Configurations XML

▶ Excel

www.xebia.fr / blog.xebia.fr 12

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

Différents types

DSL externes

DSL internes

« Language Workbench DSL »

www.xebia.fr / blog.xebia.fr 13

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

Différents types

DSL pour personnes techniques

▶ Configuration XML, Expression Language, …

DSL pour tous

▶ Excel, Kodu, …

www.xebia.fr / blog.xebia.fr 14

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

MISE EN OEUVRE

Solutions choisiesRésultats

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

Choix méthodologiques

Scrum

www.xebia.fr / blog.xebia.fr 16

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

Choix méthodologiques

www.xebia.fr / blog.xebia.fr 17

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

Choix méthodologiques

www.xebia.fr / blog.xebia.fr 18

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

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

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

Choix techniques

www.xebia.fr / blog.xebia.fr 20

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

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

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

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

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

Résultats

www.xebia.fr / blog.xebia.fr 23

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

Résultats

www.xebia.fr / blog.xebia.fr 24

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

Résultats

Application bien accueillie

+500 factures

< 1% d’erreur

www.xebia.fr / blog.xebia.fr 25

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

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

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

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

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

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

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

REFLEXIONS

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

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

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

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

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

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

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

CONCLUSION


Recommended