stringtranslate.com

ley de linus

En el desarrollo de software , la ley de Linus es la afirmación de que "con suficientes ojos, todos los errores son superficiales". La ley fue formulada por Eric S. Raymond en su ensayo y libro La catedral y el bazar (1999), y recibió su nombre en honor a Linus Torvalds . [1] [2]

Una afirmación más formal es: "Dada una base suficientemente grande de probadores beta y codesarrolladores , casi todos los problemas se caracterizarán rápidamente y la solución será obvia para alguien". Presentar el código a múltiples desarrolladores con el fin de llegar a un consenso sobre su aceptación es una forma sencilla de revisión de software . Los investigadores y profesionales han demostrado repetidamente la eficacia de revisar los procesos para encontrar errores y problemas de seguridad. [3]

Validez

En Hechos y falacias sobre ingeniería de software, Robert Glass se refiere a la ley como un "mantra" del movimiento de código abierto , pero la llama una falacia debido a la falta de evidencia que la respalde y porque las investigaciones han indicado que la velocidad a la que se crean errores adicionales descubierto no escala linealmente con el número de revisores; más bien, hay un pequeño número máximo de revisores útiles, entre dos y cuatro, y los revisores adicionales por encima de este número descubren errores a un ritmo mucho menor. [4] Si bien los profesionales del código cerrado también promueven un análisis de código riguroso e independiente durante el desarrollo de un proyecto de software, se centran en la revisión en profundidad por parte de unos pocos y no principalmente en el número de "ojos". [5]

La persistencia del error de seguridad Heartbleed en una pieza crítica de código durante dos años se ha considerado como una refutación de la afirmación de Raymond. [6] [7] [8] [9] Larry Seltzer sospecha que la disponibilidad del código fuente puede hacer que algunos desarrolladores e investigadores realicen pruebas menos exhaustivas que las que harían con software de código cerrado , lo que facilita que los errores permanezcan. [9] En 2015, el director ejecutivo de la Fundación Linux , Jim Zemlin, argumentó que la complejidad del software moderno ha aumentado a niveles tales que es deseable la asignación de recursos específicos para mejorar su seguridad. Respecto a algunas de las mayores vulnerabilidades globales de software de código abierto de 2014 , dice: "En estos casos, los ojos no estaban realmente mirando". [8] No se han realizado experimentos a gran escala o encuestas revisadas por pares para probar qué tan bien se mantiene el mantra en la práctica. [10]

Se obtuvo apoyo empírico de la validez de la ley de Linus [11] comparando proyectos populares e impopulares de la misma organización. Los proyectos populares son proyectos con el 5% superior de estrellas de GitHub (7481 estrellas o más). La identificación de errores se midió utilizando la probabilidad de confirmación correctiva, la proporción de confirmaciones que se determinó que estaban relacionadas con la corrección de errores. El análisis mostró que los proyectos populares tenían una mayor proporción de correcciones de errores (por ejemplo, los proyectos populares de Google tenían una tasa de corrección de errores un 27% mayor que los proyectos menos populares de Google). Dado que es poco probable que Google haya reducido los estándares de calidad de su código en proyectos más populares, esto es una indicación de una mayor eficiencia en la detección de errores en proyectos populares.

Ver también

Referencias

  1. ^ Raymond, Eric S. "La Catedral y el Bazar". catb.org .
  2. ^ Raymond, Eric S. (1999). La catedral y el bazar. Medios O'Reilly . pag. 30.ISBN 1-56592-724-9.
  3. ^ Pfleeger, Charles P.; Pfleeger, Shari Lawrence (2003). Seguridad en Computación, 4ta Ed. PTR de Prentice Hall . págs. 154-157. ISBN 0-13-239077-9.
  4. ^ Vidrio, Robert L. (2003). Hechos y falacias de la ingeniería de software. Addison-Wesley . pag. 174.ISBN 0-321-11742-5. ISBN  978-0321117427 .
  5. ^ Howard, Michael; LeBlanc, David (2003). Escritura de Código Seguro, 2do. Ed. Prensa de Microsoft . págs. 44–45, 615, 726. ISBN 0-7356-1722-8.
  6. ^ Byfield, Bruce (14 de abril de 2014). "¿Heartbleed refuta que el código abierto es más seguro?". Datamación .
  7. ^ Felten, Edward W.; Kroll, Josué A. (2014). "Se busca ayuda sobre seguridad en Internet". Científico americano . 311 (1): 14. Bibcode : 2014SciAm.311a..14F. doi : 10.1038/scientificamerican0714-14. PMID  24974688.
  8. ^ ab Kerner, Sean Michael (20 de febrero de 2015). "Por qué todos los errores (de seguridad) de Linux no son superficiales". Planeta de seguridad electrónica . Consultado el 21 de febrero de 2015 .
  9. ^ ab Seltzer, Larry (14 de abril de 2014). "¿Importaba el código abierto para Heartbleed?". ZDNet .
  10. ^ Arceneaux, Kevin; Gerber, Alan S.; Verde, Donald P. (enero de 2006). "Comparación de métodos experimentales y de emparejamiento mediante un experimento de movilización de votantes a gran escala". Análisis Político . 14 (1): 37–62. doi :10.1093/pan/mpj001. ISSN  1047-1987.
  11. ^ Amit, Idan; Feitelson, Dror G. (2020). "La métrica de calidad del código de probabilidad de compromiso correctivo". arXiv : 2007.10912 [cs.SE].

Otras lecturas