Assistance au développement informatique
Les chaînes éditoriales ont été conçues dans l'objectif de tirer partie du support numérique. Elles s'appuient sur une propriété fondamentale du numérique à savoir la manipulabilité de l'information afin d'optimiser le processus d'élaboration des documents. Ce faisant, elles rapprochent le procédé de l'élaboration des documents et celui du développement informatique.
Prenons pour l'exemple le procédé de développement d'un langage compilé comme le C ou le C++ : le code source est composé principalement de fichiers de sources, de fichiers d'en-têtes et de fichiers de bibliothèques déjà pré-compilées. Un fichier peut en référencer un autre afin de pouvoir appeler des fonctions qui y sont définies. Le code source d'une application peut ainsi réunir plusieurs milliers voire dizaines de milliers ou centaines de milliers de fichiers distincts (à titre d'exemple, l'ordre de grandeur du nombre de fichiers de sources mobilisés pour compiler les applications Scenari est entre quarante et cinquante mille). Pour compiler un programme, le compilateur prend les différents fichiers de code source et produit en sortie, un fichier binaire d'instructions au processeur. Chaque bloc de code source a été transformé par l'algorithme de compilation en un jeu d'instructions interprétables et exécutables pour le processeur de la machine.
Ainsi, au même titre qu'un ensemble de fragments de documents peut être représenté sous la forme d'un graphe, on pourra constituer un graphe de code source. Chaque sommet y représente un fichier de source et chaque lien une référence depuis un fichier de code vers un autre. Ce type de représentation du code source est par ailleurs mobilisé pour des études bien précises comme celle de Zanetti & Schweitzer (2012[1]) sur la modularité du code source ou celle de Kabbedijk & Jansen (2011[2]) sur les écosystèmes open source.
Les solutions que nous présentons dans ce chapitre ont été exploitées pour le développement de plusieurs chaînes éditoriales, notamment en raison de la proximité du problème de cohérence globale d'un graphe de ressources. Néanmoins, la gestion du code source comporte des différences fondamentales avec celle des fragments de documents. En premier lieu, un code peut être exécuté par la machine. En opérant les instructions telles qu'elles sont écrites dans les fichiers de sources, la machine opère un vaste contrôle de cohérence sur la validité des algorithmes. Une erreur importante dans l'écriture générera une erreur dans la compilation ou l’exécution. Lorsque ce contrôle montre ses limites, les développeurs peuvent mettre au point des contrôles complémentaires appelés test unitaires (Zhu, Hall & May, 1997[3]). Ces tests valident l’exécution d'une portion de code bien ciblée. Enfin pour clore ce tableau des différences, notons que le code informatique est écrit par des développeurs qui sont formés pour maîtriser les aspects techniques du contrôle de leur code. Cette différence est notable avec un projet de diffusion de la rééditorialisation au plus grand nombre, soit à toute personne souhaitant produire des documents.
L'assistance aux développeurs s'opère selon deux modalités différentes. Au sein des fichiers de code source avec l'usage de commentaires et d'annotations ou de façon externe à ces fichiers avec la gestion de quantités importantes de fichiers et de leurs versions respectives.