Reingeniería de software
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 25 de septiembre de 2015; las comprobaciones requieren
5 ediciones .
La reingeniería de software es el proceso de crear una nueva funcionalidad o corregir errores haciendo un cambio revolucionario, pero usando software que ya está en uso . El proceso de reingeniería es descrito por Chikowski y Cross en su artículo de 1990, [1] como "El examen y alteración de un sistema para reconstituirlo en una nueva forma". En términos menos formales, la reingeniería es la modificación de un sistema de software después de haber sido sometido a ingeniería inversa .
Complejidad de la reingeniería
Por regla general, se afirma que "es más fácil desarrollar un nuevo producto de software". Esto se debe a los siguientes problemas:
- la reingeniería, en la mayoría de los casos, es más costosa que el desarrollo de nuevo software , ya que se requiere eliminar las limitaciones de las versiones anteriores, manteniendo la compatibilidad con ellas ;
- la reingeniería no puede ser realizada por un programador de calificaciones bajas y medias, incluso los profesionales a menudo no pueden implementarla de manera de calidad, por lo tanto, se requiere el trabajo de programadores con amplia experiencia en la reelaboración de programas y conocimiento de diversas tecnologías .[ especificar ] ;
- puede ser difícil para un desarrollador comprender el código fuente de otra persona ; esto lo obliga a adaptarse a la percepción de un estilo de programación desconocido, dedica tiempo a un análisis exhaustivo y domina los conceptos implementados en el proyecto, las bibliotecas de terceros utilizadas en él , requiere explorar escrupulosamente el principio de funcionamiento de todas las secciones de código mal documentadas, y todo esto solo complica el proceso de transición del producto a nuevas soluciones arquitectónicas ;
- además, la naturaleza misma de la actividad requiere una motivación adicional : en comparación con la creación de nuevos productos, el procesamiento de los existentes no siempre brinda los mismos resultados visuales e impresionantes, a menudo reduce la carga de la deuda técnica y deja poco espacio. para la autoexpresión profesional.
Al mismo tiempo, si el programa inicialmente tenía una arquitectura clara y estricta, entonces la reingeniería será mucho más fácil. Por lo tanto, al diseñar, por regla general, se analiza qué será más rentable: comenzar a procesar los materiales del proyecto anterior o desarrollar un producto de software similar desde cero.
Véase también
Notas
- ↑ Chikofsky, E. y Cross, J. 7(1) // = Ingeniería inversa y recuperación del diseño: una taxonomía. - Software IEEE, 1990. - Pág. 13-18.
Enlaces