- Código heredado
-
Legacy code o código heredado es código fuente relacionado con un sistema operativo o una tecnología de computación sin soporte técnico. El término también puede aplicarse a código insertado en software más moderno para integrar u ofrecer soporte a una función creada en el pasado; por ejemplo dar soporte a una interfaz en serie incluso aunque muchos sistemas modernos no tienen un puerto serial. También puede aplicarse el término en el caso en que se de soporte a formatos de archivo más antiguos, que pueden haberse programado con caracteres que no pertenecen a ASCII tales como EBCDIC.
Contenido
Características
En la práctica, la mayor parte del código tiene una dependencia en cierto grado de la plataforma (hardware) para el que ha sido creado, a no ser que el programador utilice un lenguaje de programación independiente de la plataforma (ej. Java) o se trata de componentes del software con tal nivel de abstracción que no dependen del hardware (especialmente aplicaciones). Cuando un fabricante actualiza una plataforma (o ésta se queda obsoleta), puede que el código ya no funcione sin modificaciones, es entonces cuando se habla de legacy code. Gran parte del trabajo de un ingeniero de software puede ser el tener que actualizar continuamente el código para evitar esto.
El término se usa normalmente para código fuente, pero también puede aplicarse a código ejecutable (executable) que no puede ejecutarse en versiones posteriores del sistema o que requiere de una capa de compatibilidad para ello. Un ejemplo puede ser una aplicación clásica de Macintosh que no funciona en Mac OS X, pero sí en el entrono clásico, o una aplicación Win16 en Windows XP usando la función Windows on Windows de XP.
Interpretaciones modernas
Recientemente la comunidad de ingeniería de software ha desarrollado otras interpretaciones para el término "código heredado" donde cabe destacar código fuente heredado de algún otro sitio y código fuente heredado de una versión antigua del software. La obra de Michael Feathers Working Effectively with Legacy Code (ISBN 0-13-117705-2), al español "Trabajando de forma efectiva con legacy code", introdujo una definición de legacy code cómo código sin testear, reseñando las dificultades de trabajar con "código heredado" por la falta de pruebas de regresión automatizadas.
Referencias
- Este artículo fue creado a partir de la traducción del artículo legacy code de la Wikipedia en inglés, concretamente de esta versión, bajo licencia Creative Commons Atribución Compartir Igual 3.0 y GFDL.
Véase también
Enlaces externos
Wikimedia foundation. 2010.