Software Factory on top of Eclipse : SmartTools

For tree years, notions of Software factory or of Rich Client Platform have appeared in order to automate the development process. Similarly, since 2000, our research team has designed an approach driven by DSL. The SmartTools prototype is a result of this approach. It did not consider IDE (Integrated Development Environment) aspects. In this article, describe the first experience on how our tool has been integrated into the Eclipse Environment. First results show a perfect complementarily. Indeed, we did not modify our application code. In addition to that, this approach enables at makes it possible to produce plug-ins quicker or faster (especially plug-ins for a DSL). Our motivation is to offer generation mechanism to Eclipse plug-in developers. Introduction With the increasing use of computer science within the information society, it is necessary to reconsider the way in which software is developed in order to quickly produce families of flexible and reliable ubiquitous applications. Concepts such as Component-Oriented Programming [1] (OGSi), Service-Oriented Architecture (SOA), Aspect-Oriented Programming (AOP) [13], and Model-Driven Engineering (MDE) [6] have been proposed to address these challenges. They can even be merged to create the notion of Software Factory [5][7] (Microsoft Domain-Specific Language Tools) or Rich Client Platform [3] (Eclipse Foundation). Since 2000, inspired by our previous research works, our team developed a Software factory approach named SmartTools [8][9][10][14]. The goal of this factory is to automate application development linking Aspect-Oriented Programming approach [13], DSL-Oriented Programming approach [2] and ComponentOriented Programming approach. However, the aspects only focused on development environment were never given priority. Thus, to have Eclipse at ours disposal is an ideal context for our approach’s merger. In this article, we explain our feasibility study for this merger. Our first results show that this integration does not imply a reorganization of our approach. In addition, the ability of our generation tools to produce plug-in seems to be very efficient. Indeed, our tools are able to generate a model (Abstract syntax Tree based on XML Document Object Model, DOM) for a language from the declarative description of the abstract syntax. SmartTools accepts various formats like DTD, XML Schema, abstract syntax or UML [6]. Furthermore SmartTools is able to generate various concrete syntax or graphical views. Indeed we defined a language to link firstly the abstract syntax and the concrete one, and secondly various graphical views. As results for a specific DSL, on one hand we are able to generate a plug-in linked to the concrete syntax parser and on the other hand, several XSL transformations are available to edit the DSL. In that way, we are able to transform our components (about thirty in the SmartTools context) in Eclipse plug-ins thanks to few code lines. The first part of the article describes briefly the progress report of SmartTools. The second part insists on the strong features of the merger. Then we will conclude by the extension of this study. 1. Short presentation of SmartTools Software Factory SmartTools [8] (http://www-sop.inria.fr/smartool), our research prototype, is a concrete example of a Software Factory. Our main research interests hinge around the three following concepts: