Javascript must be enabled to continue!
Design and Implementation of a Reflective Component-Oriented Programming and Modeling Language
View through CrossRef
Conception et mise en oeuvre d'un langage réflexif de modélisation et programmation par composants
L'ingénierie des logiciels à base de composants, produisant du logiciel en assemblant des composants sur « étagère » et « prêts-a-l’usage », promet la réduction des coûts au cours du développement, la maintenance et l'évolution d'un logiciel. La période récente a vu la production d'un ensemble très important de nouveaux résultats dans ce domaine. Comme le terme «composant» a un sens assez général, cet ensemble englobe de nombreuses recherches ayant des objectifs différents et offrant divers types d'abstractions et mécanismes. Cependant, une idée générale communément admise consiste a modéliser les logiciels avec des composants organisés en architectures, puis générer du code a partir de ces descriptions abstraites. Ceci est une bonne idée, mais la question qui se pose consiste a savoir quel langage est le meilleur candidat pour le code généré. Dans la pratique actuelle, la phase de conception se déroule dans le monde des composants alors que la phase de programmation se produit dans le monde des objets. Il semble aussi que les langages et technologies utilisés dans le développement a base de composants ne sont que partiellement à base de composants.Notre première revendication consiste à dire qu'il est important d'utiliser les langages à composants pour écrire du code exécutable, simplement parce que les artefacts à base de composants d'origine (comme, les besoins ou les architectures) ne disparaissent pas au moment de l'exécution, rendant les programmes plus compréhensibles et réversibles. En faisant cela, il est alors possible d'imaginer que la conception (modélisation) et la programmation peuvent être effectuées au même niveau conceptuel et pourquoi pas en utilisant le même langage. Généralement, les objets sont presque toujours choisis pour implémenter les conceptions à base de composants. Par ailleurs, il est vrai que c'est sans surprise les objets qui sont utilisés pour implémenter des conceptions à base de composants ; un objet étant certainement l'entité exécutable la plus proche d'un composant tel que c'est compris aujourd'hui. Par contre, ils sont proches mais il ne sont pas exactement les mêmes. Notre deuxième revendication est qu'il est possible d'atteindre des langages de programmation par composants en apportant des modifications souples aux langages à objets.Suivant ces idées, nous présentons dans cette thèse un exemple d'un nouveau langage pur de modélisation et de programmation par composants, nommé Compo intégrant d'une manière simple et uniforme, les concepts de base pour la description et l'implémentation des composants et des architectures à composants: composants, ports, services et connexions, et les mécanismes nécessaires suivants: l'instanciation, l'invocation de service, la composition et la substitution. Nous soutenons également que la description des composants, leurs architectures (structures) et leurs services (comportement) gagneraient (comme le font les descriptions d'objets) à utiliser des descriptions différentielles qui se basent sur un mécanisme d'héritage. En conséquence, nous proposons une spécification et une implémentation d'un système d'héritage en prenant en compte une politique de spécialisation covariante et un mécanisme de substitution dédié. Nous affirmons enfin que faire un tel langage totalement réflexif ouvrira une nouvelle alternative intéressante (dans le contexte des composants) pour n'importe quel genre de modèle ou de programme de vérification ou de transformation d'architecture. Nous revisitons quelques solutions standards pour obtenir une réification à composants originale pour construire un méta-modèle exécutable conçu sur l'idée du «tout est un composant». Une implémentation complète du prototype du langage Compo a été réalisée et est décrite dans cette thèse.
Title: Design and Implementation of a Reflective Component-Oriented Programming and Modeling Language
Description:
Conception et mise en oeuvre d'un langage réflexif de modélisation et programmation par composants
L'ingénierie des logiciels à base de composants, produisant du logiciel en assemblant des composants sur « étagère » et « prêts-a-l’usage », promet la réduction des coûts au cours du développement, la maintenance et l'évolution d'un logiciel.
La période récente a vu la production d'un ensemble très important de nouveaux résultats dans ce domaine.
Comme le terme «composant» a un sens assez général, cet ensemble englobe de nombreuses recherches ayant des objectifs différents et offrant divers types d'abstractions et mécanismes.
Cependant, une idée générale communément admise consiste a modéliser les logiciels avec des composants organisés en architectures, puis générer du code a partir de ces descriptions abstraites.
Ceci est une bonne idée, mais la question qui se pose consiste a savoir quel langage est le meilleur candidat pour le code généré.
Dans la pratique actuelle, la phase de conception se déroule dans le monde des composants alors que la phase de programmation se produit dans le monde des objets.
Il semble aussi que les langages et technologies utilisés dans le développement a base de composants ne sont que partiellement à base de composants.
Notre première revendication consiste à dire qu'il est important d'utiliser les langages à composants pour écrire du code exécutable, simplement parce que les artefacts à base de composants d'origine (comme, les besoins ou les architectures) ne disparaissent pas au moment de l'exécution, rendant les programmes plus compréhensibles et réversibles.
En faisant cela, il est alors possible d'imaginer que la conception (modélisation) et la programmation peuvent être effectuées au même niveau conceptuel et pourquoi pas en utilisant le même langage.
Généralement, les objets sont presque toujours choisis pour implémenter les conceptions à base de composants.
Par ailleurs, il est vrai que c'est sans surprise les objets qui sont utilisés pour implémenter des conceptions à base de composants ; un objet étant certainement l'entité exécutable la plus proche d'un composant tel que c'est compris aujourd'hui.
Par contre, ils sont proches mais il ne sont pas exactement les mêmes.
Notre deuxième revendication est qu'il est possible d'atteindre des langages de programmation par composants en apportant des modifications souples aux langages à objets.
Suivant ces idées, nous présentons dans cette thèse un exemple d'un nouveau langage pur de modélisation et de programmation par composants, nommé Compo intégrant d'une manière simple et uniforme, les concepts de base pour la description et l'implémentation des composants et des architectures à composants: composants, ports, services et connexions, et les mécanismes nécessaires suivants: l'instanciation, l'invocation de service, la composition et la substitution.
Nous soutenons également que la description des composants, leurs architectures (structures) et leurs services (comportement) gagneraient (comme le font les descriptions d'objets) à utiliser des descriptions différentielles qui se basent sur un mécanisme d'héritage.
En conséquence, nous proposons une spécification et une implémentation d'un système d'héritage en prenant en compte une politique de spécialisation covariante et un mécanisme de substitution dédié.
Nous affirmons enfin que faire un tel langage totalement réflexif ouvrira une nouvelle alternative intéressante (dans le contexte des composants) pour n'importe quel genre de modèle ou de programme de vérification ou de transformation d'architecture.
Nous revisitons quelques solutions standards pour obtenir une réification à composants originale pour construire un méta-modèle exécutable conçu sur l'idée du «tout est un composant».
Une implémentation complète du prototype du langage Compo a été réalisée et est décrite dans cette thèse.
Related Results
Hubungan Perilaku Pola Makan dengan Kejadian Anak Obesitas
Hubungan Perilaku Pola Makan dengan Kejadian Anak Obesitas
<p><em><span style="font-size: 11.0pt; font-family: 'Times New Roman',serif; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-langua...
Učinak poučavanja razrednomu jeziku u izobrazbi nastavnika njemačkoga
Učinak poučavanja razrednomu jeziku u izobrazbi nastavnika njemačkoga
The actual use of classroom language is principally limited to the classroom environment. As far as foreign language learning is concerned, the classroom often turns out to be the ...
Increased life expectancy of heart failure patients in a rural center by a multidisciplinary program
Increased life expectancy of heart failure patients in a rural center by a multidisciplinary program
Abstract
Funding Acknowledgements
Type of funding sources: None.
INTRODUCTION Patients with heart failure (HF)...
Programming model abstractions for optimizing I/O intensive applications
Programming model abstractions for optimizing I/O intensive applications
This thesis contributes from the perspective of task-based programming models to the efforts of optimizing I/O intensive applications. Throughout this thesis, we propose programmin...
Reflective Practice and Factors Affecting it: Perceptions of Pediatric Surgery Residents
Reflective Practice and Factors Affecting it: Perceptions of Pediatric Surgery Residents
Background: There is scarcity of literature about factors affecting reflective practices in local context. By focusing on these factors, we can help promote engagement in reflectiv...
Introducing object-oriented programming into the computer science curriculum
Introducing object-oriented programming into the computer science curriculum
In recent years, object-oriented programming languages and object-oriented program design have become increasingly popular. Dialects of many popular programming languages are now a...
Object-Oriented Programming
Object-Oriented Programming
To date, books on object-oriented programming have focused either on the methodology of the object-oriented paradigm or on teaching the details of a particular programming language...

