NDepend


NDepend es una herramienta que simplifica la gestión de código complejo bajo .NET. Con dicha herramienta podemos realizar el análisis a partir de los ensamblados de un proyecto, obteniendo de una forma visual las métricas y las dependencias de su código, así como realizar consultas sobre el mismo. También podremos generar un completo reporte con los datos resultantes.

Métricas

Una vez realizado el análisis a partir de un ensamblado, la sección “Metrics” nos brinda una representación visual de las componentes de la aplicación, las áreas representan diferentes niveles: espacios de nombres, ensamblados, tipos, métodos y campos. Estas áreas tienen diferentes métricas, por ejemplo el número de instrucciones IL, la complejidad ciclomática, el número de líneas de código y la profundidad de anidamiento. Las métricas nos permiten detectar problemas en el diseño y es un excelente ayuda en la reestructuración el código (refactoring). Puede consultar el listado completo de métricas en el sitio de NDepend.

Dependencias

La sección “Dependencies” nos muestra la matriz de dependencias entre los los ensamblados y tipos del proyecto. Se puede profundizar jerárquicamente desde el nivel de los ensamblados hasta los métodos de una clase específica. En cada nivel se puede seleccionar entre cuatro opciones diferentes para navegar en la dependencia y relación entre los distintos tipos y métodos. También hay opciones para mostrar la herencia.

De esta manera podemos observar de forma gráfica las dependencias entre los componentes del proyecto, lo cual nos facilita mantener dichas dependencias dentro de un nivel razonable, toda vez que un alto nivel de dependencias generalmente significará mayores problemas durante la ampliación o modificación de la aplicación. Resulta también útil cuando se quiere eliminar las dependencias a componentes de terceros o para la sustitución de unos componentes por otros.


Gráfico de dependencias entre algunas clases de System.Collections.Generic.

Consultas CQL

Otro aspecto muy interesante de NDepend es el soporte al lenguaje de consulta de código o CQL (Code Query Language). Las consultas CQL nos proporcionan una evaluación en segundos de nuestro código, en base a diferentes parámetros de calidad que son totalmente personalizables, de tal forma que podremos responder a interrogantes tales como:

– ¿Qué métodos públicos tienen más de 30 líneas de código?

SELECT METHODS WHERE NbLinesOfCode > 30 AND IsPublic

– ¿Qué clases implementan System.IDisposable?

SELECT TYPES WHERE IsClass AND Implements "System.IDisposable"

– ¿Qué métodos han sido modificados recientemente y no están completamente cubiertos por pruebas unitarias?

SELECT METHODS WHERE CodeWasChanged AND PercentageCoverage < 100

El resultado de las consultas se puede obtener de forma textual en la ventana "CQL Query Result" así como de forma gráfica en la ventana “Metrics”.

Integración

Además de ejecutarse como una aplicación independiente, NDepend puede configurarse para que se integre con Visual Studio 2005 y VS 2008 mediante un Add-In.

Así mismo se puede incorporar en tareas de construcción mediante scripts para MSBuild, NAnt y CruiseControl.NET, de manera que puede automatizar el análisis durante dichas tareas.

Conclusión

Con NDepend los arquitectos y desarrolladores pueden analizar la estructura de código, especificar las normas de diseño, el plan de refactorización masiva, hacer revisiones de código eficaz y dirigir la evolución mediante la comparación de diferentes versiones del código.

El resultado será una mejor comunicación, mejor calidad, un mantenimiento más fácil y un desarrollo más rápido.

Descarga NDepend ahora y comienza a utilizarlo.

Acerca de Willy Mejia

Developer, Techie, Human... http://about.me/willyxoft
Esta entrada fue publicada en .NET y etiquetada . Guarda el enlace permanente.

6 respuestas a NDepend

  1. Hola Willy
    Estoy buscando dos herramientas para Visual Studio, una que nos ayude a crear esqletos de artefactos software siguiendo un patron predefinido por nosotros.
    Otra que nos ayude a auditar el código para ver si los artefactos de nuestro código cumplen con las reglas de composición del parrafo anterior.
    ¿Sabrías orientarnos o dirigirnos a algún fabricante que tenga algo por el estilo a lo que estamos buscando?

    Gracias

  2. ae dijo:

    Hi all misters

    any knows any good tool for analyze sql files (Oracle, SQL Server…) ??

    I have several SQL files in my csproj (in a solution) VS 2008, and I would like analyze SQL code.

    Can I extends NDepend tool for it ?? Any Addin for VS 2008 ??

    thanks in advanced

    PD: Cómo ha creado el muñequito de su perfil, alguna herramienta para ello ? Gracias.

  3. Ricardo dijo:

    Hola que tal
    estoy usando el NDepend para el analisis una solución en .Net 2005 y quiero sabes si todos los metodos que entan implementados en mi solución estan siendo utlizados de lo contrario pues borrarlos.

    Es Posible sabes con esta herramienta conocer esto estos datos

    Gracias

    Saludos

    • Willy Mejía dijo:

      Si por USO te refieres a referencia o invocación/llamada estática (vía código vaya), pero por supuesto que sí, para cosas como esas fue hecho.

      Pero que si se invocan dinámicamente (en tiempo de ejecución), pues no…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s