Share via


Diagrama de capas: Instrucciones

Puede describir la arquitectura de la aplicación en un nivel alto creando diagramas de capas en Visual Studio Ultimate.Para asegurarse de que el código mantiene la coherencia con este diseño, valide el código con un diagrama de capas en Visual Studio Ultimate o Visual Studio Premium.También puede incluir la validación de capas en el proceso de compilación.Vea Vídeo de canal 9: Diseñar y validar la arquitectura con diagramas de capas.

¿Qué es un diagrama de capas?

Al igual que en un diagrama de arquitectura tradicional, en un diagrama de capas se identifican los componentes primarios o las unidades funcionales del diseño y sus interdependencias.Cada nodo del diagrama, que se denomina capa, representa un grupo lógico de espacios de nombres, proyectos u otros artefactos.Puede dibujar las dependencias que debería haber en el diseño.A diferencia de un diagrama de arquitectura tradicional, puede comprobar que las dependencias reales del código fuente se ajustan a las dependencias especificadas que se pretenden.Al incluir la validación en el proceso de compilación normal de Team Foundation Server, tiene la garantía de que el código de programa seguirá ajustándose a la arquitectura del sistema cuando se realicen cambios.Vea Diagramas de capas: Referencia.

Diseñar o actualizar la aplicación con los diagramas de capas

Los siguientes pasos proporcionan información general sobre cómo utilizar los diagramas de capas dentro del proceso de desarrollo.Las secciones posteriores de este tema describen cada paso con más detalle.Si está desarrollando un nuevo diseño, omita los pasos en los que se hace referencia al código existente.

[!NOTA]

Estos pasos aparecen en un orden aproximado.Es probable que desee superponer las tareas, reorganizarlas para que se adapten a su situación particular y revisarlas al inicio de cada iteración del proyecto.

  1. Cree un diagrama de capas para toda la aplicación o para una de sus capas.

  2. Defina las capas que para que representen las principales áreas o componentes funcionales de la aplicación.Denomine estos niveles según su función, por ejemplo, "Presentación" o "Servicios".Si tiene una solución de Visual Studio, puede asociar cada capa a una colección de artefactos, como proyectos, espacios de nombres, archivos, etc.

  3. Detecte las dependencias existentes entre las capas.

  4. Modifique las capas y las dependencias para mostrar el diseño actualizado que desea que el código refleje.

  5. Diseñe nuevas áreas de la aplicación; para ello, cree capas que representen los principales bloques arquitectónicos o componentes y defina las dependencias que van a representar el modo en que cada capa emplea las otras.

  6. Modifique el diseño y el aspecto del diagrama para que le resulte más fácil explicárselo a sus colegas.

  7. Valide el código con el diagrama de capas para poner de manifiesto los conflictos entre el código y la arquitectura necesaria.

  8. Actualice el código para que se adapte a la nueva arquitectura.Desarrolle y refactorice el código en iteraciones hasta que la validación no muestre ningún conflicto.

  9. Incluya la validación de capas en el proceso de compilación para asegurarse de que el código no se desvía del diseño.

Cree un diagrama de capas

Los diagramas de capas deben crearse dentro de un proyecto de modelado.Se puede agregar un nuevo diagrama de capas a un proyecto de modelado ya existente, crear un nuevo proyecto de modelado para el diagrama de capas o bien copiar un diagrama de capas que ya existe en el mismo proyecto de modelado.

Nota importanteImportante

No agregue, arrastre ni copie un diagrama de capas de un proyecto de modelado a otro, ni a otra ubicación de la solución.Un diagrama de capas que se copia de esta manera tendrá las mismas referencias que el diagrama original, incluso si se modifica.Esto 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.

Vea Crear diagramas de capas a partir del código.

Definir capas para representar áreas funcionales o componentes

Las capas representan grupos lógicos de artefactos, como proyectos, archivos de código, espacios de nombres, clases y métodos.Se pueden crear capas a partir de artefactos de Visual C# .NET y Visual Basic .NET projects, o se pueden adjuntar especificaciones o planes a una capa vinculando documentos, como archivos de Word o presentaciones en PowerPoint.Cada capa aparece como un rectángulo en el diagrama y muestra el número de artefactos vinculados a ella.Una capa puede contener capas anidadas que describan tareas más granulares.

Como regla general, denomine las capas según su función, por ejemplo, "Presentación" o "Servicios."Si los artefactos tienen una estrecha interdependencia, colóquelos en la misma capa.Si los artefactos se pueden actualizar de forma independiente o usar en aplicaciones diferentes, sitúelos en capas distintas.Para obtener más información sobre los modelos de capas, visite el sitio Patterns & Practices en https://go.microsoft.com/fwlink/?LinkId=145794.

SugerenciaSugerencia

Existen ciertos tipos de artefactos que se pueden vincular a capas, pero que no admiten la validación con el diagrama de capas.Para ver si el artefacto admite la validación, abra el Explorador de capas y examine la propiedad Supports Validation del vínculo de artefacto.Vea Administrar las capas y artefactos de entre los vínculos.

Si actualiza una aplicación que le resulta poco familiar, puede usar gráficos de dependencias que le ayuden a examinar y comprender el código.Estos gráficos de dependencias pueden ayudarle a detectar los clústeres y dependencias del código.También puede usar el Explorador de arquitectura para examinar los espacios de nombres y las clases, que suelen corresponderse con los niveles existentes.De este modo, le resultará más fácil asignar artefactos a las capas.Posteriormente, podrá usar diagramas de capas que le ayuden a actualizar el código.

Para obtener más información, vea los temas siguientes:

Detectar las dependencias existentes entre capas

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 detectar las dependencias existentes aplicándoles técnicas de ingeniería inversa.

[!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 en las que se puede realizar ingeniería inversa, haga clic con el botón secundario en una o varias capas y, a continuación, haga clic en Ver vínculos.En el Explorador de capas, observe la columna Admite validación.No se realizará ingeniería inversa en las dependencias de artefactos en los que esta columna muestra False.

Para realizar ingeniería inversa de las dependencias existentes entre capas

  • Seleccione una o varias capas, haga clic con el botón secundario en una capa seleccionada y, a continuación, haga clic en Generar dependencias.

Normalmente, verá algunas dependencias que no deberían existir.Puede editar estas dependencias para alinearlas con el diseño buscado.

Modifique las capas y las dependencias para mostrar el diseño previsto

Para describir los cambios que piensa realizar en el sistema o en la arquitectura planeada, realice los pasos siguientes para modificar el diagrama de capas.También podría realizar algunos cambios de refactorización para mejorar la estructura del código antes de extenderlo.Vea Mejorar la estructura del código.

Para

Siga estos pasos

Eliminar una dependencia que no debería existir

Haga clic en la dependencia y, a continuación, presione ELIMINAR.

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 finalice, haga clic en la herramienta Puntero o presione 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 Required Namespaces de la capa.Use un signo de punto y coma (;) para separar los espacios de nombres.

Dd418995.collapse_all(es-es,VS.110).gifMejorar la estructura del código

Los cambios de refactorización son mejoras que no afectan al comportamiento de la aplicación, pero que facilitan los cambios y las ampliaciones del código en el futuro.Un código bien estructurado tiene un diseño que resulta fácil abstraer en un diagrama de capas.

Por ejemplo, si crea una capa para cada espacio de nombres del código y, a continuación, aplica técnicas de ingeniería inversa a las dependencias, debe haber un conjunto mínimo de dependencias unidireccionales entre las capas.Si crea un diagrama más detallado usando clases o métodos como capas, el resultado debería tener también las mismas características.

De lo contrario, el código resultará más difícil de modificar a lo largo de su vida útil y será menos apropiado para llevar a cabo la validación con diagramas de capas.

Nuevas áreas del diseño de la aplicación

Cuando comience el desarrollo de un nuevo proyecto, o una nueva área de un nuevo proyecto, puede dibujar capas y dependencias que le ayuden a identificar los componentes primarios antes de empezar a desarrollar el código.

  • Muestre modelos arquitectónicos identificables en los diagramas de capas, si es posible.Por ejemplo, un diagrama de capas en el que se describa una aplicación de escritorio puede incluir capas como Presentación, Lógica del dominio y Almacén de datos.Un diagrama de capas que abarque una única característica de una aplicación puede tener las capas Modelo, Ver y Controlador.Para obtener más información sobre este tipo de modelos, vea Patterns & Practices: Application Architecture.

    Si genera a menudo modelos similares, cree una herramienta personalizada.Vea Cómo: Definir un elemento personalizado en un cuadro de herramientas de modelado.

  • Cree un artefacto de código para cada capa, como un espacio de nombres, una clase o un componente.De este modo, le resultará más fácil hacer un seguimiento del código y vincular los artefactos de código a las capas.Tan pronto como cree cada uno de los artefactos, vincúlelo a la capa apropiada.

  • No es necesario vincular la mayor parte de las clases y otros artefactos a las capas, pues pertenecen a artefactos mayores, como espacios de nombres, que ya han vinculado a las capas.

  • Cree un nuevo diagrama para una característica nueva.Normalmente, habrá uno o varios diagramas de capas en los que se describa toda la aplicación.Si está diseñando una nueva característica de la aplicación, no agregue ni cambie los diagramas existentes.En su lugar, cree un diagrama propio en el que refleje los nuevos elementos del código.Las capas del nuevo diagrama pueden incluir las capas de la presentación, la lógica del dominio y la base de datos de la nueva característica.

    Cuando compile la aplicación, el código se validará con el diagrama general y con el diagrama más detallado de la característica.

Modificar el diseño para su presentación y explicación

Para que le resulte más fácil identificar las capas y dependencias o para analizarlas con los miembros del equipo, edite el aspecto y el diseño del diagrama de los siguientes modos:

  • Cambie el tamaño, la forma y la posición de las capas.

  • Cambie el color de las capas y las dependencias.

    • Seleccione una o varias capas o dependencias, haga clic con el botón secundario y, a continuación, haga clic en Propiedades.En la ventana Propiedades, edite la propiedad Color.

Valide el código con el diagrama

Una vez modificado el diagrama, puede cotejarlo manualmente con el código en cualquier momento o automáticamente cada vez que ejecute una compilación local o Team Foundation Build. 

Vea:

Actualice el código para ajustarse a la nueva arquitectura

Normalmente, los errores aparecerán la primera vez que valide el código contra un diagrama de capas actualizado.Estos errores pueden tener varias causas:

  • Un artefacto se ha asignado a la capa equivocada.En este caso, mueva el artefacto.

  • Un artefacto, como por ejemplo una clase, usa otra clase de forma que hay conflictos con su arquitectura.En este caso, tiene que refactorizar el código para quitar la dependencia.

Para resolver estos errores, actualice el código hasta no aparezcan más errores durante la validación.Normalmente, este es un proceso iterativo.Para obtener más información sobre estos errores, vea Validar código con diagramas de capas.

[!NOTA]

A medida que desarrolla o refactoriza el código, es posible que tenga nuevos artefactos que deba vincular al diagrama de capas.Sin embargo, esto podría no ser necesario, por ejemplo, si tiene capas que representan espacios de nombres existentes, y el nuevo código solo agrega más material a estos espacios de nombres.

Durante el proceso de desarrollo, puede que desee suprimir algunos de los conflictos notificados durante la validación.Por ejemplo, es posible que desee suprimir errores de los que ya se ha ocupado o que no son pertinentes para su escenario concreto.Cuando se suprime un error, conviene registrar un elemento de trabajo en Team Foundation.Para realizar esta tarea, consulte Validar código con diagramas de capas

Incluya la validación de capas en el proceso de compilación

Para asegurarse de que los futuros cambios que se hagan en el código cumplen los requisitos de los diagramas de capas, incluya la validación de capas en el proceso de compilación estándar de la solución.Cuando otros miembros del equipo compilen la solución, cualquier diferencia entre las dependencias del código y el diagrama de capas se notificará como un error de compilación.Para obtener más información sobre cómo incluir la validación de capas en el proceso de compilación, consulte Validar código con diagramas de capas.

Vea también

Conceptos

Diagramas de capas: Referencia

Crear diagramas de capas a partir del código