Skip to content Skip to navigation

OpenStax_CNX

You are here: Home » Content » Valoraciones sobre la Reingeniería del Software

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
Download
x

Download module as:

  • PDF
  • EPUB (what's this?)

    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 "(what's this?)" link.

  • More downloads ...
Reuse / Edit
x

Module:

Add to a lens
x

Add module to:

Add to Favorites
x

Add module to:

 

Valoraciones sobre la Reingeniería del Software

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

Summary: Valoraciones sobre la Reingeniería del Software y cálculo cuantitativo.

Se entiende por reingeniería la modificación de un producto software o de ciertos componentes, usando para el análisis del sistema existente técnicas de ingeniería inversa y para la etapa de reconstrucción, herramientas de ingeniería directa.

La reingeniería requiere tiempo; conlleva un coste de dinero enorme y absorbe recursos que de otro modo podrían emplearse en preocupaciones más inmediatas. La reingeniería es una actividad que absorberá recursos de las tecnologías de la información durante un período de tiempo grande.

Ante la perspectiva de aplicar procesos de reingeniería, cabe preguntarse si existen alternativas a esto:

  • Comprar un software que lo sustituya.
  • Desarrollar el software de nuevo.

Desde luego, cualquier opción (incluyendo la reingeniería) incurre en costes de mantenimiento y de operaciones. No obstante, la reingeniería se suele considerar una buena opción frente al desarrollo de una nueva aplicación cuando:

  • La aplicación tiene fallos frecuentes que son difíciles de localizar.
  • La aplicación es poco eficiente, pero realiza la acción esperada.
  • Existen dificultades para integrar la aplicación con otros sistemas.
  • El software final de la aplicación es de poca calidad.
  • Cuando no se dispone de personal suficiente para realizar todas las modificaciones necesarias que puedan surgir.
  • Cuando no se tenga facilidad para realizar las pruebas a los cambios que se deban realizar.
  • Cuando el mantenimiento de la aplicación consume muchos recursos.
  • Cuando es necesario incluir nuevos requisitos a la aplicación, pero los fundamentales se mantienen.

Método cuantitativo

De manera objetiva, se puede calcular el beneficio cuantitativo tanto para comprar un software que lo sustituya como para el desarrollo del software nuevo.

Si se mantiene el software como está, el beneficio se puede calcular de la siguiente manera:

BM = [VA – (CMA + COpA)] x T. Vida

Siendo

BM: el beneficio de mantenimiento

VA: el valor de negocio actual (anual)

CMA: el coste de mantenimiento actual

COpA: el coste actual de operación de la aplicación, es decir, los costes derivados de mantener la aplicación en uso (servicios de atención al cliente, administración,...).

Si por el contrario se elige hacer reingeniería, el beneficio obtenido será:

BR = [(GF x T. Vida) – (CR x FR)] – BM

GF = VF – (CMF x COpF)] – BM

T. Vida = T. Vida Estimado –T. Reingeniería

Donde:

BR: beneficio de reingeniería

GF: ganancia final

CR: coste de reingeniería

FR: factor de riesgo de la reingeniería

BM: beneficio de mantenimiento

VF: el valor de negocio tras la reingeniería (anual)

CMF: coste de mantenimiento final

COpF: coste de operación final

Importancia de aplicar Reingeniería del Software

Mucha gente al ver las grandes y viejas mansiones queda asombrado de su belleza, pero no se preguntan que tan bien se puede vivir en ellas. Las personas que lo hacen dicen que es una pesadilla mantenerlas. Todas ellas fueron construidas con viejas tecnología estándar. Sus paredes externas no tienen aislamiento. El alambrado eléctrico tiene limitaciones y claramente es inadecuada para las necesidades de energía de hoy y su cableado decadente crea un severo peligro eléctrico.

Los viejos sistemas son muy similares a los grandes y viejos edificios. Ellos tienen los mismos problemas de mantenimiento, un hecho en gran parte irreconocible por parte de la comunidad corporativa. Muchos de esos edificios son demolidos por que no son mantenibles y ya no sirven para las necesidades de sus ocupantes.

Las viejas computadoras tal vez se puedan ver solamente en museos. Pero en muchos casos, software escrito para viejos modelos de computadora están ejecutándose hoy en día. Un caso extremo es el de un software escrito para una IBM 1401 Autocoder. Cuando la compañía remplazó la 1401 con una IBM 360/40, compraron un emulador de la 1401 para poder ejecutar el software. Esa aplicación hoy día corre en una PC – la compañía compro otro emulador.

Los clientes demandan que las nuevas capacidades sean agregadas al código escrito en sus viejos sistemas. Casi siempre, las empresas encuentran que no pueden modificar su código – el programador que lo mantenía murió recientemente o nadie sabe programar en el lenguaje en el que fue escrito. Por lo que la funcionalidad de ese programa quedará así para siempre.

La siguiente lista son las razones por las que es aplicable la reingeniería a los sistemas de información heredados:

  • Frecuentes fallas de producción (fiabilidad cuestionable).
  • Problemas de rendimiento.
  • Tecnología obsoleta.
  • Problemas de integración del sistema.
  • Código de calida pobre.
  • Dificultad (peligroso) al cambio.
  • Dificultad para probar.
  • Mantenimiento caro.
  • Incremento de problemas del sistema.

Estas razones pueden ser solucionadas al aplicar un proceso de mantenimiento de software, pero cuando dicho mantenimiento deja de ser viable, entonces se toma la decisión de aplicar reingeniería.

Aunque la reingeniería se usa principalmente durante el mantenimiento del software, va mas allá de una simple ayuda para el mantenimiento. La reingeniería es el puente desde viejas tecnologías hacía nuevas tecnologías que las organizaciones deben usar en la actualidad para responder al cambio de requerimientos del negocio.

Los viejos programas representan la tecnología del ayer. Ahora sabemos que los años tienen cuatro dígitos y no dos, que los datos pueden ser manejados mejor en bases de datos y que tenemos nuevos diseños de construcción y lenguajes de programación que permiten diseñar programas notablemente mantenibles.

Cuando el costo de mantener viejos edificios es altamente excesivo, se remplazan estos edificios. Nosotros deberíamos hacer lo mismo con los programas. Los programas no se hacen obsoletos al paso del tiempo ya que fueron escritos para hardware y sistemas operativos que ya no existen, muchos están llenos de características y parches no documentados. Sólo cuando hayamos aprendido a que es mejor invertir en nuevo hardware y nuevos edificios podremos reconocer el valor de remplazar los viejos sistemas raquíticos.

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

Reuse / Edit:

Reuse or edit module (?)

Check out and edit

If you have permission to edit this content, using the "Reuse / Edit" action will allow you to check the content out into your Personal Workspace or a shared Workgroup and then make your edits.

Derive a copy

If you don't have permission to edit the content, you can still use "Reuse / Edit" to adapt the content by creating a derived copy of it and then editing and publishing the copy.