Monday, November 30, 2020

La modularidad en la arquitectura

La modularidad es un principio organizador. Si un arquitecto diseña un sistema sin prestar atención a cómo se conectan piezas, termina creando un sistema que presenta innumerables dificultades, pues los sistemas de software modelan sistemas que tienden al desorden. Por esto último es indispensable que los arquitectos inviertan energía en asegurar una buena solidez estructural (algo que no se puede dar por accidente).

Utilizamos la modularidad para describir una agrupación lógica de código relacionado, que podría ser un grupo de clases en un lenguaje orientado a objetos o funciones en un lenguaje estructurado o funcional. La mayoría de lenguajes proporcionan mecanismos de modularidad (paquete en Java, espacio de nombre en .NET, etc.)

Medición de la modularidad

Dada la importancia de la modularidad para los arquitectos, necesitan herramientas para entenderla. Los investigadores han creado una variedad de métricas agnósticas de los lenguajes para ayudar a los arquitectos a entender la modularidad. Estas métricas son:

  • Cohesión
  • Acoplamiento
  • Connascence

De módulos a componentes

Los módulos son una colección de código relacionado. Es un nombre genérico para un paquete de código relacionado. Sin embargo, los arquitectos suelen pensar en términos de componentes, la manifestación física de un módulo.

Los desarrolladores empaquetan físicamente los módulos de diferentes maneras, a veces dependiendo de su plataforma de desarrollo. La mayoría de los lenguajes soportan el empaquetamiento físico: archivos jar en Java, dll en .NET, gem en Ruby, etc.

¡Gracias por llegar hasta aquí!

1 comment:

Cuando el código funciona, pero no tiene tests: ¿y ahora qué?

Seguramente te ha pasado alguna vez. Te dan acceso al repositorio de un nuevo proyecto. Lo abres con curiosidad, esperas encontrar una estru...