Le refactoring comme modèle du couplage homme-machine : technique, sémiotique, mémoire / Ophir Paz ; sous la direction de Benoît Le blanc

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : français / French

Catalogue Worldcat

Linguistique cognitive

Sémiotique

Sciences cognitives

Codage

Le Blanc, Benoît (Directeur de thèse / thesis advisor)

Loor, Pierre de (19..-....) (Président du jury de soutenance / praeses)

Steiner, Pierre (1980-....) (Rapporteur de la thèse / thesis reporter)

Desagulier, Guillaume (1977-....) (Rapporteur de la thèse / thesis reporter)

Guignard, Jean-Baptiste (Membre du jury / opponent)

Université de Bordeaux (2014-....) (Organisme de soutenance / degree-grantor)

École doctorale des sciences physiques et de l’ingénieur (Talence, Gironde) (Ecole doctorale associée à la thèse / doctoral school)

Laboratoire de l'intégration du matériau au système (Talence, Gironde) (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : 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é.

Résumé / Abstract : Code and its quality are a daily challenges of software development. Reread, shared, interpreted, code is the main tool of the developer who, in his practice, must pay attention to its readability and maintainability - two criteria that “quality” brings together. Software engineering is usually addressing quality by advocating compliance with a set of formal standards, methodological or structural conventions that have been proven empirically. Code should meet a set of “best practices” which must guarantee its clarity and the conformity of the resulting software with functional expectations. Sciences of Cognition studies code readability through the modeling of the cognitive processes at work in the programmer (psychology), or searching metrics correlating syntactic practices and productivity statistics. While this research has enabled considerable advances in the ergonomics and efficiency of development environments, it does not always explain - or sometimes contradict - the empirical practices promoted by the software engineering community. By adopting a constructional approach, which draws its origin in post-Chomskyean cognitive linguistics, and a philosophy of anthropocentric technique carried by the School of Compiègne, we propose to position the code as a prosthetic tool and to think of it as "cognitive technology". As a constitutive part of human cognition, its effectiveness is relative to its relevance in the technical environment and on the capacity for action that it confers on the latter.This research work aims to put human activity back at the center of software quality. Adopting a bottom-up approach, we put forward the building blocks that constitute it as cognitive technology starting from the code corpus. By comparison with the work on Construction Grammar, a cognitive grammar of the code appears, distinct from the syntactic constraints necessary for its processing by the machine. The form / function pairings are negotiated and crystallized during the refactoring and code review phases. Through this process, they enrich an externalized repertoire, shared within the limits of the social and technical context of its creation. This set of constructions, both a mode of action on the functioning of a program and an interpretation grid for its specifications and its behavior, is an illustration of the TAC thesis (Technique as Anthropologically Constitutive). We then show, in the light of the work of Gilbert Simondon, that the code as a technical object is both conditioned by its genesis and conducts its own evolution by following phases of saturation and individuation. Thus the intelligibility of the code is presented as situated: the negotiation of meaning is necessary for its readability, the co-evolution of code and cognition are inseparable from its maintainability.