stringtranslate.com

Sistema legal

En 2011, MS-DOS todavía se utilizaba en algunas empresas para ejecutar aplicaciones heredadas, como este sistema de gestión de servicios de alimentos de la Marina de los EE. UU .

En informática , un sistema heredado es un método, tecnología, sistema informático o programa de aplicación antiguo , "de, relacionado con, o siendo un sistema informático anterior u obsoleto", [1] aún en uso. A menudo, referirse 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 necesite 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 algún sentido está obsoleta o admite algo obsoleto. El código heredado puede escribirse en lenguajes de programación, utilizar marcos y bibliotecas externas, o utilizar 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 el código base. El código heredado puede tener pruebas automatizadas nulas o insuficientes , lo que hace que la refactorización sea peligrosa y propensa a introducir errores . [2] El código de larga duración es susceptible a la degradación del software , donde los cambios en el entorno de ejecución o en 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 independiente o un cliente heredado que utiliza 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 usando 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 más antiguos e incompatibles (por ejemplo, con sistemas operativos más nuevos). Los ejemplos de software heredado incluyen formatos de archivos heredados como .swf para Adobe Flash o .123 para Lotus 1-2-3 , y archivos de texto codificados con codificaciones de caracteres heredados como EBCDIC .

Descripción general

Aunque no tiene soporte desde abril de 2014, Windows XP ha soportado un uso continuo en campos como el software del sistema operativo de cajeros automáticos .

El primer uso del término legado para describir sistemas informáticos probablemente se produjo en la década de 1960. [3] En la década de 1980 se usaba comúnmente para referirse a los sistemas informáticos existentes para distinguirlos del diseño e implementación de nuevos sistemas. El legado se escuchaba a menudo 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 utilizándose por diversas razones. Puede ser simplemente que el sistema todavía satisfaga las necesidades de los usuarios. Además, la decisión de mantener un sistema antiguo puede verse influenciada por razones económicas como los desafíos del retorno de la inversión o la dependencia de un proveedor , los desafíos inherentes a la gestión de cambios o una variedad de otras razones distintas a la funcionalidad. La compatibilidad con versiones anteriores (como la capacidad de los sistemas más nuevos para manejar formatos de archivos y codificaciones de caracteres heredados ) es un objetivo que los desarrolladores de software suelen incluir en su trabajo.

Incluso si ya no se utiliza, un sistema heredado puede seguir impactando a la organización debido a su papel 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 esquema personalizado , o que existan sólo en un almacén de datos . En cualquier caso, el efecto sobre la inteligencia empresarial y los informes operativos puede ser significativo. Un sistema heredado puede incluir procedimientos o terminología que ya no son relevantes en el contexto actual y pueden dificultar o confundir la comprensión de los métodos o tecnologías utilizados.

Las organizaciones pueden tener razones de peso para mantener un sistema heredado, como por ejemplo:

Problemas que plantea la informática heredada

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

Mejoras en sistemas de software heredados

Cuando es imposible reemplazar los sistemas heredados mediante la práctica del retiro de aplicaciones , aún es posible mejorarlos (o "reformarlos"). La mayor parte del desarrollo suele consistir en agregar nuevas interfaces a un sistema heredado. La técnica más destacada es proporcionar una interfaz basada en Web para 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 más lentas del operador con mouse, pero a menudo se ve como una "actualización", porque el estilo de la interfaz es familiar para los usuarios no calificados y es fácil de usar. John McCormick analiza estrategias que involucran middleware . [9]

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

Las medidas de seguridad biométrica son difíciles de implementar en sistemas heredados. Una solución viable es utilizar 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 pasar a software de procesos de negocio automatizados (ABP) que genera sistemas completos. Estos sistemas pueden luego interactuar con los sistemas heredados de las organizaciones y utilizarlos como depósitos de datos . Este enfoque puede proporcionar una serie de beneficios importantes: los usuarios están aislados de las ineficiencias de sus sistemas heredados y los cambios pueden incorporarse rápida y fácilmente en el software ABP.

Los enfoques de ingeniería inversa y directa basados ​​en modelos también se pueden utilizar para mejorar el software heredado. [10]

Ejemplo de la NASA

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

Según Hein, la verificación, validación, pruebas e historial operativo aumentan la confianza en la confiabilidad y calidad de un sistema. Sin embargo, acumular este historial suele resultar caro. El ahora retirado programa del Transbordador Espacial de la NASA utilizó una gran cantidad de tecnología de la década de 1970. El costo del reemplazo era prohibitivo debido al costoso requisito de certificación de vuelo. El hardware original completó los costosos requisitos de integración y certificación para el vuelo, pero cualquier equipo nuevo habría tenido que pasar por todo ese proceso nuevamente. Este proceso largo y detallado requirió pruebas exhaustivas 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 inició el proceso de certificación se convierte de facto en un sistema heredado en el momento en que se aprueba su funcionamiento.

Además, todo el sistema del transbordador espacial, incluidos los vehículos terrestres y de lanzamiento, fue diseñado para funcionar en conjunto como un sistema cerrado. Dado que las especificaciones no cambiaron, todos los sistemas y componentes certificados funcionaron bien en las funciones para las que fueron diseñados. [13] Incluso antes de que se programara el retiro del Shuttle en 2010, la NASA consideró ventajoso seguir usando muchas piezas de tecnología de la década de 1970 en lugar de actualizar esos sistemas y recertificar 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 obsoleto. Entre las concepciones neutrales más frecuentes se encuentran el código fuente heredado de otra persona y el 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". [14] Michael Feathers [15] introdujo una definición de código heredado como código sin pruebas , lo 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 código que sea "como otros legados en nuestras vidas, como las antigüedades, reliquias e historias que se aprecian y se transmiten con amor de una generación a la siguiente". ¿Si el código heredado fuera algo de lo que estuviéramos orgullosos?". [dieciséis]

Usos adicionales del término Legacy en informática

El término soporte heredado se utiliza 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" pueden detectar y utilizar hardware más antiguo. El término también puede usarse para referirse a una función comercial; por ejemplo, un proveedor de software o hardware que brinda soporte o mantenimiento de software para productos más antiguos.

Un producto "heredado" puede ser un producto que ya no se vende, ha perdido una participación sustancial en el mercado o es una versión de un producto que no está actual. Un producto heredado puede tener alguna ventaja sobre un producto moderno, lo que hace atractivo para los clientes conservarlo. Un producto sólo es verdaderamente "obsoleto" si no tiene ninguna ventaja para nadie , si ninguna persona que tome 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 . Se dice que un producto de software que es capaz de funcionar como si fuera una versión anterior de sí mismo "se ejecuta 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.

En la era de las computadoras centrales , muchas aplicaciones se ejecutaban 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 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 sigan funcionando en hardware moderno ejecutando 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 los terrenos previamente urbanizados (a menudo contaminados y abandonados) se describen como brownfield . [17]

Vista alternativa

Existe una opinión alternativa favorable (en crecimiento desde el fin de la burbuja Dotcom en 1999) de que los sistemas heredados son simplemente sistemas informáticos en uso funcional:

El " código heredado " a menudo difiere de la alternativa sugerida en que realmente funciona y escala.

—  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, [18] incluso descontando el riesgo de fallas del sistema y violaciones de seguridad. Idealmente, las empresas nunca tendrían que reescribir la mayor parte de la lógica empresarial central: débitos = créditos es un requisito perenne.

La industria de TI está respondiendo con una "modernización heredada" y una "transformación heredada": renovando la lógica empresarial existente con nuevas interfaces de usuario, a veces utilizando 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 (utilizando herramientas de descubrimiento), proporcionar nuevas interfaces de usuario y aplicaciones para el código existente, mejorar el flujo de trabajo, contener los costos, minimizar el riesgo y disfrutar de las cualidades de servicio clásicas (casi el 100% de tiempo de actividad, seguridad, escalabilidad). , etc.). [19]

Esta tendencia también invita a reflexionar sobre lo que hace que los sistemas heredados sean tan duraderos. Los tecnólogos están reaprendiendo la importancia de una arquitectura sólida 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, porque se desgastan y porque sus fallas inherentes invitan a reemplazarlos. Por lo tanto, muchas organizaciones están redescubriendo el valor tanto de sus sistemas heredados como de los fundamentos teóricos de esos sistemas.

Ver también

Referencias

  1. ^ "Merriam-Webster" . Consultado el 22 de junio de 2013 .
  2. ^ Plumas, Michael C. (2005). Trabajar eficazmente con código heredado. Upper Saddle River, Nueva Jersey: Referencia técnica profesional de Prentice Hall. pag. 15.ISBN 0-13-293174-5. OCLC  660166658.
  3. ^ Tawde, Swati. "Sistema legal". educaba .
  4. ^ (por ejemplo, ver Bisbal et al., 1999).
  5. ^ Lamb, John (junio de 2008). "Los sistemas heredados siguen teniendo un lugar en la empresa". Computadora Semanal . Consultado el 27 de octubre de 2014 .
  6. ^ Stephanie Overby (1 de mayo de 2005). "El desastre navideño de Comair: destinado al fracaso - CIO.com - Liderazgo en tecnología empresarial". CIO.com . Consultado el 29 de abril de 2012 .
  7. ^ Razermouse (3 de mayo de 2011). "El peligro de los sistemas heredados". Mousesecurity.com. Archivado desde el original el 23 de marzo de 2012 . Consultado el 29 de abril de 2012 .
  8. ^ "Beneficios de la modernización de mainframe". Centro de Modernización . Consultado el 23 de agosto de 2017 .
  9. ^ McCormick, John (2 de junio de 2000). "Middleware mainframe-web". Gcn.com . Consultado el 29 de abril de 2012 .
  10. ^ Menychtas, Andreas; Konstanteli, Cleopatra; Alonso, Juncal; Orue-Echevarría, Leire; Gorronogoitia, Jesús; Kosiouris, George; Santzaridou, Cristina; Bruneliere, Hugo; Pellens, Bram; Stuer, Pedro; Strauss, Oliver; Senkova, Tatiana; Varvarigou, Theodora (2014), "Modernización del software y cloudificación utilizando la metodología y el marco de migración ARTIST", Computación escalable: práctica y experiencia , 15 (2), doi : 10.12694/scpe.v15i2.980
  11. ^ AM Hein (2014), ¿Cómo evaluar los sistemas patrimoniales en las primeras fases? , Sexta Conferencia Internacional de Sistemas e Ingeniería Concurrente para Aplicaciones Espaciales 2014, ESA
  12. ^ AM Hein (2016), Tecnologías patrimoniales en programas espaciales: metodología de evaluación y análisis estadístico, tesis doctoral Facultad de Ingeniería Mecánica, Universidad Técnica de Munich
  13. ^ AM Hein (2014), ¿Cómo evaluar los sistemas patrimoniales en las primeras fases?, Sexta Conferencia Internacional de Sistemas e Ingeniería Concurrente para Aplicaciones Espaciales 2014, ESA, p. 3
  14. ^ Lopian, Eli (15 de mayo de 2018). "Definición de código heredado" . Consultado el 10 de junio de 2019 .
  15. ^ Trabajando eficazmente con código heredado de Michael Feathers ( ISBN 0-13-117705-2 ) 
  16. ^ Ginny Hendry (11 de julio de 2014). "Siéntete orgulloso de tu legado (código)" . Consultado el 7 de octubre de 2021 .
  17. ^ "Definición de implementación greenfield y brownfield". Buscarcomunicacionesunificadas.techtarget.com . Consultado el 29 de abril de 2012 .
  18. ^ "Consideraciones de costos para un proyecto de migración de mainframe a la nube". Sistemas Kumaran .
  19. ^ Comella-Dorda, Santiago (1 de abril de 2000). "Un estudio de los enfoques de modernización de sistemas heredados" (PDF) . Biblioteca Digital SEI .

Otras lecturas

enlaces externos