Diferencia entre ingeniería avanzada e ingeniería inversa
Contenido
- Cuadro comparativo
- Definición de ingeniería avanzada
- Definición de ingeniería inversa
- Relación entre ingeniería avanzada e ingeniería inversa
- Conclusión
La ingeniería directa y la ingeniería inversa son parte del proceso de reingeniería y están estrechamente relacionadas. La diferencia crucial entre la ingeniería avanzada y la ingeniería inversa es que la ingeniería avanzada emplea el cambio en el sistema sujeto durante la reestructuración. Por el contrario, el único propósito de la ingeniería inversa es examinar el sistema para obtener su diseño más abstracto.
La reingeniería de software no es más que la reimplementación del sistema heredado para lograr una mayor sostenibilidad. La evolución del sistema requiere la asimilación del sistema existente que debe modificarse para que el sistema pueda modificarse mediante la implementación de los cambios.
-
- Cuadro comparativo
- Definición
- Diferencias clave
- Conclusión
Cuadro comparativo
Bases para la comparación | Ingeniería Adelante | Ingeniería inversa |
---|---|---|
Básico | Desarrollo de la aplicación con los requisitos previstos. | Los requisitos se deducen de la solicitud dada. |
Certeza | Siempre produce una aplicación que implementa los requisitos. | Uno puede dar varias ideas sobre el requisito de una implementación. |
Naturaleza | Preceptivo | Adaptado |
Habilidades necesarias | Alta capacidad | Experiencia de bajo nivel |
Tiempo requerido | Más | Menos |
Exactitud | El modelo debe ser preciso y completo. | El modelo inexacto también puede proporcionar información parcial. |
Definición de ingeniería avanzada
Ingeniería avanzada es un proceso de construcción de una aplicación con la ayuda de los requisitos generales de la implementación final. Elliot J. Chikofsky y James H. Cross usaron el término "ingeniería avanzada" en su artículo en el año de 1990 y lo asociaron con el desarrollo convencional. Como se mencionó anteriormente, la técnica de evolución del sistema requiere una comprensión adecuada del software o programas existentes, entonces solo los nuevos cambios podrían introducirse e implementarse.
La ingeniería avanzada implica la construcción de un producto siguiendo las especificaciones generales, donde se analizan, reestructuran y regeneran las especificaciones del sistema anterior para obtener el producto de mejor calidad.
Los otros nombres utilizados para la ingeniería avanzada son "renovación y recuperación"Porque no solo recupera la información de diseño del software existente, sino que también utiliza esta información para crear un producto de calidad superior.
Definición de ingeniería inversa
Ingeniería inversa, como su nombre lo indica, es el proceso inverso de la ingeniería avanzada donde se analiza el sistema existente para producir la documentación del sistema existente. Inicialmente, la ingeniería inversa se implementa en hardware donde prevalece el ejercicio de descifrar diseños de los productos terminados.
Sin embargo, cuando se desarrolla una nueva aplicación, la ingeniería inversa está destinada a descubrir los componentes del sistema y su relación. El código de software existente se analiza en ciertos niveles de abstracción: sistema, componente, programa, declaración y patrón.
Esta recuperación de datos, arquitectura, información de diseño de procedimientos se logra para construir una representación del programa considerando el mayor nivel de abstracción en relación con el código fuente.
- La ingeniería avanzada comienza con la especificación del sistema e incluye el diseño y la implementación del sistema en desarrollo. Por el contrario, el paso inicial en ingeniería inversa comienza con el sistema existente y la técnica de desarrollo para el reemplazo se basa en la interpretación.
- Siempre es seguro generar un subproducto de la ingeniería avanzada, pero en el caso de la ingeniería inversa, se generan varias ideas sobre el requisito que no necesariamente genera un producto.
- La ingeniería avanzada es de naturaleza prescriptiva en la que los desarrolladores deben seguir reglas particulares para obtener los resultados adecuados. Por otro lado, la ingeniería inversa es adaptativa donde el ingeniero tiene que descubrir lo que realmente hizo el desarrollador.
- La ingeniería avanzada consume más tiempo en comparación con la ingeniería inversa.
- El producto final de la ingeniería avanzada debe ser completo y exacto. Por el contrario, el modelo de ingeniería inversa puede ser imperfecto, la información parcial recuperada sigue siendo útil.
Relación entre ingeniería avanzada e ingeniería inversa
Conclusión
La ingeniería avanzada implica la modificación en el sistema sujeto mientras que la ingeniería inversa solo analiza el sistema. Además, estos son los componentes del proceso de reingeniería.