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?
la source
Réponses:
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.
la source
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.)
la source
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.
la source
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.
la source
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 .
la source
"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é.
la source
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.
la source