GPCE Demonstration 22
Towards Domain-Driven Development: the SmartTools Software Factory
Didier Parigot, INRIA Sophia-Antipolis
Summary
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:
- The language data definition;
- The semantics analysis frameworks that describe method signatures and
traversal;
- The graphical representation of the data;
- And the component that links together all the tools of a DSL.
To offer open and adaptable tools, its design benefits from the
following paradigms:
- Generative programming;
- Aspect-Oriented Software Development (AOSD);
- Component programming;
- Model-Driven Architecture (MDA);
- Standard technologies (XML) and patterns (such as the visitor design
pattern).
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.
Times and Locations
- Tue, 26 Oct., 10.30 - 11.15, Exhibition Hall Demo Room 4
- Thu, 28 Oct., 11.30 - 12.15, Exhibition Hall Demo Room 4