# data[].attributes.body
Principio organizador consistente en agrupar código relacionado en módulos.

Características implícita de la arquitectura de software.

# data[].attributes.body
Se desgastan asegurando una buena estructura sólida

# data[].attributes.headline
Actualmente en los lenguajes de programación

# data[].attributes.subject
Actualmente en los lenguajes de programación

# data[].attributes.body
Ahora existen diversos mecanismos de empaquetado que dificultan al desarrollador su elección.

# data[].attributes.headline
Guías de empaquetado por lenguaje de programación

# data[].attributes.subject
Guías de empaquetado por lenguaje de programación

# data[].attributes.body
1. Funciones / métodos.

2. Clases.

3. Paquetes / namespaces.

# data[].attributes.headline
Principales causas del surgimiento de la modularidad

# data[].attributes.subject
Principales causas del surgimiento de la modularidad

# data[].attributes.body
1. No reutilización de código.

2. Conflicto de nombramiento de archivos.

3. Organización de archivos precaria.

# data[].attributes.body
1. COHESIÓN: División pertinente de métodos de una clase para el uso de otras clases. División de responsabilidades.

2. ACOPLAMIENTO: Uso exagerado de métodos por muchas clases. Dificultad de mantenimiento.

3. CONNASCENE: Cambiar un módulo requiere de modificar el otro.

# data[].attributes.body
1. Funcional: Todo el módulo está relacionado y contiene todo lo esencial para la función.

2. Secuencial: La salida de un módulo es la entrada de otro.

3. Comunicacional: Unos módulos operan en información y/o contribuye a alguna salida.

4. Procedural: Unos módulos ejecutan código en un orden particular.

5. Temporal: Basados en dependencias de tiempo.

6. Lógica: Los datos dentro de lo módulos están relacionados lógicamente.

7. Coincidental: Elementos de un módulo no están relacionados más allá que de un solo archivo (lo no deseado).

# data[].attributes.body
1. Aferentes: número de conexiones entrantes a un artefacto de código.

2. .Eferentes: número de conexiones salientes de un artefacto de código.

# 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