El teorema fundamental de la ingeniería de software ( FTSE ) es un término creado por Andrew Koenig para describir una observación de Butler Lampson [1] atribuida a David J. Wheeler : [2]
"Podemos resolver cualquier problema introduciendo un nivel adicional de indirección ".
El teorema no describe un teorema real que pueda demostrarse; más bien, es un principio general para gestionar la complejidad a través de la abstracción .
El teorema a menudo se amplía con la cláusula humorística "... excepto por el problema de demasiados niveles de indirección", refiriéndose al hecho de que demasiadas abstracciones pueden crear problemas de complejidad intrínseca por sí mismos. Por ejemplo, el uso de capas de protocolo en redes de computadoras , que hoy es ubicuo, ha sido criticado de formas que son típicas de las desventajas más generales de la abstracción. [3] Aquí, la adición de niveles adicionales de indirección puede hacer que las capas superiores dupliquen la funcionalidad de las capas inferiores , lo que conduce a la ineficiencia, y la funcionalidad en una capa puede necesitar datos presentes solo en otra capa, lo que fundamentalmente viola el objetivo de separación en diferentes capas.
Ver también
Referencias
- ^ Abrahams y Gurtovoy, Metaprogramación de plantillas de C ++, 2005, Addison Wesley, p13.
- ^ http://bwlampson.site/Slides/TuringLecture.htm
- ^ Wakeman, I .; Crowcroft, J .; Wang, Z .; Sirovica, D. (enero de 1992). "¿Las capas son perjudiciales?". Red IEEE : 20–24. doi : 10.1109 / 65.120719 .