Fragilidad del software


Fragilidad del software

Fragilidad del software

Fragilidad del software es el término irónico que describe la dificultad incremental de arreglar software antiguo. El término es derivado de analogías al trabajo del metal.

Contenido

Etapas

Debemos separar entre las distintas etapas que hacen a la vida de una aplicación Ciclo de Vida, se separan en desarrollo, prueba, producción y mantenimiento.

Concepto

Cuando el software está en etapa de desarrollo o de prueba, es infinitamente maleable; puede ser formado completamente al gusto de sus implementadores. Pero tan pronto como un proyecto dado crece más y más (etapa de producción), y desarrolla una gran base de usuarios con mayor experiencia con el software, se vuelve menos y menos maleable. Como un metal que ha sido forjado, el software se vuelve un sistema heredado, frágil e incapaz de ser fácilmente cambiado sin fracturar el sistema completo.

Razones

  • Los usuarios esperan una relativamente constante interfaz de usuario; una vez que una característica ha sido implementada y expuesta a los usuarios, es muy difícil de convencerlos de aceptar cambios mayores a esa característica, incluso si esa característica no estaba bien diseñada en principio o la existencia de la misma bloquea un mayor progreso.
  • Demasiada documentación puede describir el comportamiento actual (del software) y sería costoso de cambiar. Además, es esencialmente imposible recordar todas las copias de la documentación existente así que es más probable que los usuarios se refieran de nuevo a los manuales obsoletos de todos modos.
  • Los implementadores originales (aquellos que conocían cómo las cosas realmente funcionaban o como se implementaron) pueden no recordar, o haber ido a otra empresa o lugar. Los mismos pueden haber dejado una documentación insuficiente del funcionamiento interno del software. Muchos detalles de implementaciones de tamaño pequeño solamente fueron entendidos a través de las transmisión oral directa del equipo de diseño y muchos de estos detalles se han perdido, o se han podido perder, aunque algunos pueden ser redescubiertos a través de la aplicación diligente de una arqueología de software. Sobre esto Cunningham, Hunt, Marick y Thomas explican :
A los programadores a menudo se les entrega un sistema (de software) de tamaño considerable, construido por gente que no conocen, tocado por muchas personas desde entonces, documentado mínimamente si es que lo fue. Se les dice que lo mejoren. Su tarea debería ser corregir un error, agregar una característica, o una refabricación completa. Están bajo la presión del tiempo, así que necesitan minimizar el tiempo total destinado a aprender del sistema y el tiempo gastado en mejorarlo. Cunningham, Hunt, Marick & Thomas
  • Los parches software se han efectuado probablemente a través de los años, cambiando sutilmente el comportamiento del software. En muchos casos, estos parches corrigen el fallo por el cual fueron efectuados pero introducen otros fallos más sutiles en el sistema. Estos fallos sutiles hacen cambios subsecuentes al sistema lo que lo vuelve finanalmente más complicado.

Costos

Está demostrado que la mayor incidencia en los costos de una aplicación está en su mantenimiento.

Comentarios

Es común para los sistemas de software volverse ligeramente frágiles dentro de, digamos, cinco años y casi inmantenibles dentro de quince años. Es muy raro que encontremos un proyecto de software tan bien diseñado que pueda sostenerse un periodo de tiempo mayor siendo fácilmente mantenible. Más a menudo, la antigua base de código será simplemente abandonada y un sistema completamente nuevo será iniciado desde cero; el nuevo sistema puede estar libre de muchas de las cargas del sistema heredado.

Véase también


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Fragilidad del software — es el término irónico que describe la dificultad incremental de arreglar software antiguo. El término es derivado de analogías al trabajo del metal. Cuando el software es nuevo, es infinitamente maleable; puede ser formado completamente al gusto… …   Enciclopedia Universal

  • Ingeniería de software — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Mantenimiento de software — El mantenimiento de software o manutención de software es una de las actividades más comunes en la ingeniería de software, es el proceso de mejora y optimización del software después de su entrega al usuario final (es decir; revisión del… …   Wikipedia Español

  • Sistema heredado — Un sistema heredado (o sistema legacy) es un sistema informático (equipos informáticos o aplicaciones) que ha quedado anticuado pero continúa siendo utilizado por el usuario (típicamente una organización o empresa) y no se quiere o no se puede… …   Wikipedia Español

  • MMIC — Archivo:MMIC antenna.jpg MMIC antena. Los circuitos MMI o MMIC (Monolithic Microwave Integrated Circuits) son un tipo de circuitos integrados que operan en frecuencias de microondas, es decir, entre 300 MHz y 300 GHz. La técnica de fabricación de …   Wikipedia Español

  • Pruebas de regresión — Se denominan Pruebas de regresión a cualquier tipo de pruebas de software que intentan descubrir las causas de nuevos errores (bugs), carencias de funcionalidad, o divergencias funcionales con respecto al comportamiento esperado del software,… …   Wikipedia Español

  • Disquete — Este artículo o sección necesita una revisión de ortografía y gramática. Puedes colaborar editándolo (lee aquí sugerencias para mejorar tu ortografía). Cuando se haya corregido, borra este aviso por favor …   Wikipedia Español

  • Cuba — Para otros usos de este término, véase Cuba (desambiguación). República de Cuba …   Wikipedia Español

  • Fibra óptica — Saltar a navegación, búsqueda Un ramo de fibras ópticas …   Wikipedia Español

  • Historia de la electricidad — Un fragmento de ámbar como el que pudo utilizar Tales de Mileto en su experimentación del efecto triboeléctrico. El nombre en griego de est …   Wikipedia Español