Qu'est-ce que l'évolution du logiciel?
L'évolution des logiciels est un processus par lequel un programme informatique commercial nécessite une mise à jour, une maintenance et des améliorations continues au fil du temps afin de rester un produit viable. À cet égard, l'évolution des logiciels est dictée par les besoins externes des entreprises et des consommateurs, qui évoluent parallèlement aux progrès des autres logiciels et technologies. Cependant, le facteur moteur de l'évolution du logiciel est souvent un facteur interne axé sur l'équipe d'ingénierie qui a produit le produit et sur la société qui dépend de son succès pour la rentabilité. L'Imperial College of London, en Angleterre, a promulgué pour la première fois trois lois fondamentales de l'évolution du logiciel au début des années 1970, qui ont depuis été étendues à huit lois à partir de 2011. D'autres tentatives ont également été tentées pour quantifier le processus à l'aide de modèles tels que modèle linéaire séquentiel et modèle prototype, mais le paradigme qui semble correspondre le mieux aux cycles de vie de l'entropie logicielle est celui d'une évolution ressemblant à celle de Darwin pour les êtres vivants.
Les principaux facteurs qui sous-tendent les changements d’architecture logicielle ressemblent aux mêmes forces qui incitent les entreprises à mettre à niveau leurs machines industrielles ou leurs procédures d’exploitation standard en fonction de l’évolution des besoins de la société. À mesure que les logiciels sont de plus en plus utilisés, de nouveaux besoins ou fonctions deviennent manifestes et doivent être intégrés dans les versions ultérieures du produit. Tous les logiciels sont également publiés avec des erreurs inconnues auparavant. Des correctifs périodiques et des procédures de maintenance doivent donc être effectués pour corriger des situations telles que des failles de sécurité pouvant rendre une entreprise vulnérable aux attaques via le logiciel lui-même. Une des clés de l’évolution des logiciels réside également dans le fait que ces programmes doivent être de plus en plus adaptés pour fonctionner sur différents types d’équipements informatiques émergents et au sein de différentes architectures de systèmes d’exploitation, de manière à rendre le programme plus attrayant.
Répondre à tous ces besoins est essentiel pour déterminer si un logiciel reste viable et, les actifs logiciels constituant un aspect crucial de l'économie de l'information en 2011, l'évolution du logiciel est devenue un aspect fondamental de l'adaptation et de la croissance des entreprises. Meir Lehman, informaticien à l'Imperial College of London, est à l'origine de la création de Lehman's Laws, qui définit de manière succincte le processus d'évolution logicielle et guide les développeurs dans la réflexion prospective sur la visualisation de logiciels. Les lois de Lehman sont basées sur le principe que le logiciel évolue à mesure que les retours sur ses performances augmentent et que sa tendance inévitable est de plus en plus complexe.
Lehman a déclaré que la nature de l'évolution du logiciel reflétait les changements naturels tels que la mutation des mouches des fruits, la façon dont les villes se développaient avec le temps et la manière dont les structures militaires amélioraient progressivement les systèmes d'armes. Les trois premières lois du processus imitent ces tendances en détaillant le changement continu, la complexité croissante et ce qu'on appelle l'évolution des programmes volumineux. Le processus de changement continu fait référence au fait que le programme doit être adapté à la conjoncture économique actuelle et refléter une complexité croissante du fait que le programme doit répondre à une diversité toujours croissante de besoins inattendus. «Grand programme évolué» fait référence à la nécessité de corriger les erreurs et de créer de nouvelles versions du programme, qui sont inexorablement liées aux demandes du marché.
Parmi les cinq lois restantes dans l'évolution des logiciels, le numéro quatre est la stabilité organisationnelle et fait référence au fait que la croissance d'un programme a une vie propre, quel que soit le niveau de ressources qui lui a été délibérément consacré, et la cinquième à la conservation de la connaissance. cela indique que la croissance progressive du programme est inévitable. Le numéro six dans les huit lois de Lehman est la croissance continue, nécessaire pour satisfaire la demande des consommateurs, et le numéro sept, la qualité en déclin, soulignant le fait que tous les logiciels sont finalement confrontés à des limitations de fonctionnalités auxquelles ils ne peuvent pas accéder. La loi de Lehman finale sur l'évolution du logiciel est le système de feedback lui-même, qui relie toutes les forces qui affectent la viabilité d'un logiciel pour le conduire rapidement à un plus grand succès ou à une obsolescence et une mort inévitables.