Introducción

NDepend es una herramienta de análisis de código que permite a los desarrolladores y equipos de software realizar un análisis exhaustivo y en profundidad de su código, con el objetivo de mejorar la calidad, la eficiencia y la mantenibilidad del software. La función principal de NDepend es ayudar a los desarrolladores a entender la arquitectura del software, identificar problemas de diseño y tomar decisiones informadas sobre cómo mejorar su código. Además, NDepend proporciona una variedad de métricas y análisis detallados para ayudar a los desarrolladores a comprender mejor su código y tomar medidas para mejorarlo

La importancia del uso de herramientas de análisis de código en el desarrollo de software:

El uso de herramientas de análisis de código es fundamental en el desarrollo de software, ya que nos permite a los desarrolladores detectar problemas en el  código de forma temprana y tomar medidas para corregirlos.

Estas herramientas ayudan a analizar el código en profundidad, permitiendo identificar patrones y tendencias que pueden afectar negativamente la calidad o eficiencia del software.

También proporcionan información detallada sobre el rendimiento del software, lo que puede ser útil para mejorar la escalabilidad y la eficiencia de la aplicación.

Ventajas de NDepend

  • Análisis exhaustivo y en profundidad del código.
  • Capacidad de visualizar y entender la arquitectura del software.
  • Permite la identificación de problemas de diseño y su solución.
  • Ahorro de tiempo y esfuerzo en la identificación de errores y problemas en el código.

Cómo utilizar NDepend

  • Descarga NDepend desde su sitio web oficial: https://www.ndepend.com/Download.
  • Una vez descargado, ejecuta el archivo de instalación y sigue las instrucciones en pantalla para instalar el software.
  • Abre Visual Studio y selecciona «Extension».

Ejemplo práctico de uso en un proyecto de software:

Pasos preliminares:

  • Asocia NDepend a tu proyecto y lo subes con Git, de esta forma podrás mantener un histórico. Si no deseas hacer esto, mi recomendación es crearte una rama de NDepenend donde vas mergenado Master/Main cada x tiempo y vas pasando el proceso. Así tienes aislado NDepend de la solución.
  • Una vez asociado os mostrará un informe en HTML y la opción de visualizar el Dashboard (que es el mejor punto de partida).

Tras estos pasos preliminares, llega el momento de explorar las información que nos ofrece NDepened.

Deuda Técnica:

Y exploramos por ejemplo la primera «Debt and Issues per Rule»:

Con esto ya tenemos material para ir explorando y trabajando para reducir esa deuda técnica, como puedes observar en la captura, es sencillo, unas 3 horas de trabajo. Sin embargo en la siguiente captura nos dice que tardamos 26h (es de otro proyecto):

Los valores A hasta E van de verde a rojo, y son ratings que puedes configurar tu.

Quality Gates, Rules & Issues:

Es donde debemos poner el foco, sobre todo por que el colo rojo ya noes está advirtiendo que tenemos cosa y trabajo por hacer.

Las reglas puedes configurarlas y por tanto para lo que uno es un medium para otro equipo no es nada. ¡Cuidado! antes de saltarse la regla has debido configurarlo y has debido consensuarlo con el equipo.

Del Dashboard poco más que destacar a parte de las gráficas que vemos cuando vamos pasando reiteradamente la herramienta:

Vamos a resolver un issue:

Solo nos falta entrar en el codigo arregarlo y pasar de nuevo un estudio del proyecto.

Y ahora vamos a ver una serie de gráficos que nos ayudaran mucho a la hora de entender la arquitectura de la aplicación:

Y ahora vamos a ver una serie de gráficos que nos ayudaran mucho a la hora de entender la arquitectura de la aplicación:

Mi experiencia con NDepend

  • Me ha permitido tener un mayor control sobre la calidad y eficiencia del código, lo que ha tenido un impacto positivo en la satisfacción del cliente.
  • Gracias a la capacidad de visualizar y entender la arquitectura del software que ofrece NDepend es fundamental para que pueda tomar decisiones informadas sobre cómo mejorar el código.
  • Tambien me ha permitido identificar problemas de diseño en nuestro código de forma temprana, nos ahorra tiempo y esfuerzo en el proceso de corrección.
  • La cantidad de métricas y análisis que ofrece NDepend es muy amplia, lo que me a ha ayudado a poder demostrar con datos que alguna pieza del software (humana incluida) no hacía más que enfangar el trabajo.

Estas son una serie de beneficios que me a aportado a la hora de entregar la máxima calidad al cliente… si lo sumas a un SonarQube/SonarCloud/Resharper de damos un punto más de calidad a todo nuestro proceso.

Conclusión

Todo esto no es gratis tienes que pagar una licencia para poder disfrutar de esta herramienta. Pero el coste para mi es completamente despreciable ya que:

  • Ahorras tiempo y en cuatro dias mal contados has amortizado la herramienta.
  • Tiene una curva de aprendizaje la parte de los gráficos mientra que la reparación de Issues y advertencias es inmediato (dispone de una magnifica ayuda).

Si quiere dar calidad debes apoyarte de las mejores herramientas, para mi es un complemento perfecto cuando realizo un estudio de una aplicación legacy junto a CAST Highlight.