Como: Explorar el código con gráficos de dependencia

En Visual Studio Ultimate, use los gráficos de dependencias para obtener más información sobre la organización y las relaciones del código existente. Estos gráficos representan las estructuras como nodos y las relaciones como vínculos, que se muestran como flechas entre nodos. Para generar un gráfico, vea Cómo: Generar gráficos de dependencia para código .NET.

En el ejemplo siguiente se muestra cómo las estructuras y las relaciones se representan como nodos y vínculos en el gráfico:

Gráfico de dependencia con nodos y vínculos

Nodos y vínculos de un gráfico

En el ejemplo siguiente se muestra cómo las estructuras y las relaciones de contención se representan como grupos en el gráfico:

Gráfico de dependencia con nodos agrupados

Nodos agrupados en un gráfico

Nota de precauciónPrecaución

En un gráfico se muestran solo las dependencias del código que se compilan correctamente. Los componentes y su contenido no aparecerán si se producen errores de compilación en esos componentes. Por tanto, debe asegurarse de que un componente se compila realmente y de que tiene dependencias antes de tomar decisiones sobre la arquitectura basadas en el gráfico.

En este tema

  • Explorar dependencias en el gráfico

  • Buscar áreas de complejidad

Explorar dependencias en el gráfico

Las dependencias del gráfico se representan mediante los siguientes tipos de vínculos:

  • Un vínculo individual representa una única dependencia entre dos nodos.

  • Un vínculo agregado representa todas las dependencias que transcurren en la misma dirección entre dos grupos.

Un vínculo entre grupos no es más que un vínculo entre dos nodos de diferente grupos.

Nota

De forma predeterminada, en el gráfico solo se muestran los vínculos entre grupos de los nodos que están seleccionados. Para mostrar estos vínculos en todo momento, en la barra de herramientas del gráfico, haga clic en la lista desplegable situada junto al botón Cambiar el modo en que se presentan los vínculos entre grupos en el gráfico y, a continuación, haga clic en Mostrar todos los vínculos entre grupos. Si la barra de herramientas del gráfico no está visible, en el menú Ver, elija Barras de herramientas y, a continuación, haga clic en Gráfico dirigido.

Use las tareas siguientes para explorar las dependencias que le interesen:

Para

Siga estos pasos

Ver una lista de dependencias representadas por un vínculo

  • Mueva el puntero sobre el vínculo para ver una información sobre herramientas en la que se muestren las dependencias.

Buscar un nodo por nombre

Se usa para buscar en varios niveles de nodos agrupados.

  • Presione CTRL+F.

Buscar el origen o destino de un vínculo

Este método se usa para poder ver con facilidad el origen o destino de un vínculo específico cuando hay demasiados vínculos.

  1. En la barra de herramientas del gráfico, cambie el diseño del gráfico al diseño de árbol o al diseño de clústeres rápidos.

    NotaNota
    Si la barra de herramientas del gráfico no está visible, en el menú Ver, elija Barras de herramientas y, a continuación, haga clic en Gráfico dirigido.

    Para obtener más información, vea Cómo: Navegar y examinar los documentos de gráfico.

  2. Mueva el puntero sobre el vínculo.

    En Visual Studio aparecen dos botones de flecha sobre el vínculo. En Visual Studio se muestra también una información sobre herramientas que identifica el origen y el destino del vínculo.

  3. Haga clic en el botón de flecha que apunta en la dirección que desea seguir.

    En función de la dirección seleccionada, se mostrará el origen o destino seleccionado.

Examinar las dependencias entre nodos de grupos diferentes

  1. Expanda los grupos que le interesen para que pueda ver todos sus elementos secundarios.

  2. Seleccione todos los nodos que le interesen, incluidos sus elementos secundarios.

    Para seleccionar todos los nodos de un grupo, mantenga presionado el botón primario del mouse mientras dibuja un rectángulo alrededor de ese grupo. Para seleccionar todos los nodos de un gráfico, presione CTRL+A.

    En el gráfico se muestran los vínculos entre grupos de los nodos seleccionados.

    NotaNota
    Para mostrar los vínculos entre grupos en todo momento, en la barra de herramientas del gráfico, haga clic en la lista desplegable situada junto al botón Cambiar el modo en que se presentan los vínculos entre grupos en el gráfico y, a continuación, haga clic en Mostrar todos los vínculos entre grupos.Si la barra de herramientas del gráfico no está visible, en el menú Ver, elija Barras de herramientas y, a continuación, haga clic en Gráfico dirigido.

Examinar las dependencias subyacentes de un vínculo agregado

NotaNota
Este mecanismo solo funciona cuando cada uno de los extremos del vínculo está conectado a un ensamblado.Si no hay información del ensamblado, no se puede crear el gráfico.
  1. En la barra de herramientas del gráfico, cambie el diseño del gráfico al diseño de árbol o al diseño de clústeres rápidos.

    NotaNota
    Si la barra de herramientas del gráfico no está visible, en el menú Ver, elija Barras de herramientas y, a continuación, haga clic en Gráfico dirigido.Para obtener más información, vea Cómo: Navegar y examinar los documentos de gráfico.
  2. Haga doble clic en el vínculo agregado que le interese.

    – O bien –

    1. Mueva el puntero sobre el vínculo.

      En Visual Studio aparecen dos botones de flecha sobre el vínculo.

    2. Haga clic en el signo más (+) situado entre los dos botones de flecha.

  3. En el cuadro de diálogo Generar gráfico de dependencias, haga clic en los niveles de nodos que desea incluir en el gráfico.

    Por ejemplo, para examinar todas las dependencias desde el nivel del ensamblado hasta el nivel del método, haga clic en Ensamblados, Espacios de nombres, Tipos y Métodos. Si solamente desea ver las dependencias entre los ensamblados y las clases, haga clic exclusivamente en Ensamblados y Clases.

    Para incluir el contenido de un método en el gráfico, use el Explorador de arquitectura para encontrar esos elementos y agregarlos al gráfico. Para obtener más información, vea Cómo: Buscar código mediante el explorador de arquitectura.

  4. Asegúrese de que la opción Omitir contenciones como grupo está seleccionada y, a continuación, haga clic en Aceptar.

    Visual Studio genera y muestra un gráfico con los niveles de nodos seleccionados y sus dependencias.

  5. En el gráfico, seleccione los grupos que le interesan, haga clic con el botón secundario en un grupo seleccionado, elija Grupo y, a continuación, haga clic en Expandir.

    – O bien –

    Haga clic con el botón secundario en el gráfico, elija Grupo y, a continuación, haga clic en Expandir todo.

    En el gráfico, se expanden los grupos para mostrar sus elementos secundarios.

  6. Seleccione todos los nodos que le interesen, incluidos sus elementos secundarios.

    Para seleccionar todos los nodos de un grupo, mantenga presionado el botón primario del mouse mientras dibuja un rectángulo alrededor de ese grupo. Para seleccionar todos los nodos de un gráfico, presione CTRL+A.

    En el gráfico se muestran los vínculos entre grupos de los nodos seleccionados.

Buscar áreas de complejidad

Use un gráfico de dependencias para identificar áreas de código que podrían mejorarse. En un gráfico de dependencias correcto, aparecerá un número mínimo de dependencias. Por ejemplo, puede:

  • Buscar código que contenga bucles o dependencia circulares.

    Examine estas áreas para ver si puede simplificarlas. Piense si estos ciclos se pueden interrumpir.

  • Buscar código que tenga demasiadas dependencias.

    Analice estas áreas para determinar si están realizando demasiadas funciones o para estudiar el impacto que tendría modificarlas. Para crear código que resulte más fácil de mantener, cambie, pruebe y reutilice código, piense si puede refactorizar estas áreas para que puedan definirse de forma más clara o si puede combinar el código que realiza funciones similares.

  • Buscar código que no contenga dependencias.

    Examine estas áreas para ver si son necesarias o si este código debería quitarse.

Puede ejecutar en estos gráficos analizadores específicos que le ayuden a realizar estas tareas. Estos analizadores siguen ejecutándose una vez aplicados. Si cambia el gráfico, los analizadores aplicados volverán a procesar automáticamente el gráfico actualizado. Para dejar de ejecutar un analizador, haga clic con el botón secundario en el analizador del cuadro Leyenda y, a continuación, haga clic en Eliminar.

Nota

Si tiene un gráfico muy grande, ejecutar un analizador podría producir una excepción de memoria insuficiente. Si se produce la excepción, modifique el gráfico para reducir su ámbito o genere uno menor, y después ejecute el analizador.

Para buscar áreas de complejidad en el código

  1. Asegúrese de que el diseño del gráfico está establecido en el diseño de árbol o el diseño de clústeres rápidos.

    Para obtener más información, vea Cómo: Navegar y examinar los documentos de gráfico.

  2. Haga clic con el botón secundario en el gráfico, elija Analizadores y, a continuación, haga clic en una de las opciones siguientes:

    Analyzer

    Para identificar nodos que

    Referencia circular

    Tengan dependencia circulares entre sí

    NotaNota
    Las dependencias circulares dentro del grupo Genéricos no se muestran en el gráfico cuando se expande el grupo.

    Buscar concentradores

    Se encuentran en el 25% por arriba de los nodos con mayor número de conexiones

    Para seleccionar estos nodos en el gráfico y ocultar todos los demás

    1. Haga clic con el botón secundario en el gráfico y, a continuación, haga clic en Mostrar selección avanzada.

    2. En el cuadro Selección, expanda Propiedades y, a continuación, Concentrador.

    3. En Concentrador, haga clic True.

      El 25% por arriba de los nodos con mayor número de conexiones están seleccionados.

    4. Haga clic con el botón secundario en el gráfico, elija Selección y, a continuación, haga clic en Ocultar no seleccionados.

      Se ocultan en el gráfico los nodos no seleccionados y el analizador identifica los nuevos nodos como concentradores.

    También puede identificar áreas densas de dependencias cambiando el diseño del gráfico a la vista de matriz de dependencias. Para obtener más información sobre la vista de matriz de dependencias, vea Cómo: Navegar y examinar los documentos de gráfico.

    Nodos a los que no se hace referencia

    No tienen referencias de otros nodos.

    Nota de precauciónPrecaución
    Compruebe cada uno de estos casos antes de determinar que el código no se usa.Ciertas dependencias, como las dependencias XAML y las dependencias en tiempo de ejecución, no se pueden buscar en el código de forma estática.

Vea también

Conceptos

Cómo: Generar gráficos de dependencia para código .NET

Otros recursos

Cómo: Navegar y examinar los documentos de gráfico

Cómo: Editar y personalizar documentos de gráfico