Accueil🇫🇷Chercher

Lois de Lehman sur l'Ă©volution des logiciels

En génie logiciel, les lois de l'évolution des logiciels font référence à une série de lois que Lehman (en) et Belady ont formulées à partir de 1974 concernant l'évolution des logiciels[1] - [2]. Ces lois décrivent un équilibre entre, d'une part, les forces qui conduisent à de nouveaux développements, et d'autre part, celles qui ralentissent leur progression. Au cours des dernières décennies, les lois ont été révisées et étendues à plusieurs reprises[3].

Contexte

En remarquant que la plupart des logiciels sont sujets à des changements au cours de leur existence, les auteurs ont entrepris de déterminer à quelles lois ces changements obéiront typiquement, ou devront obéir pour que ces logiciels puissent survivre.

Dans son article de 1980[1], Lehman précisait l'application de ces lois en distinguant trois catégories de logiciels :

  • un programme de type S est Ă©crit en fonction d'une spĂ©cification exacte de ce que ce programme peut faire ;
  • un programme de type P est Ă©crit pour implĂ©menter certaines procĂ©dures qui dĂ©terminent complètement ce que le programme peut faire (l'exemple mentionnĂ© est un programme pour jouer aux Ă©checs)
  • un programme de type E est Ă©crit pour rĂ©aliser une activitĂ© du monde rĂ©el ; la façon dont il doit se comporter est Ă©troitement liĂ©e Ă  l'environnement dans lequel il s'exĂ©cute, et un tel programme doit s'adapter aux diffĂ©rentes exigences et circonstances dans cet environnement.

Ces lois ne doivent être appliquées qu'à cette dernière catégorie de systèmes.

Les lois

Au total, huit lois ont été formulées :

  1. (1974) « Changement continu Â» : un système de type E doit ĂŞtre continuellement adaptĂ©, ou il devient progressivement moins satisfaisant[4].
  2. (1974) « ComplexitĂ© croissante Â» : Ă  mesure qu'un système de type E Ă©volue, sa complexitĂ© augmente, Ă  moins que des travaux ne soient rĂ©alisĂ©s pour la maintenir ou la rĂ©duire[4].
  3. (1974) « Auto-rĂ©gulation Â» : les processus d'Ă©volution des systèmes de type E s'autorĂ©gulent avec une distribution de produits et des mesures de processus proches de la normale[4].
  4. (1978) « Conservation de la StabilitĂ© Organisationnelle (taux de travail invariant) Â» : le taux d'activitĂ© global efficace moyen dans un système de type E en Ă©volution est invariant sur la durĂ©e de vie du produit[4].
  5. (1978) « Conservation de la familiaritĂ© Â» : Ă  mesure qu'un système de type E Ă©volue, toutes les personnes qui y sont associĂ©es - les dĂ©veloppeurs, les commerciaux et les utilisateurs, par exemple - doivent maintenir la maĂ®trise de son contenu et son comportement pour obtenir une Ă©volution satisfaisante. Une croissance excessive diminue cette maĂ®trise. Par consĂ©quent, la croissance incrĂ©mentale moyenne reste invariante Ă  mesure que le système Ă©volue[4].
  6. (1991) « Croissance continue Â» : le contenu fonctionnel d'un système de type E doit ĂŞtre continuellement augmentĂ© pour maintenir la satisfaction des utilisateurs tout au long de sa vie.
  7. (1996) « QualitĂ© dĂ©croissante Â» : la qualitĂ© d'un système de type E apparaĂ®tra comme dĂ©croissante, Ă  moins qu'il ne soit rigoureusement maintenu et adaptĂ© aux changements de son environnement de fonctionnement[5].
  8. (1996) « Système de RĂ©troaction Â» (Ă©noncĂ© pour la première fois en 1974, formalisĂ© par la loi de 1996) : les processus d'Ă©volution de type E constituent des systèmes de rĂ©troaction Ă  plusieurs niveaux, Ă  plusieurs boucles et Ă  plusieurs agents ; et ils doivent ĂŞtre traitĂ©s comme tels pour obtenir des amĂ©liorations significatives par rapport Ă  toute base raisonnable.

Références

  1. Meir M. Lehman, « Programs, Life Cycles, and Laws of Software Evolution », Proc. IEEE, vol. 68, no 9,‎ , p. 1060–1076 (DOI 10.1109/proc.1980.11805)
  2. M. M. Lehman, J. F. Ramil, P. D. Wernick, D. E. Perry et W. M. Turski « Metrics and laws of software evolution—the nineties view » () (DOI 10.1109/METRIC.1997.637156, lire en ligne)
    — « (ibid.) », dans Proc. 4th International Software Metrics Symposium (METRICS '97), p. 20–32
  3. Israel Herraiz, Daniel Rodriguez, Gregorio Robles et Jesus M. Gonzalez-Barahona, « The evolution of the laws of software evolution », ACM Computing Surveys, vol. 46, no 2,‎ , p. 1–28 (ISSN 0360-0300, DOI 10.1145/2543581.2543595)
  4. M. M. Lehman, « On Understanding Laws, Evolution, and Conservation in the Large-Program Life Cycle », Journal of Systems and Software, vol. 1,‎ , p. 213-221 (DOI 10.1016/0164-1212(79)90022-0)
  5. Liguo Yu and Alok Mishra (2013) An Empirical Study of Lehman’s Law on Software Quality Evolution in International Journal of Software and Informatics, 11/2013; 7(3):469-481.
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.