Pregunta

¿Cómo encontrar la complejidad ciclomática de una función con múltiples puntos de salida? La página wiki dice  p-s + 2, donde p es el número de puntos de decisión y s es el número de puntos de salida.

Pero no deberían más puntos de salida aumentará la complejidad ciclomática ya que puede conducir a caminos más independientes?

Saludos,

Aman

¿Fue útil?

Solución

¿Por qué no intentar un ensayo de NDepend ? Se calculará la complejidad ciclomática y muchas otras métricas de código.

Otros consejos

Las medidas CC linealmente caminos independientes. Los puntos de salida no añadir rutas al código, terminan caminos, reduciendo así CC (o por lo menos, desde luego no lo hacen aumentar CC).

Para decirlo de otra manera, la única manera de añadir puntos de salida es a añadir más rutas (condiciones como SI). De lo contrario, el código después de que el punto de salida 'desnudo' es inalcanzable, por lo que es los condicionales que añaden complejidad, no los puntos de salida.

Gracias Michael. Me había dado cuenta de mi error después de que envió la pregunta. Mi error surgió de la observación de que JavaNCSS (que utiliza el archivo de origen) y Xdepend (Que utiliza el archivo jar) tanto parecido a sobreestimar la CC por un pedazo de código que tenía múltiples puntos de salida. He publicado el código aquí . Pero el uso de la fórmula de p-s + 2 la respuesta parece ser 4. ¿Hay alguna explicación simple falto?

@Richard: He tratado Xdepend (La versión no .NET de NDepend). Parece una buena herramienta. Pero cuando se utiliza archivos jar, se sobreestima la CC (que hayan aceptado en su documentación). En esta etapa estoy explorando diferentes herramientas. ¿Sabe usted de cualquier mejor?

Saludos.

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