La pourriture logicielle se réfère-t-elle principalement à la performance ou au code désordonné?

22

La définition de Wikipedia de la pourriture logicielle se concentre sur les performances du logiciel. C'est une utilisation différente de celle à laquelle je suis habitué; J'y avais pensé beaucoup plus en termes de propreté et de conception du code - en termes de code ayant toutes les caractéristiques de qualité standard: lisibilité, maintenabilité, etc. Maintenant, les performances sont susceptibles de baisser lorsque le code devient illisible, parce que personne ne sait ce qui se passe. Mais le terme pourriture logicielle a-t-il une référence particulière aux performances? ou ai-je raison de penser que cela fait référence à la propreté du code? ou s'agit-il peut-être d'un cas où plusieurs sens du terme sont couramment utilisés - du point de vue de l'utilisateur, cela concerne la performance; mais pour l'artisan du logiciel, cela a à voir plus précisément avec la lecture du code?

Kazark
la source
1
Wikipédia répertorie 3 causes, dont 2 ne sont pas liées aux performances, code inutilisé et code rarement mis à jour ...
Izkata
2
"Les logiciels peuvent détériorer leurs" performances "au fil du temps et devenir ce que l'on appelle communément" hérités "au fur et à mesure qu'ils s'exécutent et accumulent des erreurs. Je pense qu'il est clair que la pourriture logicielle n'est pas liée aux performances.
zzzzBov
1
La seule fonctionnalité de redéfinition de toute la page wikipidia la balise avertit qu'il n'y a pas de références à des sources relibales.
mattnz

Réponses:

39

Le terme n'est pas lié aux performances, du moins pas partout où je l'ai vu utilisé.

Il s'agit spécifiquement de code qui n'est pas bien entretenu et qui devient ... sale ... pourri. Il s'agit de code dont la conception n'a pas été mise à jour au fur et à mesure des modifications et est difficile à lire et à comprendre.

Oded
la source
1
Je l'ai entendu utilisé pour désigner les performances: par exemple, "Windows rot", le sentiment que vous devez reformater et réinstaller Windows de temps en temps car il ralentit avec le temps.
Carson63000
3
Oui ... mais "pourriture du logiciel" et "pourriture des fenêtres" sont des termes différents.
Stephen C
4
@Oded - l'analogie n'est pas avec la saleté. C'est avec le genre de pourriture qui se produit dans les vieux bâtiments qui les rend structurellement malades.
Stephen C
18

Avouons-le. La «pourriture logicielle» n'est pas un concept technique bien défini. Il s'agit plutôt d'une description péjorative de ce qui se passe lorsque le logiciel est mal entretenu.

La page Wikipedia représente une vue, mais il existe clairement des vues alternatives. Et vous pourriez dire que les différents points de vue reflètent les différentes priorités et préoccupations de la personne qui a les points de vue:

  • Quelqu'un qui se concentre sur la rapidité des logiciels sera plus enclin à rechercher des preuves de «pourriture des logiciels» dans les performances.

  • Quelqu'un qui se concentre sur la conception / l'architecture (par exemple parce qu'il doit ajouter de nouvelles fonctionnalités ou corriger des bogues de fonctionnalité), verra la "pourriture du logiciel" de ce point de vue.

Et, il n'est pas vraiment utile de dire quelle perspective est la plus juste. (C'est un peu comme se demander si la turquoise est plus verte ou plus bleue.)

Stephen C
la source
1
Étant donné que le poste de l'OP portait sur wikipedia, je présente: Turquoise (couleur) - C'est "vert", mais une "nuance bleuâtre". Je pense donc que votre argument est valable :).
Ben Lee
6

Je dirais que le terme «pourriture logicielle» fait généralement référence à l'adéquation à la tâche à accomplir. Le logiciel peut devenir moins adapté à sa tâche prévue en raison de plusieurs couches de corrections de bogues, de nouvelles fonctionnalités et de modifications mineures. Pris ensemble, ceux-ci peuvent nuire à la fois à la maintenabilité et aux performances. De plus, les besoins de l'organisation changeront probablement avec le temps, et le logiciel peut être contraint à des rôles pour lesquels il n'a jamais été vraiment conçu. Tous ces facteurs font que le logiciel devient moins adapté aux besoins de l'organisation, et cela peut se produire même avec un effort concerté pour maintenir le logiciel.

Caleb
la source
6

Wikipedia dit que la pourriture du logiciel et la pourriture du code sont les mêmes. Je ne suis pas d'accord.

La pourriture du code est la perte progressive de lisibilité et de maintenabilité à mesure que de plus en plus de modifications sont apportées au code.

La pourriture logicielle est la perte progressive de performances à mesure que le logiciel est déplacé d'un émulateur d'environnement à un autre. Un exemple est tout le logiciel Data General PDP fonctionnant sur des émulateurs. En fait, c'est l'environnement qui pourrit, pas le logiciel.

Gilbert Le Blanc
la source
+1. wikipedia assimile la pourriture logicielle à la pourriture de code. Nous devrions modifier cela. Il n'y a plus de pourriture logicielle. Un exemple est une interface graphique inutilisable / difficile à utiliser. Des documents obsolètes / incorrects contribuent également.
Jayan
3

Les logiciels ne se détériorent pas, ne deviennent pas périmés, ne s'usent pas ou ne "pourrissent" pas au sens traditionnel du terme.

Si l'environnement dans lequel le logiciel fonctionne ne change pas, le logiciel durera essentiellement pour toujours. C'est pourquoi je suis tellement irrité quand quelqu'un demande si une bibliothèque est "morte" parce que l'auteur n'a pas fait de mise à jour au cours des 5 dernières minutes (exagérant seulement légèrement pour l'effet).

Mais l'environnement change généralement ; les systèmes d'exploitation sont corrigés et mis à jour, les ordinateurs sont remplacés par des plus puissants et de nouveaux programmes sont installés (comme la dernière version d'un client comme Internet Explorer, les pilotes de périphérique ou d'autres bibliothèques), dont le logiciel peut dépendre. Le logiciel doit donc être mis à jour pour prendre en compte ces changements.

Il existe des systèmes logiciels qui fonctionnent de manière continue et fiable depuis des décennies, sans être mis à jour ni entretenus de manière significative. On pense au logiciel COBOL fonctionnant sur des mainframes qui gèrent les transactions bancaires (bien qu'ils aient tous dû être modifiés en 1999 pour gérer Y2K).

L'accent mis par Wikipédia sur les performances ne semble pas pertinent; de nombreuses applications logicielles bénéficient en fait d'une amélioration des performances lorsqu'elles sont installées dans un environnement plus récent. L'article de Wikipédia semble en fait plus préoccupé par le ballonnement logiciel .

Robert Harvey
la source
Ballonnement logiciel - oui, bon point. Dans ma compréhension du terme lorsque j'ai posé la question, la pourriture logicielle était due au fait qu'elle continuait d'être modifiée par un groupe de développeurs dont les normes de nettoyage et de conception du code étaient inférieures à la normale.
Kazark
3

"Pourriture des logiciels" - est un terme très vague et peut signifier une variété de choses pour n'importe qui, selon la façon dont vous percevez le concept, ainsi que quel est votre angle de vue .

La définition par Wikipedia de la pourriture logicielle ne fixe pas de norme car elle est également écrite par certaines personnes. Je pense que ce terme a une signification variée et doit être décomposé aux domaines spécifiques, où il est arbitré.

  • Les programmeurs peuvent comprendre cela comme une base de code non maintenable avec plein d'anti-modèles, pas de cohérence dans le style de nommage et de codage.
  • Les administrateurs système peuvent comprendre cela comme une mauvaise performance, pleine de fuites de mémoire et d'enfer. entretien.
  • L'utilisateur final peut comprendre cela comme un logiciel très compliqué, non intuitif et difficile à travailler.
EL Yusubov
la source
2

J'ai toujours pensé que la pourriture logicielle était une condition qui survient lorsque vous n'utilisez pas de logiciel pendant une certaine période. D'une certaine manière, le logiciel se transforme en un état où il est impossible à construire. Ensuite, lorsque vous arrivez à un point où vous pouvez le construire, cela ne fonctionne pas avec les entrées et les sorties comme il le faisait auparavant. C'est presque comme si le code s'était dégradé dans sa forme même s'il était stocké numériquement.

Kent
la source
1
Parce que l'environnement (compilateur, bibliothèques ou autre) a changé? Wikipédia en parle.
Kazark