Más código = más errores

10

De vuelta en la universidad, recuerdo a un profesor que enseñaba a la clase una de las leyes de la informática. Dijo algo así como "Más código equivale a más errores" y le dio un nombre (La Ley de Whatchamacallit) y se lo atribuyó a alguien.

¿Alguien sabe de dónde viene esta "ley", quién la dijo o cuál es su palabrería original?

Jeff
fuente
66
Me recuerda: "Un diseñador sabe que ha logrado la perfección no cuando no queda nada más que agregar, sino cuando no queda nada que quitar". -Antoine de Saint-Exupery
Kirk Woll
44
Me recuerda a 'No hay código más rápido que ningún código' (Taligent Guide to Designing Programs).
Luke Woodward el
1
Bueno, ya que lo mencionaste aquí y nadie sabe cómo se llama, llamémoslo "Ley de Jeff".
FrustratedWithFormsDesigner
@Kirk, una cita similar de Arthur William Radford (de pintura): "La mitad del arte es saber cuándo parar". Muy apropiado en este contexto también.
Berin Loritsch 01 de
Me gusta la "Ley de Jeff". Luego viene el trato del libro. ¿Quién me ayudará a encontrar un editor? :)
Jeff

Respuestas:

7

Además, un número sustancial de los problemas causados ​​por el software con errores, que ocurre porque los proveedores siguen agregando más y más funciones a sus programas, lo que inevitablemente significa más código y, por lo tanto, más errores.

Por Andrew Tannenbaum

Dr. belisario
fuente
2
Los enlaces a las búsquedas de Google no son particularmente útiles. ¿Puede extraer la información relevante y publicarla en su respuesta?
ChrisF
1
@ChrisF es el primer resultado en la búsqueda de libros. Es material con derechos de autor, y prefiero no citar textualmente. Gracias por tu comentario.
Dr. belisario
2
Me imagino que el uso justo cubriría una cita.
Orbling
1
Parece que no estás dispuesto a hacer las ediciones, así que lo hice por ti.
Josh K
Esto suena bien. ¡Gracias! He estado tratando de recordar esto durante años.
Jeff
4

El libro de Boehm, Software Engineering Economics lo tiene como una fórmula básica.

Esfuerzo = k * S ^ a

Donde S es las líneas de código fuente.

Y la función de potencia, a era> = 1.0.

S.Lott
fuente
4

@belisarius: Bien visto con Tannenbaum.

@Jeff: Si Tannenbaum no suena, es posible que tu profesor haya mencionado a Occam y la ley de economía / concisión. (Ver Navaja de Occam .)

@ S.Lott: Dijkstra solía argumentar enérgicamente en contra del uso de líneas de código como medida de trabajo útil. Básicamente dijo que maximiza la variable incorrecta. Por supuesto, Boehm intenta modelar el esfuerzo, y las líneas de código deben incluir líneas de código eliminadas.

Editar:

Pensé agregar que Dijkstra también dijo que "la simplicidad es un requisito previo para la confiabilidad".

Kevin A. Naudé
fuente
77
Use "agregar comentario" debajo de las respuestas para agregar comentarios en lugar de escribirlos en una respuesta.
1
@ Thorbjørn Ravn Andersen: desafortunadamente, como usuario de <50 representantes, no puede agregar comentarios.
ChrisF
1
@ Thorbjørn: Necesitas 50 representantes para poder dejar comentarios. @Kevin: Si vincula sus cuentas SO y Programadores, obtendrá 100 repeticiones, lo que le permitirá dejar comentarios al instante.
Anon
1
@Kevin - Programmers 'no es un foro sino un sitio de preguntas y respuestas. Le invitamos a publicar una respuesta que tenga más información que la proporcionada por las respuestas actuales, pero no debe publicar comentarios como respuestas. Si revisa las preguntas frecuentes , verá que necesita 50 reputación para poder comentar, pero esto es bastante fácil de lograr.
ChrisF
1
@Anon: necesita> 200 repeticiones en al menos un sitio para obtener la bonificación. Desafortunadamente, Kevin solo tiene 160 en SO en este momento. Pero puede volver a asociar sus cuentas en cualquier momento, de modo que cuando logre 200 en un sitio podrá obtener la bonificación en todos.
ChrisF