stringtranslate.com

Modernización de software

La modernización de sistemas heredados, también conocida como modernización de software o modernización de plataformas, se refiere a la conversión, reescritura o adaptación de un sistema heredado a lenguajes de programación informática , arquitecturas (por ejemplo, microservicios ), bibliotecas de software, protocolos o plataformas de hardware modernos. La transformación de sistemas heredados tiene como objetivo conservar y ampliar el valor de la inversión heredada mediante la migración a nuevas plataformas para beneficiarse de las ventajas de las nuevas tecnologías. [1]

Como base y primer paso de las iniciativas de modernización de software, la estrategia, la gestión de riesgos, la estimación de costes y su implementación, se encuentra el conocimiento del sistema que se está modernizando, el conocimiento de para qué están hechas todas las funcionalidades y el conocimiento de cómo se ha desarrollado. [2] Como los expertos en la materia (SMEs) que trabajaron en el inicio y durante todas las evoluciones de la aplicación ya no están disponibles o tienen un conocimiento parcial, y la falta de documentación adecuada y actualizada, las iniciativas de modernización comienzan con la evaluación y el descubrimiento de la aplicación utilizando inteligencia de software . [3]

Estrategias

La toma de decisiones sobre modernización de software es un proceso que se lleva a cabo dentro de un contexto organizacional. La toma de decisiones del “mundo real” en las organizaciones empresariales a menudo debe basarse en una “ racionalidad limitada ”. [4] Además de eso, existen múltiples criterios de decisión (y posiblemente contradictorios); la certeza, integridad y disponibilidad de información útil (como base para la decisión) a menudo es limitada.

La modernización de sistemas heredados suele ser un proyecto grande que dura varios años. Debido a que estos sistemas heredados suelen ser críticos para las operaciones de la mayoría de las empresas, implementar el sistema modernizado de una sola vez introduce un nivel inaceptable de riesgo operativo. Como resultado, los sistemas heredados suelen modernizarse de manera incremental. Inicialmente, el sistema consta completamente de código heredado. A medida que se completa cada incremento, el porcentaje de código heredado disminuye. Finalmente, el sistema se moderniza por completo. Una estrategia de migración debe garantizar que el sistema permanezca completamente funcional durante el esfuerzo de modernización.

Estrategias de modernización

Existen diferentes impulsores y estrategias para la modernización del software:

Gestión de riesgos de modernización

La modernización de software [12] es un proceso riesgoso, difícil, largo y altamente intelectual que involucra a múltiples partes interesadas. Las tareas de modernización de software están respaldadas por varias herramientas relacionadas con la arquitectura basada en modelos del Object Management Group y procesos como ISO/IEC 14764:2006 o Service-Oriented Migration and Reuse Technique (SMART). [13] La modernización de software implica varias tareas manuales y automatizadas realizadas por trabajadores especializados en conocimiento. Las herramientas respaldan las tareas de los participantes del proyecto y ayudan a organizar la colaboración y la secuenciación del trabajo.

Un enfoque general de gestión de modernización de software [14] que tenga en cuenta explícitamente los riesgos (tanto tecnológicos como de objetivos comerciales) consiste en:

Costos de modernización

Desafíos en la modernización del legado

Los principales problemas de un sistema heredado incluyen sistemas muy antiguos con falta de documentación, falta de expertos en la materia o de conocimientos sobre los sistemas heredados y escasez de habilidades tecnológicas en las que se han implementado los sistemas heredados. Los sistemas heredados típicos existen desde hace más de dos décadas. La migración está plagada de desafíos:

Por último, pero no por ello menos importante, no existe una solución única que sirva para todos los casos de modernización. Con una multitud de opciones comerciales y personalizadas disponibles para la modernización, es fundamental que los clientes, los vendedores y los ejecutores comprendan las complejidades de las distintas técnicas de modernización, sus mejores implementaciones aplicables, su idoneidad en un contexto particular y las mejores prácticas a seguir antes de seleccionar el enfoque de modernización adecuado.

Opciones de modernización

A lo largo de los años, han surgido varias opciones diferentes para modernizar los sistemas heredados, cada una de las cuales ha tenido distintos niveles de éxito y adopción. Incluso ahora, existe una variedad de posibilidades, como se explica a continuación, y no existe una “opción” para todas las iniciativas de transformación de sistemas heredados.

Un código heredado es cualquier aplicación basada en tecnologías y hardware más antiguos, como mainframes, que sigue brindando servicios básicos a una organización. Las aplicaciones heredadas suelen ser grandes y difíciles de modificar, y desecharlas o reemplazarlas a menudo también significa rediseñar los procesos comerciales de una organización. Sin embargo, cada vez más aplicaciones que se escribieron en los llamados lenguajes modernos como Java se están volviendo heredadas. Mientras que los lenguajes "heredados" como COBOL están en los primeros lugares de la lista de lo que se consideraría heredado, el software escrito en lenguajes más nuevos puede ser igualmente monolítico, difícil de modificar y, por lo tanto, ser candidato para proyectos de modernización.

De esta manera, la reimplementación de aplicaciones en nuevas plataformas puede reducir los costos operativos y las capacidades adicionales de las nuevas tecnologías pueden brindar acceso a funciones como servicios web y entornos de desarrollo integrados. [7] Una vez que se completa la transformación y se alcanza la equivalencia funcional, las aplicaciones se pueden alinear más estrechamente con las necesidades comerciales actuales y futuras mediante la incorporación de nuevas funciones a la aplicación transformada. El reciente desarrollo de nuevas tecnologías, como la transformación de programas por parte de empresas de modernización de software, ha hecho que el proceso de transformación de software heredado sea una forma rentable y precisa de preservar las inversiones heredadas y, de ese modo, evitar los costos y el impacto comercial de la migración a un software completamente nuevo.

El objetivo de la transformación de un sistema heredado es conservar el valor del activo heredado en la nueva plataforma . En la práctica, esta transformación puede adoptar varias formas. Por ejemplo, puede implicar la traducción del código fuente o algún nivel de reutilización del código existente más una capacidad de conexión de la Web al servidor para proporcionar el acceso al cliente que requiere la empresa. Si es necesaria una reescritura , se pueden extraer las reglas empresariales existentes para formar parte de la declaración de requisitos para una reescritura.

Migración de software

La migración de software es el proceso de pasar de utilizar un entorno operativo a otro que, en la mayoría de los casos, se considera mejor. Por ejemplo, pasar de Windows NT Server a Windows 2000 Server normalmente se consideraría una migración porque implica asegurarse de que se aprovechen las nuevas características, de que no sea necesario cambiar las configuraciones antiguas y de que se tomen medidas para garantizar que las aplicaciones actuales sigan funcionando en el nuevo entorno. La migración también podría significar pasar de Windows NT a un sistema operativo basado en UNIX (o viceversa). La migración puede implicar el cambio a un nuevo hardware, a un nuevo software o a ambos. La migración puede ser a pequeña escala, como la migración de un solo sistema, o a gran escala, que implique muchos sistemas, nuevas aplicaciones o una red rediseñada. [23]

Se pueden migrar datos de un tipo de base de datos a otro. Esto suele requerir que los datos estén en un formato común que pueda generarse desde la base de datos anterior y generarse en la nueva. Dado que la nueva base de datos puede estar organizada de forma diferente, puede ser necesario escribir un programa que pueda procesar los archivos que se migran.

Cuando una migración de software alcanza la equivalencia funcional, la aplicación migrada se puede alinear más de cerca con las necesidades comerciales actuales y futuras mediante la adición de nueva funcionalidad a la aplicación transformada.

La migración del software instalado de un PC antiguo a uno nuevo se puede realizar con una herramienta de migración de software. El término migración también se utiliza para referirse simplemente al proceso de mover datos de un dispositivo de almacenamiento a otro.

Artículos, ponencias y libros

Creación de software reutilizable

Debido a la evolución de la tecnología actual, algunas empresas o grupos de personas no conocen la importancia de los sistemas heredados. Algunas de sus funciones son demasiado importantes como para dejarlas sin usar y demasiado caras para reproducirlas de nuevo. La industria del software y los investigadores han prestado recientemente más atención al desarrollo de software basado en componentes para mejorar la productividad y acelerar el tiempo de comercialización. [24]

Modernización con gestión de riesgos

En general, tres clases de tecnología de sistemas de información son de interés para la modernización de sistemas heredados: Tecnologías utilizadas para construir los sistemas heredados, incluidos los lenguajes y los sistemas de bases de datos. Tecnologías modernas, que a menudo representan el nirvana para quienes están sumidos en una tecnología de décadas de antigüedad y que encierran la promesa (a menudo incumplida) de sistemas de información empresarial potentes, eficaces y de fácil mantenimiento. Tecnologías ofrecidas por los proveedores de sistemas heredados: estas tecnologías proporcionan una vía de actualización para aquellos demasiado tímidos o demasiado inteligentes como para lanzarse de cabeza a la última ola de ofertas de TI. Los proveedores de sistemas heredados ofrecen estas tecnologías por una sencilla razón: proporcionar una vía de actualización para la modernización de sistemas que no requiera abandonar la comodidad de la “matriz del mainframe”. Aunque estas tecnologías pueden proporcionar un camino más suave hacia un sistema moderno, a menudo dan como resultado una solución aceptable que no alcanza el ideal. [25]

Véase también

Referencias

  1. ^ ab Gardner, D: "La modernización de aplicaciones no es sólo una cuestión de retoques, sino que extiende el ciclo de vida de los activos de código heredados", ZDNet , 24 de octubre de 2006
  2. ^ Wolfart, Daniele; Assunção, Wesley; da Silva, Ivonei; Domingos, Diogo; Schmeing, Ederson; Villaca, Guilherme; Paza, Diogo (junio de 2021). "Modernización de sistemas heredados con microservicios: una hoja de ruta". Evaluación y Valoración en Ingeniería de Software . págs. 149-159. doi :10.1145/3463274.3463334. ISBN 9781450390538. Número de identificación del sujeto  235474042.
  3. ^ Bartoszuk, Cezary; Dąbrowski, Robert; Stencel, Krzysztof; Timoszuk, Grzegorz (junio de 2013). "Sobre la comprensión y evaluación rápidas del software". Actas de la 14.ª Conferencia internacional sobre sistemas y tecnologías informáticas . págs. 161–168. doi :10.1145/2516775.2516806. ISBN 9781450320214. Número de identificación del sujeto  17034416.
  4. ^ Racionalidad limitada de Simon. Orígenes y uso en la teoría económica
  5. ^ Stefan Van Der Zijden; Thomas Klinect. "Creación de un caso empresarial de modernización de aplicaciones multiplataforma". {{cite journal}}: Requiere citar revista |journal=( ayuda )
  6. ^ ab Menychtas, Andreas; Santzaridou, Christina; Kousiouris, George; Varvarigou, Theodora; Orue-Echevarria, Leire; Alonso, Juncal; Gorronogoitia, Jesus; Bruneliere, Hugo; Strauss, Oliver; Senkova, Tatiana; Pellens, Bram; Stuer, Peter (2013), "Metodología y marco de trabajo ARTIST: un nuevo enfoque para la migración de software heredado a la nube" (PDF) , 2013 15th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (PDF) , 15th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), IEEE, págs. 424–431, doi :10.1109/SYNASC.2013.62, ISBN 978-1-4799-3036-4, Número de identificación del sujeto  8150975
  7. ^ ab Menychtas, Andreas; Konstanteli, Kleopatra; Alonso, Juncal; Orue-Echevarria, Leire; Gorronogoitia, Jesus; Kousiouris, George; Santzaridou, Christina; Bruneliere, Hugo; Pellens, Bram; Stuer, Peter; Strauss, Oliver; Senkova, Tatiana; Varvarigou, Theodora (2014), "Modernización de software y cloudificación utilizando la metodología y el marco de migración ARTIST", Scalable Computing: Practice and Experience , 15 (2), CiteSeerX 10.1.1.675.6225 , doi : 10.12694/scpe.v15i2.980 
  8. ^ El proyecto de investigación ARTIST
  9. ^ Ian Warren; Jane Ransom (2002). "Renacimiento: un método para apoyar la evolución de los sistemas de software". 26.ª Conferencia anual internacional sobre software y aplicaciones informáticas . pp. 415–420. CiteSeerX 10.1.1.137.7362 . doi :10.1109/CMPSAC.2002.1045037. ISBN.  978-0-7695-1727-8. Número de identificación del sujeto  16563177.
  10. ^ Izzet Sahin; Fatemeh 'Mariam' Zahedi (2001). "Análisis de políticas para garantía, mantenimiento y actualización de sistemas de software". Revista de mantenimiento de software: investigación y práctica . 13 (6): 469–493. doi :10.1002/smr.242.
  11. ^ Jussi Koskinen; Jarmo Ahonen; Heikki Lintinen; henna sívula; Tero Tilus. "Estimación del valor empresarial de las modernizaciones de software". {{cite journal}}: Requiere citar revista |journal=( ayuda )
  12. ^ "Migración de VB6. ¿Por qué comprometer la seguridad de los datos cuando se puede migrar a plataformas más modernas?".
  13. ^ Lewis, G.; Morris, E.; Smith, D.; O'Brien, L. (2005). "Técnica de reutilización y migración orientada a servicios (SMART)". 13.º Taller internacional IEEE sobre tecnología de software y práctica de ingeniería (STEP'05) . págs. 222–229. doi :10.1109/step.2005.24. hdl :10344/2208. ISBN 0-7695-2639-X.S2CID18912663  .​
  14. ^ Lewis, Grace A.; Plakosh, Daniel; Seacord, Robert C. (2003). Modernización de sistemas heredados: tecnologías de software, procesos de ingeniería y prácticas comerciales. Addison-Wesley Professional. págs. 27–37. ISBN 0321118847.
  15. ^ Mobilize.Net. "Una vía rápida hacia la modernización del software | Mobilize.Net". www.mobilize.net . Consultado el 19 de marzo de 2021 .
  16. ^ Andrea De Lucia; Eugenio Pompella y Silvio Stefanucci (julio de 2002). "Estimación del esfuerzo para el mantenimiento correctivo del software" (PDF) . Actas de la 14.ª conferencia internacional sobre ingeniería del software e ingeniería del conocimiento - SEKE '02 . SEKE '02 Ischia, Italia. pág. 409. doi :10.1145/568760.568831. ISBN 978-1581135565.S2CID10627249  .​{{cite book}}: CS1 maint: location (link) CS1 maint: location missing publisher (link)
  17. ^ De Lucia, A.; Fasolino, AR; Pompelle, E. (2001). "Un marco de trabajo de toma de decisiones para la gestión de sistemas heredados". Actas de la Conferencia Internacional IEEE sobre Mantenimiento de Software. ICSM 2001. págs. 642–651. doi :10.1109/ICSM.2001.972781. ISBN 0-7695-1189-9. Número de identificación del sujeto  32184332.
  18. ^ Koskinen, Jussi; Lintinen, Heikki; sívula, henna; Tilus, Tero. "Evaluación de métodos de estimación de modernización de software utilizando NIMSAD Meta Framework". Publicaciones del Instituto de Investigaciones en Tecnologías de la Información . CiteSeerX 10.1.1.106.2633 . 
  19. ^ Santhosh G. Ramakrishna; VV (mayo de 2007). "Modernización del legado logístico" (PDF) . Infosys Technologies Limited.
  20. ^ C. Ghezzi (2018). "Apoyando la evolución confiable". En Gruhn, Volker; Striemer, Rüdiger (eds.). La esencia de la ingeniería de software. págs. 32-33. doi :10.1007/978-3-319-73897-0. ISBN 978-3-319-73897-0.S2CID 49187426  .
  21. ^ "Modernización de mainframe en pocas palabras". Centro de modernización . Consultado el 23 de agosto de 2017 .
  22. ^ Serie, AS (ISO 9001:2008). Modernización de sistemas heredados: transformación hacia una empresa ágil. Documento técnico sobre modernización de sistemas heredados
  23. ^ SearchCIO.com
  24. ^ SK Mishra; DS Kushwaha; AK Misra (julio-agosto de 2009). "Creación de componentes de software reutilizables a partir de un sistema heredado orientado a objetos mediante ingeniería inversa". The Journal of Object Technology . 8 (5): 133–152. doi : 10.5381/jot.2009.8.5.a3 .
  25. ^ Moltke, H. v. (miércoles, 22 de enero de 2003, 21:55). Modernización con gestión de riesgos. Jawaharlal Nehru, Discurso ante el Parlamento de Nueva Delhi,: Seacord.book.