Skip to content Skip to navigation

OpenStax_CNX

You are here: Home » Content » Mantenimiento del Software como Actividad de Ingeniería

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Mantenimiento del Software como Actividad de Ingeniería

Module by: Miguel-Angel Sicilia. E-mail the authorEdited By: Verónica De la Morena

Summary: Se describe brevemente el concepto de mantenimiento del software, y la importancia de las actividades de mantenimiento en la Ingeniería del Software.

La definición posiblemente más utilizada de la Ingeniería del Software es la siguiente (IEEE, 1990)1: “La aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, la operación y el mantenimiento del software; esto es, la aplicación de la ingeniería al software.”

En la propia definición aparece el mantenimiento como una de las actividades de la Ingeniería del Software. Ahora bien ¿en qué se diferencia el mantenimiento de otras actividades de la Ingeniería del Software? – concretamente, ¿en qué se diferencia de lo que se suele denominar “desarrollo”?. Para clarificar esta delimitación, hay que buscar un criterio que separe unas actividades de las otras.

Como primera aproximación, podemos decir que las actividades de mantenimiento del software son actividades de Ingeniería del Software orientadas a la modificación o cambio del mismo (por diferentes motivos, que se verán más adelante). El cambio tiene como característica fundamental el hecho de que primero se necesita una comprensión del objeto que se ha de cambiar, para poder hacer efectiva la modificación. Esto hace que la comprensión del software como actividad humana, sea un elemento esencial en la Ingeniería del Software. Es decir, es conveniente que el software tenga una estructura y una documentación asociada que facilite su comprensión.

La importancia del mantenimiento es de carácter económico – como toda actividad de Ingeniería.

En un sistema que es fácilmente mantenible, se puede implementar un cambio con un menor esfuerzo que en un sistema que es menos mantenible.

Esto nos lleva a pensar que puede resultar rentable el hacer el software más mantenible. Claro está, esto solo será así si los cambios son frecuentes en el software.

Todo software evoluciona para adaptarse a las necesidades de sus usuarios.

La combinación de los dos enunciados nos indica que es importante prever la mantenibilidad (es decir, la “facilidad de mantenimiento”), aún antes de la entrega del producto.

El estado de la práctica del mantenimiento del software

Diferentes estudios han resaltado que el esfuerzo consumido en mantenimiento del software es en proporción al tiempo de desarrollo, muy elevado, con cifras entre el 50% y el 80% dependiendo de los estudios. En cualquier caso, es claro que el mantenimiento es una actividad que consume muchos recursos. Las actividades de mantenimiento incluyen entre otros, los siguientes elementos:

  • Es necesario comprender el software y comprender los cambios que se deben realizar.
  • Es necesario modificar el software y actualizar la documentación.
  • Es necesario volver a realizar las pruebas del software (prueba de regresión), además de probar específicamente las partes añadidas.

Además de esos costes directos, hay costes ocultos que son de gran importancia, como:

  • oportunidades de desarrollo que se han de posponer o que se pierden, debido a que los recursos disponibles están dedicados a las tareas de mantenimiento.
  • Insatisfacción del cliente cuando no se puede atender en un tiempo aceptable una petición de reparación o modificación que parece razonable.
  • Los errores ocultos introducidos al cambiar el software durante el mantenimiento reducen la calidad global del producto.
  • Perjuicio en otros proyectos de desarrollo cuando la plantilla tiene que dejarlos, total o parcialmente, para atender peticiones de mantenimiento.

En 1970 ya se había popularizado el término “Crisis del Software” para referir a la situación que acabamos de describir. Los síntomas de esta crisis han estado repercutiendo desde entonces en la industria de desarrollo de software y todavía se sienten sus efectos. Para resolver el problema surgió un área de la informática que recibe el nombre de Ingeniería del Software.

Una de las principales causas de esta situación ha sido la poca importancia que se le ha dado al proceso de Mantenimiento del Software

El mantenimiento del software como un caso especial de mantenimiento

El software no se deteriora con el uso ni con el paso del tiempo, a diferencia de los materiales mecánicos que son producto de otras actividades de ingeniería. Mejor dicho, no sufre de un deterioro físico. No obstante, se suele considerar que el software tiene un deterioro en su estructura, cuando a lo largo del tiempo se van incluyendo más y más cambios que hacen que su estructura interna sea cada vez más difícil de entender. En ocasiones se ha denominado a este fenómeno como “erosión del diseño”.

Esta idea del deterioro de la estructura da lugar a la idea relacionada de la mantenibilidad. La mantenibilidad es una propiedad del diseño del software relativa a su facilidad de mantenimiento. Esto lleva a que en ocasiones se introduzcan cambios en el software sólo para hacerlo más mantenible, lo cual rara vez se encuentra en otras ramas de la ingeniería.

Footnotes

  1. IEEE (1998) IEEE Std. 1219-1998, Standard for Software Maintenance, IEEE Computer Society Press, Los Alamitos, CA, 1998.

Content actions

Download module as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks