Categories
General

Complexity Reduction

Con el fin de gestionar un sistema se debe intentar reducir su complejidad al máximo, esto permite una mejor comprensión y por lo tanto una mejor interacción con el mismo. Teniendo en cuenta que el concepto básico de un sistema es que se trata de un conjunto de variables y relaciones entre estas, la idea general es la disminución en el numero de variables y/o el número de interrelaciones de manera que se logre la simplificación.

Existen unas técnicas basicas pero poderosas para lograr este objetivo:

  • Reutilizar
  • Estandarizar
  • Abstraer
  • Componer

Reutilización

Reutilizar, reusar, de-duplicar, es una manera de simplificar mediante la eliminación de variables redundantes/duplicadas:

image

Estandarización

Se trata de normalizar, homogeneizar o igualar para eliminar los matices que convierten variables similares en instancias diferentes, luego es posible utilizar la reutilización:

 

image

Abstracción

Se trata de identificar conjuntos de variables relacionadas de una forma muy cercana (alta cohesión) y agruparlas en un mismo concepto de tal manera que dicho conjunto de variables resulte en una nueva entidad:

 

image

La abstracción resulta creando una variable diferente (proxy) y nueva que contiene dentro de si las variables abstraidas. El proxy se convierte de una interface del nuevo subsistema. Otra caracteristica de la agrupación es que el subsistema resultante es autonomo y con alta cohesión.

Composición

Componer es utilizar cualquier combinación de las tres técnicas anteriores para lograr la simplificación, sería posible realizar:

  • Abstracción-Reutilización
  • Abstracción-Estandarización
  • Estandarización-Reutilización
  • Abstracción-Estandarización-Reutilización

Notas

Es posible lograr una simplificación extrema solo utilizando estas técnicas y sus combinaciones

Leave a comment