Courbis, Carine, Active objects, semantics, Internet and security (OASIS), Inria Sophia Antipolis - Méditerranée (CRISAM), Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-COMmunications, Réseaux, systèmes Embarqués et Distribués (Laboratoire I3S - COMRED), Laboratoire d'Informatique, Signaux, et Systèmes de Sophia Antipolis (I3S), Université Nice Sophia Antipolis (... - 2019) (UNS), COMUE Université Côte d'Azur (2015-2019) (COMUE UCA)-COMUE Université Côte d'Azur (2015-2019) (COMUE UCA)-Centre National de la Recherche Scientifique (CNRS)-Université Côte d'Azur (UCA)-Université Nice Sophia Antipolis (... - 2019) (UNS), COMUE Université Côte d'Azur (2015-2019) (COMUE UCA)-COMUE Université Côte d'Azur (2015-2019) (COMUE UCA)-Centre National de la Recherche Scientifique (CNRS)-Université Côte d'Azur (UCA)-Laboratoire d'Informatique, Signaux, et Systèmes de Sophia Antipolis (I3S), COMUE Université Côte d'Azur (2015-2019) (COMUE UCA)-COMUE Université Côte d'Azur (2015-2019) (COMUE UCA)-Centre National de la Recherche Scientifique (CNRS)-Université Côte d'Azur (UCA), Université Nice Sophia Antipolis, Isabelle Attali, Didier Parigot, Université Nice Sophia Antipolis (1965 - 2019) (UNS), and COMUE Université Côte d'Azur (2015-2019) (COMUE UCA)-COMUE Université Côte d'Azur (2015-2019) (COMUE UCA)-Centre National de la Recherche Scientifique (CNRS)-Université Côte d'Azur (UCA)-Université Nice Sophia Antipolis (1965 - 2019) (UNS)
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 treatments 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.; Avec l'émergence d'Internet et la prolifération de nouvelles technologies, la conception et le développement d'applications complexes doivent impérativement prendre en compte les standards et les aspects de répartition, déploiement et réutilisation de code. C'est la source d'une nouvelle problématique liée à la programmation. Un changement radical des méthodologies est nécessaire pour aisément prendre en compte ces différentes facettes. Cette thèse jette les bases d'une nouvelle manière de programmer où ces facettes ou intentions sont automatiquement intégrées aux spécifications ou modèles abstraits de l'application lors de phases de génération de code source. Cette nouvelle programmation est dit générative. Cette idée a été appliquée, à différents niveaux, lors de la réalisation d'une application, aussi bien pour la représentation de données ou d'environnements interactifs que pour les traitements sémantiques ou l'architecture. Ainsi le code final obtenu après génération s'appuie sur les technologies XML pour la représentation des données, les technologies objets et beans pour les vues et l'interface utilisateur, la programmation par aspect et le patron de conception visiteur pour les traitements sémantiques et la programmation par composants pour une architecture ouverte et une application répartie et déployable. Les principaux gains d'une telle programmation sont une meilleure qualité du logiciel due à la séparation de la logique métier et des spécificités technologiques, une simplification du code métier à écrire, l'ajout rapide de nouvelles facettes et un portage vers d'autres plates-formes ou technologies facilité.