Thèse soutenue

Le refactoring comme modèle du couplage homme-machine : technique, sémiotique, mémoire

FR  |  
EN
Auteur / Autrice : Ophir Paz
Direction : Benoît Le blanc
Type : Thèse de doctorat
Discipline(s) : Automatique, Productique, Signal et Image, Ingénierie cognitique
Date : Soutenance le 21/01/2022
Etablissement(s) : Bordeaux
Ecole(s) doctorale(s) : École doctorale des sciences physiques et de l’ingénieur (Talence, Gironde ; 1995-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire de l'intégration du matériau au système (Talence, Gironde)
Jury : Président / Présidente : Pierre de Loor
Examinateurs / Examinatrices : Benoît Le blanc, Pierre de Loor, Pierre Steiner, Guillaume Desagulier, Jean-Baptiste Guignard
Rapporteurs / Rapporteuses : Pierre Steiner, Guillaume Desagulier

Résumé

FR  |  
EN

Le code et sa qualité sont les enjeux quotidiens du développement informatique. Relu, partagé, interprété, le code est la cheville ouvrière du développeur qui, dans sa pratique, doit être attentif à sa lisibilité et sa maintenabilité – deux critères que rassemble « qualité ». Le génie logiciel a coutume d’adresser cette notion en préconisant l’adéquation à un ensemble de normes formelles, de conventions méthodologiques ou structurelles qui ont fait leurs preuves empiriquement. Le code répond alors à des critères de « bon usage » qui doivent garantir sa clarté et la conformité du programme qui en résulte aux attentes fonctionnelles. Par ailleurs dans les sciences de la cognition, l'intelligibilité du code est étudiée par la modélisation des processus cognitifs à l'œuvre chez le programmeur (psychologie), ou par la recherche de métriques mettant en corrélation des pratiques syntaxiques et des statistiques de productivité (ingénierie des exigences). Si ces recherches ont permis des avancées considérables dans l'ergonomie et l'efficacité des environnements de développement, elles n'expliquent pas toujours – ou contredisent parfois - les pratiques empiriques préconisée par l'ingénierie au sens large. En adoptant une approche constructionnnelle, qui puise son origine dans les linguistiques cognitives post-chomskyennes, et d'une philosophie de la technique anthropocentrée portée par l'École de Compiègne, nous proposons de positionner le code en tant qu'outil prothétique et de le considérer comme une « technologie cognitive ». Partie intégrante et constitutive de la cognition humaine, son efficacité repose dans la pertinence du prisme qu'il constitue sur l'environnement technique et dans la capacité d'action qu'il confère à ce dernier.Ce travail de recherche se propose de remettre l'activité humaine au centre de la qualité logicielle. Adoptant une approche de type bottom-up, c'est en partant du corpus de code que nous mettons en avant les briques qui le constituent en tant que technologie cognitive. Par un rapprochement avec les travaux sur la Grammaire de Construction, une grammaire cognitive du code apparaît, distincte des contraintes syntaxiques nécessaires à son traitement par la machine. Les appairages forme/fonction se négocient et se cristallisent lors des phases de refactoring et de relecture du code. Par ce processus, ils viennent enrichir un répertoire externalisé, partagé dans les limites du contexte social et technique de sa création. Cet ensemble de constructions, à la fois mode d'action sur le fonctionnement d'un programme et grille d'interprétation de ses spécifications et de son comportement, se pose comme une illustration de la thèse TAC (la Technique comme Anthropologiquement Constitutive). Nous montrons alors, à la lumière des travaux de Gilbert Simondon, que le code en tant qu'objet technique est à la fois conditionné par sa genèse et moteur de sa propre évolution en suivant des phases de saturation et d’individuation. Ainsi l'intelligibilité du code se présente comme située : la négociation du sens est nécessaire à sa lisibilité, la co-évolution du code et de la cognition sont indissociables de sa maintenabilité.