La cohesi贸n y porque buscamos que en nuestro c贸digo sea fuerte

Cohesi贸n en Programaci贸n

La cohesi贸n hace referencia al grado de relaci贸n entre los elementos de un m贸dulo. En el dise帽o de una funci贸n, es importante pensar bien la tarea que va a realizar, intentando que sea 煤nica y bien definida. Cuantas m谩s cosas diferentes haga una funci贸n sin relaci贸n entre s铆, m谩s complicado ser谩 el c贸digo de entender. Existen por lo tanto dos tipos de cohesi贸n:

  • Por un lado tenemos la cohesi贸n d茅bil que indica que la relaci贸n entre los elementos es baja. Es decir, no pertenecen a una 煤nica funcionalidad.
  • Por otro la cohesi贸n fuerte, que debe ser nuestro objetivo al dise帽ar programas. La cohesi贸n fuerte indica que existe una alta relaci贸n entre los elementos existentes dentro del m贸dulo.

Existe tambi茅n otro concepto llamado acoplamiento que explicamos en otro post. Normalmente acoplamiento d茅bil se relaciona con cohesi贸n fuerte o alta.

Ve谩moslo con un ejemplo. Tenemos una funci贸n suma() que suma dos n煤meros. El problema es que adem谩s de sumar dos n煤meros, los convierte a float() y adem谩s pide al usuario que introduzca por pantalla el n煤mero. Podr铆a parecer que esas otras dos funcionalidades no son para tanto, pero si por ejemplo una persona quiere usar nuestra funci贸n suma() pero ya tiene los n煤meros y no quiere pedirlos por pantalla, no le servir铆a nuestra funci贸n.

# Mal. Cohesi贸n d茅bil
def suma():
    num1 = float(input("Dame primer n煤mero"))
    num2 = float(input("Dame segundo n煤mero"))
    suma = num1 + num2
    print(suma)

suma()

Para que la funci贸n tuviese una cohesi贸n fuerte, ser铆a conveniente que la suma realizara una 煤nica tarea bien definida, que es sumar.

# Bien. Cohesi贸n fuerte
def suma(numeros):
    total = 0
    for i in numeros:
        total = total + i
    return total

Evidentemente un ejemplo tan sencillo como el explicado no tiene implicaciones demasiado graves, pero es importante buscar que las funciones realicen una 煤nica tarea (o conjunto) pero relacionadas entre s铆. Dise帽ar c贸digo con cohesi贸n fuerte nos permite:

  • Reducir la complejidad del m贸dulo, ya que tendr谩 un menor n煤mero de operaciones.
  • Se podr谩 reutilizar los m贸dulos m谩s f谩cilmente
  • El sistema ser谩 m谩s f谩cilmente mantenible.

Existen otros conceptos muy importantes y relacionados con la programaci贸n orientada a objetos. Aqu铆 te los dejamos:

¡Deja un comentario!

avatar
  Subscribe  
Notify of