Thèse soutenue

Du découplage à l'assemblage non-anticipé de composants : conception et mise en œuvre du langage à composants Scl

FR  |  
EN
Auteur / Autrice : Luc Fabresse
Direction : Christophe DonyMarianne Huchard
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2007
Etablissement(s) : Montpellier 2

Mots clés

FR

Résumé

FR

Les composants logiciels sont des entités logicielles réutilisables promettant une réduction des coûts liés au développement, à la maintenance et à l'évolution d'un logiciel. Actuellement, de nombreuses propositions se réclament du mode de développement par assemblage de composants logiciels. Malgré un vocabulaire parfois commun, ces propositions sont disparates de par leurs origines, leurs objectifs, leurs concepts ou encore leurs mécanismes. De plus, ces approches restent difficiles à utiliser en pratique par manque de véritables langages sémantiquement fondés et concrètement utilisables. Devant tant de profusion, nous nous intéressons à des problématiques fondamentales telles que : Qu'est-ce qu'un langage à composants? Quels sont les avantages de ces langages? ainsi qu'à des problématiques plus spécifiques comme: Comment réaliser un langage à composants ? Cette thèse propose donc Scl, un langage de programmation à composants permettant de mettre en pratique réellement la programmation par composants (PPC). De par sa conception, Scl se veut être un langage: (i) minimal dans le sens où toutes les abstractions et tous les mécanismes qui lui sont intégrés répondent à un besoin identifié; (ii) simple car proposant des abstractions et des mécanismes de haut niveau; (iii) détaillé car nous avons abordé un ensemble de questions assez souvent oubliées dans les autres propositions comme l'auto-référence, le passage d'arguments vu comme une connexion ou le statut des composants de base dans un monde unifié (collections, entiers, etc); (iv) dédié à la PPC, car prenant en compte les deux préoccupations que nous jugeons majeures en PPC et qui sous-tendent toute l'étude: le découplage et la non-anticipation. Le coeur de Scl repose principalement sur les concepts de composant, de port, de service, de connecteur et de code glue ainsi que sur les mécanismes de liaison de ports et d'invocation de service. La séparation des préoccupations au niveau du code occupe une part importante de l'étude qui établit un lien entre la programmation par composants et la programmation par aspects. Scl propose dans ce cadre une amélioration des approches dites « symétriques » de la programmation par aspects, via une unification des concepts d'aspect et de composant et via un ensemble de différents types de liaisons de ports qui permettent d'utiliser un même composant de façon standard ou de façon transversale. Scl intègre aussi un mécanisme général permettant d'établir des connexions entre composants basées sur les changements d'états de leurs propriétés sans que leurs programmeurs n'aient à écrire une ligne de code spécifique à cet effet, cela afin de respecter notre principe de non-anticipation. Deux prototypes de Scl sont également présentés, le premier et le plus abouti est écrit en Smalltalk et le second en Ruby