• Aucun résultat trouvé

Ce chapitre illustre notre architecture pour réduire le fossé entre le domaine de la Téléphonie sur IP et son implémentation. Ce problème est aujourd'hui une étape clé dans la course à la productivité, non seulement dans le domaine de la téléphonie mais également dans le développement logiciel en général.

Parce que la sémantique d'un DSML repose seulement sur des calculs relatifs au domaine, il devient plus facile de générer une implémentation mais aussi de raisonner sur un tel langage. Notre approche en couches permet de réduire le processus de compilation à une traduction de la logique. En ciblant la couche pivot que représente le DSPL, cette transformation devient à la portée d'outils haut niveau de génération de programme.

De plus, de par la nature des DSML, des aspects pertinents pour la vérication de propriétés peuvent simplement être extraits des modèles écrits dans de tels langages. La transformation de ces programmes DSML dans un langage de spécication d'un outil existant comme TLA+ devient alors accessible à des outils de transformation. Ceci permet d'assurer que les services écrits avec un langage dédié de modélisation sont bien conformes aux propriétés du domaine.

Nous avons validé notre approche avec les deux DSML présentés dans ce document, CPL et VisuCom, ainsi que notre DSPL, SPL. Ces langages ont permis d'illustrer la nature haut niveau des processus de transformation. Ainsi, ils ont permis de montrer la manière dont les DSML peuvent s'appuyer sur des outils existants à la fois pour la compilation mais aussi pour la vérication de propriétés.

Conclusion

Le développement logiciel connaît ces dernières années un bouleversement majeur avec l'émergence de nouveaux programmeurs et donc de nouveaux besoins. Il ne s'agit plus désormais de fournir des solutions de plus en plus puissantes et expressives, mais davantage de produire des outils spéciques, haut niveau et adaptés aux utilisateurs.

Cependant, la multiplication des prols de développeurs entraîne la prolifération des besoins en termes de solutions de programmation. Sans une automatisation du processus de développement logiciel, il est impossible de répondre à cette attente du fait du coût de construction de telles solutions. De plus, le manque d'expertise en programmation de ces développeurs entraîne des contraintes fortes en termes de abilité des programmes, d'où la nécessité d'introduire un processus de vérication.

An de répondre à ces attentes, nous avons présenté dans cette thèse une nouvelle approche basée sur les langages dédiés à un domaine (DSL) et reposant sur une ar-chitecture en couches des langages. À travers une distinction sur la nature des DSL, cette architecture introduit une séparation entre la programmation et la modélisation de solutions. Cette diérenciation permet à la fois d'élever progressivement le niveau d'abstraction des solutions, mais également de spécialiser et d'automatiser les processus de compilation et de vérication de propriétés du domaine. Nous avons illustré notre démarche avec le domaine de la Téléphonie sur IP. Pour cela, nous avons conçu deux langages dédiés évoluant à des niveaux d'abstraction diérents.

Ce chapitre dresse un bilan des diérentes contributions de notre thèse et présente quelques perspectives de recherche.

10.1 Contributions

La contribution de cette thèse est double. Dans un premier temps, nous montrons comment, en architecturant les langages dédiés d'un domaine d'application, il devient possible de faciliter le développement de solutions logicielles haut niveau. Cette approche permet alors de rendre la programmation plus accessible aux nouveaux développeurs en leur fournissant simplement des outils ables et adaptés. Dans un second temps, nous proposons une mise en oeuvre de cette architecture dans le domaine de la Téléphonie

133

sur IP. Grâce à la réutilisation d'outils existants, nous évaluons alors les avantages de cette approche en termes de facilité de compilation et de vérication de propriétés du domaine.

Approche langage au développement de solutions haut niveau. Nous avons introduit une nouvelle approche des langages dédiés (DSL), centrée sur les besoins de l'utilisateur nal. Nous avons montré qu'une distinction entre des langages orientés pro-grammation (DSPL) et des langages orientés modélisation (DSML) permet d'apporter des solutions adaptées à ces besoins, mais également de prendre en compte leur diver-sité. En architecturant ces langages en couches, nous avons mis en évidence qu'il est possible de répondre au problème de la montée en abstraction, en réduisant le fossé entre le niveau d'abstraction des solutions et leurs implémentations.

Analyse de domaine. Nous avons eectué une analyse complète du domaine de la Téléphonie sur IP. À partir des résultats obtenus, nous avons conçu deux langages dédiés haut niveau pour la création de services. Ces solutions de programmation sont adaptées à des prols diérents de développeurs, selon leur expertise du domaine et leurs besoins.

Le premier, SPL, est un langage dédié de programmation expressif et able, permet-tant à des experts de développer des services. Il garantit des propriétés critiques qui ne peuvent pas être vériées dans des langages généralistes, en introduisant des concepts spéciques au domaine ainsi que des restrictions sémantiques.

Le second, VisuCom, est un langage dédié de modélisation qui ne nécessite aucune expertise en programmation. Intuitif et sûr, ce langage visuel permet à des développeurs de dénir des traitements d'appels du point de vue de leur métier. Pour cela, nous avons introduit une nouvelle approche de développement de services de téléphonie qui vise à intégrer directement dans le processus de conception des données émanant du système d'informations d'une organisation. En intégrant le métier de l'utilisateur dans la programmation de services, cela nous permet à la fois d'adapter VisuCom en présentant des abstractions vis-à-vis des besoins des développeurs, mais également de renforcer la abilité des services.

Séparation des préoccupations. En utilisant le DSPL comme pivot de notre archi-tecture, nous avons séparé les préoccupations du domaine de celles liées à l'implémen-tation. En ciblant un tel langage, les détails d'implémentation se trouvent cachés du point de vue des solutions haut niveau (DSML). La compilation de ces détails est alors reportée au niveau du compilateur du DSPL. Ce langage fait oce d'interface, sépa-rant la compilation du domaine de la compilation liée à l'implémentation. La séparation des préoccupations permet à un DSML de se concentrer uniquement sur la logique du programme et de raisonner dessus de manière indépendante.

Processus de compilation simplié. Notre approche en couches permet de réduire le fossé existant entre les abstractions et l'implémentation. En séparant la compilation

de la logique de la compilation des détails d'implémentation, le processus de compila-tion devient plus simple. Cette facilité de compilacompila-tion des DSML introduite par notre architecture se traduit par la possibilité d'utiliser des outils haut niveau existants. Nous avons montré, grâce à notre étude de cas, que la compilation est alors à la portée d'outils diverses, comme, par exemple, ceux de transformation de programme (Stratego/XT) ou bien de transformation de modèles (ATL). Nous avons ainsi implémenté deux compila-teurs en Stratego pour chacun des DSML, ciblant SPL et un langage de spécication formelle.

Le DSPL permet de partager, au sein de notre architecture, une grande partie de l'implémentation. Ainsi, notre approche facilite la prise en compte de la variabilité des solutions de programmation. La compilation de nouvelles solutions se trouve alors ré-duite à la traduction de nouveaux modèles dans le DSPL, d'où une simplication du processus de développement. De plus, la séparation des préoccupations permet égale-ment de recibler plus simpleégale-ment un DSML sur un autre environneégale-ment d'exécution, sans eort de compilation supplémentaire.

An de simplier l'implémentation du DSPL, nous avons également proposé une méthodologie de compilation de langages dédiés, basée sur les techniques de généra-tion de programme. Nous avons montré que cette approche permet de modulariser le processus tout entier de génération du compilateur, et donc de le simplier.

Vérication de propriétés du domaine. Parce que la sémantique d'un DSML repose seulement sur des calculs du domaine, il devient plus facile de raisonner sur de tels langages. De par la nature des DSML, des aspects pertinents pour la vérication de propriétés peuvent simplement être extraits des modèles. Ainsi, nous avons démontré que le processus de vérication devient haut niveau et à la portée d'outils de vérication formelle. La transformation de ces modèles dans un langage de spécication d'un outil existant devient alors accessible à des outils de transformation. Ceci permet d'assurer que les services écrits avec un langage dédié de modélisation sont bien conformes aux propriétés du domaine. Nous avons validé notre approche avec les deux DSML présentés dans ce document, CPL et VisuCom. Cela nous a permis d'assurer des propriétés qui sont impossibles à vérier dans le cadre de développements traditionnels.