IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
Reingeniería
1. MAECENAS SED
DIAM EGET RISUS
VARIUS BLANDIT
SIT AMET NON.
AENEAN LAC
BIBENDUM NULLA
CONSECTETUR.
INGENIERÍA DE SOFTWARE
LOREM IPSUM
DOLOR AMET,
CONSECTETUR
ADIPISCI ELIT.
CRAS JUSTO
ODIO, DAPIBUS
AC FACILISIS IN,
EGESTAS EGET
QUAM.
REINGENIERÍA
MAECENAS
FAUCIBUS MOLLIS
INTERDUM.
ETIAM PORTA
MALESUADA
MAGNA MOLLIS
EUISMOD.
2. MAECENAS SED
DIAM EGET RISUS
VARIUS BLANDIT
SIT AMET NON.
LA REINGENIERÍA ES EL REDISEÑO DE UN PROCESO EN UN
NEGOCIO O UN CAMBIO DRÁSTICO, ES COMENZAR DE CERO, ES
UN CAMBIO DE TODO O NADA, ADEMÁS ORDENA A LA EMPRESA
AENEAN LAC
BIBENDUM NULLA
CONSECTETUR.
ALREDEDOR DE LOS PROCESOS. PARA QUE UNA EMPRESA
ADOPTE EL CONCEPTO DE REINGENIERÍA, TIENE QUE SER
CAPAZ DE DESHACERSE DE LAS REGLAS Y POLÍTICAS
LOREM IPSUM
DOLOR AMET,
CONSECTETUR
ADIPISCI ELIT.
REINGENIERÍA
CRAS JUSTO
ODIO, DAPIBUS
AC FACILISIS IN,
EGESTAS EGET
QUAM.
MAECENAS
FAUCIBUS MOLLIS
INTERDUM.
ETIAM PORTA
MALESUADA
MAGNA MOLLIS
CONVENCIONALES EUISMOD.
QUE APLICABA CON ANTERIORIDAD Y ESTAR
ABIERTA A LOS CAMBIOS POR MEDIO DE LOS CUALES SUS
3. ANÁLISIS DE
INVENTARIOS
INGENIERÍA
AVANZADA
REESTRUCTURACI
ÓN DE LOS
DATOS
REESTRUCTURACI
ÓN DE
DOCUMENTOS
INGENIERÍA
INVERSA
REESTRUCTURACI
ÓN DEL CÓDIGO
Las organizaciones de software deberían tener un
inventario de todas sus aplicaciones. El inventario
tal vez no sea más que un modelo en una hoja de
cálculo que contenga información que proporcione
una descripción detallada (tamaño, edad,
importancia para el negocio) de las aplicaciones
activas. Es importante señalar que el inventario
deberá visitarse con regularidad, el estado de las
aplicaciones puede cambiar en función del tiempo
y, como resultado, cambiaran las prioridades para
la reingeniería.
4. ANÁLISIS DE
INVENTARIOS
INGENIERÍA
AVANZADA
REESTRUCTURACI
ÓN DE LOS
DATOS
REESTRUCTURACI
ÓN DE
DOCUMENTOS
INGENIERÍA
INVERSA
REESTRUCTURACI
ÓN DEL CÓDIGO
La documentación débil es la marca de muchos
sistemas heredados. ¿Pero que se hace acerca de
ello? ¿Cuáles son las opciones?.
1. Crear documentación consume mucho tiempo, si
el sistema funciona vivirá con lo que tenga. No
es posible recrear documentación para cientos
de programa de computadora. Si un programa
es relativamente estático está llegando al final
de su vida útil, por lo que es improbable que
experimente un cambio significativo.
5. ANÁLISIS DE
INVENTARIOS
INGENIERÍA
AVANZADA
REESTRUCTURACI
ÓN DE LOS
DATOS
REESTRUCTURACI
ÓN DE
DOCUMENTOS
INGENIERÍA
INVERSA
REESTRUCTURACI
ÓN DEL CÓDIGO
2. La documentación debe actualizarse pero se
tiene recursos limitados. Se utilizara un enfoque
de “documentar cuando se toque”. Tal vez sea
innecesario volver a documentar por completo la
aplicación. En cambio, se documentan
completamente aquellas porciones del sistema
que en la actualidad experimentan cambios. Con
el tiempo evolucionará una colección de
documentación útil y relevante.
6. ANÁLISIS DE
INVENTARIOS
INGENIERÍA
AVANZADA
REESTRUCTURACI
ÓN DE LOS
DATOS
REESTRUCTURACI
ÓN DE
DOCUMENTOS
INGENIERÍA
INVERSA
REESTRUCTURACI
ÓN DEL CÓDIGO
3. El sistema es crucial para el negocio y debe
volver a documentarse por completo. Incluso en
este caso un enfoque inteligente es recortar la
documentación a un mínimo esencial.
Cada una de estas opciones es viable. Una
organización de software debe elegir la más
apropiada para cada caso.
7. ANÁLISIS DE
INVENTARIOS
INGENIERÍA
AVANZADA
REESTRUCTURACI
ÓN DE LOS
DATOS
REESTRUCTURACI
ÓN DE
DOCUMENTOS
INGENIERÍA
INVERSA
REESTRUCTURACI
ÓN DEL CÓDIGO
Es el proceso de analizar un programa con la
finalidad de crear una representación del programa
en un mayor grado de abstracción que el código
fuente. La ingeniería inversa es un proceso de
recuperación de diseño. Las herramientas de la
ingeniería inversa obtienen información del diseño
de datos, arquitectónico y de procedimientos a
partir de un programa existente.
8. ANÁLISIS DE
INVENTARIOS
INGENIERÍA
AVANZADA
REESTRUCTURACI
ÓN DE LOS
DATOS
REESTRUCTURACI
ÓN DE
DOCUMENTOS
INGENIERÍA
INVERSA
REESTRUCTURACI
ÓN DEL CÓDIGO
El tipo más común de reingeniería es la
reestructuración de código, se lo puede hacer con
módulos individuales que se codifican de una
manera que dificultan comprenderlos, probarlos y
mantenerlos. Llevar a cabo esta actividad requiere
analizar el código fuente empleando una
herramienta de reestructuración. Se indican las
violaciones de las estructuras de programación
estructurada y entonces el código se reestructura.
El código reestructurado resultante se revisa y
prueba para garantizar que no se han introducido
anormalidades. La documentación del código
interno se actualiza.
9. ANÁLISIS DE
INVENTARIOS
INGENIERÍA
AVANZADA
REESTRUCTURACI
ÓN DE LOS
DATOS
REESTRUCTURACI
ÓN DE
DOCUMENTOS
INGENIERÍA
INVERSA
REESTRUCTURACI
ÓN DEL CÓDIGO
La reestructuración de datos es una actividad de
reingeniería a gran escala. En la mayoría de los
casos, la reestructuración de datos comienza con
una actividad de ingeniería inversa. La arquitectura
de datos actual se analiza con minuciosidad y se
define los modelos de datos necesarios, se
identifican los objetivos de datos y los atributo, y
después se revisa la calidad de las estructuras de
datos existentes.
Cuando la estructura de datos es débil, los datos se
someten a reingeniería.
Puesto que la arquitectura de datos tiene una fuerte
influencia sobre la arquitectura del programa y los
algoritmos que lo prueban, los cambios a los datos
invariablemente resultarán en cambios
arquitectónicos o al nivel de código.
10. ANÁLISIS DE
INVENTARIOS
INGENIERÍA
AVANZADA
REESTRUCTURACI
ÓN DE LOS
DATOS
REESTRUCTURACI
ÓN DE
DOCUMENTOS
INGENIERÍA
INVERSA
REESTRUCTURACI
ÓN DEL CÓDIGO
La ingeniería avanzada, también llamada
renovación o reclamación, no solo recupera la
información de diseño a partir del software
existente, también utiliza esta información para
alterar o reconstruir el sistema existente con la
finalidad de mejorar su calidad global. En la
mayoría de los casos el software sometido a
reingeniería vuelve a implementar la función del
sistema existente y también añade nuevas
funciones o mejora el desempeño global.
11. Características:
• Defina las metas del negocio.
• Identifica y evalúa los procesos vigentes del negocio.
• Crea procesos de negocios renovados que cumplen mejor las metas actuales.
• La finalidad de la reingeniería es crear versiones de programas existentes que
muestren mayor calidad y mejor facilidad de mantenimiento.
• Se produce una diversidad de productos de trabajo de reingeniería (por ejemplo,
modelos de análisis, modelos de diseños, procesamientos de prueba).
12. Ventajas:
• El ser humano esta "integrado" con las herramientas automatizadas para crear un
proceso de ingeniería inversa efectivo.
• Entrega código bien documentado.
• Es aplicable a grandes proyectos.
• Facilita el mantenimiento del software.
• Entrega software de buena calidad.
13. Desventajas:
• Se requiere de personal con un nivel de abstracción tan alto para poder aplicar el
proceso de ingeniería inversa.
• Suele ofrecer poca visión de los conflictos de interoperabilidad entre las
aplicaciones dentro del sistema.
• Requiere de mucho tiempo, puede llegar a durar años.
• Cuesta cantidades significativas de dinero y absorbe recursos que de otro modo se
ocuparían en problemas inmediatos.
14. Aplicación:
• Cuando una aplicación de cierto sistema ha funcionado durante varios años, y el
paso del tiempo se ha vuelto inestable debido a las correcciones, adaptaciones y
mejoras que se le realizaron.
• Es aplicable cuando alguna de las partes de un gran sistema requiere
mantenimiento frecuente.
• Cuando los cambios en el sistema se hacen mayormente sobre una parte de un
sistema, entonces dicha parte puede ser objeto de reingeniería.
• Cuando el soporte hardware o software se queda obsoleto.
• Cuando se dispone de herramientas automáticas para reestructurar el sistema.
15. PRIMERA FUENTE:
Pressman , R. (2014). INGENIERÍA DE SOFTWARE Un enfoque práctico (Sexta ed.,
Vol., pp. 902-917). McGrawHill.
16. REINGENIERÍA:
En una compañía los programas pueden haber sido optimizados originalmente para
su rendimiento o utilización de la memoria a expensas de su comprensibilidad o, a lo
largo del tiempo, la estructura inicial del programa puede haberse corrompido por la
serie de cambios.
Para simplificar los problemas de cambiar sus sistemas heredados, una compañía
puede decidir hacer reingeniería sobre esos sistemas para mejorar su estructura y
comprensibilidad. La reingeniería de software se refiere a la reimplementación de los
sistemas heredados para hacerlos mas mantenibles. La reingeniería puede implicar
re-documentar el sistema, organizar y reestructurar el sistema, traducir el sistema a
un lenguaje de programación mas moderno y modificar y actualizar la estructura y
valores de los datos del sistema.
17. REINGENIERÍA:
La distinción crítica entre reingeniería y nuevo desarrollo de software es el punto de
partida del desarrollo. En lugar de empezar con una especificación escrita, el sistema
antiguo actúa como un especificación para el nuevo sistema.
Especificación del
sistema
Diseño e
implementación
Sistema nuevo
Sistema de software
existente
Comprensión y
transformación
Sistema con
reingeniería
Ingeniería directa
Reingeniería de software
18. Etapas:
La entrada del proceso es un programa heredado y la salida es una versión
modularizada y estructurada del mismo programa. Durante la reingeniería del
programa, los datos del sistema también sufren reingeniería. Las actividades de este
proceso de reingeniería son:
1. Traducción del código fuente: El programa es convertido desde un lenguaje de
programación a una versión más moderna del mismo lenguaje o a un lenguaje
diferente.
2. Ingeniería inversa: El programa se analiza y se extrae información a partir de él.
Esto ayuda a documentar su organización y funcionalidad.
3. Mejora de la estructura de los programas: La estructura de control del
programa se analiza y modifica para hacerla más fácil de leer y comprender.
19. Etapas:
4. Modularización de los programas: Se agrupan las partes relacionadas del
programa y se elimina la redundancia en donde resulta adecuado. En algunos
casos, esta etapa puede implicar una transformación arquitectónica en la que un
sistema centralizado pensado para una única computadora se modifica para
ejecutarse sobre una plataforma distribuida.
5. Ingeniería inversa: Los datos procesados por el programa se cambian para
reflejar los cambios en él.
20. Ingeniería
inversa
Mejora de la
estructura del
programa
Traducción del
código fuente
Modularización
del programa
Reingeniería de
datos
Programa original
Documentación
del programa
Programa
estructurado
Programa
modularizado
Datos originales
Datos con
reingeniería
El proceso de reingeniería
21. Características:
• Define las metas del negocio.
• Identifica y evalúa los procesos vigentes del negocio.
• Crea procesos de negocios renovados que cumplen mejor las metas actuales.
• La finalidad de la reingeniería es crear versiones de programas existentes que
muestren mayor calidad y mejor facilidad de mantenimiento.
• Se produce una diversidad de productos de trabajo de reingeniería (por ejemplo,
modelos de análisis, modelos de diseños, procesamientos de prueba).
22. Ventajas:
❖ Hacer reingeniería de un sistema de software tiene dos ventajas clave sobre
aproximaciones más radicales a la evolución del sistema:
• Riesgo reducido: Existe un alto riesgo en volver a desarrollar software crítico para
los negocios. Los retrasos en la introducción del nuevo software pueden significar
perdidas en el negocio e incurrir a costos adicionales.
• Coste reducido: El coste de hace reingeniería es significativamente menor que el
coste de desarrollar el nuevo software. No obstante se presume que, con la
tecnología moderna del software, el coste relativo de la reimplementación
probablemente sea menor, pero aun así supera de forma considerable los costes
de la reingeniería.
23. Desventajas:
• La reingeniería como parte de una migración arquitectónica, es la opción más cara.
• Se necesita de personal experto en las etapas de la reingeniería.
• La desventaja principal de la reingeniería del software es que existen límites
prácticos a la extensión del sistema que puede ser mejorada mediante reingeniería.
• Aunque la reingeniería puede mejorar la mantenibilidad, el sistema al que se va a
aplicar reingeniería probablemente no será tan mantenible como un nuevo sistema
desarrollado utilizando métodos modernos de ingeniería del software.
24. Aplicación:
• Si ocurre un defecto serio en el sistema que tenga que ser reparado para permitir la
continuación del funcionamiento normal.
• Si los cambios en el entorno del sistema operativo tienen efectos inesperados que
impiden el funcionamiento normal.
• Si hay cambios no anticipados en las empresas que utilizan el sistema, tales como
la aparición de nuevos competidores o la introducción de una nueva legislación.
• En sistemas donde se busca mejorar su estructura y comprensibilidad
25. SEGUNDA FUENTE:
Sommerville , I. (2005). INGENIERÍA DE SOFTWARE (Séptima ed., Vol. 1, pp. 458-
461). Madrid: Pearson.