A hygrid approach to maintain consistency of cooperative software development environments
Une approche hybride pour gérer la cohérence dans les environnements de développement coopératif
Abstract
The framework of this thesis is the cooperative software development environment COO. COO uses transactional approach to handle concurrency control problems but it does not provide any guarantee about the quality of the software products. We propose to define constraints in order to have such guarantee. Unfortunately, the classical verification algorithms of constraints are not compatible with the nature of development activities. We define a new verification algorithm which is suitable for cooperative environment . Our results are: a hybrid approach Maïzena which uses semantic knowledge to restrict the accepted execution by the syntactical protocol of COO and allows to enclose cooperation in a security sphere; an algorithm to maintain the consistency of software products. This algorithm maintains constraints defined by temporal formulae. It is implemented in COO environment; a recovery mechanism which allows to split an activity to several ones and to uses cooperation to satisfy constraints.
Dans cette thèse, nous nous intéressons à la mise en oeuvre de mécanismes pour supporter le travail coopératif dans les environnements de développement de logiciels. Dans de tels environnements, il est indispensable de gérer les accès concurrents aux données partagées et la cohérence des données, ce qui permet de coopérer dans des bonnes conditions. Notre travail s'inscrit dans le cadre de l'environnement de développement coopératif COO. Actuellement, COO repose sur un modèle transactionnel pour résoudre les problèmes dûs aux accès concurrents mais ne fournit aucune garantie sur la qualité des produits. Nous proposons de définir des contraintes sémantiques sur les produits et leur procédés de fabrication pour avoir une telle garantie. Mais les mécanismes classiques de vérification des contraintes ne sont pas compatibles avec la nature coopérative des activités de développement. Pour cela, nous proposons un nouveau mécanisme de vérification des contraintes dans un environnement coopératif. Nos résultats sont les suivants : l'approche hybride Maïzena qui utilise la sémantique pour restreindre les exécutions acceptées par le protocole syntaxique de correction des interactions de COO et permet ainsi de confiner la coopération dans une sphère de sécurité ; un algorithme pour gérer la cohérence des produits logiciels. Cet algorithme vérifie de contraintes définies à l'aide des formules de logique temporelle. Cet algorithme est validé par une implantation au sein de COO ; un mécanisme de recouvrement en avant permettant de séparer une activité en plusieurs et de profiter de la coopération pour valider les contraintes.