Compartir a través de


Estabilizar la estructura de la aplicación mediante diagramas de capas

Cuando un equipo desarrolla el código en pequeños incrementos, cambia y extiende el código con frecuencia. Estos cambios llevan a que las dependencias sean cada vez más complejas, lo que hace que el código sea más difícil de cambiar con el tiempo. El equipo puede usar los diagramas de capas para diseñar y validar las dependencias entre los componentes de la aplicación para ayudar a evitar este problema.

Mediante un diagrama de capas, el equipo puede ver los elementos principales de la aplicación y las dependencias entre ellos, sin los detalles de cómo funcionan y cómo interactúan los elementos.

El equipo puede usar también los diagramas de capas para asegurarse de que el código se ajusta a la arquitectura. Cuando se dibuja un diagrama de capas en Visual Studio, puede asignar grupos de clases desde el código a cada nivel y especificar las dependencias mediante flechas. A continuación, puede usar Visual Studio para validar que las dependencias del código siguen realmente flechas que ha dibujado en el diagrama de capas.

El equipo puede asegurarse de que los cambios que se realicen posteriormente cumplen siempre con la arquitectura si se define una directiva de protección para validar el diagrama de capas y se usa en las compilaciones continuas del equipo.

Introducción a la validación de capas

Para empezar a usar la validación de capas el equipo puede seguir los procedimientos descritos en esta sección.

Para usar la validación de capas cuando se escribe nuevo código

  1. Poco antes de escribir el primer código de la aplicación, dibuje un diagrama de capas para representar los componentes principales y sus dependencias. Probablemente cambiará el diagrama durante el proyecto a medida que se desarrolle la aplicación.

    Para obtener más información, vea Diagramas de capas: Referencia.

  2. A medida que crea los espacios de nombres o las clases, asígnelos a las capas.

  3. Antes de escribir el código, haga clic con el botón secundario en el diagrama de capas y, a continuación, haga clic en Validar arquitectura.

  4. Agregue la validación de capas a la protección y a los procedimientos normales de compilación.

    Para obtener más información, vea Cómo: Validar código .NET con diagramas de capas.

Para incluir la validación de capas al actualizar una aplicación existente

  1. Use el Explorador de arquitectura y gráficos dirigidos para explorar la aplicación con el fin de obtener una descripción de su estructura. Los pasos siguientes le ayudarán a mejorar su comprensión.

  2. Describa los componentes principales y cuáles deben ser las dependencias. Para obtener más información, vea Cómo: Crear diagramas de capas desde artefactos.

  3. Asigne los elementos a las capas; para ello arrástrelos desde el Explorador de arquitectura o el Explorador de soluciones.

  4. Haga clic con el botón secundario en el diagrama de capas y, a continuación, haga clic en Validar arquitectura.

  5. Inspeccione los informes de errores y corrija los errores mediante los métodos siguientes:

    • Corrija el diagrama de capas. Mejore el diagrama de capas para representar el código existente con más precisión o reasignar los elementos de código en distintos niveles.

    • Corrija el código. Si le parece que el diagrama de capas representa un diseño mejor que el código existente, es posible que desee actualizar el código para que coincida con el diagrama de capas.

      Para obtener más información, vea Refactorizar el código existente para ajustarlo al diagrama de capas más adelante en este tema.

  6. Repita los pasos anteriores hasta que no se informe de ningún error.

  7. Agregue la validación de capas a la protección y a los procedimientos normales de compilación.

    Para obtener más información, vea Cómo: Validar código .NET con diagramas de capas.

Refactorizar el código existente para ajustarlo al diagrama de capas

Cuando el equipo empieza a trabajar en una aplicación existente, puede encontrar que la estructura de la aplicación es más compleja de lo que debería. Observará esta situación cuando intente dibujar un diagrama de capas y asignar elementos a las capas. Es posible que el equipo no pueda asignar los elementos a las capas de forma que se puedan validar sin la introducción de las capas y las dependencias que son lógicamente innecesarias o de las dependencias que omiten capas o forman bucles. Defectos como estos hacen que el código sea difícil entender y cambiar, y pueden hacer que su comportamiento parezca incoherente a los usuarios.

El equipo puede hacer que sea más fácil trabajar en el código si lo refactoriza para mejorar su diseño. Cuando el equipo decide refactorizar el código para mejorar el diseño, tenga en cuenta los siguientes puntos:

  • Mantenga los cambios de refactorización independientes de otros cambios. Un cambio de refactorización no debe implicar ningún cambio importante en los casos de usuario.

  • Agregue cada cambio propuesto al trabajo pendiente del producto e incluya una descripción del cambio y el beneficio esperado.

    Nota

    Los cambios de refactorización que solo necesitan unas horas de implementación y prueba se pueden tratar como errores. Los cambios de refactorización mayores deben agregarse al trabajo pendiente del producto y calcularse, y se deben establecer prioridades junto con otros elementos en el trabajo pendiente.

  • Antes de refactorizar, escriba pruebas que garanticen que la funcionalidad del área en la que se está trabajando no ha cambiado.

Actualizar el modelo de capas

Después del primer o segundo sprint, los diagramas de capas deben permanecer estables. Normalmente, un error de validación de capas se debe considerar un error en el código en lugar de un error en el modelo de capas.

Cuando es necesario actualizar el modelo de capas, revise el cambio propuesto con el equipo.

La mayoría de los cambios en el modelo de capas se incluyen en las siguientes categorías:

  • Extensión. Va a agregar más varios componentes al código y desea agregar capas para cumplir con ellos.

  • Refinamiento. Muchos elementos del código están asignados actualmente a una única capa. Desea mejorar la eficacia de la validación de capas dividiendo la única capa en otras más pequeñas.

  • Refactorización. Desea mejorar las estructuras de dependencias del código existente. Las estructuras existentes quedan reflejados en los diagramas de capas actuales. Por consiguiente desea mejorar el diagrama de capas y el código al mismo tiempo.

Temas relacionados