Compartir a través de


Crear diagramas de dependencia a partir del código

Para visualizar la arquitectura lógica de alto nivel del sistema de software, cree un diagrama de dependencias en Visual Studio. Para asegurarse de que el código sigue siendo coherente con este diseño, valide el código con un diagrama de dependencias. Puede crear diagramas de dependencias para proyectos de Visual C# y Visual Basic. Para ver qué ediciones de Visual Studio admiten esta característica, consulte Compatibilidad de ediciones con las herramientas de arquitectura y modelado.

Creación de un diagrama de dependencias

Un diagrama de dependencia le permite organizar los elementos de la solución de Visual Studio en grupos lógicos y abstractos denominados capas. Las capas se pueden usar para describir las tareas principales que realizan estos artefactos o los componentes principales del sistema.

Cada capa puede contener otras capas que describen tareas más detalladas. También se pueden especificar las dependencias planeadas o existentes entre las capas. Estas dependencias, representadas como flechas, muestran las capas que usan o pueden usar la funcionalidad representada por otras capas. Para mantener el control de la arquitectura del código, muestre las dependencias previstas en el diagrama y, a continuación, valide el código con el diagrama.

Vídeo: Validación de las dependencias de la arquitectura en tiempo real

Creación de un diagrama de dependencias

Antes de crear un diagrama de dependencias, asegúrese de que la solución tiene un proyecto de modelado.

Importante

No agregue, arrastre ni copie un diagrama de dependencias existente de un proyecto de modelado a otro proyecto de modelado o a otro lugar de la solución. Esto conserva las referencias del diagrama original, aunque se cambie el diagrama. Esto también impide que la validación de capas se haga correctamente y es posible que cause otros problemas, como la pérdida de elementos u otros errores al intentar abrir el diagrama.

En su lugar, agregue un nuevo diagrama de dependencias al proyecto de modelado. Copie los elementos del diagrama de origen en el nuevo diagrama. Guarde ambos, el proyecto de modelado y el nuevo diagrama de dependencias.

Agregar un nuevo diagrama de dependencias a un proyecto de modelado

Nota

Se admiten diagramas de dependencias para proyectos de .NET Core a partir de la versión 16.2 de Visual Studio 2019.

  1. En el menú Arquitectura, seleccione Nuevo diagrama de dependencia.

  2. En Plantillas, elija diagrama de dependencias.

  3. Especifique un nombre para el diagrama.

  4. En Agregar a proyecto de modelado, busque y seleccione un proyecto de modelado existente en la solución.

    O bien

    Elija Crear un nuevo proyecto de modelado para agregar un nuevo proyecto de modelado a la solución.

    Nota

    El diagrama de dependencias debe existir dentro de un proyecto de modelado. Sin embargo, puede vincularlos a elementos en cualquier parte de la solución.

  5. Asegúrese de guardar ambos, el proyecto de modelado y el diagrama de dependencias.

Arrastrar y colocar, o copiar y pegar, desde un mapa de código

  1. Genere un mapa de código para la solución mediante el menú Arquitectura.

  2. Considere la posibilidad de aplicar un filtro de mapa de código para quitar las carpetas de la solución y "Probar recursos" si solo desea aplicar dependencias en el código de producto.

  3. En el mapa de código generado, quite el nodo "Externo" o expándalo para mostrar ensamblados externos, en función de si desea aplicar dependencias del espacio de nombres. Elimine los ensamblados no necesarios del mapa de código.

  4. Cree un nuevo diagrama de dependencias para la solución mediante el menú Arquitectura.

  5. Seleccione todos los nodos del mapa de código (use Ctrl + A o use la selección de banda elástica presionando la tecla Mayús antes de hacer clic, arrastrar y soltar).

  6. Arrastre y coloque, o copie y pegue, los elementos seleccionados en el nuevo diagrama de validación de dependencias.

  7. Esto muestra la arquitectura de la aplicación actual. Decida cómo quiere que sea la arquitectura y modifique el diagrama de dependencias en consecuencia.

Diagrama de dependencias generado a partir de un mapa de código

Crear capas a partir de artefactos

Puede crear capas a partir de elementos de una solución de Visual Studio, como proyectos, archivos de código, espacios de nombres, clases y métodos. Esto crea automáticamente vínculos entre las capas y los elementos, que se incluyen en el proceso de validación de capas.

Puede vincular capas a elementos que no admiten la validación, como documentos de Word o presentaciones de PowerPoint. Esto le permite asociar una capa con especificaciones o planes. También puede vincular capas a archivos en proyectos que se comparten entre varias aplicaciones, pero el proceso de validación no incluirá esas capas, que aparecen con nombres genéricos como “Layer1" y “Layer2".

Para ver si un elemento vinculado admite la validación, abra el Explorador de capas y examine la propiedad Admite validación del elemento. Vea Administrar vínculos a artefactos.

To Siga estos pasos:
Crear una capa para un único artefacto
  1. Arrastre el elemento al diagrama de dependencias de estos orígenes:
    Aparecerá una capa en el diagrama que estará vinculada al artefacto.
  2. Cambie el nombre de la capa para que refleje las responsabilidades del código asociado u otros artefactos.

Importante: arrastrar archivos binarios al diagrama de dependencias no agrega automáticamente sus referencias al proyecto de modelado. Agregue manualmente los archivos binarios que desea validar en el proyecto de modelado. Para agregar archivos binarios al proyecto de modelado
  1. En el Explorador de soluciones, abra el menú contextual del proyecto de modelado y, a continuación, elija Agregar elemento existente.
  2. En el cuadro de diálogo Agregar elemento existente, busque los archivos binarios, selecciónelos y, a continuación, elija Aceptar. Los archivos binarios aparecen en el proyecto de modelado.
  3. En el Explorador de soluciones, elija un archivo binario agregado y, a continuación, presione F4 para abrir la ventana Propiedades.
  4. En cada archivo binario, establezca la propiedad Acción de compilación en Validar.
Crear una única capa para todos los artefactos seleccionados Arrastre todos los artefactos al diagrama de dependencias al mismo tiempo.

Aparecerá una capa en el diagrama que estará vinculada a todos los artefactos.
Crear una capa para cada artefacto seleccionado Mantenga presionado la tecla MAYÚS mientras arrastra todos los artefactos al diagrama de dependencias al mismo tiempo.
Nota: Si usa la tecla MAYÚS para seleccionar un intervalo de elementos, libere la clave después de seleccionar los artefactos. Cuando arrastre los artefactos al diagrama, vuelva a mantener la tecla presionada.

Aparecerá una capa para cada artefacto y cada capa estará vinculada a cada uno de los artefactos.
Agregar un artefacto a una capa Arrastre el artefacto hasta la capa.
Crear una nueva capa que no tenga vínculos En el Cuadro de herramientas, expanda la sección Diagrama de dependencia y, a continuación, arrastre una Capa al diagrama de dependencia.

Para agregar varias capas, haga doble clic en la herramienta. Cuando haya terminado, elija la herramienta Puntero o pulse la tecla ESC.

O bien

Abra el menú contextual del diagrama de dependencias, elija Agregary, a continuación, elija Capa.
Crear capas anidadas Arrastre una capa existente a otro nivel.

O bien

Abra el menú contextual de una capa, elija Agregar y, a continuación, elija Capa.
Crear una nueva capa que contenga dos o más capas existentes Seleccione las capas, abra el menú contextual para su selección y después elija Agrupar.
Cambiar el color de una capa Establezca la propiedad Color en el color que desee.
Especifique que los artefactos asociados a una capa no deben pertenecer a los espacios de nombres especificados. Escriba los espacios de nombres en la propiedad Forbidden Namespaces de la capa. Use un signo de punto y coma (;) para separar los espacios de nombres.
Especificar qué artefactos asociados a una capa no pueden depender de los espacios de nombres especificados Escriba los espacios de nombres en la propiedad Forbidden Namespace Dependencies de la capa. Use un signo de punto y coma (;) para separar los espacios de nombres.
Especificar qué artefactos asociados a una capa no deben pertenecer a uno de los espacios de nombres especificados Escriba el espacio de nombres en la propiedad Espacios de nombres necesarios de la capa. Use un signo de punto y coma (;) para separar los espacios de nombres.

El número de una capa indica el número de artefactos vinculados a ella. Sin embargo, al leer este número, recuerde:

  • Si una capa se vincula a un artefacto que contiene otros artefactos, pero no se vincula directamente a estos otros artefactos, el número incluye únicamente el artefacto vinculado. Sin embargo, los demás artefactos se incluyen para el análisis durante la validación de capas.

    Por ejemplo, si una capa está vinculada a un solo espacio de nombres, el número de artefactos vinculados es 1, aunque el espacio de nombres contenga clases. Si la capa tiene también vínculos a cada clase del espacio de nombres, el número incluirá las clases vinculadas.

  • Si una capa contiene otras que están vinculadas a artefactos, la capa contenedora también está vinculada a esos artefactos, incluso aunque el número de la capa contenedora no los incluya.

Administrar vínculos entre capas y artefactos

  1. En el diagrama de dependencias, abra el menú contextual de la capa y elija Ver vínculos.

    En el Explorador de capas se muestran los vínculos de artefacto de la capa seleccionada.

  2. Use las tareas siguientes para administrar estos vínculos:

To En el Explorador de capas
Eliminar el vínculo entre la capa y un artefacto Abra el menú contextual del vínculo del artefacto y, a continuación, elija Eliminar.
Mover el vínculo de una capa a otra Arrastre el vínculo del artefacto a una capa del diagrama.

O bien

1. Abra el menú contextual del vínculo del artefacto y, a continuación, elija Cortar.
2. En el diagrama de dependencias, abra el menú contextual de la capa y, a continuación, elija Pegar.
Copiar el vínculo de una capa a otra 1. Abra el menú contextual para el vínculo del artefacto y, a continuación, elija Copiar.
2. En el diagrama de dependencias, abra el menú contextual de la capa y, a continuación, elija Pegar.
Crear una nueva capa a partir del vínculo de un artefacto existente Arrastre el vínculo del artefacto a un espacio en blanco del diagrama.
Compruebe que un artefacto vinculado admite la validación en el diagrama de dependencias. Observe la columna Admite validación del vínculo del artefacto.

Realizar ingeniería inversa de dependencias existentes

Una dependencia existe cuando un artefacto que está asociado a una capa tiene una referencia a un artefacto que está asociado a otra capa. Por ejemplo, una clase de una capa declara una variable que tiene una clase en otra capa. Puede realizar ingeniería inversa de las dependencias existentes en los artefactos vinculados a las capas del diagrama.

Nota

No se puede realizar ingeniería inversa en las dependencias de ciertos tipos de artefactos. Por ejemplo, no se va a realizar ingeniería inversa en ninguna dependencia que tenga como origen o destino una capa vinculada a un archivo de texto. Para ver qué artefactos tienen dependencias sobre las que se puede realizar ingeniería inversa, abra el menú contextual para una o múltiples capas y, a continuación, elija Ver vínculos. En el Explorador de capas, observe la columna Admite validación. Las dependencias no se diseñarán de forma inversa para los artefactos para los que esta columna muestra False.

  • Seleccione una o varias capas, abra el menú contextual para una capa seleccionada y después elija Generar dependencias.

    Si ve algunas dependencias que no deberían existir, puede editar estas dependencias para alinearlas con el diseño previsto.

Editar capas y dependencias para mostrar el diseño previsto

Para describir los cambios que planea realizar en el sistema o en la arquitectura prevista, edite el diagrama de dependencias:

To Siga estos pasos
Cambiar o restringir la dirección de una dependencia Establezca su propiedad Direction.
Crear nuevas dependencias Use las herramientas Dependencia y Dependencia bidireccional.

Para dibujar varias dependencias, haga doble clic en la herramienta. Cuando haya terminado, elija la herramienta Puntero o pulse la tecla ESC.
Especificar qué artefactos asociados a una capa no pueden depender de los espacios de nombres especificados Escriba los espacios de nombres en la propiedad Forbidden Namespace Dependencies de la capa. Use un signo de punto y coma (;) para separar los espacios de nombres.
Especificar qué artefactos asociados a una capa no deben pertenecer a los espacios de nombres especificados Escriba los espacios de nombres en la propiedad Forbidden Namespaces de la capa. Use un signo de punto y coma (;) para separar los espacios de nombres.
Especificar qué artefactos asociados a una capa no deben pertenecer a uno de los espacios de nombres especificados Escriba el espacio de nombres en la propiedad Espacios de nombres necesarios de la capa. Use un signo de punto y coma (;) para separar los espacios de nombres.

Cambiar cómo aparecen los elementos en el diagrama

Puede cambiar el tamaño, la forma, el color y la posición de las capas o el color de las dependencias mediante la edición de sus propiedades.

Detectar patrones y dependencias en un mapa de código

Al crear diagramas de dependencias, también puede crear mapas de código. Estos diagramas pueden ayudarle a detectar patrones y dependencias mientras explora el código. Use el Explorador de soluciones, la Vista de clases o el Examinador de objetos para explorar los ensamblados, los espacios de nombres y las clases, que a menudo corresponden a las capas existentes. Para obtener más información sobre mapas de código, vea: