# data[].attributes.body
El diccionario define modulo:

Cada uno de un conjunto de partes estandarizadas o unidades independientes que pueden usarse para construir una estructura mas compleja.

# data[].attributes.body
Usamos la modularidad para describir una agrupación lógica de codigo relacionado, que podria ser un grupo de clases en un lenguaje orientado a objetos o funciones en un lenguaje estructurado no funcional.

# data[].attributes.body
Se crearon una variedad de metricas independientes del lenguaje para ayudar a los arquitectos a comprender la modularidad.

Algunos son:

Cohesión

Acoplamiento

connascencia

# data[].attributes.body
Se refiere a hasta qué punto las partes de un módulo deben estar contenidas dentro del mismo

módulo. Es una medida de qué tan relacionadas estan las partes entre sí.

# data[].attributes.body
Cohesión funcional

Cada parte del módulo está relacionada con la otra, y el módulo contiene todo lo esencial para funcionar.

Cohesión secuencial

Dos módulos interactúan, donde uno genera datos que se convierten en la entrada para el otro.

# data[].attributes.body
Cohesion comunicacional.

Dos módulos forman una cadena de comunicación, donde cada uno opera con información y/o contribuye

a algún resultado. Por ejemplo, agregue un registro a la base de datos y genere un correo electrónico

basado en esa información.

# data[].attributes.body
Dos módulos deben ejecutar código en un orden particular.º

# data[].attributes.headline
Distancia normalizada desde la secuencia principal

# data[].attributes.subject
Distancia normalizada desde la secuencia principal

# data[].attributes.body
A es la métrica de Abstracción.

I es la métrica de Inestabilidad.

D es la distancia normalizada desde la secuencia principal.

# data[].attributes.body
El acoplamiento aferente mide el número de conexiones entrantes a un artefacto de código (componente, clase, función, etc.).

El acoplamiento eferente mide las conexiones salientes con otros artefactos de código.

# data[].attributes.body
A = 0 y 1, donde 0 indica un sistema sin clases abstractas, y 1 indica un sistema donde todas las clases son abstractas.

ma = cantidad de clases abstractas en el sistema.

mc = conteo total de clases en el sistema, incluyendo clases abstractas y concretas.

# data[].attributes.body
Ce = es el número de clases fuera del paquete que dependen de clases dentro del paquete.

Ca = número de clases dentro del paquete que dependen de clases fuera del paquete.

I = produce un valor entre 0 y 1, donde 0 indica un sistema altamente estable (sin dependencias externas) y 1 indica un sistema altamente inestable (todas las dependencias son externas).

# data[].attributes.body
1. Estático: Acoplamiento a nivel de código.

1. De nombre.

2. De tipos.

3. De significado.

4. De posición.

5. De algoritmo.

2. Dinámico: Llamadas en tiempo de ejecución.

1. De ejecución.

2. De tiempo.

3. De valores.

4. De identidad.

# data[].attributes.body
1. Fuerza: Facilidad de refactorizar

el tipo de acoplamiento.

2. Localidad: Mide la proximidad entre módulos.

3. Grado: Tamaño del impacto