La lecture à portée de main
Découvre YouScribe en t'inscrivant gratuitement
Je m'inscrisDécouvre YouScribe en t'inscrivant gratuitement
Je m'inscrisDescription
Sujets
Informations
Publié par | Thesee |
Nombre de lectures | 48 |
Langue | English |
Poids de l'ouvrage | 2 Mo |
Extrait
Departement de formation doctorale en informatique
Ecole doctorale EDMI Bordeaux
oN d’ordre : 4233
Developpement logiciel oriente
paradigme de conception :
la programmation dirigee par la speci cation
THESE
soutenue le 17 mars 2011
pour l’obtention du
Doctorat de l’Universite de Bordeaux 1
(specialite informatique)
par
Damien Cassou
Jury
President : Xavier Blanc, Professeur a l’Universite de Bordeaux 1
Rapporteurs : Laurence Duchien, Professeur a l’Universite de Lille
Yves Ledru, Professeur ae Joseph Fourier de Grenoble
Examinateurs : Charles Consel, Professeur a l’Universite de Bordeaux 1
Paul Klint, Professeur ae d’Amsterdam
Alexander L. Wolf, a l’Imperial College de LondresCette thèse est librement téléchargeable sur hal.inria.fr
Copyright ©2011, Damien Cassou, damiencassou.seasidehosting.st
LaBRI, Université de Bordeaux 1
INRIA Bordeaux Sud-Ouest
Cette oeuvre est mise à
disposition selon le contrat
Attribution-ShareAlike3.0 Un-
ported disponible en ligne :
http ://creativecommons.org/licenses/by-sa/3.0/
Première édition, avril 2011.A B S T R A C T
leveraging software architectures
to guide and verify the development
of sense–compute–control applications
Numerous applications have, as their main behavior, to wait
for information coming from a foreign environment, to prepare
a result, and to execute actions on this environment. Graphical
user interfaces and avionic systems are two examples. The SCC
paradigm, for Sense–Compute–Control, is dedicated to the de-
scription of such applications. Developing applications with this
paradigm is made difficult by the lack of conceptual framework
and tool support.
This thesis proposes a conceptual framework dedicated to
the SCC paradigm which is materialized by an architecture de-
scription language named DiaSpec. This language provides a
framework to support the development of an SCC application,
assigning roles to the stakeholders and providing separation
of concerns. This thesis also proposes dedicated programming
support. Indeed, from DiaSpec descriptions a dedicated pro-
gramming framework is generated in a target language. This
programming framework guides the implementation of an SCC
application and raises the level of abstraction of this implemen-
tation with both high-level and dedicated mechanisms. This
programming framework is designed to ensure conformance of
the implementation to its architecture described in DiaSpec by
leveraging the target language type system. Contributions of
this thesis are evaluated through three criteria: expressiveness,
usability and productivity.
keywords: Software Architecture, Domain-Specific Language,
Generative Programming, Architectural Conformance
iiiR É S U M É
Nombre d’applications ont pour comportement principal l’at-
tente d’un événement venant d’un environnement extérieur, la
préparation d’un résultat et l’exécution d’actions sur cet envi-
ronnement. Les interfaces graphiques et les systèmes avioniques
en sont des exemples. Le paradigme SCC, pour Sense–Compute–
Control, est particulièrement adapté à la description de ces appli-
cations. Le développement d’applications suivant ce paradigme
est cependant rendu difficile par le manque de cadre conceptuel
et d’outils de support.
Cette thèse propose un cadre conceptuel dédié au paradigme
SCC et se concrétise par un langage de description d’architectures
nommé DiaSpec. Ce langage fournit un cadre de travail pour
guider le développement d’une application SCC en assignant des
rôles aux membres du projet et en proposant une séparation des
préoccupations. En plus de fournir un cadre de conception, cette
thèse fournit un support de programmation. En effet, à partir
de descriptions écrites en DiaSpec, un framework de program-
mation dédié est généré dans un langage cible. Ce framework de
programmation guide l’implémentation d’une application SCC
en exposant les mêmes abstractions que le langage DiaSpec. Ce
framework de programmation est conçu de façon à assurer que
l’implémentation d’une application est conforme à l’architecture
décrite en DiaSpec, en s’appuyant sur le système de types du lan-
gage cible. Les contributions de cette thèse sont évaluées suivant
des critères d’expressivité, d’utilisabilité et de productivité.
keywords : Architectures Logicielles, Langage Dédié, Pro-
grammation Générative, Conformité Architecturale
ivL I S T E D E S P U B L I C AT I O N S
Les travaux discutés dans cette thèse ont été présentés précé-
demment.
conférences internationales
– « Improving design, programming and verification of soft-
ware systems using a domain-specific ADL, » dans ICSE’11 :
Proceedings of the33rd International Conference on Software Engi-
neering,2011, Damien Cassou, Émilie Balland, Charles Consel
et Julia Lawall (à paraître)
– « A generative programming approach to developing per-
vasive computing systems, » dans GPCE’09 : Proceedings of
the 8th International Conference on Generative Programming and
Component Engineering, 2009, pages 137–146, Damien Cassou,
Benjamin Bertran, Nicolas Loriant et Charles Consel
démonstrations
– « A Tool Suite to Prototype Pervasive Computing Applica-
tions, » dans PerCom’10 : Proceedings of the 8th International
Conference on Pervasive Computing and Communications,2010,
Damien Cassou, Julien Bruneau et Charles Consel
posters
– « Towards a Tool-based Development Methodology for Sen-
se/Compute/Control Applications, » dans SPLASH’10 : Pro-
ceedings of the 1st International Conference on Systems, Program-
ming, Languages, and Applications : Software for Humanity,2010,
Damien Cassou, Julien Bruneau, Julien Mercadal, Quentin
Enard, Emilie Balland, Nicolas Loriant et Charles Consel
rapports techniques
– « Towards a Tool-based Development Methodology for Perva-
sive Computing Applications » soumis à Transactions on Soft-
ware Engineering, Damien Cassou, Julien Bruneau, Charles
Consel, Emilie Balland
vR E M E R C I E M E N T S
Cette thèse n’aurait jamais pu arriver à son terme sans l’aide et
le soutien de nombreuses personnes.
Tout d’abord, je n’aurais jamais pu même commencer sans
mon directeur de thèse Charles Consel. Il m’a fait confiance sans
m’avoir jamais eu ni en cours ni en stage. Il m’a poussé à donner
le meilleur de moi-même pour soumettre dans les meilleures
conférences et les meilleurs journaux. Cette thèse n’aurait pas
non plus vu le jour sans le support inconditionnel de Stéphane
Ducasse. Je n’ai jamais vu personne se donner autant pour ses
étudiants : il m’a introduit dans une nouvelle communauté, il m’a
ouvert l’esprit, il m’a pris en stage, et il m’a invité à participer à
la rédaction d’un livre. Julia Lawall a aussi été une actrice clé de
cette thèse en m’apportant soutien et rigueur dans les moments
où j’en avais le plus besoin.
Mes deux rapporteurs de thèse Laurence Duchien et Yves Le-
dru m’ont apporté une nouvelle compréhension de mes travaux
grâce à leurs relectures avisées et méritent donc mes plus sin-
cères remerciements. Merci aussi à Xavier Blanc qui a accepté
de présider ma soutenance et qui m’a procuré, et me procure
encore, son expertise dans la conduite d’évaluations empiriques.
Merci encore à Alexander Wolf et Paul Klint d’avoir fait un si
long voyage juste pour m’écouter et poser quelques questions.
Cette thèse s’est déroulée dans un environnement idéal grâce
à l’implication de tous les membres de l’équipe Phoenix. Ils ont
tous participé aux travaux présentés dans cette thèse, que cela
soit en proposant des idées, en implémentant des parties ou en
utilisant les outils développés. Chacun a contribué à l’ambiance
parfaite de l’équipe. Dans le désordre, je voudrais donc remercier
Émilie pour ton soutien dans l’écriture des articles et tes conseils,
Henner parce que tu as supporté ma présence et ma musique
et aussi pour tous nos échanges, Hongui pour tous tes cadeaux
exceptionnels et ta sympatie, Julien M. parce que tu m’as poussé
à faire toujours mieux et pour toutes nos discussions, Julien B.
parce que tu m’as remplacé au pied levé quand je m’étais laissé
déborder et pour les nombreuses discussions (plus ou moins)
culturelles (maths, musique, jeux,etc.), Nicolas pour m’avoir ap-
porté toutes tes réflexions sur DiaSpec et AntLR, Paul parce
que tu as tenté de m’expliquer des concepts qui m’échappent
encore (logique, monades, types,etc.), Pengfei pour m’avoir “de-
mandé” toutes tes questions et m’avoir forcé à être plus clair
et plus pédagogique, Quentin pour avoir pours