Generative Programming
Active from 2000 to 2002
Research rationale
Producing high-quality software has become a major concern in industry. There is a long history of research about providing help and support during the development process. Generative programming is one of the research areas aimed at improving the quality of software development by offering automatic production of software tools from specifications.
A generator of distributed editing tools through the assembly of graphical components
KeTuK illustrates a way to define editors by assembling graphical components. A specific layout is obtained by transforming a XML document to be edited into a hierarchy of java components. The transformation process is made invertible to ensure that any changes to java objects can be reflected in the XML document. The architecture that has been implemented is open enough to allow the integration of any Java component.
Capitalizing on the work done on KeTuK, we worked on solutions to distribute editing operations over a network. The adopted principle consists in grouping on a server the XML documents to be edited as well as all the software applications needed for the editing. The editing operations performed by the clients (who interact on a custom view of the data) are transmitted to the server, which performs the appropriate operations on the central XML document and informs each client of the changes to be reflected in the views. The data that pass through the network concerns only XML codifications of the operations performed or to be performed. This system, which limits the necessary code at the client side to the strict minimum, is therefore particularly suitable for editing documents on equipment with limited resources 1.
Automatic generation of softwares from specifications
SmartTools is an ambitious project that aimed to automatically generate development environments from specifications. The project is strongly based on XML and object technologies and is generic and highly configurable. In addition to the possibilities of graphical editing on views that can be distributed over a network, SmartTools allows to automatically generate tools (parser, displays, visitors on the document structure) from a language specification. I participated in the development of SmartTools and ensured the transfer of skills between INRIA’s Oasis team and Schlumberger. In particular, I used the tools provided by the SmartTools software factory to develop an application dedicated to JavaCard operating at the source and bytecode level in an industrial context 2 3 4.
Softwares
- KeTuK: Java based toolkit allowing applications to map XML documents with a set of Java Beans
Related publications
- A Distributed Editing Environment for XML Documents. First ECOOP Workshop on XML and Object Technology (XOT'00).(2000). ↩︎
- SmartTools: A Development Environment Generator Based on XML Technologies. XML Technologies and Software Engineering (XSE'01), ICSE'01, Workshop Proceedings.(2001). ↩︎
- SmartTools: A Generator of Interactive Environments Tools. 10th International Conference on Compiler Construction (CC'01): Held as Part of the Joint European Conferences on Theory and Practice of Software (ETAPS 2001), Electronic Notes in Theoretical Computer Science, Elsevier.(2001). ↩︎
- Aspect and XML-oriented Semantic Framework Generator : Smarttools. 2nd Workshop on Language Descriptions, Tools and Applications (LDTA'02), (Satellite Event of ETAPS'02), Electronic Notes in Theoretical Computer Science, Elsevier.(2002). ↩︎