OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Towards Domain-Driven Development: the SmartTools Software Factory [GPCE]"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 


 : Tuesday Demonstrations : All Demonstrations : Tuesday

Towards Domain-Driven Development: the SmartTools Software Factory [GPCE]

Courtyard, Demo room 4
Tuesday, 10:30, 45 minutes
 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

This event is also being given Thursday at 11: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:

  • 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.