Bienvenue sur EveryBodyWiki ! Créez un compte ou connectez vous pour participer, améliorer ou créer un article, une biographie (la vôtre ?), une page entreprise...


Théorème fondamental de l'ingénierie logicielle

De EverybodyWiki Bios & Wiki
Sauter à la navigation Sauter à la recherche


Le Théorème fondamental de l'ingénierie logicielle ("fundamental theorem of software engineering" ou FTSE) est un terme proposé par Andrew Koenig pour décrire une remarque de Butler Lampson[1] attribuée à David J. Wheeler[2] :

« On peut résoudre n'importe quel problème en ajoutant un niveau supplémentaire d'indirection. »

Ce n'est pas vraiment un théorème scientifique à prouver, c'est plutôt un principe général pour gérer la complexité via l'abstraction.

On complète souvent la phrase avec humour par "… sauf quand le problème, c'est qu'on a trop de niveaux d'indirection". En effet, avoir trop d'abstractions peut créer de la complexité, ce qui est en soi un problème.

Par exemple, l'utilisation de couches de protocoles réseau, que l'on retrouve partout aujourd'hui, a été critiquée par le passé et présentée sous la forme de "trop d'abstraction"[3]. Ici, ajouter des couches d'indirection peut imposer aux couches supérieures de ré-implémenter des fonctionnalités de couches plus basses, ce qui est moins efficient. On peut aussi se retrouver dans une situation où une fonctionnalité dans une couche a besoin d'informations qui n'est présente que dans une autre couche, ce qui viole l'objectif de la séparation en couches d'abstraction.


  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Fundamental_theorem_of_software_engineering » (voir la liste des auteurs).

Références[modifier]

  1. Abrahams and Gurtovoy, C++ Template Metaprogramming, 2005, Addison Wesley, p. 13.
  2. http://bwlampson.site/Slides/TuringLecture.htm
  3. I. Wakeman, J. Crowcroft, Z. Wang et D. Sirovica, « Is Layering Harmful? », IEEE Network,‎ , p. 20–24 (DOI 10.1109/65.120719)

Erreur Lua dans Module:Catégorisation_badges à la ligne 170 : attempt to index field 'wikibase' (a nil value).Erreur Lua dans Module:Suivi_des_biographies à la ligne 189 : attempt to index field 'wikibase' (a nil value).


Autres articles du thème Management management : Comparaison entre ISO 9001 et CMMI, Frank Bournois, Michel Barabel, Pydici, Contract Management, Lionel Honoré, Institut d'administration des entreprises Amiens


Cet Article wiki "Théorème fondamental de l'ingénierie logicielle" est issu de Wikipedia. La liste de ses auteurs peut être visible dans ses historiques et/ou la page Edithistory:Théorème fondamental de l'ingénierie logicielle.



Compte Twitter EverybodyWiki Follow us on https://twitter.com/EverybodyWiki !