Sistema legal

ImprimirCitar
Tecnología o sistema informático antiguo que permanece en uso
En 2011, MS-DOS todavía se utilizó en algunas empresas para ejecutar aplicaciones heredadas, como este sistema de gestión de servicios alimentarios de la Armada.

En informática, un sistema heredado es un método antiguo, tecnología, sistema informático o programa de aplicación, "de, relacionado con, o que es un sistema informático anterior u obsoleto", todavía en uso. A menudo, hacer referencia a un sistema como "heredado" significa que allanó el camino para los estándares que lo seguirían. Esto también puede implicar que el sistema está desactualizado o necesita ser reemplazado.

El código heredado es un código fuente de computadora antiguo que ya no es compatible con el hardware y los entornos estándar, y es una base de código que en cierto modo está obsoleta o admite algo obsoleto. El código heredado puede escribirse en lenguajes de programación, usar marcos y bibliotecas externas, o usar arquitectura y patrones que ya no se consideran modernos, lo que aumenta la carga mental y el tiempo de preparación para los ingenieros de software que trabajan en la base de código. El código heredado puede tener pruebas automatizadas nulas o insuficientes, lo que hace que la refactorización sea peligrosa y es probable que introduzca errores. El código de larga duración es susceptible a la pudrición del software, donde los cambios en el entorno de tiempo de ejecución o el software o hardware circundante pueden requerir mantenimiento o emulación de algún tipo para seguir funcionando. El código heredado puede estar presente para admitir hardware heredado, un sistema heredado separado o un cliente heredado que usa una función o versión de software anterior.

Si bien el término generalmente se refiere al código fuente, también puede aplicarse al código ejecutable que ya no se ejecuta en una versión posterior de un sistema o que requiere una capa de compatibilidad para hacerlo. Un ejemplo sería una aplicación clásica de Macintosh que no se ejecutará de forma nativa en macOS, sino que se ejecutará dentro del entorno clásico, o una aplicación Win16 que se ejecute en Windows XP utilizando la función Windows en Windows en XP.

Un ejemplo de hardware heredado son los puertos heredados, como los puertos PS/2 y VGA, y las CPU con conjuntos de instrucciones incompatibles más antiguos (por ejemplo, con sistemas operativos más nuevos). Los ejemplos en software heredado incluyen formatos de archivo heredados como.swf para Adobe Shockwave o.123 para Lotus 1-2-3, y archivos de texto codificados con codificaciones de caracteres heredados como EBCDIC.

Resumen

Aunque fuera de soporte desde abril de 2014, Windows XP ha soportado el uso continuado en campos como el software del sistema operativo ATM.

El primer uso del término heredado para describir los sistemas informáticos probablemente ocurrió en la década de 1960. En la década de 1980, se usaba comúnmente para referirse a los sistemas informáticos existentes para distinguirlos del diseño y la implementación de nuevos sistemas. Legacy a menudo se escuchaba durante un proceso de conversión, por ejemplo, al mover datos del sistema heredado a una nueva base de datos.

Si bien este término puede indicar que algunos ingenieros pueden sentir que un sistema está desactualizado, un sistema heredado puede seguir usándose por una variedad de razones. Puede ser simplemente que el sistema todavía proporciona a los usuarios' necesidades. Además, la decisión de mantener un sistema antiguo puede estar influida por razones económicas, como desafíos de retorno de la inversión o bloqueo de proveedores, los desafíos inherentes de la gestión de cambios o una variedad de otras razones además de la funcionalidad. La compatibilidad con versiones anteriores (como la capacidad de los sistemas más nuevos para manejar formatos de archivo heredados y codificaciones de caracteres) es un objetivo que los desarrolladores de software suelen incluir en su trabajo.

Incluso si ya no se usa, un sistema heredado puede seguir afectando a la organización debido a su rol histórico. Es posible que los datos históricos no se hayan convertido al nuevo formato del sistema y que existan dentro del nuevo sistema con el uso de un cruce de esquemas personalizado, o que solo existan en un almacén de datos. En cualquier caso, el efecto sobre la inteligencia comercial y los informes operativos puede ser significativo. Un sistema heredado puede incluir procedimientos o terminología que ya no es relevante en el contexto actual y puede dificultar o confundir la comprensión de los métodos o tecnologías utilizados.

Las organizaciones pueden tener razones convincentes para mantener un sistema heredado, como:

  • El sistema funciona satisfactoriamente, y el propietario no ve ninguna razón para cambiarlo.
  • Los costos de rediseño o sustitución del sistema son prohibitivos porque es grande, monolítico y/o complejo.
  • El readiestramiento en un nuevo sistema sería costoso en el tiempo perdido y el dinero, en comparación con los beneficios apreciables previstos para reemplazarlo (que puede ser cero).
  • El sistema requiere disponibilidad casi constante, por lo que no puede ser sacado del servicio, y el costo de diseñar un nuevo sistema con un nivel de disponibilidad similar es alto. Ejemplos incluyen sistemas para manejar cuentas de clientes en bancos, sistemas de reservas informáticas, control de tráfico aéreo, distribución de energía (rejillas eléctricas), centrales nucleares, instalaciones de defensa militar y sistemas como la base de datos TOPS.
  • La forma en que funciona el sistema no es bien comprendida. Tal situación puede ocurrir cuando los diseñadores del sistema han dejado la organización, y el sistema no se ha documentado completamente o se ha perdido la documentación.
  • El usuario espera que el sistema pueda ser reemplazado fácilmente cuando esto sea necesario.
  • Los sistemas más recientes desempeñan funciones secundarias indeseables (especialmente para usuarios individuales o no institucionales) tales como a) seguimiento e información de la actividad de usuario y/o b) actualización automática que crea vulnerabilidades de seguridad de puerta trasera y deja a los usuarios finales dependientes de la buena fe y honestidad del proveedor que proporciona las actualizaciones. Este problema es especialmente agudo cuando estas funciones secundarias de un nuevo sistema no pueden ser deshabilitadas.

Problemas planteados por la informática heredada

Algunos ingenieros de software consideran que los sistemas heredados son potencialmente problemáticos por varias razones.

  • Si el software legado se ejecuta con sólo hardware anticuado, el costo de mantener el sistema puede superar el costo de reemplazar tanto el software como el hardware a menos que alguna forma de emulación o compatibilidad atrasada permita que el software se ejecute en nuevo hardware.
  • Estos sistemas pueden ser difíciles de mantener, mejorar y expandir porque hay una falta general de comprensión del sistema; el personal que eran expertos en él se han retirado o olvidado lo que sabían al respecto, y el personal que entró en el campo después de que se convirtió en "legado" nunca aprendió sobre él en primer lugar. Esto puede empeorar por falta o pérdida de documentación. La compañía aérea de Comair despidió a su CEO en 2004 debido al fracaso de un sistema anticuado de programación de equipos que se encontró con una limitación no conocida por nadie en la empresa.
  • Los sistemas de Legacy pueden tener vulnerabilidades en sistemas operativos antiguos o aplicaciones debido a la falta de parches de seguridad disponibles o aplicados. También puede haber configuraciones de producción que causan problemas de seguridad. Estos problemas pueden poner el sistema legado en riesgo de ser comprometido por los atacantes o los internados con conocimiento.
  • La integración con nuevos sistemas también puede ser difícil porque el nuevo software puede utilizar tecnologías completamente diferentes. La integración en toda la tecnología es muy común en la informática, pero la integración entre las nuevas tecnologías y las sustancialmente más antiguas no es común. Es posible que simplemente no haya una demanda suficiente para desarrollar la tecnología de integración. Algunos de este código "glue" es desarrollado ocasionalmente por proveedores y entusiastas de tecnologías heredadas particulares.
  • Las limitaciones presupuestarias suelen llevar a las empresas a no hacer frente a la necesidad de sustituir o emigrar un sistema legado. Sin embargo, las empresas a menudo no consideran los costos de apoyo crecientes (personas, software y hardware, todos los mencionados anteriormente) y no tienen en cuenta la enorme pérdida de capacidad o continuidad de las operaciones si el sistema legado fracasara. Una vez que estas consideraciones son bien comprendidas, entonces se basa en el ROI probado de una nueva plataforma de pila de tecnología más segura y actualizada no es tan costoso como la alternativa, y se encuentra el presupuesto.
  • Debido a que la mayoría de los programadores heredados están entrando en edad de jubilación y el número de jóvenes ingenieros que los reemplazan es muy pequeño, hay una alarmante escasez de mano de obra disponible. Esto a su vez resulta en dificultad para mantener los sistemas heredados, así como en un aumento de los costos de adquisición de programadores experimentados.
  • Algunos sistemas heredados tienen un límite difícil en su capacidad total que puede no ser suficiente para las necesidades actuales, por ejemplo el límite de memoria de 4 GB en muchas CPU x86 mayores, o el límite de 4 mil millones de direcciones en IPv4.

Mejoras en los sistemas de software heredados

Donde es imposible reemplazar los sistemas heredados mediante la práctica del retiro de aplicaciones, todavía es posible mejorarlos (o "re-face"). La mayor parte del desarrollo a menudo se dedica a agregar nuevas interfaces a un sistema heredado. La técnica más destacada es proporcionar una interfaz basada en Web a una aplicación de mainframe basada en terminal. Esto puede reducir la productividad del personal debido a tiempos de respuesta más lentos y acciones del operador basadas en el mouse más lentas, pero a menudo se lo ve como una 'actualización', porque el estilo de la interfaz es familiar para los usuarios no calificados y es fácil de usar para ellos.. John McCormick analiza tales estrategias que involucran middleware.

Las mejoras en la impresión son problemáticas porque los sistemas de software heredados a menudo no agregan instrucciones de formato o usan protocolos que no se pueden usar en las impresoras modernas de PC/Windows. Se puede usar un servidor de impresión para interceptar los datos y traducirlos a un código más moderno. Los documentos en formato de texto enriquecido (RTF) o PostScript pueden crearse en la aplicación heredada y luego interpretarse en una PC antes de imprimirse.

Las medidas de seguridad biométrica son difíciles de implementar en sistemas heredados. Una solución factible es usar un servidor proxy Telnet o HTTP para ubicarse entre los usuarios y el mainframe para implementar un acceso seguro a la aplicación heredada.

El cambio que se está llevando a cabo en algunas organizaciones es cambiar a software de procesos comerciales automatizados (ABP) que genera sistemas completos. Estos sistemas pueden interactuar con las organizaciones' sistemas heredados y utilizarlos como repositorios de datos. Este enfoque puede proporcionar una serie de beneficios significativos: los usuarios están aislados de las ineficiencias de sus sistemas heredados y los cambios se pueden incorporar rápida y fácilmente en el software ABP.

Los enfoques de ingeniería directa e inversa basados en modelos también se pueden utilizar para mejorar el software heredado.

Ejemplo de la NASA

Andreas Hein, de la Universidad Técnica de Múnich, investigó el uso de sistemas heredados en la exploración espacial. Según Hein, los sistemas heredados son atractivos para su reutilización si una organización tiene las capacidades de verificación, validación, prueba e historial operativo. Estas capacidades deben integrarse en varias fases del ciclo de vida del software, como el desarrollo, la implementación, el uso o el mantenimiento. Para los sistemas de software, la capacidad de usar y mantener el sistema es crucial. De lo contrario, el sistema será cada vez menos comprensible y mantenible.

Según Hein, la verificación, la validación, las pruebas y el historial operativo aumentan la confianza en la confiabilidad y la calidad de un sistema. Sin embargo, acumular este historial suele ser costoso. El programa del transbordador espacial ahora retirado de la NASA usó una gran cantidad de tecnología de la década de 1970. El reemplazo tenía un costo prohibitivo debido al costoso requisito de certificación de vuelo. El hardware original completó el costoso requisito de integración y certificación para el vuelo, pero cualquier equipo nuevo habría tenido que pasar por todo ese proceso nuevamente. Este largo y detallado proceso requirió extensas pruebas de los nuevos componentes en sus nuevas configuraciones antes de que una sola unidad pudiera usarse en el programa del transbordador espacial. Por lo tanto, cualquier sistema nuevo que haya iniciado el proceso de certificación se convierte en un sistema heredado de facto en el momento en que se aprueba para el vuelo.

Además, todo el sistema del transbordador espacial, incluidos los activos terrestres y de vehículos de lanzamiento, se diseñó para funcionar en conjunto como un sistema cerrado. Dado que las especificaciones no cambiaron, todos los sistemas y componentes certificados se desempeñaron bien en las funciones para las que fueron diseñados. Incluso antes de que se programara el retiro del transbordador en 2010, a la NASA le resultó ventajoso seguir usando muchas piezas de la tecnología de la década de 1970 en lugar de actualizar esos sistemas y volver a certificar los nuevos componentes.

Perspectivas sobre el código heredado

Algunos en la ingeniería de software prefieren describir "código heredado" sin la connotación de estar obsoleto. Entre las concepciones neutrales más frecuentes se encuentran código fuente heredado de otra persona y código fuente heredado de una versión anterior del software. Eli Lopian, CEO de Typemock, lo ha definido como 'código que los desarrolladores tienen miedo de cambiar'. Michael Feathers introdujo una definición de código heredado como código sin pruebas, que refleja la perspectiva de que es difícil trabajar con código heredado en parte debido a la falta de pruebas de regresión automatizadas. También definió pruebas de caracterización para comenzar a poner a prueba el código heredado.

Ginny Hendry caracterizó la creación de código como un "desafío" para los codificadores actuales para crear un código que sea "como otros legados en nuestras vidas, como las antigüedades, las reliquias familiares y las historias que se atesoran y se transmiten amorosamente de un generación a la siguiente. ¿Y si el código heredado fuera algo de lo que nos enorgulleciéramos?

Usos adicionales del término Legado en informática

El término soporte heredado se usa a menudo junto con sistemas heredados. El término puede referirse a una característica del software moderno. Por ejemplo, los sistemas operativos con "soporte heredado" puede detectar y utilizar hardware antiguo. El término también puede usarse para referirse a una función comercial; p.ej. un proveedor de software o hardware que brinda soporte o proporciona mantenimiento de software para productos más antiguos.

Un "legado" El producto puede ser un producto que ya no se vende, ha perdido una participación de mercado sustancial o es una versión de un producto que no está actualizado. Un producto heredado puede tener alguna ventaja sobre un producto moderno, lo que hace que sea atractivo para los clientes mantenerlo. Un producto solo es realmente "obsoleto" si no tiene una ventaja para nadie, si ninguna persona que toma una decisión racional elegiría adquirirlo nuevo.

El término "modo heredado" a menudo se refiere específicamente a la compatibilidad con versiones anteriores. Un producto de software que es capaz de funcionar como si fuera una versión anterior de sí mismo, se dice que está "ejecutándose en modo heredado". Este tipo de característica es común en los sistemas operativos y navegadores de Internet, donde muchas aplicaciones dependen de estos componentes subyacentes.

La era del mainframe de la computadora vio muchas aplicaciones ejecutándose en modo heredado. En el entorno informático empresarial moderno, las arquitecturas de n o 3 niveles son más difíciles de colocar en el modo heredado, ya que incluyen muchos componentes que forman un solo sistema.

La tecnología de virtualización es una innovación reciente que permite que los sistemas heredados continúen funcionando en hardware moderno al ejecutar sistemas operativos y navegadores más antiguos en un sistema de software que emula el hardware heredado.

Arquitectura abandonada

Los programadores han tomado prestado el término brownfield de la industria de la construcción, donde la tierra previamente desarrollada (a menudo contaminada y abandonada) se describe como brownfield.

  • Arquitectura Brownfield es un tipo de software o arquitectura de red que incorpora sistemas heredados.
  • Despliegue de Brownfield es una actualización o adición a un software existente o arquitectura de red que conserva componentes heredados.

Vista alternativa

Existe una opinión favorable alternativa, cada vez mayor desde el final de la burbuja Dotcom en 1999, de que los sistemas heredados son simplemente sistemas informáticos en uso:

El "código legal" a menudo difiere de su alternativa sugerida por el trabajo y el escalado.

Bjarne Stroustrup, creador de C++

Los analistas de TI estiman que el costo de reemplazar la lógica empresarial es aproximadamente cinco veces mayor que el de la reutilización, incluso descontando el riesgo de fallas del sistema y violaciones de seguridad. Idealmente, las empresas nunca tendrían que reescribir la lógica comercial principal: débitos = créditos es un requisito perenne.

La industria de TI está respondiendo con la "modernización heredada" y "transformación heredada": renovación de la lógica comercial existente con nuevas interfaces de usuario, a veces usando screen scraping y acceso habilitado para servicios a través de servicios web. Estas técnicas permiten a las organizaciones comprender sus activos de código existentes (usando herramientas de descubrimiento), proporcionar nuevas interfaces de usuario y de aplicación al código existente, mejorar el flujo de trabajo, contener costos, minimizar riesgos y disfrutar de calidades de servicio clásicas (tiempo de actividad cercano al 100 %, seguridad, escalabilidad, etc.).

Esta tendencia también invita a reflexionar sobre lo que hace que los sistemas heredados sean tan duraderos. Los tecnólogos están volviendo a aprender la importancia de la arquitectura de sonido desde el principio, para evitar reescrituras costosas y arriesgadas. Los sistemas heredados más comunes tienden a ser aquellos que adoptaron principios arquitectónicos de TI bien conocidos, con una planificación cuidadosa y una metodología estricta durante la implementación. Los sistemas mal diseñados a menudo no duran, tanto porque se desgastan como porque sus fallas inherentes invitan al reemplazo. Por lo tanto, muchas organizaciones están redescubriendo el valor tanto de sus sistemas heredados como de los fundamentos teóricos de esos sistemas.

Contenido relacionado

Autoridad de asignación de números de Internet

La Autoridad de Números Asignados de Internet es una organización de estándares que supervisa la asignación global de direcciones IP, la asignación de...

♯P

En la teoría de la complejidad computacional, la clase de complejidad #P es el conjunto de problemas de conteo asociados con los problemas de decisión en el...

Problema de la altura de la estrella

El problema de la altura de las estrellas en la teoría del lenguaje formal es la cuestión de si todos los lenguajes regulares pueden expresarse usando...
Más resultados...
Tamaño del texto: