News
Contact
Didier Parigot (Home).
e-mail:Didier.Parigot@inria.fr
Tél: 04 92 38 50 01
Fax: 04 92 38 76 44
Job Opportunities
Internships
Sujet de Thèse / PhD proposal 2008
Somes Slides
Current Projects
Submitted Projects
- eCAB, Application Electronique pour la Coopération dans l'Architecture et le Batiment, ANR RNTL.
Past Project
- IST project: QUESTION-HOW with (contact Daniel Dardailler)
- EDF R&D Research Contrat (2004)
Press
Since Septembre 2002, you are my
th visitor.
Thanks for visiting!
Didier.Parigot@inria.fr
|
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
Some flash demonstrations of this Eclipse integration of SmartTools
SmartTools SOA on top of Overlay Network : Programmable Overlay Networks (PON)
- Dowload PON (remote version of SmartTools SOA on Peer-to-Peer Overlay Network).
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.
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
Related Projects:
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.
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.
Former contributors:
|