Desarrollo de software. La delegación de funcionalidades

Si la mayoría de los sistemas de información de una organización no reutilizan código generado en el desarrollo de los mismos o en otros, nos encontramos con que estaremos reinventando la rueda una y otra vez.

La teoría dice eso, pero la realidad pone bastante difícil el proceso de reutilización, sobre todo en entornos con muchos proveedores, con un portfolio de aplicaciones alto y con diferentes estados en su ciclo de vida.

Hay que tener en cuenta que decir que no se reutiliza, no es cierto, ya que la mayoría de los desarrollos utilizan librerías de repositorios estándar, como por ejemplo las que componen determinados frameworks. Además, los proveedores también reutilizan determinadas librerías propias.

Si además se utilizan generadores de código, hay que sumar a las librerías todo el software que se ha escrito automáticamente, que si bien no es código reutilizado es fruto de un componente que se reutiliza una y otra vez (y que también va evolucionando, mejorando y adaptándose a los cambios en la tecnología y en los frameworks).

La reutilización se puede hacer principalmente a dos niveles, uno a nivel de librerías, es decir, que se puedan reutilizar desarrollos de otros proveedores, lo que requiere tener las mismas bien catalogadas y otro a nivel de delegación de funcionalidades en componentes de más alto nivel.

Este segundo nivel de reutilización, se basa en el uso de un componente que realiza una funcionalidad concreta a través de la comunicación con el mismo a través de un API. Estos componentes realizan una funcionalidad de cierta complejidad y nuestro sistema lo utilizará para que realice una determinada competencia, como por ejemplo, la gestión de usuarios, la autenticación, la gestión de documentos a firmar electrónicamente, la generación de documentos, la gestión de su almacenamiento, etc…

Además de las ventajas que supone reutilizar el componente en el desarrollo, tenemos las propias de no tener código duplicado (o funcionalidades duplicadas), es decir, el mantenimiento y testing de esos componentes está centralizado en una sola instancia, lo que además de ahorrar esfuerzo permite incrementar la estabilidad de nuestros sistemas.

1 comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: