14,90 € TTC
p.06 Côté livres...
p.08 Créez des présentations animées avec Python
p.30 Introduction au dossier
p.32 Les défis de la maintenance logicielle
p.42 Recréer un ancien environnement à l’aide de Docker
p.56 Déploiements reproductibles dans le temps avec GNU Guix
p.66 Arithmétique sur divers systèmes embarqués aux ressources contraintes : les nombres à virgule fixe
p.90 Concevoir des tableaux en LaTeX
p.110 Introduction à l’écriture de tests avec Erlang/OTP
Dans le dossier de ce hors-série, nous allons voir un aspect de la maintenance logicielle qui consiste essentiellement à recréer un environnement dans lequel un programme obsolète pourra être exécuté. Mais un autre aspect de la maintenance de code est à garder en mémoire également bien que se situant en amont : la qualité du code !
Si un logiciel est écrit en respectant les bonnes pratiques du ou des langages employés (conventions de nommage par exemple), que la documentation technique a été correctement écrite et complétée au fur et à mesure de l’avancée du projet et que les principes architecturaux de base ont été respectés, la maintenance sera nécessairement beaucoup plus aisée. En effet, si on ne parle pas d’adapter un environnement pour y faire tourner un code, mais d’adapter plutôt celui-ci pour qu’il fonctionne sur un système moderne (ou pour un programme actuel sur les futurs systèmes), le fait de porter une attention particulière à la qualité et ne pas se contenter d’un « machin » qui tourne permet d’éviter de se retrouver dans le futur dans le cas de la boîte noire que personne n’ose toucher de peur de la casser.
Comme souvent en informatique tout est question de compromis : est-ce que j’accepte de perdre du temps maintenant pour hypothétiquement en gagner d’ici quelques années, voire sauver l’activité de l’entreprise si le domaine d’application du logiciel incriminé est critique ? Est-ce que l’on gagne vraiment du temps à bâcler le travail ? Réfléchir à une architecture propre, documenter, tester sont des activités chronophages. Certains développeurs ne vont qu’à l’essentiel (l’aspect paresseux de l’informaticien, mais dans la mauvaise appréciation du terme). D’un autre côté, ce ne sont pas toujours les développeurs qui sont à blâmer, encore faut-il que les chefs d’équipes et dirigeants soient conscients qu’il faut du temps pour réaliser du bon travail !
Une fois que les contraintes de qualité ont été prises en compte, le portage du code nécessitera alors un travail minime et bien entendu la recréation d’un environnement adéquat au bon fonctionnement du logiciel sera toujours possible, et pour cela vous n’avez qu’à lire le dossier de ce hors-série...
Tristan Colombo
GNU/Linux Magazine s'adresse aux professionnels et aux particuliers désireux de mieux maîtriser les techniques et problématiques liées à la programmation et à l’utilisation de solutions open source. Tous les deux mois avec ses articles techniques, la publication couvre les thématiques suivantes : programmation système, algo, bas niveau, sécurité du code, développement web...

La domotique, c'est fantastique ! Surtout quand ça ne coûte pas trop cher, que ça rend service aussi bien pour le contrôle des lumières, le suivi de la consommation électrique, le contrôle de l'environnement ou l'automatisation, et que tout cela fonctionne avec du logiciel libre, sans exfiltrer des tonnes de données privées chez un fournisseur qui se fera tôt ou tard pirater. Mais à trop vouloir jouer la carte de la sécurité, on se prive parfois de certains avantages. Trouvons donc le bon compromis pour rendre notre installation accessible, sans créer d'énormes brèches...
Nombre de phénomènes physiques qui nous entourent peuvent être décrits par un graphe d'états. Ce dernier représente les états successifs du phénomène en question, par exemple, les différents états de l'eau : état solide, état liquide et état gazeux. Il en est de même pour la majorité des systèmes que nous utilisons couramment : machine à café, lave-linge, automobile, distributeur de boissons, jusqu'à aller au comportement même des threads gérés par votre système d'exploitation.
Le monde des MCU semble aujourd'hui très homogène et surtout totalement dominé par les architectures ARM, ce qui est, d'un certain point de vue, relativement vrai. Mais les alternatives sont nombreuses, qu'il s'agisse de classiques du genre comme Atmel AVR, de « nouveaux » venus comme l'écosystème ESP32 et/ou une architecture (ISA) conquérant chaque jour plus de part de marché, à savoir le RISC-V. Et dans cet univers parallèle à l'ARM, on trouve des choses qui peuvent paraître assez surprenantes, comme un microcontrôleur développé par Intel en 1980 : le 8051. Et celui-ci est toujours au goût du jour, un nouveau modèle est même arrivé l'été dernier, c'est dire !