El problema

La construcción de software siempre debe orientarse a crear sistemas que tengan bajo acoplamiento entre sus componentes y alta cohesión al momento de relacionarlos, sin embargo no siempre es sencillo diseñar el software de manera adecuada tomando como guía únicamente este objetivo.

Robert C. Martin estableció a inicios de este siglo los principios SOLID como un conjunto de lineamientos para la construcción correcta de software que aseguran la alta cohesión y el bajo acoplamiento en cualquier sistema que cumpla a cabalidad con dichos principios, todo esto para evitar el software mal estructurado y de tipo "Jenga".


El software tipo "Jenga" como su nombre lo indica hace relación al popular donde se debe remover bloques de una torre sin que se derrumbe la estructura, entre más abajo esté el bloque removido en la torre mayor es la probabilidad de que se derrumbe. Un software mal diseñado es como una torre Jenga donde los componentes del sistema son los bloques, si surge la necesidad de modificar o eliminar un componente del sistema (ej. una clase) es muy probable o inevitable en muchos casos que se "derrumbe" el software como tal, es decir que sea ineludible el iniciar de nuevo el desarrollo o realizar grandes cambios por pequeñas modificaciones.


Una vez que se modifica o elimina un componente en un software "Jenga" y se "derrumba" normalmente causa una sensación de frustración y angustia (es probable que el lector lo haya sentido) ya que es necesario modificar y reestructurar gran parte de las clases, interfaces, métodos y en general varios componentes del software por no decir que en muchos casos el software completo.

Cuando se trata de sistemas de gran tamaño esta sensación de frustración y angustia se transforma en un potencial motivo de suicidio (es una exageración obviamente...bueno, no siempre), para hacerse una idea de lo anterior imagine que le solicitan agregar una nueva funcionalidad a Facebook, pero se ha diseñado mal el software y es necesario replantearse el diseño total de la aplicación, ~62 millones de lineas de código a replantear, no es un trabajo que desearía realizar, ahora imagine que usted fue quien diseñó mal ese software desde un principio...


Despues de conocer todo lo anterior se entiende el gran problema de no realizar un buen diseño de software y la importancia y utilidad que tienen los principios SOLID para lograr desarrollar software con bajo acoplamiento y alta cohesión. Ya sabemos QUÉ deseamos al desarrollar "un sistema con alta cohesión y bajo acoplamiento", Robert C. Martin nos regalo una "guía", unos "consejos", el CÓMO lograr eso que deseamos al desarrollar, ese "cómo" son los principios SOLID.

results matching ""

    No results matching ""