Table of Contents
Como continuación de la Parte 1, este artículo profundiza en las ideas de la charla «Enfoque pragmático de las métricas de arquitectura», presentada por Sonya Natanzon y Vlad Khononov en el Global Software Architecture Summit del año pasado. Esta segunda parte de las métricas de arquitectura se centra en los conceptos de fuerza de integración dentro del desarrollo de software y modularidad.
Integration Strength
La fuerza de integración se refiere al grado de interconexión e interdependencia entre varios componentes, módulos o sistemas.
Acoplamiento de la aplicación
– Cómo se aplican las partes del sistema
– Interfaces privadas
– No está pensado para la integración entre componentes
Acoplamiento funcional
– Conocimiento de lo que tiene que hacer el sistema
– Lógica empresarial
– Casos prácticos
– Reglas, invariantes y restricciones
Modelo Acoplamiento
- Modelos del ámbito empresarial
- Estructuras de datos
- Aspectos del ámbito empresarial relacionados con los sistemas informáticos
- Comprensión de los requisitos funcionales
Acoplamiento de contratos
- Contratos de integración de componentes
- Modelos específicos de integración, API
- Los datos mínimos necesarios para que los componentes funcionen juntos
Baja resistencia | Alta resistencia | |
Baja distancia | Complejidad local | Alta cohesión |
Alta distancia | Acoplamiento flexible | Complejidad global |
Acoplamiento flexible
– Alto coste de los cambios en cascada
– Escaso conocimiento compartido
– Minimiza los cambios en cascada
Alta cohesión
– Gran conocimiento compartido
– Cambios frecuentes en cascada
– Bajo coste de los cambios en cascada
Complejidad local
Bajo coste de los cambios en cascada
– Escaso conocimiento compartido
– Módulos coubicados no relacionados
Complejidad global
– Alto coste de los cambios en cascada
– Gran conocimiento compartido
– Cambios frecuentes en cascada
Modularidad = fuerza XOR distancia
Al diseñar sistemas de software, conseguir la modularidad puede repercutir en la solidez del sistema o en la distancia entre módulos. Al dividir el sistema en componentes modulares, los desarrolladores pueden aumentar la fuerza de cada módulo centrándose en su funcionalidad específica y garantizando su fiabilidad. Sin embargo, al mismo tiempo, puede haber una contrapartida en términos de distancia entre módulos, lo que significa que puede haber una mayor sobrecarga de comunicación o coordinación entre módulos.
Destaca la importancia de encontrar el equilibrio adecuado entre modularidad, solidez y distancia en el desarrollo de software. Destaca la necesidad de tomar decisiones de diseño cuidadosas para optimizar la solidez y la mantenibilidad del sistema, al tiempo que se tienen en cuenta las interdependencias y los requisitos de comunicación entre módulos.
Aplicando M=S^D
1. Minimizar al máximo la fuerza de integración
2. Equilibrio integración fuerza y distancia
– ¿Ambos son altos? – Reduce la distancia
– ¿Ambos son bajos? – Aumenta la distancia
Enfoque pragmático de las métricas de arquitectura en pocas palabras
1. La necesidad de las empresas de evolucionar y escalar debe apoyarse en la capacidad de la arquitectura de software para cambiar en dos vectores: frecuencia y eficacia.
2. Cuatro métricas que pueden utilizarse para evaluar la frecuencia y la eficacia del cambio: el tiempo de espera del cambio, la frecuencia de despliegue, la tasa de fracaso del cambio y el tiempo medio de recuperación.
3. El coste del cambio es el total de cuatro parámetros y está directamente relacionado con la complejidad del cambio.
4. Dos componentes conectados comparten conocimientos: aplicación, función, modelo o contrato. Cuanto más conocimiento compartan dos componentes, más integrados estarán.
5. Modularidad = Fuerza XOR Distancia
Algunos libros recomendados durante la charla «Enfoque pragmático de las métricas de arquitectura» fueron:
- Balancing Coupling in Software Design por Vlad Khononov
- ACCELERATE: The Science of Lean Software and DevOps: Building and Scaling High-Performing Technology Organizations por Nicole Forsgren y Jez Humble
Conclusión
Sin duda, la charla «Enfoque pragmático de las métricas de arquitectura» aportó valiosas ideas que merecen especial atención, destacando la importancia del pragmatismo en el desarrollo de software, un factor que a menudo se pasa por alto. Sonya y Vlad proporcionaron a la audiencia consideraciones esenciales para evaluar el software y sus posibles transformaciones, fomentando un enfoque reflexivo y práctico de la toma de decisiones arquitectónicas. Es imprescindible comprender estos puntos clave, ya que contribuyen al éxito general y a la sostenibilidad de los proyectos de software.
Author
-
Experienced Full Stack Engineer with a demonstrated history of working in the information technology and services industry. Skilled in PHP, Spring Boot, Java, Kotlin, Domain-Driven Design (DDD), TDD and Front-end Development. Strong engineering professional with a Engineer's degree focused in Computer Engineering from Universitat Oberta de Catalunya (UOC).
Ver todas las entradas
More to Explore
- GSAS se celebra este año en el CCIB, Barcelona
- Charla GSAS: Mejora tu arquitectura con el índice de…
- Charla de GSAS: Comprendiendo las diferencias entre…
- Charla GSAS: Enfoque pragmático de las métricas de…
- La deuda del proceso es algo que debería importarte
- Recap del Global Software Architecture Summit 2022