Les historiques de commandes sont omniprésents dans le monde de l'édition. Au cours du temps, plusieurs modèles d'historiques ont émergé, abordant différentes fonctionnalités comme des types d'annulation et de ré-exécution, ainsi que la gestion des conséquences de leur utilisation. Ces modèles, bien que souvent adaptés à un cas d'usage spécifique, partagent des caractéristiques structurelles et fonctionnelles communes. Ces caractéristiques peuvent être catégorisées pour étudier les différences entre ces modèles. Certains de ces choix de caractéristiques vont avoir des conséquences sur le comportement des fonctionnalités proposées, c'est à dire qu'une fonctionnalité aura des effets différents selon certaines caractéristiques du modèle la proposant. Cette thèse porte sur le lien entre les fonctionnalités proposées par les historiques de commande et la structure interne de ces historiques. L'objectif de cette thèse est de présenter une architecture logicielle d'historique de commandes laissant au logiciel le choix du comportement des fonctionnalités parmi au moins ceux étudiés dans la littérature. Cela demande de pouvoir les implémenter de manière non exclusive et combinable avec une même structure d'historique. En effet, les différentes fonctionnalités et comportements proposés par les différents modèles s'avèrent être utiles pour l'utilisateur lors d'une tâche d'édition. Ces modèles ne sont cependant pas combinables, forçant un choix en amont par le développeur du logiciel d'édition, et limitant ainsi les capacités de l'historique, qui ne pourra alors pas répondre à certains besoins de l'utilisateur lors de son travail d'édition. Ce constat est la motivation principale de cette thèse, et a mené à trois contributions : ⦁ La catégorisation des caractéristiques des historiques de commande permet de mettre en relation et d'organiser les différents modèles et discussions de l'état de l'art dans le domaine des historiques de commandes comprenant de nombreuses sous parties. Elle établit la liste des choix à faire lors de l'implémentation d'une fonctionnalité et les options existantes qui mènent vers des comportements différents. Elle propose une manière d'approcher le sujet dans sa globalité, et établit ainsi une fondation pour un modèle unifié. Le modèle abstrait ESCI unifie le fonctionnement des historiques en présentant une structure d'historique qui permet d'implémenter les différents comportements des fonctionnalités de la littérature. Il reprend les concepts fondamentaux de Causality et les détaillent. La différence principale entre les deux modèles réside dans leur gestion des états, ESCI ajoutant de la flexibilité quant au suivi de l'évolution de données éditées. ⦁ L'architecture logicielle ReTracer propose une manière d'implémenter ESCI. Elle permet d'apporter quelques précisions et aborde certains détails d'implémentation du modèle. L'implémentation du modèle permet de mener des expériences pour étudier les apports d'un tel historique au travail d'édition de l'utilisateur ainsi que les interfaces d'interaction adaptées, qui est un projet à venir.
M. Stéphane HUOT Inria Directeur de thèse M. Arnaud BLOUIN INSA, Rennes Rapporteur M. Stéphane CONVERSY ENAC Rapporteur Mme Laurence NIGAY Université de Grenoble Alpes Examinatrice M. Romain ROUVOY Université de Lille Examinateur M. Mathieu NANCEL Inria Examinateur
Thèse de l'équipe Loki soutenue le 09/06/2023