Towards Domain-Driven Development: the SmartTools Software Factory [GPCE]
Courtyard, Demo room 4
This event is also being given Tuesday at 10:30.
Didier Parigot, INRIA Sophia-Antipolis
Demonstration number: 22
Nowadays, software needs to be more open, flexible, and capable of evolving quickly to meet new user or technology requirements. It should be easy to adapt, even by none computer-specialists. To tackle these challenges for DSL (Domain-Specific language) tools, we have developed a software factory, named SmartTools.
One of the main ideas behind the design of SmartTools (and consequently behind the design of the generated DSL tools) is to model the business logic of each concern in a technology-free manner which can then be used to generate platform-specific code. The following four concerns have been taken into consideration:
To offer open and adaptable tools, its design benefits from the following paradigms:
SmartTools is heavily bootstrapped; that is, it internally uses its technology to develop its own models. Through the development of these models, our approach in integrating the mentioned paradigms and technologies has been intensively tested and refined. Since then, SmartTools has been used to produce tools for many diverse languages such as SVG, DTD, XML scheme, CSS, WSDL, and BPEL.
The SmartTools framework represents approximately 100 000 lines of Java source code before the generation stage and 1 000 000 lines after. This ratio shows the efficiency of this approach and validates this new development approach based on generative programming.
Before the demonstration, we will present the key features of SmartTools. Then during the demonstration, we will focus on how to define different tools for a DSL and show, for each concern, the benefits gained from using the mentioned paradigms and technologies. This demonstration is not only targeted at DSL tool developers, but also at people who want to understand how these new paradigms can be practically integrated into software.
|Home | Program | Housing & Transportation | Registration | Submissions | Wiki | Maps||© ACM|