Compartir a través de


Diagrama de capas: Instrucciones

En Visual Studio Ultimate, los diagramas de capas proporcionan un mecanismo para describir la estructura de una aplicación desde el nivel más alto y comprobar que el código se ajusta a esta estructura. Para asegurarse de que el código mantiene la coherencia con el diseño, puede incluir la validación de capas como parte del proceso de compilación.

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.

Para obtener información sobre los elementos de los diagramas de capas y sus propiedades, vea Diagramas de capas: Referencia.

Diseñar o actualizar la aplicación mediante 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.

Crear un diagrama de capas

Los diagramas de capas deben crearse dentro de un proyecto de modelado. Puede agregar un nuevo diagrama de capas a un proyecto de modelado existente o bien puede crear otro modelado en la solución para el nuevo diagrama de capas.

Para agregar un nuevo diagrama de capas a un proyecto de modelado

  1. En el menú Arquitectura, haga clic en Nuevo diagrama.

  2. En Plantillas, haga clic en Diagrama de capas.

  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

    Haga clic en Crear un nuevo proyecto de modelado para agregar un nuevo proyecto de modelado a la solución.

    Nota

    Los diagramas de capas solo pueden existir dentro de un proyecto de modelado. Sin embargo, pueden vincularse a cualquier artefacto que exista en cualquier parte de la solución.

También puede copiar un diagrama de capas existente dentro del mismo proyecto de modelado.

Nota

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.

Para copiar un diagrama de capas, siga estos pasos:

Para copiar un diagrama de capas existente

  1. Agregue un nuevo diagrama de capas al proyecto de modelado.

  2. Copie los elementos del diagrama de capas de origen en el nuevo diagrama.

Definir capas para representar áreas o componentes funcionales

Las capas representan grupos lógicos de artefactos, como proyectos, archivos de código, espacios de nombres, clases y métodos. Puede crear capas a partir de artefactos en la solución de Visual Studio o adjuntar especificaciones o planes a una capa vinculando documentos, como archivos de Word o presentaciones de 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.

Nota

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. Para obtener más información, vea Administrar vínculos entre capas y artefactos.

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 las capas 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:

Use las tareas siguientes para crear capas:

Para

Siga estos pasos

Crear una capa para un único artefacto

  1. Arrastre el artefacto hasta el diagrama de capas desde cualquiera de los siguientes 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.

Crear una única capa para todos los artefactos seleccionados

Arrastre todos los artefactos seleccionados hasta el diagrama al mismo tiempo.

Aparecerá una capa en el diagrama que estará vinculada a todo el grupo de artefactos.

Crear una capa para cada artefacto seleccionado

Mantenga presionada la tecla MAYÚS mientras arrastra al mismo tiempo todos los artefactos al diagrama de capas.

NotaNota
Si usa la tecla MAYÚS para seleccionar un intervalo de elementos, suelte la tecla después de seleccionar los artefactos.Cuando arrastre los artefactos al diagrama, vuelva a mantener la tecla presionada.

Aparece una capa de cada artefacto en el diagrama que estará vinculada a ese artefacto.

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 capas y, a continuación, arrastre una Capa hasta el diagrama de capas.

Para agregar varias capas, haga doble clic en la herramienta. Cuando finalice, haga clic en la herramienta Puntero o presione la tecla ESC.

– O bien –

Haga clic con el botón secundario en el diagrama de capas, elija Agregar y, a continuación, haga clic en Capa.

Por ejemplo, puede hacerlo para representar un elemento de la aplicación que aún no ha comenzado a desarrollar. Resulta útil si se crea código para marcar la posición de estas capas en una fase inicial.

Crear capas anidadas

Arrastre una capa existente a otro nivel.

– O bien –

Haga clic con el botón secundario en una capa, elija Agregar y, a continuación, haga clic en Capa.

Crear una nueva capa que contenga dos o más capas existentes

Seleccione las capas, haga clic con el botón secundario en una capa seleccionada y, a continuación, haga clic en Agrupar.

Cambiar el color de una capa

Establezca la propiedad Color en el color que desee.

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.

Administrar vínculos entre capas y artefactos

  1. En el diagrama de capas, haga clic con el botón secundario en una capa y, a continuación, haga clic en Ver vínculos.

    En el Explorador de capas se muestran los artefactos vinculados a la capa seleccionada. Para ver todos los artefactos vinculados a las capas en el diagrama, haga clic en el diagrama.

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

    Para

    En el Explorador de capas

    Eliminar el vínculo entre la capa y un artefacto

    Haga clic con el botón secundario en el vínculo del artefacto y, a continuación, haga clic en Eliminar.

    Mover el vínculo de una capa a otra

    Arrastre el vínculo del artefacto a una capa del diagrama.

    – O bien –

    1. Haga clic con el botón secundario en el vínculo del artefacto y, a continuación, haga clic en Cortar.

    2. En el diagrama de capas, haga clic con el botón secundario en la capa y, a continuación, haga clic en Pegar.

    Copiar el vínculo de una capa a otra

    1. Haga clic con el botón secundario en el vínculo del artefacto y, a continuación, haga clic en Copiar.

    2. En el diagrama de capas, haga clic con el botón secundario en la capa y, a continuación, haga clic en 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 el artefacto vinculado admite la validación con el diagrama de capas.

    Observe la columna Admite validación del vínculo del artefacto.

    Entre los artefactos que no admiten la validación con un diagrama de capas se encuentran los proyectos de C++, los sitios web, los documentos de Office y los archivos de texto sin formato. Puede vincular estos artefactos a las capas, pero el proceso de validación los omitirá. Los errores de validación no aparecerán para las referencias a proyectos o ensamblados que están vinculados a capas independientes cuando no aparece ninguna dependencia entre esas capas. Tales referencias no se consideran dependencias a menos que el código utilice esas referencias.

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.

Modificar las capas y dependencias para mostrar el diseño buscado

Para describir los cambios que piensa realizar en el sistema, puede editar el diagrama para que refleje el diseño actualizado. También podría realizar algunos cambios de refactorización para mejorar la estructura del código antes de extenderlo. Para obtener más información, 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.

Mejorar 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.

Diseñar nuevas áreas 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. Para obtener más información, 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:

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

  • Cambiar 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.

Validar el código con el diagrama

Una vez editado el diagrama, puede validarlo con el código manualmente en cualquier momento o automáticamente cada vez que ejecute una compilación local. También puede ejecutar automáticamente la validación cada vez que compila utilizando Team Foundation Server.

Para obtener más información, vea:

Para agregar ensamblados o proyectos manualmente para validación

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto de modelado o en la carpeta Layer References y, a continuación, haga clic en Agregar referencia.

  2. En el cuadro de diálogo Agregar referencia, seleccione los ensamblados o proyectos y, a continuación, haga clic en Aceptar.

Para validar el código manualmente desde un diagrama de capas abierto

  1. Haga clic con el botón secundario en la superficie del diagrama y, a continuación, haga clic en Validar arquitectura.

    Nota

    De forma predeterminada, la propiedad Acción de compilación del archivo de diagrama de capas (.layerdiagram) se establece en Validar para que el diagrama se incluya en el proceso de validación.

    La ventana Lista de errores notifica los errores que se producen. Para obtener más información sobre los errores de validación, vea Entender los errores de validación de capas.

  2. Para ver el origen de cada error, haga doble clic en el error en la ventana Lista de errores.

    Nota

    Visual Studio podría mostrar un gráfico de dependencia en lugar del origen del error. Esto se produce cuando el código tiene una dependencia en un ensamblado que el diagrama de capas no especifica, o al código le falta una dependencia que el diagrama de capas especifica. Revise el gráfico de dependencia o el código para determinar si debe existir la dependencia. Para obtener más información sobre los gráficos de dependencia, vea Cómo: Navegar y examinar los documentos de gráfico.

  3. Para administrar los errores, vea Actualizar el código para que se adapte a la nueva arquitectura.

Para validar el código manualmente desde el símbolo del sistema

  1. Abra el símbolo del sistema de Visual Studio.

    Para abrir el símbolo del sistema, haga clic en Inicio, elija Todos los programas, Microsoft Visual Studio 2010, Visual Studio Tools y, a continuación, haga clic en Símbolo del sistema de Visual Studio 2010.

  2. Elija una de las siguientes opciones:

    • Para validar el código comparándolo con un proyecto de modelado concreto en la solución, ejecute MSBuild con la siguiente propiedad personalizada.

      msbuild <FilePath+ModelProjectFileName>.modelproj
      /p:ValidateArchitecture=true
      

      - O bien -

      Vaya a la carpeta que contiene el archivo de proyecto de modelado (.modelproj) y el diagrama de capas y, a continuación, ejecute MSBuild con la siguiente propiedad personalizada:

      msbuild /p:ValidateArchitecture=true 
      
    • Para validar el código comparándolo con todos los proyectos de modelado de la solución, ejecute MSBuild con la siguiente propiedad personalizada.

      msbuild <FilePath+SolutionName>.sln /p:ValidateArchitecture=true 
      

      - O bien -

      Vaya a la carpeta de soluciones, que debe contener un proyecto de modelado que contiene un diagrama de capas y, a continuación, ejecute MSBuild con la siguiente propiedad personalizada:

      msbuild /p:ValidateArchitecture=true
      

    Se mostrará cualquier error que se produzca. Para obtener más información acerca de MSBuild, vea MSBuild y MSBuild (Tarea).

Para obtener más información sobre cómo entender los errores de validación, vea Entender los errores de validación de capas.

Para validar el código automáticamente desde una compilación local

  • Use un editor de texto para abrir el archivo del proyecto de modelado (.modelproj) y, a continuación, incluya la siguiente propiedad:
<ValidateArchitecture>true</ValidateArchitecture>

-O bien-

  1. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de modelado que contiene el diagrama o diagramas de capas y, a continuación, haga clic en Propiedades.

  2. En la ventana Propiedades, establezca la propiedad Validate Architecture del proyecto de modelado en True.

    Esto incluye el proyecto de modelado en el proceso de validación.

  3. En el Explorador de soluciones, haga clic en el archivo de diagrama de capas (.layerdiagram) que desea utilizar para la validación.

  4. En la ventana Propiedades, asegúrese de que la propiedad Acción de compilación del diagrama está establecida en Validar.

    Esto incluye el diagrama de capas en el proceso de validación.

Para obtener más información sobre cómo entender los errores de validación, vea Entender los errores de validación de capas. Para administrar los errores, vea Actualizar el código para que se adapte a la nueva arquitectura.

Actualizar el código para que se ajuste 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.

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 crear un elemento de trabajo para un error de validación

  • En la ventana Lista de errores, haga clic con el botón secundario en el error, elija Crear elemento de trabajo y haga clic en el tipo de elemento de trabajo que desee crear.

Use estas tareas para administrar los errores de validación de la ventana Lista de errores:

Para

Siga estos pasos

Suprimir los errores seleccionados durante la validación

Haga clic con el botón secundario en uno o varios errores seleccionados, elija Administrar errores de validación y, a continuación, haga clic en Suprimir errores.

Los errores suprimidos aparecen tachados. La próxima vez que ejecute la validación, estos errores no aparecerán.

El seguimiento de los errores suprimidos se lleva a cabo en un archivo .suppressions relacionado con el archivo de diagrama de capas correspondiente.

Detener la supresión de los errores seleccionados

Haga clic con el botón secundario en el error o errores suprimidos seleccionados, elija Administrar errores de validación y, a continuación, haga clic en Detener supresión de errores.

La próxima vez que ejecute la validación, los errores suprimidos aparecerán.

Restaurar todos los errores suprimidos en la ventana Lista de errores

Haga clic con el botón secundario en cualquier parte en la ventana Lista de errores, elija Administrar errores de validación y, a continuación, haga clic en Mostrar errores suprimidos.

Ocultar todos los errores suprimidos en la ventana Lista de errores

Haga clic con el botón secundario en cualquier parte en la ventana Lista de errores, elija Administrar errores de validación y, a continuación, haga clic en Ocultar errores suprimidos.

Incluir 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 validar el código al ejecutar Team Foundation Build

  1. En Team Explorer, haga doble clic en la definición de compilación y, a continuación, haga clic en Proceso.

  2. En Parámetros del proceso de compilación, expanda Compilación y escriba lo siguiente en el parámetro Argumentos de MSBuild:

    /p:ValidateArchitecture=true

Para obtener más información, vea Definir una compilación con la plantilla predeterminada.

Vea también

Tareas

Cómo: Crear diagramas de capas desde artefactos

Cómo: Validar código .NET con diagramas de capas

Conceptos

Diagramas de capas: Referencia