SlideShare ist ein Scribd-Unternehmen logo
1 von 24
INTROCUCIONINTROCUCION
¿Qué es?   Es el proceso de reconstrucción del
software, crear un producto con una mejor
funcionalidad, mejor desempeño y fiabilidad, así
como una mejor facilidad de mantenimiento.
¿Quién la hace?   En el ámbito de las
organizaciones, la reingeniería la llevan a cabo
especialistas en negocios. En nuestro ámbito lo
realizan los ingenieros de software.
 
INTROCUCIONINTROCUCION
¿Por qué es importante?   Por que nos permite
mantenernos en el ritmo de las exigencias de las
nuevas tecnologías, por tal motivo el software
tendrá que rediseñarse para estar en ritmo.
¿Cuáles son los pasos?   El proceso de reingeniería
de software incluye análisis de inventarios,
reestructuración de documentos, ingeniería
inversa, reestructuración de programas y datos, e
ingeniería avanzada.  
INTROCUCIONINTROCUCION
¿Cuál es el producto obtenido? Se produce una
diversidad de productos de trabajo de reingeniería.
Ejemplo: Modelos de análisis, modelos de diseño,
procedimientos de prueba, entre otros.  
¿Cómo puedo estar seguro de que lo he hecho
correctamente?   Utilizando las mismas prácticas de
SQA que se aplican a cualquier proceso de ingeniería
del software: las revisiones técnicas formales evalúan
los modelos de análisis y de diseño; las revisiones
especializadas consideran la aplicabilidad y la
compatibilidad en el negocio; y las pruebas se aplican
para descubrir errores en contenido, funcionalidad e
interoperabilidad.
REINGENIERIA
DE SOFTWAREDE SOFTWARE
La reingeniería de software involucra diferentes
actividades como lo son: análisis de inventarios,
reestructuración de documentos, ingeniería
inversa, reestructuración de programas y datos, e
ingeniería directa; con la finalidad de crear
versiones de programas ya existentes que sean de
mejor calidad y los mismos tengan una mayor
facilidad de mantenimiento.
Analisis de inventarioAnalisis de inventario
• Todas 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.
• Los candidatos a la reingeniería aparecen cuando se ordena
esta información en función de su importancia para el
negocio, longevidad, mantenibilidad actual y otros criterios
localmente importantes.
• Es entonces cuando es posible asignar recursos a las
aplicaciones candidatas para el trabajo de reingeniería.
• Es importante señalar que el inventario deberá visitarse con
regularidad, el estado de las aplicaciones puede cambiar en
función del tiempo, como resultado, cambiarán las
prioridades para la reingeniería.
Restructuración deRestructuración de
documentosdocumentos
• La documentación débil es la marca de muchos
sistemas heredados.
• Pero que se hace acerca de ellos?
• Cuáles son las opciones?
• Crear documentación consume mucho tiempo, si el
sistema funciona vivirá con lo que tenga.
• La documentación debe actualizarse pero se tiene
recursos limitados.
• Se utiliza un enfoque de documentar cuando se toque.
• 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.
ING. INVERSAING. INVERSA
DefiniciónDefinición
«El análisis de un sistema para identificar sus componentes
actuales y las dependencias que existen entre ellos, para
extraer y crear abstracciones de dicho sistema informático
de sus diseño» [Chifofsky, 1990].
«El proceso de analizar el código, documentación y
comportamiento de un sistema para identificar sus
componentes actuales y sus dependencias para extraer y
crear una abstracción del sistema e información del
diseño. EL sistema en estudio no es alterado, si no que
produce conocimiento adicional acerca del sistema »
[SEI, 2004]
DefiniciónDefinición
La Ing. inversa tiene tiene la misión de desentrañar los
misterios y secretos de los sistemas en uso. Consiste
principalmente en recuperar el diseño de una
aplicación a partir del código.
Esto se realiza principalmente mediante herramientas
que extraen información de los datos, procedimientos
y arquitectura del sistema existente.
TiposTipos
• Ing. Inversa de datos.
Se usa para modificar una base de datos, para migrar
a un nuevo sistema de gestión de base de datos y
también para crear el modelo de datos del sistema
del software.
Toda esta información extraída son: entidades,
relaciones, atributos, etc. y se crean modelos de
datos, como por ejemplo: Diagramas E-R.
TiposTipos
Ing. inversa de lógica.
Se usa para entender mejor la aplicación y regenerar el
código. También para migrar la aplicación a un nuevo
sistema operativo. Además genera/complementa la
documentación y comprueba que el código cumple con
las especificaciones del diseño.
Toda la información extraída son las especificaciones de
diseño y se crean modelos de flujo de control, diagramas
de diseño, documentos de especificación de diseño, etc.
Cuando aplicar la Ing.Cuando aplicar la Ing.
inversainversa
 Documentación inexistente o totalmente obsoleta.
 Cuando se hace un cambio de lenguaje de
programación , sistema operativo , cuando no hay
especificaciones de diseño.
 Cuando no hay cumplimiento de las
especificaciones de diseño.
REESTRUCTURACIONREESTRUCTURACION
DEDE
CÓDIGOCÓDIGO
REESTRUCTURACION DE CÓDIGOREESTRUCTURACION DE CÓDIGO
La reestructuración del código se lleva a cabo para
conseguir un diseño que produzca la misma función
pero con mayor calidad que el programa original.
El objetivo es tomar el código de forma de "plato de
espaguetis" y derivar un diseño de procedimientos
que se ajuste a la filosofía de la programación
estructurada.
5 Reestructuración de5 Reestructuración de
datosdatos
• 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 identican los objetivos de datos y los
atributos, y después se revisa la calidad de las
estructuras de datos existentes.
6 Ingeniería directa6 Ingeniería directa
• La ingeniería directa, que se denomina también
renovación o reclamación, no solamente recupera
la información de diseño de un software ya
existente, sino que, además, utiliza esta información
para alterar o reconstruir el sistema existente en un
esfuerzo por mejorar su calidad global
Puntos a considerar:Puntos a considerar:
1. El coste de mantener una línea de código fuente
puede estar entre 20 y 40
veces por encima del coste del desarrollo inicial de
esa línea.
2. El rediseño de la arquitectura del software
empleando conceptos de diseño
modernos puede facilitar mucho el mantenimiento
futuro.
3. Dado que ya existe un prototipo de software, la
productividad de desarrollo
deberá ser mucho más elevada que la media
4. En la actualidad, el usuario ya tiene experiencia
con el software. Por lo
tanto, los nuevos requisitos y la dirección del cambio
se podrán estimarse
con mucha más facilidad.
5. Las herramientas CASE para la ingeniería
automatizarán algunas partes del
trabajo.
6. Cuando finalice el mantenimiento preventivo,
se dispondrá de una
configuración completa del software (documentos,
programas y datos).

Weitere ähnliche Inhalte

Was ist angesagt?

Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
sergio
 
Gestión de almacenamiento
Gestión de almacenamientoGestión de almacenamiento
Gestión de almacenamiento
AndreAcevedP
 
Distribuciones de Mac os X
Distribuciones de Mac os XDistribuciones de Mac os X
Distribuciones de Mac os X
Obed Isai
 
Los sistemas de información en los negocios globales contemporáneos
Los sistemas de información en los negocios globales contemporáneosLos sistemas de información en los negocios globales contemporáneos
Los sistemas de información en los negocios globales contemporáneos
marlon duarte
 

Was ist angesagt? (20)

Reingeniería
ReingenieríaReingeniería
Reingeniería
 
Análisis del juego Pacman
Análisis del juego PacmanAnálisis del juego Pacman
Análisis del juego Pacman
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
Sistema operativo windows
Sistema operativo windowsSistema operativo windows
Sistema operativo windows
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
 
Cuadro comparativo y linea del tiempo
Cuadro comparativo y linea del tiempoCuadro comparativo y linea del tiempo
Cuadro comparativo y linea del tiempo
 
Programas utilitarios - 2020
Programas utilitarios - 2020Programas utilitarios - 2020
Programas utilitarios - 2020
 
ANÁLISIS, DISEÑO Y DESARROLLO DE UN SISTEMA DE INFORMACIÓN PARA LA AGILIZACIÓ...
ANÁLISIS, DISEÑO Y DESARROLLO DE UN SISTEMA DE INFORMACIÓN PARA LA AGILIZACIÓ...ANÁLISIS, DISEÑO Y DESARROLLO DE UN SISTEMA DE INFORMACIÓN PARA LA AGILIZACIÓ...
ANÁLISIS, DISEÑO Y DESARROLLO DE UN SISTEMA DE INFORMACIÓN PARA LA AGILIZACIÓ...
 
Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo i
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
P.E.S.I..
P.E.S.I..P.E.S.I..
P.E.S.I..
 
Formulacion de proyectos informaticos
Formulacion de proyectos informaticosFormulacion de proyectos informaticos
Formulacion de proyectos informaticos
 
Sistemas de informacion gerencial
Sistemas de informacion gerencial Sistemas de informacion gerencial
Sistemas de informacion gerencial
 
Gestión de almacenamiento
Gestión de almacenamientoGestión de almacenamiento
Gestión de almacenamiento
 
Manual De Instalación De Windows 10.
Manual De Instalación De Windows 10.Manual De Instalación De Windows 10.
Manual De Instalación De Windows 10.
 
Mapa conceptual sistemas de informacion
Mapa conceptual sistemas de informacionMapa conceptual sistemas de informacion
Mapa conceptual sistemas de informacion
 
Distribuciones de Mac os X
Distribuciones de Mac os XDistribuciones de Mac os X
Distribuciones de Mac os X
 
Los sistemas de información en los negocios globales contemporáneos
Los sistemas de información en los negocios globales contemporáneosLos sistemas de información en los negocios globales contemporáneos
Los sistemas de información en los negocios globales contemporáneos
 

Andere mochten auch

Ingeniería inversa
Ingeniería inversaIngeniería inversa
Ingeniería inversa
karin0902
 
Proceso de fabricacion de juguetes
Proceso de fabricacion de juguetesProceso de fabricacion de juguetes
Proceso de fabricacion de juguetes
Miguel Angel
 

Andere mochten auch (13)

Mantenimiento De Software
Mantenimiento De SoftwareMantenimiento De Software
Mantenimiento De Software
 
Ingeniería Inversa: Mando teledirigido
Ingeniería Inversa: Mando teledirigido Ingeniería Inversa: Mando teledirigido
Ingeniería Inversa: Mando teledirigido
 
Ingenieria inversa
Ingenieria  inversaIngenieria  inversa
Ingenieria inversa
 
Unidad 2. Metodologías de Desarrollo
Unidad 2. Metodologías de DesarrolloUnidad 2. Metodologías de Desarrollo
Unidad 2. Metodologías de Desarrollo
 
Ingeniería inversa de sistemas de información
Ingeniería inversa de sistemas de informaciónIngeniería inversa de sistemas de información
Ingeniería inversa de sistemas de información
 
Ingeniería inversa
Ingeniería inversaIngeniería inversa
Ingeniería inversa
 
Proyecto de reingenieria de software
Proyecto de reingenieria  de softwareProyecto de reingenieria  de software
Proyecto de reingenieria de software
 
Reingenieria
ReingenieriaReingenieria
Reingenieria
 
Ingeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareIngeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de software
 
Proceso de fabricacion de juguetes
Proceso de fabricacion de juguetesProceso de fabricacion de juguetes
Proceso de fabricacion de juguetes
 
Reingenieria
ReingenieriaReingenieria
Reingenieria
 
Apuntes diagramas y manuales
Apuntes diagramas y manualesApuntes diagramas y manuales
Apuntes diagramas y manuales
 
Técnicas de ingeniería inversa para diseño producto
Técnicas de ingeniería inversa para diseño productoTécnicas de ingeniería inversa para diseño producto
Técnicas de ingeniería inversa para diseño producto
 

Ähnlich wie Reingenieria inversa

Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9
Vanessa Toral Yépez
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9
naviwz
 
Articulo análisis y diseño de sistemas
Articulo análisis y diseño de sistemasArticulo análisis y diseño de sistemas
Articulo análisis y diseño de sistemas
Mario J Arrieta
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de Software
CARMEN
 
Articulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemasArticulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemas
Mario J Arrieta
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
Antonio Atenas
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
Antonio Atenas
 

Ähnlich wie Reingenieria inversa (20)

Reingenieria
ReingenieriaReingenieria
Reingenieria
 
Topicos de ingeniería de software
Topicos de ingeniería de softwareTopicos de ingeniería de software
Topicos de ingeniería de software
 
metodologias de desarrollo.ppt
metodologias de desarrollo.pptmetodologias de desarrollo.ppt
metodologias de desarrollo.ppt
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9
 
Articulo análisis y diseño de sistemas
Articulo análisis y diseño de sistemasArticulo análisis y diseño de sistemas
Articulo análisis y diseño de sistemas
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de Software
 
Construcción unidad completa yanelkys reyes
Construcción unidad completa yanelkys reyesConstrucción unidad completa yanelkys reyes
Construcción unidad completa yanelkys reyes
 
Articulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemasArticulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemas
 
Presentaciã³n1adsi
Presentaciã³n1adsiPresentaciã³n1adsi
Presentaciã³n1adsi
 
Sistemas de información
Sistemas de informaciónSistemas de información
Sistemas de información
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
8 creacion de sistemas de informacion
8 creacion de sistemas de informacion8 creacion de sistemas de informacion
8 creacion de sistemas de informacion
 
Clase 11
Clase 11Clase 11
Clase 11
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
 

Kürzlich hochgeladen

Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
EdwinGarca59
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
ssusere34b451
 

Kürzlich hochgeladen (20)

Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blog
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
avancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayudaavancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayuda
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docx
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 

Reingenieria inversa

  • 1. INTROCUCIONINTROCUCION ¿Qué es?   Es el proceso de reconstrucción del software, crear un producto con una mejor funcionalidad, mejor desempeño y fiabilidad, así como una mejor facilidad de mantenimiento. ¿Quién la hace?   En el ámbito de las organizaciones, la reingeniería la llevan a cabo especialistas en negocios. En nuestro ámbito lo realizan los ingenieros de software.  
  • 2. INTROCUCIONINTROCUCION ¿Por qué es importante?   Por que nos permite mantenernos en el ritmo de las exigencias de las nuevas tecnologías, por tal motivo el software tendrá que rediseñarse para estar en ritmo. ¿Cuáles son los pasos?   El proceso de reingeniería de software incluye análisis de inventarios, reestructuración de documentos, ingeniería inversa, reestructuración de programas y datos, e ingeniería avanzada.  
  • 3. INTROCUCIONINTROCUCION ¿Cuál es el producto obtenido? Se produce una diversidad de productos de trabajo de reingeniería. Ejemplo: Modelos de análisis, modelos de diseño, procedimientos de prueba, entre otros.   ¿Cómo puedo estar seguro de que lo he hecho correctamente?   Utilizando las mismas prácticas de SQA que se aplican a cualquier proceso de ingeniería del software: las revisiones técnicas formales evalúan los modelos de análisis y de diseño; las revisiones especializadas consideran la aplicabilidad y la compatibilidad en el negocio; y las pruebas se aplican para descubrir errores en contenido, funcionalidad e interoperabilidad.
  • 4. REINGENIERIA DE SOFTWAREDE SOFTWARE La reingeniería de software involucra diferentes actividades como lo son: análisis de inventarios, reestructuración de documentos, ingeniería inversa, reestructuración de programas y datos, e ingeniería directa; con la finalidad de crear versiones de programas ya existentes que sean de mejor calidad y los mismos tengan una mayor facilidad de mantenimiento.
  • 5.
  • 7. • Todas 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. • Los candidatos a la reingeniería aparecen cuando se ordena esta información en función de su importancia para el negocio, longevidad, mantenibilidad actual y otros criterios localmente importantes. • Es entonces cuando es posible asignar recursos a las aplicaciones candidatas para el trabajo de reingeniería. • Es importante señalar que el inventario deberá visitarse con regularidad, el estado de las aplicaciones puede cambiar en función del tiempo, como resultado, cambiarán las prioridades para la reingeniería.
  • 9. • La documentación débil es la marca de muchos sistemas heredados.
  • 10. • Pero que se hace acerca de ellos? • Cuáles son las opciones?
  • 11. • Crear documentación consume mucho tiempo, si el sistema funciona vivirá con lo que tenga. • La documentación debe actualizarse pero se tiene recursos limitados. • Se utiliza un enfoque de documentar cuando se toque. • 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.
  • 13. DefiniciónDefinición «El análisis de un sistema para identificar sus componentes actuales y las dependencias que existen entre ellos, para extraer y crear abstracciones de dicho sistema informático de sus diseño» [Chifofsky, 1990]. «El proceso de analizar el código, documentación y comportamiento de un sistema para identificar sus componentes actuales y sus dependencias para extraer y crear una abstracción del sistema e información del diseño. EL sistema en estudio no es alterado, si no que produce conocimiento adicional acerca del sistema » [SEI, 2004]
  • 14. DefiniciónDefinición La Ing. inversa tiene tiene la misión de desentrañar los misterios y secretos de los sistemas en uso. Consiste principalmente en recuperar el diseño de una aplicación a partir del código. Esto se realiza principalmente mediante herramientas que extraen información de los datos, procedimientos y arquitectura del sistema existente.
  • 15.
  • 16. TiposTipos • Ing. Inversa de datos. Se usa para modificar una base de datos, para migrar a un nuevo sistema de gestión de base de datos y también para crear el modelo de datos del sistema del software. Toda esta información extraída son: entidades, relaciones, atributos, etc. y se crean modelos de datos, como por ejemplo: Diagramas E-R.
  • 17. TiposTipos Ing. inversa de lógica. Se usa para entender mejor la aplicación y regenerar el código. También para migrar la aplicación a un nuevo sistema operativo. Además genera/complementa la documentación y comprueba que el código cumple con las especificaciones del diseño. Toda la información extraída son las especificaciones de diseño y se crean modelos de flujo de control, diagramas de diseño, documentos de especificación de diseño, etc.
  • 18. Cuando aplicar la Ing.Cuando aplicar la Ing. inversainversa  Documentación inexistente o totalmente obsoleta.  Cuando se hace un cambio de lenguaje de programación , sistema operativo , cuando no hay especificaciones de diseño.  Cuando no hay cumplimiento de las especificaciones de diseño.
  • 20. REESTRUCTURACION DE CÓDIGOREESTRUCTURACION DE CÓDIGO La reestructuración del código se lleva a cabo para conseguir un diseño que produzca la misma función pero con mayor calidad que el programa original. El objetivo es tomar el código de forma de "plato de espaguetis" y derivar un diseño de procedimientos que se ajuste a la filosofía de la programación estructurada.
  • 21. 5 Reestructuración de5 Reestructuración de datosdatos • 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 identican los objetivos de datos y los atributos, y después se revisa la calidad de las estructuras de datos existentes.
  • 22. 6 Ingeniería directa6 Ingeniería directa • La ingeniería directa, que se denomina también renovación o reclamación, no solamente recupera la información de diseño de un software ya existente, sino que, además, utiliza esta información para alterar o reconstruir el sistema existente en un esfuerzo por mejorar su calidad global
  • 23. Puntos a considerar:Puntos a considerar: 1. El coste de mantener una línea de código fuente puede estar entre 20 y 40 veces por encima del coste del desarrollo inicial de esa línea. 2. El rediseño de la arquitectura del software empleando conceptos de diseño modernos puede facilitar mucho el mantenimiento futuro. 3. Dado que ya existe un prototipo de software, la productividad de desarrollo deberá ser mucho más elevada que la media
  • 24. 4. En la actualidad, el usuario ya tiene experiencia con el software. Por lo tanto, los nuevos requisitos y la dirección del cambio se podrán estimarse con mucha más facilidad. 5. Las herramientas CASE para la ingeniería automatizarán algunas partes del trabajo. 6. Cuando finalice el mantenimiento preventivo, se dispondrá de una configuración completa del software (documentos, programas y datos).