Reparabilidad

Me hace mucha gracia lo de aplicar el término de “Reparabilidad” al ámbito de software. Cuando pienso en reparar me vienen otras cosas antes a la cabeza, como el coche, la lavadora o un enchufe.
Pero lo cierto es que el í­ndice de reparabilidad de un software afecta directamente a la mantenibilidad del mismo, por lo que si somos conscientes de ello tal vez empecemos a enfocar el problema de la mantenibilidad con algunos argumentos más en el bolsillo.
Ahí­ os va una definición de Reparabilidad:
“Podemos decir que un software es reparable si permite la corrección de sus defectos con una cantidad de trabajo limitada y razonable”. (Referencia: Mantenimiento de Software. Modelos técnicas y métodos para la gestión del cambio. Editorial Ra-Ma)
Por poner un ejemplo de reparabilidad en otros ámbitos, por ejemplo, en el del automóvil, resulta totalmente crí­tico. Por ejemplo, al diseñar un coche se tiene en cuenta cuáles son las piezas que más pueden fallar y desgastarse, y se condiciona el diseño para que dichas piezas sean lo más facilmente sustituibles.
Un software por mucho que se use no se gasta. Ya le podemos dar veces al botón de aceptar, que, en principio, no deberí­a desgastarse y dejar de funcionar sin motivo aparente.
Otro de los condicionantes que afectan a la reparabilidad es el tamaño y el níºmero de las piezas. Esto si es algo que nos afecta en el desarrollo de software. Si el tamaño o el níºmero de nuestros módulos es muy grande esto puede afectar a la reparabilidad. Aunque para mi más que el tamaño o el níºmero de módulos tal vez sea el níºmero de interacciones que exista entre los mismos, cuantas menos dependencias tengan entre ellos y cuanto más hagan lo que tengan que hacer, pues mejor (tal vez os suena más si esto íºltimo lo expreso como “alta cohesión y bajo acoplamiento”).
Para finalizar, por supuesto, la documentación. Prueba tíº a desmontar el motor del coche sin haberte leí­do el manual correspondiente.
Saludos.
Miguel.

Leave a Reply

Your email address will not be published. Required fields are marked *