• Aucun résultat trouvé

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.

ce problème. En eet, les taxonomies actuelles s'intéressent pour la plupart à catégoriser les DSL selon leur implémentation, les paradigmes du langage, le type de construction mis à disposition ou encore leur représentation [MHS05]. Elles ne s'occupent en aucun cas de caractériser ces langages selon le contexte d'utilisation (e.g., le type de dévelop-peur ciblé, la manière d'utiliser le langage, les compétences nécessaires spéciques au domaine ou à la programmation). De nombreuses études s'accordent pourtant à dire que ces notions de contextes et d'utilisateurs sont liées à la dénition du domaine, et qu'elles apparaissent primordiales lors de la conception d'un DSL. Une telle classi-cation pourrait permettre de simplement diérencier les langages et savoir dans quels contextes ils peuvent être utilisés et à quels types de développeurs ils sont destinés.

Il est également envisageable de catégoriser les diérentes tâches du domaine qui permettent de répondre à l'ensemble des besoins des développeurs. Chaque tâche, ou combinaison de tâches, peut alors être utilisée pour dénir un DSML potentiel du do-maine. Dans le cas de la téléphonie, il pourrait s'agir de tâches comme le transfert d'appel, la gestion de la présence, la consultation d'un agenda ou encore la gestion multimédia. La classication de ces tâches permettrait de caractériser l'ensemble des langages du domaine.

En ce qui concerne la modélisation de solutions, des perspectives de recherche sont ouvertes au niveau de VisuCom. Aujourd'hui, il permet de gérer uniquement la pro-grammation de routage d'appels téléphoniques. Cependant, les concepts sous-jacents à ce langage de modélisation sont manipulables dans d'autres contextes. Ainsi, il apparaît intéressant d'étudier diérentes extensions à VisuCom. Il pourrait s'agir d'extensions à d'autres caractéristiques du protocole SIP (évènements), mais également à d'autres domaines comme le mail, ou d'autres stimuli de communication comme la présence.

En fonction des diérentes solutions obtenues, des travaux pourraient consister à étudier les concepts langages manipulés au niveau des modèles de chaque déclinaison de VisuCom, et la manière de les conceptualiser. Par exemple, le couplage avec la base de contacts permet d'introduire implicitement dans le modèle une notion de variable et de paramètre qui est totalement cachée du point de vue de l'utilisateur.

Enn, dans cette thèse, nous avons souligné la complémentarité des approches exis-tantes, à savoir l'Ingénierie Dirigée par les Modèles et les langages dédiés de programma-tion. Il a également été mis en avant la distance qui existait aujourd'hui entre ces deux mondes. Le travail présenté ici ne constitue qu'un premier pas vers la convergence entre la programmation et la modélisation de solutions. Une prochaine direction de recherche consiste à étudier de manière plus approfondie chacun des domaines an de mettre en relation des concepts, des vocabulaires, mais aussi des approches diérentes. Ce travail permettrait de savoir ce que chaque domaine peut apporter à l'autre et comment les utiliser conjointement dans un projet logiciel.

Publications

Conférences internationales

1. F. Latry, C. Consel, et J. Mercadal. Staging Telephony Service Creation : A Language Approach. Dans Proceedings of the 1st ACM SIGCOMM International Conference on Principles, Systems and Applications of IP Telecommunications (IPTComm'07), Columbia University, New York City, USA, Juillet 2007.

2. L. Burgy, C. Consel, J. Lawall, F. Latry, N. Palix, et L. Réveillère. Language Technology for Internet-Telephony Service Creation. Dans Proceedings of the IEEE International Conference on Communications (ICC'06), Istanbul, Turkey, Juin 2006.

3. L. Burgy, C. Consel, F. Latry, N. Palix, et L. Réveillère. A High-Level, Open Ended Architecture For SIP-based Services. Dans Proceedings of the 10th IEEE International Conference on Intelligence in service delivery Networks (ICIN'06), Bordeaux, France, Mai 2006.

4. F. Latry, P. Cointe, C. Consel, et L. Réveillère. A Generative Programming Ap-proach to Developing DSL Compilers. Dans Processings of the 4th ACM Interna-tional Conference on Generative Programming and Component Engineering (GP-CE'05) (R. Gluck et M. Lowry, eds.), volume 3676 de Lecture Notes in Computer Science, pages 29-46. Springer-Verlag. Tallinn, Estonia, Septembre 2005.

5. L. Burgy, L. Caillot, C. Consel, F. Latry, et L. Réveillère. A Comparative Study of SIP Programming Interfaces. Dans Proceedings of the 9th IEEE Internatio-nal Conference on Intelligence in service delivery Networks (ICIN'04), Bordeaux, France, Octobre 2004.

Workshops internationaux

1. F. Latry, C. Consel, et J. Mercadal. Processing Domain-Specic Modeling Lan-guages : A Case Study in Telephony Services. Dans Proceedings of the 1st GPCE Workshop for QoS Provisioning in Distributed Systems (GPCE4QoS), Portland, USA, Octobre 2006.

2. J. Bézivin, C. Consel, F. Jouault, I. Kurtev, et F. Latry. Building DSLs with AMMA/ATL, a Case Study on SPL and CPL Telephony Languages. Dans Pro-ceedings of the 1st ECOOP Workshop on Domain-Specic Program Development (DSPD'06), Nantes, France, Juillet 2006.

137

Journaux

1. L. Burgy, C. Consel, F. Latry, N. Palix, et L. Réveillère. Telephony over IP : Experience and Challenges. European Research Consortium for Informatics and Mathematics (ERCIM'05) - Security and Trust Management, volume 63, pages 53-54, Octobre 2005.

Brevet et dépôt logiciel

1. Dépôt de brevet d'invention européen : "Dispositif d'interconnexion d'un système d'informations d'entreprise(s) à un serveur". Brevet INRIA, 06291276.1, déposé le 7 août 2006.

2. Dépôt logiciel à l'Agence de Protection des Programmes (APP) concernant le logiciel VisuCom et son environnement d'exécution, version 1.0.

Bibliographie

[ABBC99] D. Atkins, T. Ball, G. Bruns, et K. Cox. Mawl : A Domain-Specic Lan-guage for Form-Based Services. IEEE Transactions on Software Enginee-ring, volume 25(3), pages 334346. IEEE Computer Society, Juin 1999.

[Abr96] J.R. Abrial. The B-Book : Assigning Programs to Meanings. Cambridge University Press, New York (NY), USA, 1996.

[ADR95] B. Arnold, A. van Deursen, et M. Res. An Algebraic Specication of a Language for Describing Financial Products. Dans Proceedings of the 17th ICSE Workshop on Formal Methods Application in Software Engineering Practice (M. Wirsing, ed.), pages 613. IEEE Computer Society Press, Avril 1995.

[AF03] A. Andreasen et B. Foster. Media Gateway Control Protocol (MGCP).

Request for Comments 3435, The Internet Engineering Task Force, Janvier 2003.

[Ara89] A. Arango. Domain Analysis : From Art Form to Engineering Discipline.

Dans Proceedings of the 5th International Workshop on Software Specica-tion and Design (IWSSD'89), pages 152159. ACM Press, 1989.

[ASU86] A.V. Aho, R. Sethi, et J.D. Ullman. Compilers Principles, Techniques, and Tools. Addison-Wesley, 1986.

[Bac59] J.W. Backus. The Syntax and Semantics of the Proposed International Algebraic Language of the Zurich ACM-GAMM Conference. Dans Pro-ceedings of the 1st International Conference on Information Processing (ICIP'59), pages 125132, 1959.

[BBB+04] J. Bézivin, M. Blay, M. Bouzhegoub, J. Estublier, J.M. Favre, S. Gérard, et J.M. Jézéquel. Rapport de synthèse de l'AS CNRS sur le MDA. Rapport Technique, CNRS, Novembre 2004.

[BCC+04] L. Burgy, L. Caillot, C. Consel, F. Latry, et L. Réveillère. A Comparative Study of SIP Programming Interfaces. Dans Proceedings of the 9th Interna-tional Conference on Intelligence in service delivery Networks (ICIN'04), Bordeaux, France, Octobre 2004.

[BCL+06a] L. Burgy, C. Consel, F. Latry, J. Lawall, N. Palix, et L. Réveillère. Language Technology for Internet-Telephony Service Creation. Dans Proceedings

139

of the 41st IEEE International Conference on Communications (ICC'06), pages 17951800. IEEE Communications Society Press, Juin 2006.

[BCL+06b] L. Burgy, C. Consel, F. Latry, N. Palix, et L. Réveillère. A High-Level, Open Ended Architecture For SIP-based Services. Dans Proceedings of the 10th International Conference on Intelligence in service delivery Networks (ICIN'06), Bordeaux, France, Mai 2006.

[BCP01] M.M. Burnett, S.K. Chekka, et R.K. Pandey. FAR : An End-User Language to Support Cottage E-Services. Dans Proceedings of the IEEE International Symposium on Human-Centric Computing Languages and Environments (HCC'01), pages 195202. IEEE Computer Society Press, Septembre 2001.

[BCT05] A.W. Brown, J. Conallen, et D. Tropeano. Models, Modeling, and Model Driven Development. Dans Model-Driven Software Development (S. Bey-deda, M. Book, et V. Gruhn, eds.), pages 117. Springer-Verlag, 2005.

[Ben86] J.L. Bentley. Programming Pearls : Little Languages. Communications of the ACM, volume 29(8), pages 711721. 1986.

[Béz06] J. Bézivin. Model Driven Engineering : An Emerging Technical Space.

Dans Generative and Transformational Techniques in Software Engineering (R. Lämmel, J. Saraiva, et J. Visser, eds.), volume 4143 de Lecture Notes in Computer Science, pages 3664. Springer-Verlag, 2006.

[BG96] Bergin et Gibson. History of programming languages II. ACM Press, New York (NY), USA, 1996.

[BG01] J. Bézivin et J. Gerbé. Towards a Precise Denition of the OMG/MDA Framework. Dans Proceedings of the 16th IEEE International Conference on Automated Software Engineering (ASE'01), pages 273280. IEEE Com-puter Society Press, 2001.

[BGK+06] K. Balasubramanian, A. Gokhale, G. Karsai, J. Sztipanovits, et S. Neema.

Developing Applications Using Model-Driven Design Environments. IEEE Computer Society Press, volume 39(2), pages 3340. Février 2006.

[Bja96] E. Bjarnason. APPLAB : a Laboratory for Application Languages. Dans Proceedings of the 7th Nordic Workshop on Programming Environment Re-search (NWPER'96) (L. Bendix, K. Nørmark, et K. Østerby, eds.). Rap-port Technique R-96-2019, Aalborg University, Mai 1996.

[BJK87] J. Bentley, L. Jelinski, et B. Kernighan. CHEM - a Program for Photo-typesetting Chemical Structure Diagrams. Computers & Chemistry, vo-lume 11(4), pages 281297. 1987.

[BKVV06] M. Bravenboer, K. T. Kalleberg, R. Vermaas, et E. Visser. Stratego/XT 0.16 : Components for Transformation Systems. Dans Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and semantics-based Program Manipulation (PEPM'06), pages 9599. ACM Press, 2006.

[Bla05] X. Blanc. MDA en action. Eyrolles, Paris, France, 2005.

[BLS98] D. Batory, B. Lofaso, et Y. Smaragdakis. JTS : Tools for Implementing Domain-Specic Languages. Dans Proceedings of the 5th International Conference on Software Reuse (ICSR'98), pages 143153. IEEE Computer Society Press, 1998.

[BTS94] D. Batory, J. Thomas, et M. Sirkin. Reengineering a Complex Applica-tion using a Scalable Data Structure Compiler. Dans Proceedings of the 2nd ACM SIGSOFT Symposium on Foundations of Software Engineering (SIGSOFT'94), pages 111120. ACM Press, 1994.

[BV04] M. Bravenboer et E. Visser. Concrete Syntax for Objects : Domain-Specic Language Embedding and Assimilation Without Restrictions. Dans Pro-ceedings of the 19th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'04), pages 365383. ACM Press, 2004.

[CD93] C. Consel et O. Danvy. Tutorial Notes on Partial Evaluation. Dans Proceedings of the 20th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 493501. ACM Press, Janvier 1993.

[CE00] K. Czarnecki et U.W. Eisenecker. Generative Programming : Methods, Tools, and Applications. Addison-Wesley, New York (NY), USA, 2000.

[CEI+05] A. Chander, D. Espinosa, N. Islam, P. Lee, et G. Necula. Enforcing Re-source Bounds via Static Verication of Dynamic Checks. Dans Procee-dings of the 14th European Symposium on Programming (ESOP'05), vo-lume 3444, pages 311325. Springer-Verlag, 2005.

[CESW04] T. Clark, A. Evans, P. Sammut, et J. Willans. Applied Metamodelling : A Foundation for Language Driven Development. Xactium, Septembre 2004.

[CFB00] S. Ceri, P. Fraternali, et A. Bongio. Web Modeling Language (WebML) : a Modeling Language for Designing Web Sites. Computer Networks, vo-lume 33(1-6), pages 137157. Elsevier North-Holland, Inc., 2000.

[CFPR00] C. Cortes, K. Fisher, D. Pregibon, et A. Rogers. Hancock : a Language for Extracting Signatures from Data Streams. Dans Proceedings of the 6th ACM International Conference on Knowledge Discovery and Data mining (SIGKDD'00), pages 917. ACM Press, 2000.

[CHM+02] G. Csert, G. Huszerl, I. Majzik, Z. Pap, A. Pataricza, et D. Varr. VIATRA : Visual Automated Transformations for Formal Verication and Validation of UML Models. Dans Proceedings of the 17th IEEE International Confe-rence on Automated Software Engineering (ASE'02), pages 267270. IEEE Computer Society Press, Septembre 2002.

[CL97] S. Chandra et J. Larus. Experience with a Language for Writing Coherence Protocols. Dans Proceedings of the 1st USENIX Conference on Domain-Specic Languages (DSL'97), Octobre 1997.

[CM87] W. Clocksin et C. Mellish. Programming in Prolog. Springer-Verlag, 1987.

[CM98] C. Consel et R. Marlet. Architecture Software Using A Methodology for Language Development. Dans Proceedings of the 10th International Sym-posium on Principles of Declarative Programming (PLILP'98), pages 170 194. Springer-Verlag, 1998.

[Con04] C. Consel. Domain-Specic Program Generation ; International Seminar, Dagstuhl Castle, chapitre From A Program Family To A Domain-Specic Language, pages 1929. Number 3016 in Lecture Notes in Computer Science. Springer-Verlag, 2004.

[Coo04] S. Cook. Domain-Specic Modeling and Model Driven Architecture. Dans The MDA Journal : Model Driven Architecture Straight from the Masters (D. Frankel et J. Parodi, eds.), chapitre 3. Meghan Kier, Décembre 2004.

[Cor06] J.R. Cordy. Source Transformation, Analysis and Generation in TXL.

Dans Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and semantics-based Program Manipulation (PEPM'06), pages 111. ACM Press, 2006.

[DF98] R. Douence et P. Fradet. A Systematic Study of Functional Language Im-plementations. ACM Transactions on Programming Languages and Sys-tems, volume 20(2), pages 344387. ACM Press, 1998.

[DJK02] L. Dang, C. Jennings, et D. G. Kelly. Practical VoIP Using Vocal. O'Reilly, Juillet 2002.

[DK98] A. van Deursen et P. Klint. Little Languages : Little Maintenance. Journal of Software Maintenance, volume 10(2), pages 7592. John Wiley & Sons, 1998.

[DKV00] A. van Deursen, P. Klint, et J. Visser. Domain-specic languages : An annotated bibliography. ACM SIGPLAN Notices, volume 35(6), pages 26 36. 2000.

[DRM04] J. Deruelle, M. Ranganathan, et D. Montgomery. Programmable Active Services for JAIN SIP. Rapport Technique, National Institute of Standards and Technology, June 2004.

[DSM06] DSM Forum : Domain-Specic Modeling. http ://www.dsmforum.org, 2006.

[EFF+97] E. Eide, K. Frei, B. Ford, J. Lepreau, et G. Lindstrom. Flick : a Flexible, Optimizing IDL Compiler. Dans Proceedings of the ACM SIGPLAN Confe-rence on Programming Language Design and Implementation (PLDI'97), pages 4456. ACM Press, 1997.

[Ell99] C. Elliott. An Embedded Modeling Language Approach to Interactive 3D and Multimedia Animation. IEEE Transactions on Software Engineering, volume 25(3), pages 291308. IEEE Press, 1999.

[Eng01] R. van Engelen. ATMOL : A Domain-Specic Language for Atmospheric Modeling. Journal of Computing and Information Technology, volume 9(4), pages 289303. 2001.

[eP07] Groupe ATLAS et Phoenix. ATL Use Case - DSLs coordination for Tele-phony. http ://www.eclipse.org/m2m/atl/usecases/DSLsTelephony/, Fé-vrier 2007.

[FG05] K. Fisher et R. Gruber. PADS : A Domain-Specic Language for Processing Ad-Hoc Data. Dans Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'05), pages 295 304. ACM Press, 2005.

[FGD02] R. Falbo, G. Guizzardi, et K. Duarte. An Ontological Approach to Domain Engineering. Dans Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering (SEKE'02), pages 351 358. ACM Press, 2002.

[FGDS06] R.B. France, S. Ghosh, T. Dinh, et A. Solberg. Model-Driven Development Using UML 2.0 : Promises and Pitfalls. Computer, volume 39(2), pages 59 66. IEEE Computer Society Press, 2006.

[Fle06] F. Fleurey. Langage et Méthode pour une Ingénierie des Modèles Fiable.

Thèse de doctorat, Université de Rennes 1, Rennes, France, Octobre 2006.

[FPDF98] W. Frakes, R. Prieto-Diaz, et F. Fox. DARE : Domain Analysis and Reuse Environment. Annals of Software Engineering, volume 5, pages 125141.

J. C. Baltzer AG, Science Publishers, 1998.

[FR05] M. Fisher II et G. Rothermel. The EUSES Spreadsheet Corpus : A Shared Resource for Supporting Experimentation with Spreadsheet Dependability Mechanism. Dans Proceedings of the 1st Workshop on End-user Software Engineering (WEUSE'05), pages 4751. ACM Press, Mai 2005.

[FS00] M. Fowler et K. Scott. UML Distilled (2nd ed.) : a Brief Guide to the Standard Object Modeling Language. Addison-Wesley, Boston (MA), USA, 2000.

[GBA+05] R. Grønmo, M. Belaunde, J. Aagedal, K.D. Engel, M. Faugere, et I. Sol-heim. Evaluation of the Proposed QVTMerge Language for Model Trans-formations. Dans Proceedings of the Joint Workshop on Web Services and Model-Driven Enterprise Information Services (WSMDEIS'05), pages 65 74. Institute for Systems and Technologies of Information, Control and Communication (INSTICC) Press, 2005.

[GJKW97] N. Gupta, L. Jagadeesan, E. Koutsoos, et D. Weiss. Auditdraw : Genera-ting Audits the FAST Way. Dans Proceedings of the 3rd IEEE International Symposium on Requirements Engineering (ISRE'97), pages 188197. IEEE Computer Society Press, 1997.

[GK02] K. Gondow et H. Kawashima. Towards ANSI C Program Slicing using XML. Electronic Notes Theoretical Computer Science, volume 65(3). 2002.

[GK03] J. Gray et G. Karsai. An Examination of DSLs for Concisely Represen-ting Model Traversals and Transformations. Dans Proceedings of the 36th annual Hawaii International Conference on System Sciences (HICSS'03), page 325.1. IEEE Computer Society Press, 2003.

[GLR+02] A. Gerber, M. Lawley, K. Raymond, J. Steel, et A. Wood. Transforma-tion : The Missing Link of MDA. Dans Proceedings of the 1st InternaTransforma-tional Conference on Graph Transformation (ICGT'02), volume 2505 de Lecture Notes in Computer Science, pages 90105. Springer-Verlag, 2002.

[GS96] D. Garlan et M. Shaw. Software Architecture : Perspectives on an Emerging Discipline. Prentice-Hall, 1996.

[GSCK04] J. Greeneld, K. Short, S. Cook, et S. Kent. Software Factories : Assem-bling Applications with Patterns, Models, Frameworks, and Tools. John Wiley & Sons, 2004.

[GTK+06] J. Gray, J.P. Tolvanen, S. Kelly, A. Gokhale, S. Neema, et J. Sprinkle.

Domain-Specic Modeling. Dans Handbook of Dynamic System Modeling (P. Fishwick, ed.), page (in publication). CRC, 2006.

[Hal96] M. Hall. A Risk and Control Oriented Study of the Practices of Spreadsheet Application Developers. Dans Proceedings of the 29th Hawaii International Conference on System Sciences (HICSS'96), volume 2, page 364. IEEE Computer Society Press, 1996.

[HB88] R.M. Herndon et V.A. Berzins. The Realizable Benets of a Language Prototyping Language. IEEE Transaction on Software Engineering, vo-lume 14(6), pages 803809. IEEE Computer Society Press, 1988.

[HHKR89] J. Heering, P.R. Hendriks, P. Klint, et J. Rekers. The Syntax Denition Formalism SDF - Reference Manual -. SIGPLAN Notices, volume 24(11), pages 4375. ACM Press, 1989.

[HMGW96] P. Hudak, M. Makucevich, S. Gadde, et B. Whong. Haskore Music Notation - An Algebra of Music. Journal of Functional Programming, volume 6(3), pages 465483. 1996.

[Hol97] G. Holzmann. The Model Checker SPIN. IEEE Transactions on Software Engineering, volume 23(5), pages 279295. IEEE Computer Society Press, 1997.

[HR04] D. Harel et B. Rumpe. Meaningful Modeling : What's the Semantics of

"Semantics" ? Computer, volume 37(10), pages 6472. IEEE Computer Society Press, 2004.

[HT06] B. Hailpern et P. Tarr. Model-Driven Development : the Good, the Bad, and the Ugly. IBM Systems Journal, volume 45(3), pages 451461. IBM Corp., 2006.

[Hud96] P. Hudak. Building Domain-Specic Embedded Languages. ACM Compu-ting Survey, volume 28(4es), pages 196. ACM Press, 1996.

[Iiv96] J. Iivari. Why are CASE tools not used ? Communications of the ACM, volume 39(10), pages 94103. ACM Press, 1996.

[Jac01] M. Jackson. Problem Frames : Analyzing and Structuring Software Deve-lopment Problems. Addison-Wesley, Boston (MA), USA, 2001.

[JB00] J. Jennings et E. Beuscher. Verischemelog : Verilog Embedded in Scheme.

ACM SIGPLAN Notices, volume 35(1), pages 123134. ACM Press, 2000.

[JB06] J. Jouault et J. Bézivin. KM3 : A DSL for Metamodel Specication. Dans Proceedings of the 8th IFIP WG 6.1 International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS'06), vo-lume 4037 de Lecture Notes in Computer Science, pages 171185. Springer-Verlag, 2006.

[JBC+06] F. Jouault, J. Bézivin, C. Consel, I. Kurtev, et F. Latry. Building DSLs with AMMA/ATL, a Case Study on SPL and CPL Telephony Languages.

Dans Proceedings of the 1st ECOOP Workshop on Domain-Specic Pro-gram Development (DSPD'06), Juillet 2006.

[JGS93] N.D. Jones, C. Gomard, et P. Sestoft. Partial Evaluation and Automatic Program Generation. International Series in Computer Science. Prentice-Hall, Juin 1993.

[JK06a] F. Jouault et I. Kurtev. On the Architectural Alignment of ATL and QVT. Dans Proceedings of the 21st ACM Symposium on Applied Compu-ting (SAC'06), pages 11881195. ACM Press, 2006.

[JK06b] F. Jouault et I. Kurtev. Transforming Models with ATL. Dans Satel-lite Events at the MoDELS Conference (J.M. Bruel, ed.), volume 3844 de Lecture Notes in Computer Science, pages 128138. Springer-Verlag, 2006.

[Jon06] C. Jones. Software Productivity Research, Programming Languages Table.

http ://www.spr.com, 2006.

[Jou06] F. Jouault. Contribution à l'Étude des Langages de Transformation de Modèles. Thèse de doctorat, Université de Nantes (LINA), Nantes, France, Septembre 2006.

[JP01] B. Jacobs et E. Poll. A Logic for the Java Modeling Language JML.

Dans Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering (FASE'01), pages 284299. Springer-Verlag, 2001.

[Kar00] G. Karsai. Model Integrated Computing (MIC). ACM SIGSOFT Software Engineering Notes, volume 25(1). ACM Press, 2000.

[KCH+90] K. Kang, S. Cohen, J. Hess, W. Novak, et S. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Rapport Technique CMU/SEI-90-TR-21, Software Engineering Institute, Novembre 1990.

[Kel04] S. Kelly. Comparison of Eclipse EMF/GEF and MetaEdit+ for DSM.

Dans Proceedings of the 19th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, Workshop on Best Practices for Model Driven Software Development. ACM Press, 2004.

[KG03] H. Kawashima et K. Gondow. Experience with ANSI C Markup Language for a Cross-Referencer. Dans Proceedings of the 36th Annual Hawaii Inter-national Conference on System Sciences (HICSS'03), pages 324352. IEEE Computer Society Press, 2003.

[KH97] S.N. Kamin et D. Hyatt. A Special-Purpose Language for Picture-Drawing.

Dans Proceedings of the 1st USENIX Conference on Domain-Specic Lan-guages (DSL'97), pages 297310, 1997.

[KHH+01] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, et W. Gris-wold. An Overview of AspectJ. Dans Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'01), pages 327353.

Springer-Verlag, 2001.

[KLM+97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.M. Loing-tier, et J. Irwin. Aspect-Oriented Programming. Dans Proceedings of the European Conference on Object-oriented Programming (ECOOP'97) (M. Aksit et S. Matsuoka, eds.), volume 1241 de Lecture Notes in Compu-ter Science, pages 220242. Springer-Verlag, Juin 1997.

[KMB+96] R. Kieburtz, L. McKinney, J. Bell, J. Hook, A. Kotov, J. Lewis, D. Oliva, T. Sheard, I. Smith, et L. Walton. A Software Engineering Experiment in Software Component Generation. Dans Proceedings of the 18th IEEE International Conference on Software Engineering (ICSE'96), pages 542 553, 1996.

[Kri03] A. Kristensen. SIP Servlet API 1.0 Specication. Java Specication Re-quest 116, Java Community ProcessSM Program, Février 2003.

[Kut03] J. Kuthan. SIP Express Router (SER). IEEE Network Magazine, Juillet 2003.

[Lam94] L. Lamport. The Temporal Logic of Actions. ACM Transactions on Pro-gramming Languages and Systems, volume 16(3), pages 872923. Mai 1994.

[Lam02] L. Lamport. Specifying Systems : The TLA+ Language and Tools for Hard-ware and SoftHard-ware Engineers. Addison-Wesley, 2002.

[LBM+01] A. Ledeczi, A. Bakay, M. Maroti, P. Volgyesi, G. Nordstrom, J. Sprinkle, et G. Karsai. Composing Domain-Specic Design Environments. IEEE Computer Society Press, volume 34(11), pages 4451. 2001.

[LCM06] F. Latry, C. Consel, et J. Mercadal. Processing Domain-Specic Mode-ling Languages : A Case Study in Telephony Services. Dans Proceedings of the 1st GPCE Workshop for QoS Provisioning in Distributed Systems (GPCE4QoS), Octobre 2006.

[LCM07] F. Latry, C. Consel, et J. Mercadal. Staging Telephony Service Creation : A Language Approach. Dans Proceedings of the ACM SIGCOMM Inter-national Conference on Principles, Systems and Applications of IP Tele-communications (IPTComm'07), Juillet 2007.

[LCRC05] F. Latry, C. Consel, L. Réveillère, et P. Cointe. A Generative Programming Approach to Developing DSL Compilers. Dans Processings of the 4th ACM International Conference on Generative Programming and Component En-gineering (GPCE'05) (R. Gluck et M. Lowry, eds.), volume 3676 de Lecture Notes in Computer Science, pages 2946. Springer-Verlag, Septembre 2005.

[Len04] J. Lennox. Services for Internet Telephony. Thèse de doctorat, Columbia University, Janvier 2004.

[Lop05] D.C.P. Lopes. Étude et Applications de l'Approche MDA pour des Plates-Formes de Services Web. Thèse de doctorat, Université de Nantes, France, Juillet 2005.

[LR94] D.A. Ladd et J.C. Ramming. Two Application Languages in Software Production. Dans Proceedings of the USENIX Symposium on Very High Level Languages (VHLL'94), pages 169177, 1994.

[LS00] J. Lennox et H. Schulzrinne. CPL : A Language for User Control of In-ternet Telephony Services. InIn-ternet Engineering Task Force, IPTEL WG, November 2000.

[Mad86] O.L. Madsen. Block Structure and Object Oriented Languages. ACM SIGPLAN Notices, volume 21(10), pages 133142. ACM Press, 1986.

[Mar85] J. Martin. Fourth-Generation Languages. Volume I : Principles. Prentice-Hall, Upper Saddle River (NJ), USA, 1985.

[MB03] F. Marschall et P. Braun. Model Transformations for the MDA with BOTL.

Dans Proceedings of the Workshop on Model Driven Architecture : Foun-dations and Applications (A. Rensink, ed.), pages 2536, Juin 2003.

[MBS04] P. Muller, D. Bresch, et P Studer. Model-Driven Architecture for Automatic-Control : An Experience Report. Dans The Unied Modelling Language : Modelling Languages and Applications (T. Baar, A. Strohmeier, A.M.D. Moreira, et S.J. Mellor, eds.), volume 3273 de Lecture Notes in Computer Science, pages 260274. Springer-Verlag, 2004.

[McC85] R. McCain. Reusable Software Component Construction : A Product-Oriented Paradigm. Dans Proceedings of the 5th AiAA/ACM/NASA/IEEE Computers in Aerospace Conference, Long Beach, California, Octobre 1985.

[MCG05] T. Mens, K. Czarnecki, et P. van Gorp. A Taxonomy of Model Transforma-tions. Dans Language Engineering for Model-Driven Software Development (J. Bezivin et R. Heckel, eds.), number 04101 in Dagstuhl Seminar Procee-dings, 2005.

[Mer06] J. Mercadal. Modélisation et Langages Métiers : Application aux Services de Téléphonie. Thèse de Mastère, University of Bordeaux I, France, Juin 2006.

[MHS05] M. Mernik, J. Heering, et A.M. Sloane. When and How to Develop Domain-Specic Languages. ACM Computing Survey, volume 37(4), pages 316344.

ACM Press, 2005.

[Mic04] Microsoft. Live Communications Server 2005 Enterprise Edition Deploy-ment Guide, Novembre 2004.

[MKB06] B.A. Myers, A.J. Ko, et M.M. Burnett. Invited Research Overview : End-User Programming. Dans Proceedings of the Extended Abstracts on Human Factors in Computing Systems (CHI'06), pages 7580. ACM Press, 2006.

[MPMU04] C. Marché, C. Paulin-Mohring, et X. Urbain. The Krakatoa Tool for Certication of Java/JavaCard Programs annotated in JML. Journal of Logic and Algebraic Programming, volume 58(12), pages 89106. 2004.

[MR97] P. Murray-Rust. Chemical Markup Language (CML). World Wide Web Journal, volume 2(4), pages 135147. O'Reilly & Associates, Inc., 1997.

[Mye99] A.C. Myers. JFlow : Practical Mostly-Static Information Flow Control.

Dans Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages (POPL'99), pages 228241. ACM Press, 1999.

[Nar93] B.A. Nardi. A Small Matter of Programming : Perspectives on End User Computing. MIT Press, Cambridge (MA), USA, 1993.

[Nei80] J. Neighbors. Software Construction Using Components. Thèse de docto-rat, University of California, Irvine, 1980.

[Nei84] J. Neighbors. The Draco Approach to Constructing Software from Reusable Components. IEEE Transaction on Software Engineering, volume 10(5), pages 564574. 1984.

[NLMK03] M. Nakamura, P. Leelaprute, K. Matsumoto, et T. Kikuno. Semantic War-nings and Feature Interaction in Call Processing Language on Internet Telephony. Dans Proceedings of the Symposium on Applications and the Internet (SAINT'03), pages 283291. IEEE Computer Society Press, 2003.

[Obj03] Object Management Group (OMG), Framingham, Massachusett. MDA Guide Version 1.0.1, Juin 2003.

[Ous97] J. Ousterhout. Scripting : Higher-level programming for the 21st century.

http ://www.sunlabs.com/people/john.ousterhout/, 1997.

[Par76] D.L. Parnas. On the Design and Development of Program Families. IEEE Transactions on Software Engineering, volume 2, pages 19. Mars 1976.

[PB03] L. Porto Barreto. Conception Aisée et Robustes d'Ordonnanceurs au moyen d'un Langage Dédié. Thèse de doctorat, Université de Rennes, France, Juin 2003.

[PBC+97] C. Pu, A. Black, C. Cowan, J. Walpole, et C. Consel. Microlanguages for Operating System Specialization. Dans Proceedings of the 1st ACM-SIGPLAN Workshop on Domain-Specic Languages. Rapport Technique Computer Science, University of Illinois at Urbana-Champaign, Janvier 1997.

[PD90] R. Prieto-Díaz. Domain Analysis : an Introduction. ACM SIGSOFT Soft-ware Engineering Notes, volume 15(2), pages 4754. ACM Press, 1990.

[PHH99] J. Peterson, G. Hager, et P. Hudak. A Language for Declarative Robo-tic Programming. Dans Proceedings of IEEE Conference on RoboRobo-tics and Automation, volume 2, pages 11441151. IEEE Computer Society Press, 1999.

[Pho06] Phoenix Group. Le Langage SPL (Session Processing Language), 2006.

http ://phoenix.labri.fr/software/spl/.

[Pho07] Phoenix Group. Compilation and Verication of CPL and VisuCom Ser-vices, 2007. http ://phoenix.labri.fr/processings/.

[Rec99a] W3C Recommendation. XML Path Language Version 1.0.

http ://www.w3.org/TR/xpath, Novembre 1999.

[Rec99b] W3C Recommendation. XSL Transformations (XSLT) Version 1.0.

http ://www.w3.org/TR/xslt, Novembre 1999.

[Rév01] L. Réveillère. Approche Langage au Développement de Pilotes de Péri-phériques Robustes. Thèse de doctorat, Université de Rennes 1, France, Décembre 2001.

[RLS99] J. Rosenberg, J. Lennox, et H. Schulzrinne. Programming Internet Te-lephony Services. IEEE Internet Computing, volume 3(3), pages 6372.

1999.

[RM99] M.P. Robillard et G. Murphy. Analyzing Exception Flow in Java Programs.

Dans Proceedings of the 7th European Software Engineering Conference, pages 322337. Springer-Verlag, 1999.

[Ros78] D.T. Ross. Origins of the APT Language for Automatically Programmed Tools. Dans Proceedings of the 1st ACM SIGPLAN Conference on History of Programming Languages (HOPL-1), pages 6199. ACM Press, 1978.

[RSC+02] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, et E. Schooler. SIP : Session Initiation Proto-col. Request for Comments 3261, The Internet Engineering Task Force, Juin 2002.

[Sam69] J.E. Sammet. Programming Languages : History and Fundamentals.

Prentice-Hall, Upper Saddle River (NJ), USA, 1969.

[SB97] Y. Smaragdakis et D. Batory. DiSTiL : A Transformation Library for Data Structures. Dans Proceedings of the 1st USENIX Conference on Domain-Specic Languages (DSL'97), pages 257270, 1997.

[Sch86] D.A. Schmidt. Denotational Semantics : a Methodology for Language De-velopment. Allyn and Bacon, Inc., 1986.

[Sch96] Schulzrinne, H. et al. RTP : A Transport Protocol for Real-Time Applica-tions. Request for Comments 1889, The Internet Engineering Task Force, Janvier 1996.

[Sch06] D.C. Schmidt. Model-Driven Engineering. IEEE Computer Society Press, volume 39(2). Février 2006.

[Sim95] M.A. Simos. Organization Domain Modeling (ODM) : Formalizing the Core Domain Modeling Life Cycle. Dans Proceedings of the ACM SIGSOFT Symposium on Software reusability (SSR'95), pages 196205. ACM Press, 1995.

[SLTM91] K. Smolander, K. Lyytinen, V. Tahvanainen, et P. Marttiin. MetaEdit : a Flexible Graphical Environment for Methodology Modelling. Dans Procee-dings of the 3rd International Conference on Advanced information Systems Engineering (CAiSE'91), pages 168193. Springer-Verlag, 1991.

[SMS06] R. Stallman, R. McGrath, et P.D. Smith. GNU Make : A Program for Di-recting Recompilation. 1-882114-83-3. Free Software Foundation, Novembre 2006.

[Spi01] D. Spinellis. Notable Design Patterns for Domain-Specic Languages. Jour-nal of Systems and Software, volume 56(1), pages 9199. Elsevier Science Inc., 2001.

[SSM05a] C. Scadi, M. Shaw, et B. Myers. Estimating the Numbers of End Users and End User Programmers. Dans Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05), pages 207214. IEEE Computer Society Press, 2005.

[SSM05b] C. Scadi, M. Shaw, et B. Myers. The "55M End-User Programmers" Es-timate Revisited. Rapport Technique CMU-ISRI-05-100 and Human Com-puter Interaction Institute Technical Report CMU-HCII-05-100, Rapport Technique Carnegie Mellon University ISRI, Février 2005.

[Sun05] Sun Microsystems. The JAIN SIP API Specication v1.2. Rapport Tech-nique, Sun Microsystems, 2005.

[Sys05] SysML Partners. Systems Modeling Language (SysML) Specication, ver-sion 1, Novembre 2005.

[TCL+00] S. Thibault, C. Consel, J. Lawall, R. Marlet, et G. Muller. Static and Dynamic Program Compilation by Interpreter Specialization. Higher-Order and Symbolic Computation, volume 13(3), pages 161178. Septembre 2000.

[Thi98] S. Thibault. Langage Dédiés : Conception, Implémentation et Application.

Thèse de doctorat, Université de Rennes, France, Octobre 1998.

[Tho04] D. Thomas. MDA : Revenge of the Modelers or UML Utopia ? IEEE Software, volume 21(3), pages 1517. IEEE Computer Society Press, 2004.

[TK05] J. Tolvanen et S. Kelly. Dening Domain-Specic Modeling Languages to Automate Product Derivation : Collected Experiences. Dans Proceedings of the 9th International Conference of Software Product Lines (SPLC'05) (J.H. Obbink et K. Pohl, eds.), volume 3714 de Lecture Notes in Computer Science, pages 198209. Springer-Verlag, 2005.

[TMC97] S. Thibault, R. Marlet, et C. Consel. A Domain-Specic Language for Video Device Driver : from Design to Implementation. Dans Proceedings of the 1st USENIX Conference on Domain-Specic Languages (DSL'97), Octobre 1997.

[TMC98] S. Thibault, G. Muller, et C. Consel. Safe and Ecient Active Network Programming. Dans Proceedings of the The 17th IEEE Symposium on Reliable Distributed Systems (SRDS'98), page 135. IEEE Computer Society Press, 1998.

[TMM99] S. Thibault, J. Marant, et G. Muller. Adapting Distributed Applications Using Extensible Networks. Dans Proceedings of the 19th International Conference on Distributed Computing Systems, pages 234243. IEEE Com-puter Society Press, Mai 1999.

[Tra95] W. Tracz. DSSA (Domain-Specic Software Architecture) : pedagogical example. ACM SIGSOFT Software Engineering Notes, volume 20(3), pages 4962. ACM Press, 1995.

[TSPB02] R. Thiagarajan, A. Srivastava, A. Pujari, et V. Bulusu. BPML : A Process Modeling Language for Dynamic Business Models. Dans Proceedings of the 4th IEEE International Workshop on Advanced Issues of E-Commerce and Web-Based Information Systems (WECWIS'02), page 239. IEEE Compu-ter Society Press, 2002.

[Uni99] International Telecommunications Union. Recommendation H.323, Packet-Based Multimedia Communications Systems, Février 1999.

[vDHK96] A. van Deursen, J. Heering, et P. Klint. Language Prototyping : An Alge-braic Specication Approach, volume 5 de AMAST Series in Computing.

World Scientic Publishing Co., 1996.

[Vel98] T.L. Veldhuizen. Arrays in Blitz++. Dans Proceedings of the Internatio-nal Symposium on Computing in Object-Oriented Parallel Environments, volume 1505 de Lecture Notes in Computer Science. Springer-Verlag, Dé-cembre 1998.

[Vis01] E. Visser. Stratego : A Language for Program Transformation Based on Rewriting Strategies. Dans Proceedings of the 12th International Confe-rence on Rewriting Techniques and Applications (RTA'01), pages 357362.

Springer-Verlag, 2001.

[Vis02] E. Visser. Meta-Programming with Concrete Object Syntax. Dans Pro-ceedings of the Generative Programming and Component Engineering (GP-CE'02) (D. Batory, C. Consel, et W. Taha, eds.), volume 2487 de Lecture Notes in Computer Science, pages 299315. Springer-Verlag, Octobre 2002.

[Vis05] E. Visser. A Survey of Strategies in Rule-Based Program Transformation Systems. Journal of Symbolic Computation, volume 40(1), pages 831873.

2005.

[Wei96] D.M. Weiss. Family-oriented Abstraction Specication and Translation : the FAST Process. Dans Proceedings of the 11th Annual Conference on Computer Assurance (COMPASS'96), pages 1422. IEEE Computer So-ciety Press, 1996.

[Wex81] R. L. Wexelblat. History of Programming Languages. Academic Press, Inc., Orlando (FL), USA, 1981.

[Wil01] D.S. Wile. Supporting the DSL Spectrum. Journal of Computing and Information Technology, volume 9(4), pages 263287. 2001.

[Wil04] D.S. Wile. Lessons learned from real DSL experiments. Science of Com-puter Programming, volume 51(3), pages 265290. Elsevier North-Holland, Inc., 2004.

[WL99] D.M. Weiss et C.T. Lai. Software Product-Line Engineering : a Family-Based Software Development Process. Addison-Wesley, Boston (MA), USA, 1999.

[YML99] Y. Yu, P. Manolios, et L. Lamport. Model Checking TLA+ Specications.

Dans Proceedings of the 10th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verication Methods (CHAR-ME'99), pages 5466. Springer-Verlag, 1999.

Le langage TLA+

Extrait du mémoire de Julien Mercadal [Mer06].

Le langage TLA+ est une extension de la logique temporelle linéaire associée à une logique des actions. À travers un outil de vérication, appelé un véricateur de modèles (model checker), il permet la vérication de formules logiques et donc de propriétés temporelles.

Cette annexe présente les principes de ce langage de spécication formelle en expli-citant la spécication TLA+ associée à l'exemple donnée à la gure 9.11.

A.1 Logique temporelle : un peu d'histoire...

La logique temporelle est utilisée pour raisonner sur des propositions dont la valeur de vérité dépend du temps. Soit la proposition suivante : "Je travaille". La valeur de vérité de cette proposition varie en fonction du temps : quelquefois cette proposition est vraie, quelquefois elle est fausse, mais jamais les deux en même temps. Ainsi, la logique temporelle voit le temps comme une séquence d'états. Elle est diérente de la logique classique où la valeur de vérité des propositions reste constante dans le temps. La logique temporelle résulte d'une extension de la logique du premier ordre. Elle introduit un nouvel opérateur :(prononcé box). Soit une formule booléenne F, alorsF signie que F est toujours vraie.

La logique temporelle est étudiée depuis l'époque des philosophes grecs avec Aris-tote. Mais c'est dans les années soixante qu'Arthur Prior et d'autres logiciens dénissent et introduisent véritablement la logique temporelle (initialement connue sous le nom de tense logic). Puis, en 1977, Amir Pnueli introduit la logique temporelle en informa-tique. Toutefois, la logique de Pnueli a assez vite révélé un manque d'expressivité. En eet, certaines propriétés d'un système ne pouvaient pas être décrites. C'est pourquoi de nombreuses autres logiques davantage expressives ont été proposées. Elles introdui-saient toutes des opérateurs temporels nouveaux, toujours plus puissants tels que next (immédiatement après) ou encore until (jusqu'à). La logique temporelle des actions, quant à elle, propose une approche diérente.

153