Charla GSAS: Enfoque pragmático de las métricas de arquitectura – Parte 2

Compartir esta publicación

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 resistenciaAlta resistencia
Baja distanciaComplejidad localAlta cohesión
Alta distanciaAcoplamiento flexibleComplejidad 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

  Descubriendo Rust

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

  ORM: evitar el uso de many-to-many relationships

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:

CTA Software

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

  • Oriol Saludes

    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

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

apiumhub software development projects barcelona
Secured By miniOrange