Treffer: Efficient object versioning for object-oriented languages from model to language integration

Title:
Efficient object versioning for object-oriented languages from model to language integration
Contributors:
Langerman, Stefan, Wuyts, Roel, Roggeman, Yves, Collette, Sébastien, Iacono, John, Ducasse, Stéphane S.
Publisher Information:
Universite Libre de Bruxelles
Université libre de Bruxelles, Faculté des Sciences – Informatique, Bruxelles
Publication Year:
2012
Collection:
DI-fusion : dépôt institutionnel de l'Université libre de Bruxelles (ULB)
Document Type:
Dissertation doctoral or postdoctoral thesis
File Description:
1 v. (viii, 228 p.); 2 full-text file(s): application/pdf | application/pdf
Language:
French
Relation:
local/ulbcat.ulb.ac.be:956757
Accession Number:
edsbas.673D1201
Database:
BASE

Weitere Informationen

Tout le monde a déjà rencontré la fonctionnalité ``Undo/Redo' qui permet de se balader dans les versions précédentes d'un document. Bien que le versioning -- sauver et parcourir plusieurs versions d'entités données -- est nécessaire pour beaucoup d'applications, il est difficile de l'implémenter facilement et efficacement en temps et en espace utilisés. Dans cette thèse, nous présentons un système de versioning efficace et expressif pour les langages orientés objet. Nous commencons par développer un modèle qui permet au développeur de sélectionner avec précision les parties intéressantes de son système qui seront sauvegardées à des moments clefs. Ce modèle permet de parcourir facilement les différentes versions enregistrées et de faire cohabiter aisément les parties versionnées avec les parties non sélectionnées par le développeur. Ce modèle est de plus compatible avec trois types de versioning (linear, backtracking et branching versioning) qui permettent des opérations diverses sur la ligne du temps, comme supprimer toutes les versions après une version donnée ou créer une nouvelle branche à partir d'une ancienne version. Ensuite nous développons les structures efficaces en temps et en espace qui implémentent ce modèle dans un monde réel. Basées sur les travaux de Driscoll et al. elles sont adaptées aux spécificités de chaque type de versioning. Nous montrons ensuite comment ce système peut être intégré concrètement dans un langage orienté object. Plus précisément, nous montrons comment notre système peut être intégré de façon transparente pour le développeur grâce à des outils tels que les aspects ou la transformation de bytecodes. Pour valider nos propos, nous avons implémenté notre système dans les langages de programmation Smalltalk et Java. Nous montrons des applications réelles qui l'utilisent, telles que les post-conditions à états et le problème du planar point location. Nous terminons cette thèse par évaluer l'efficacité de notre implémentation en effectuant des benchmarks détaillés en Smalltalk et en ...