viernes, 28 de octubre de 2011

Reflexiones sobre software (II): la modularidad y las redes biológicas

En esta ocasión, en realidad, la reflexión no es tanto sobre el software en sí mismo, como sobre un sorprendente pararelismo.

Una de las propiedades que debe exhibir un buen softwarte, según las buenas prácticas de la ingeniería de software es la modularidad, es decir, el software se puede poder ordenar en bloques o módulos de una cierta independencia. Esa independencia se traduce, en los términos habitualmente utilizados en ingeniería software, en una alta cohesión interna y un bajo acoplamiento externo. Esto quiere decir que, hacia otros módulos, las interacciones son escasas y bien definidas, mientras que internamente al módulo existen multitud de interacciones, llamadas, datos compartidos, etc.

La modularidad es una característica fundamental y poco discutida del software de calidad.

¿A qué viene entonces este artículo?

Hace unos días, leyendo el excelente libro 'Redes complejas' de Ricard Solé, asistía hechizado a la descripción de las organizaciones celulares y muy especialmente al genoma humano, a los tipos de redes que conforman y las características que exhiben.

Y a propósito del tema, el autor escribía lo siguiente:

"Una propiedad muy importante de las redes biológicas (y no solo celulares) es la presencia de modularidad. Por sistema modular entendemos un objeto cuya principal característica es que está formado por distintas partes que se hayan internamente muy integradas pero a la vez poco relacionadas con el resto del sistema."

Y unas pocas líneas más adelante:

"La modularidad se considera una de las características principales de la complejidad biológica. Gracioas a ésta podemos lograr la especialización de distintas partes , permitir así que evolucionen de forma más independiente y también se evita que un daño en un módulo se propague hacia los otros."

Cuando leía esto, mi mente se escapaba inevitablemente al mundo del software, de la ingeniería software, de las lecciones aprendidas sobre el partuicular hace unos años... y estaba maravillado por el paralelismo...un paralelismo que otro puñado de líneas más adelante descubría que el propio autor había identificado y que citaba, a propósito de ese tema, los estudios de su colega Sergi Valverde.

Con frecuencia, la naturaleza inspira diseños técnicos.La forma de los aviones parece imitar la de las aves y las redes neuronales sin duda se basan en el funcionamiento del cerebro. En este caso de la modularidad, sin embargo, no parece una inspiración como tal, sino un acercamiento pararLelo e independiente de dos actores: la naturaleza, nada más y nada menos, por un lado, y los ingenieros de software por otro.

Debe ser que, al final, tanto la verdad como los buenos diseños acaban por imponerse...

Artículos de este blog relacionados