INRIA

[Fleche]News

[Fleche]Contact

Didier Parigot (Home).
e-mail:Didier.Parigot@inria.fr
Tél: 04 92 38 50 01
Fax: 04 92 38 76 44

[Fleche]Job Opportunities

[Fleche]Internships

[Fleche]Sujet de Thèse / PhD proposal 2008

[Fleche]Somes Slides

[Fleche]Current Projects

[Eclipse]

[OSGi]

[Fleche]Submitted Projects

  • eCAB, Application Electronique pour la Coopération dans l'Architecture et le Batiment, ANR RNTL.

[Fleche]Past Project

  • IST project: QUESTION-HOW with [W3C] (contact Daniel Dardailler)
  • EDF R&D Research Contrat (2004)

[Fleche]Press

Since Septembre 2002, you are my [counter] th   visitor.
Thanks for visiting!


Didier.Parigot@inria.fr
SmartTools

Article:Domain-Driven Development: the SmartTools Software Factory
The SmartTools approach combines
  • Domain-Specific Language (DSL),
  • Aspect-Oriented Programming (AOP) and
  • Service-Oriented Architecture (SOA) approach.
How to develop applications with the least possible programming effort
The largest part of an application is produced or carried out come from a set of DSL for each concern.


The SmartTools approach is completely integrate into Eclipse

[Fleche]Some flash demonstrations of this Eclipse integration of SmartTools

[Fleche]SmartTools SOA on top of Overlay Network : Programmable Overlay Networks (PON)

  • Dowload PON (remote version of SmartTools SOA on Peer-to-Peer Overlay Network).

[Fleche]Overview

With the Internet and the proliferation of new component and distributive technologies, the design and implementation of complex applications must take into account standards, code distribution, deployment of components and reuse of business know-hows. To cope with these changes, applications need to be more open, adaptable and capable of evolving.

To accommodate to these new challenges, the paper presents a new development approach based on transformations of different business models, each of them related to one possible concern of the application.

This approach is MDA compliant. It relies on Generative and Component Programming and on approaches by separation of concerns (ASoC) which are adapted for business-model descriptions. It contributes to the research works on Domain Driven Development and have a fully operational implementation (SmartTools). It may be compared to a software factory dedicated to applications which rely on a data model.

The main expected results are i) to build software of better quality thanks to business models and technology separation, ii) to generate simpler code, iii) to enable rapid developments and insertions of new facets and iv) to facilitate the portability of applications towards new technologies or platforms.

In order to describe our approach, we discuss the SmartTools features and provide an example of application which is implemented with SmartTools.

[Fleche]Keywords and the basic concepts of SmartTools Software Factory

  • SmartTools architecture is based on Service-oriented architecture (SOA) approach, a set of adaptables components
  • On the conceptual level, SmartTools is based on the Domain-specific Language (DSL) approach to model the various concerns.
  • The techniques of Generative Programming (GP) are used for the implementation level

[Fleche]Related Projects:

[Fleche]Publications:

23 references, last updated Tue Apr 22 14:41:47 2008

[1]
D. Parigot. Smarttools software factory. In EclipseCon'08, mars 2007.

[2]
D. Parigot. Smarttools: Eclipse plugin factory. In EclipseCon'07, mars 2007.

[3]
D. Parigot. Software factory on top of eclipse: Smarttools. In Eclipse Technology eXchange workshop, may 2006.

[4]
Didier Parigot. Fabrique logicielle smarttools, février 2006. Lauréat de la 2 édition de "Tremplin Recherche" organisé par le Sénat.

[5]
Carine Courbis and Anthony Finkelstein. Toward aspect weaving applications. In ICSE'05, 2005.

[6]
Carine Courbis and Anthony Finkelstein. Towards an aspect weaving BPEL engine. In David H. Lorenz and Yvonne Coady, editors, ACP4IS: Aspects, Components, and Patterns for Infrastructure Software, March 2004.

[7]
Didier Parigot and Carine Courbis. Domain-driven development: the smarttools software factory. Technical Report RR-5588, INRIA, Sophia Antipolis, July 2005.

[8]
Carine Courbis and Didier Parigot. Different ways of using generative programming to develop an application. Technical report, INRIA, 2003. (PDF)

[9]
Carine Courbis and Didier Parigot. Xml technologies in the smarttools software factory. Technical report, INRIA, 2003. (PDF)

[10]
Carine Courbis, Philippe Lahire, and Didier Parigot. To build open and evolutive applications: an approach based on mda and generative programming. Technical report, INRIA, 2003. (PDF)

[11]
Didier Parigot, Philippe Lahire, and Carine Courbis. Towards domain-driven development: Approach and implementation. Technical report, INRIA, 2004. (PDF)

[12]
Carine Courbis, Pascal Degenne, Alexandre Fau, and Didier Parigot. L'apport des technologies XML et Objets pour un générateur d'environnements : Smarttools. revue L'Objet, numéro spécial XML et les objets, 9(3), 2003. (PostScript) (PDF)
SmartTools est un générateur d'environnements de développement fortement fondé sur les technologies objets et XML. Grâce à une technique de génération automatique à partir de spécifications, SmartTools permet de développer très rapidement des environnements spécialisés pour des langages de programmation ou des langages métiers. En particulier, certaines de ces spécifications sont directement issues des technologies W3C, ce qui ouvre, des perspectives innombrables et variées de langages métiers. D'autre part, SmartTools s'appuie sur les technologies objets: utilisation des ``visitor patterns'', programmation par aspects, distribution des objets et composants, et implantation en Java. Les avantages de ces technologies permettent de proposer, à moindre coût, une plate-forme de développement ouverte, interactive, uniforme, et évolutive.

[13]
Carine Courbis, Pascal Degenne, Alexandre Fau, and Didier Parigot. Un modèle abstrait de composants adaptables. revue TSI, Composants et adaptabilité, 23(2), 2004. (PostScript) (PDF)
Since a few years, the component approach for the design of complex software has appeared to help to solve problems of code repartition, deployment and reusability. This approach turns out to match the best result which ensures application evolution, interoperability and maintenance. This article introduces the component model used to implement an Integrated Development Environment. The salient feature of this model is that it is extensible and transposable into well-known models such as Web-Services, CORBA Component Model or EJB. The validity of this model has been assessed as it was used to implement our tool. This pragmatic approach was helpful for us to design an simple and realistic component model.

[14]
Carine Courbis and Didier Parigot. La programmation générative pour le développement d'applications : les apports pour l'architecture. In ICSSEA'03, Decembre 2003. (PDF)

[15]
Isabelle Attali, Carine Courbis, Pascal Degenne, Alexandre Fau, Didier Parigot, and Claude Pasquier. SmartTools: a Generator of Interactive Environments Tools. In Reinhard Wilhelm, editor, International Conference on Compiler Construction CC'01, volume 2027 of Lect. Notes in Comp. Sci., Genova, Italy, April 2001. ETAPS'2001, Electronic Notes in Theoretical Computer Science (ENTCS). Tools Demonstrations at CC'01 scriptsize url ftp://ftp-sop.inria.fr/lognet/Didier.Parigot/publications/Parigot01a.pdf. (PostScript) (PDF)
SmartTools is a development environment generator that provides a structure editor and semantic tools as main features. The well-known visitor pattern technique is commonly used for designing semantic analysis, it has been automated and extended. SmartTools is easy to use thanks to its graphical user interface designed with the Java Swing APIs. It is built with an open architecture convinient for a partial or total integration of SmartTools in other environments. It makes the addition of new software components in SmartTools easy. As a result of the modular architecture, we built a distributed instance of SmartTools which required minimal effort. Being open to the XML technologies offers all the features of SmartTools to any language defined with those technologies. But most of all, with its open architecture, SmartTools takes advantage of all the developments made around those technologies, like DOM, through the XML APIs. The fast development of SmartTools (which is a young project, one year old) validates our choices of being open and generic.The main goal of this tool is to provide help and support for designing software development environments for programming languages as well as application languages defined with XML technologies.

[16]
Isabelle Attali, Carine Courbis, Pascal Degenne, Alexandre Fau, Joël Fillon, Didier Parigot, Claude Pasquier, and Claudio Sacerdoti Coen. SmartTools: a development environment generator based on XML technologies. In XML Technologies and Software Engineering, Toronto, Canada, 2001. ICSE'2001, ICSE workshop proceedings. (PostScript) (PDF)
SmartTools is a development environment generator that provides a structure editor and semantic tools as main features. SmartTools is easy to use, thanks to its graphical user interface. Being based on Java and XML technologies offers all the features of SmartTools to any defined language. The main goal of this tool is to provide help and support for designing software development environments for programming languages as well as domain-specific languages defined with XML technologies.

[17]
Isabelle Attali, Carine Courbis, Pascal Degenne, Alexandre Fau, Joel Fillon, Christophe Held, Didier Parigot, and Claude Pasquier. Aspect and XML-oriented Semantic Framework Generator SmartTools. In Second Workshop on Language Descriptions, Tools and Applications, LDTA'02. ETAPS'2002, Electronic Notes in Theoretical Computer Science (ENTCS), 2002. Satellite event of ETAPS'2002. (PostScript) (PDF)
SmartTools is a semantic framework generator, based on XML and object technologies. Thanks to a process of automatic generation from specifications, SmartTools makes it possible to quickly develop environments dedicated to domain-specific and programming languages. Some of these specifications (XML, DTD, Schemas, XSLT) are issued from the W3C which is an important source of varied emerging domain-specific languages. SmartTools uses object technologies such as visitor patterns and aspect-oriented programming. It provides code generation adapted to the usage of those technologies to support the development of semantic analyses. In this way, we obtain at minimal cost the design and implementation of a modular development platform which is open, interactive, uniform, and most important prone to evolution.

[18]
All. Apport des technologies Objets et XML aux applications des cartes à puce et du commerce électronique. 2001. label de la Recherche, association Telecom Valley. (PostScript) (PDF)

[19]
Carine Courbis, Alexandre Fau, and Didier Parigot. Programmation par visiteurs et par aspects dynamiques. 2001. en soummision. (PostScript) (PDF)

[20]
Carine Courbis, Pascal Degenne, Alexandre Fau, Didier Parigot, and Joseph Variamparambil. Un modèle de composants pour l'atelier de développement SmartTools. In Systèmes à composants adaptables et extensibles, Octobre 2002. scriptsize url ftp://ftp-sop.inria.fr/lognet/Didier.Parigot/publications/Parigot02g.pdf. (PostScript) (PDF)
Depuis quelques années, l'approche par composants dans la conception de logiciels complexes est apparue pour résoudre les problèmes de répartition, de déploiement et de réutilisation de code. Cette approche s'avère la mieux adaptée pour assurer la pérennité, l'évolution, l'interopérabilité et la maintenance d'applications. Cet article présente le modèle de composants adopté pour la réalisation d'un atelier de développement. L'originalité de ce modèle est d'être extensible et exportable vers d'autres modèles plus connus tels que les Web Services, CCM (CORBA Component Model) ou EJB (Entreprise Java Bean) tout en respectant nos besoins. La validité de ce modèle est aussi éprouvée puisqu'il a été utilisé pour l'implantation de notre outil. Cette approche pragmatique nous a permis de concevoir un modèle de composants simple et réaliste.

[21]
Joseph George Variamparambil. Getting smartTools and visualstudio.NET to talk to each other using SOAP and webServices. Technical report, INRIA, 2001. (PDF)

[22]
Joseph George Variamparambil. Enabling smartTools components with component technologies:webServices, CORBA and EJBs. Technical report, INRIA, 2002. (PDF)

[23]
Carine Courbis. Contribution à la programmation générative. Application dans le générateur SmartTools : technologies XML, programmation par aspects et composants. PhD thesis, Université de Nice Sophia Antipolis, December 2002. (PostScript)
With the emergence of the Internet and proliferation of new technologies, the design and programming of complex applications need to take into account standards and notions of code distribution, deployment and reuse. There is a need to change the programming methodologies to take into account these different facets. This thesis lays the foundations for a new way of programming based on generative programming that automatically integrates specific technologies and user specifications (abstract models). This idea was successfully used, at different levels - data representation, interactive environments, semantic Atreatments and the architecture, in the design and realisation of SmartTools, a software framework for domain-specific languages. In this way, the generated source code makes use of XML technologies for the data representation, object and bean technologies for the views and GUI, aspect-oriented programming and visitor design pattern for semantic treatments and components to obtain an open architecture and a distributed and deployable application. This idea is very close to the MDA (Model-Driven Architecture) proposal of the OMG consortium that advocates a platform-independent model that can be transformed into one or more platform-specific models. The main results of this thesis is better software quality due to business logic and technology separation, more straightforward code, a rapid addition of new facets and a means that facilitates the portability of applications towards new technologies or platforms.

[Fleche]Reports:

[Fleche]Former contributors:

Last modified: Tue Sep 22 10:32:34 CEST 2009
Valid HTML 4.01!