Función punto a relación kloc como métrica de software & # 8230; el & # 8220; nombre esa melodía & # 8221; ¿métrico?

StackOverflow https://stackoverflow.com/questions/243971

  •  04-07-2019
  •  | 
  •  

Pregunta

¿Qué piensa de usar una métrica de punto de función a líneas de código como una métrica?

Me hace pensar en el viejo programa de juegos " Name That Tune " ;. " ¡Puedo nombrar esa melodía en tres notas! " ¡Puedo escribir esa funcionalidad en 0.1 klocs! ¿Esto es útil?

Ciertamente parece promover el uso de la biblioteca, pero ¿es eso lo que quieres?

¿Fue útil?

Solución

Creo que es una idea terrible. Tan malo como pagar a los programadores por las líneas de código que escriben.

En general, prefiero el código conciso sobre el código detallado, pero solo en la medida en que aún exprese claramente la intención de los programadores. Maximizar los puntos de función por kloc animará a todos a escribir su código tan brevemente como sea posible, lo que va más allá de lo conciso y lo convierte en críptico. También alentará a las personas a unir las líneas de código adyacentes en una sola línea, incluso si dicha unión no sería deseable, solo para reducir el número de líneas de código. La longitud de línea máxima permitida también se convertiría en un problema.

Otros consejos

KLOC es tolerable si hace cumplir estrictamente los estándares de código, como usar los requisitos de la página para un informe: no coloque cinco declaraciones en una sola línea ni elimine la mayor parte del espacio en blanco de su código.

Supongo que una forma en la que podría decidir qué tan efectivo es para su entorno es mirar varias aplicaciones y módulos diferentes, obtener una estimación aproximada de la calidad del código y compararla con el tamaño del código. Si puede demostrar que la calidad del código es consistente dentro de su organización, KLOC no es una métrica incorrecta.

De alguna manera, enfrentarás la misma batalla con cualquier métrica similar. Si cuenta características o puntos de función, o simplemente funciones o módulos, todavía querrá ponderarlos de alguna manera. En última instancia, necesitará algún tipo de suplemento subjetivo de los datos objetivos que recopilará.

" ¿Qué piensa de usar una métrica de punto de función a las líneas de código como una métrica? "

No entiendo la pregunta. La relación anterior es, para un idioma y equipo determinado, un hecho estadístico simple. Y tiende hacia un valor medio con una pequeña desviación estándar.

Hay muchos grados de libertad: cómo contabilizas los puntos de función, qué idioma utilizas, qué tan inteligente (colectivamente) es el equipo. Si no cambia esas cosas, el valor se mantiene estable.

Después de algunos proyectos juntos, tiene la sólida expectativa de que 1200 puntos de función serán 12,000 líneas de código en su idioma preferido / marco / organización de equipo.

KSloc / FP es una simple observación estadística. Claramente, hay algo más sobre esto que te está molestando. ¿Podría ser más específico en su pregunta?

La métrica de Puntos de función a líneas de código se usa realmente para generar los gráficos de nivel de idioma (en realidad, es Puntos de función a declaraciones) para dar una idea aproximada de lo poderoso que es un lenguaje de programación. Aquí hay un ejemplo: http://web.cecs.pdx.edu/ ~ timm / dm / functionpoints.html

No recomendaría usar esa proporción para cualquier otra cosa, excepto las aproximaciones de alto nivel como la tabla de nivel de idioma.

Promover el uso de la biblioteca es una buena cosa, pero la otra cosa a tener en cuenta es que perderá la proporción cuando construya las bibliotecas y solo pagará con dividendos de ahorros a lo largo del tiempo. Los contadores de frijoles no lo entenderán.

Personalmente, me gustaría ver una relación de punto de función a métrica ABC, ya que tengo curiosidad acerca de cómo se relacionaría la métrica ABC (que indica el tamaño e incluye la complejidad como parte de la información), tal vez lineal, quizás exponencial, etc. ... www.softwarerenovation.com/ABCMetric.pdf

Todas las métricas apestan. Mi teoría siempre ha sido que si tienes para tenerlos, usa la forma más fácil que puedas para juntarlos y hazlo con cosas importantes.

Eso generalmente significa algo en la línea de

grep -c ";" *.h *.cpp | awk -F: '/:/ {x += $2} END {print x}'

Si está buscando una " métrica " para rastrear la eficiencia del código, no. Si insiste, intente de nuevo algo estúpido pero fácil, como el tamaño del archivo fuente (vea el comando grep arriba, sin la tubería awk) o McCabe (con un programa de contador).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top