|   
 
![[Fleche]](images/triangr.gif) News
![[Fleche]](images/triangr.gif) ContactDidier Parigot (Home).
e-mail:Didier.Parigot@inria.fr
 Tél: 04 92 38 50 01
 Fax: 04 92 38 76 44
 
![[Fleche]](images/triangr.gif) Job Opportunities
![[Fleche]](images/triangr.gif) Internships
![[Fleche]](images/triangr.gif) Sujet de Thèse / PhD proposal 2008
![[Fleche]](images/triangr.gif) Somes Slides
![[Fleche]](images/triangr.gif) Current Projects ![[Eclipse]](Stages/2006/presentation_projet2006/img/logo/eclipse.jpeg)  ![[OSGi]](images/www.osgi.org_images_top1.gif) ![[Fleche]](images/triangr.gif) Submitted Projects
 
eCAB, Application Electronique pour la Coopération dans l'Architecture et le Batiment, ANR RNTL.
 
![[Fleche]](images/triangr.gif) Past Project
IST project: QUESTION-HOW with ![[W3C]](http://www.w3.org/Icons/WWW/w3c_home) (contact Daniel Dardailler) EDF R&D Research Contrat (2004) 
![[Fleche]](images/triangr.gif) PressSince Septembre 2002, you are my ![[counter]](/cgi-bin/Count.cgi?ft=0|frgb=0;0;0|tr=0|trgb=0;0;0|wxh=15;20|md=5|dd=B|sh=1|df=SmartTools_page_principale) th   visitor. Thanks for visiting!
 Didier.Parigot@inria.fr
 
 |  
 
Article:Domain-Driven Development: the SmartTools Software FactoryThe SmartTools approach combines
 
How to develop applications with the least possible programming effort Domain-Specific Language (DSL), 
 Aspect-Oriented Programming (AOP) and 
 Service-Oriented Architecture (SOA) approach.
 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]](images/triangr.gif) Some flash demonstrations of this Eclipse integration of SmartTools
![[Fleche]](images/triangr.gif) SmartTools SOA on top of Overlay Network : Programmable Overlay Networks (PON)
Dowload PON (remote version of SmartTools SOA on Peer-to-Peer Overlay Network).
 
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.![[Fleche]](images/triangr.gif) Overview
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]](images/triangr.gif) Keywords and the basic concepts of SmartTools Software Factory
SmartTools architecture is based on Service-oriented architecture (SOA) approach, a set of adaptables componentsOn 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]](images/triangr.gif) Related Projects:
23 references, last updated Tue Apr 22 14:41:47 2008![[Fleche]](images/triangr.gif) Publications:
 
[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]](images/triangr.gif) Reports:
Rapport de Stage de Christelle Lecomte (utilisation de SmartTools) (Postscript)  
(pdf)
Getting SmartTools and VisualStudio.NET to talk to each other using SOAP and
    web services (by Joseph George Variamparambil) (Postscript)  
(pdf)
Fabrique Logicielle SmartTools (Projet ESSI 3 année, 2005, par Frédéric Ciminera, Benjamin Fahon et Daniel Leveneur) (pdf)   Transformation des composants SmartTools en des plugins Eclipse (Projet ESSI 3 année, 2006, par Agnès Duchamp, Shouhéla Farouk Hassam et Stéphanie Mevel)   Transformation de l'Archtecture Orientée Service de  SmartTools (SOA) en des bundles OSGi (Stage de DEA, 2006, Hoang Vu Dang)
 Une SOA pour les RCP Eclipse, Projet EPU 3 année, 2007, par Louis Romain et Sébastien Vicard
 Architecture-Orientée-Services Appliquée à la construction de RCPs réparties, Master 2 RSD, 2007, par Mohamed Ouazara.
 
 
![[Fleche]](images/triangr.gif) Former contributors: |