Un modèle de raisonnement pour les opérateurs de composition logicielle décrits en boite noire / Benjamin Benni ; sous la direction de Sébastien Mosser et de Michel Riveill

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : anglais / English

Catalogue Worldcat

Génie logiciel

Logiciels -- Développement

Mosser, Sébastien (1983-....) (Directeur de thèse / thesis advisor)

Riveill, Michel (1960-....) (Directeur de thèse / thesis advisor)

Peyrat, Claudine (1959-....) (Président du jury de soutenance / praeses)

Barais, Olivier (1980-....) (Rapporteur de la thèse / thesis reporter)

Mussbacher, Gunter (Rapporteur de la thèse / thesis reporter)

Seinturier, Lionel (Rapporteur de la thèse / thesis reporter)

Université Côte d'Azur (2015-2019) (Organisme de soutenance / degree-grantor)

École doctorale Sciences et technologies de l'information et de la communication (Sophia Antipolis, Alpes-Maritimes) (Ecole doctorale associée à la thèse / doctoral school)

Université de Nice (1965-2019) (Autre partenaire associé à la thèse / thesis associated third party)

Laboratoire Informatique, signaux et systèmes (Sophia Antipolis, Alpes-Maritimes) (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : La complexité des systèmes informatiques a rendu nécessaire leur découpage avant de les recomposer. Cette séparation est un défi connu et les développeurs découpent déjà les tâches au préalable. Néanmoins, séparer sans considérer la recomposition finale entraine des réunifications hâtives et chronophages. Cette composition doit mener au bon et meilleur système avec le minimum d'effort humain. Les opérateurs de composition sont souvent ad-hoc et développés par des non-spécialistes. Ils ne respectent pas de formalismes de haut-niveau et deviennent trop complexes ou informels pour pouvoir raisonner. Nous les appelons des "boites-noires": les techniques nécessitant d'en connaitre l'intérieur ne peuvent être appliquées. Or, ces boites noires doivent garantir des propriétés : d'aucun doit vérifier son idempotence pour l'utiliser dans un contexte distribué ; connaitre son temps d'exécution pour des systèmes réactifs ; vérifier des conflits pour le confronter à des règles d'entreprise. Aucun de ces besoins n'est spécifique à un domaine applicatif. Dans cette thèse, nous présentons une approche indépendante du domaine qui permet, sur des opérateurs existants, (i) de raisonner sur des équations de composition pour (ii) les composer en sécurité, en (iii) proposant une vérification de propriétés similaires à celles de l’état de l’art. Nous avons validé cette approche sur des domaines différents : 19 versions du noyau Linux avec 54 règles de réécriture, réparé 13 « antipatrons » dans 22 applications Android et validé son efficacité sur la composition de 20k images Docker.

Résumé / Abstract : The complexity of software systems made it necessary to split them up and reunite them afterward. Separating concerns is a well-studied challenge and teams separate the work to be done beforehand. Still, separating without considering the recomposition leads to rushed, unsafe, and time-consuming recomposition. The composition should create the right and best system with minimal human effort. Composition operators are often ad-hoc solutions developed by non-specialist development teams. They are not developed using high-level formalism and end up being too complicated or too poorly formalized to support proper reasonings. We call them "black-boxes" as existing techniques requiring knowledge of its internals cannot be applied or reused. However, black-box operators, like others, must ensure guarantees: one must assess their idempotency to use them in a distributed context; provide an average execution time to assess usage in a reactive system; check conflicts to validate that the composed artifact conforms to business properties. Despite the black-box aspect, none of these properties are domain-specific. In this thesis, we present a domain-independent approach that enables (i) reasonings on composition equation, (ii) to compose them safely, (iii) by assessing properties similar to the ones from the state-of-the-art. We validated the approach in heterogeneous application domains: 19 versions of Linux kernel with 54 rewriting rules, fixing 13 antipatterns in 22 Android apps, and validating the efficiency of the approach on the composition of 20k Docker images.