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 (composant, port, interface, service, connexion, connecteur), ces propositions sont disparates de par leurs origines, leurs objectifs, leurs concepts ou encore leurs mécanismes. De plus, elles restent difficiles à utiliser en pratique par manque de véritables langages de programmation sémantiquement fondés et concrètement utilisables. Devant tant de profusion, nous nous intéressons, dans cette thèse, aux problématiques suivantes: qu'est-ce qu'un langage à composants? Quels sont les avantages de ces langages? Comment réaliser un langage à composants?<br />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 ses abstractions et ses mécanismes sont de haut niveau ; (iii) détaillé car nous avons abordé un ensemble de questions souvent oubliées dans les autres propositions comme l'auto-référence, le passage d'arguments ou le statut des composants de base (collections, entiers, etc) dans un monde unifié ; (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. <br />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 (PPA). Scl propose dans ce cadre une amélioration des approches dites « symétriques » de la PPA, 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. Deux prototypes de Scl sont également présentés, le premier et le plus abouti est écrit en Smalltalk et le second en Ruby.
Identifer | oai:union.ndltd.org:CCSD/oai:tel.archives-ouvertes.fr:tel-00207499 |
Date | 10 December 2007 |
Creators | Fabresse, Luc |
Publisher | Université Montpellier II - Sciences et Techniques du Languedoc |
Source Sets | CCSD theses-EN-ligne, France |
Language | French |
Detected Language | French |
Type | PhD thesis |
Page generated in 0.0021 seconds