2008-11-18 12 views
5

Desde ayer, estoy analizando uno de nuestros proyectos con Ndepend (gratuito para la mayoría de sus funciones) y más lo estoy usando, y más tengo dudas sobre el valor real de este tipo de software (software de análisis de código).Ndepend y otra revelación automática de analizador de código?

Permítanme explicarles, el sistema crea un informe sobre el estado del sistema y la clase por Rango de cada métrica. Pensé que sería un buen punto de partida para hacer modificaciones, pero la mayoría del resultado final está aquí porque tienen más de 100 líneas dentro de la clase (tenemos grandes encabezados y usamos estilos de comentarios VS) así que no es gran cosa ... .de que el número de nivel de acoplamiento aferente (CA) siempre es demasiado alto y esto es casi muy cierto para Interface que utilizamos mucho ... por lo que en este momento no veo algo mal, pero a NDepend parece no gustarle (si tienes una sugerencia para mejorar, dime porque no veo la necesidad de hacerlo). Es la samething para la métrica llamada "NOC" para el número de hijos que la mayor parte de mi Interface son demasiado altos ...

Por el momento, la única métrica muy útil es la complejidad ciclomática ...

Mi pregunta es: ¿Encuentras que vale la pena analizar el código con Automatic Code Analyzer como NDepend? En caso afirmativo, ¿cómo se filtra toda la información que he mencionado que realmente no muestra la salud real del sistema?

+0

obviamente un poco viejo ahora, pero creo que tienes que mirar esas interfaces. Es muy probable que un gran número de niños destaque una ruptura del Principio de Responsabilidad Individual. Eso, a su vez, podría tener un efecto en su Acoplamiento Afferent. Esto, a su vez, tiene un efecto sobre la mantenibilidad de su código (un acoplamiento aferente más elevado produce más dolor al realizar cambios). Entonces es útil. En mi humilde opinión, sí. Solo requiere ver su código y ver qué puede hacer con él para mejorarlo y comprender qué es lo que las métricas intentan decirle. – pms1969

Respuesta

2

En realidad, las métricas son solo una característica de NDepend. ¿Intentó utilizar VisualNDepend que le permite analizar su proyecto mucho más en profundidad que el informe? Al leer su comentario, estoy casi seguro de que no jugó con la interfaz de usuario NDepend (independiente o integrada en Visual Studio), que es la mejor manera de filtrar datos sobre su base de códigos.

Soy uno de los desarrolladores de NDepend y lo utilizamos mucho para analizar nuestro propio código. Básicamente, escribimos nuestras propias reglas de calidad con Code Rules over LINQ Queries (CQLinq). Estas reglas se aseguran automáticamente de que no tengamos regresión en nuestro diseño. Aquí encontrarás la lista de alrededor de 200 default code rules.

Estas son algunas de las características únicas de NDepend y no relacionados con métricas de código:

Para obtener una lista completa de las funciones si NDepende, consulte here.

+0

He jugado un litte (2 horas) con VisualNDepend. No estoy diciendo que el producto no está bien hecho, pero digamos Matrix ... bien, tengo mi módulo LOG con un acoplamiento alto ... es normal ... que veo un acoplamiento fuerte entre Persistance Facade y BusinessObject ... es normal ... –

+0

Todas esas situaciones "normales" tienen una gran importancia en NDepend (y otro software con métrica), ¿son realmente reverentes? Esta es mi pregunta. +1 Por su respuesta, me gusta conocer la opinión y la experiencia personal, pero aún no me ha condenado por el uso de esta herramienta;) –

2

No necesariamente veo los resultados de NDepen como "buenos" o "malos" en la ingeniería de software, siempre hay una buena razón por la cual una aplicación está diseñada tal como es. Lo veo como un informe que probablemente me puede ayudar a señalar problemas con mi diseño, pero tengo la última palabra cuando se trata de decidir si un método necesita ser refactorizado o si es bueno como lo diseñé. En general, no se deje engañar tratando de responder si vale la pena o no. Definitivamente es, en su lugar, le sugiero que revise cuidadosamente los resultados. Esto le ayudará a ver su diseño desde otra perspectiva y puede haber ocasiones en las que decida de la manera en que lo diseñó que es lo mejor para lograr los objetivos de su aplicación.

Cuestiones relacionadas