SlideShare uma empresa Scribd logo
1 de 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).

Mais conteúdo relacionado

Mais procurados

Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientosTensor
 
Modelamiento del Data Warehouse (caso práctico)
Modelamiento del Data Warehouse (caso práctico)Modelamiento del Data Warehouse (caso práctico)
Modelamiento del Data Warehouse (caso práctico)LPI ONG
 
Diagramas de Actividades
Diagramas de ActividadesDiagramas de Actividades
Diagramas de ActividadesLenin Vivanco
 
Modelo de sistema de informacion
Modelo de sistema de informacionModelo de sistema de informacion
Modelo de sistema de informaciongrupoinformaticauts
 
Estándares para el diseño de interfaz
Estándares para el diseño de interfazEstándares para el diseño de interfaz
Estándares para el diseño de interfazJose Luis Dorao
 
Administración de la memoria virtual.
Administración de la memoria virtual.Administración de la memoria virtual.
Administración de la memoria virtual.Lely
 
La política informática en méxico
La política informática en méxicoLa política informática en méxico
La política informática en méxicoBICHO9090
 
Analisis y-diseño-farmacia-ximena
Analisis y-diseño-farmacia-ximenaAnalisis y-diseño-farmacia-ximena
Analisis y-diseño-farmacia-ximenaMilton Siles
 
Implantación de sistemas
Implantación de sistemasImplantación de sistemas
Implantación de sistemasUNEFA
 
Unidad 1. caracterizacion de los sistemas distribuidos
Unidad 1.  caracterizacion de los sistemas distribuidosUnidad 1.  caracterizacion de los sistemas distribuidos
Unidad 1. caracterizacion de los sistemas distribuidosEManuel Torres
 
Unidad 5 marcos de referencia para la gestión de servicios de ti
Unidad 5 marcos de referencia para la gestión de servicios de tiUnidad 5 marcos de referencia para la gestión de servicios de ti
Unidad 5 marcos de referencia para la gestión de servicios de tiJessi Luna
 
Fase de implementación de sistemas de información
Fase de implementación de sistemas de informaciónFase de implementación de sistemas de información
Fase de implementación de sistemas de informaciónNAHAMA19
 

Mais procurados (20)

Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 
Aplicaciones de linea de negocio
Aplicaciones de linea de negocioAplicaciones de linea de negocio
Aplicaciones de linea de negocio
 
Modelamiento del Data Warehouse (caso práctico)
Modelamiento del Data Warehouse (caso práctico)Modelamiento del Data Warehouse (caso práctico)
Modelamiento del Data Warehouse (caso práctico)
 
Diagramas de Actividades
Diagramas de ActividadesDiagramas de Actividades
Diagramas de Actividades
 
Modelo de sistema de informacion
Modelo de sistema de informacionModelo de sistema de informacion
Modelo de sistema de informacion
 
Lenguaje de especificación
Lenguaje de especificaciónLenguaje de especificación
Lenguaje de especificación
 
Estándares para el diseño de interfaz
Estándares para el diseño de interfazEstándares para el diseño de interfaz
Estándares para el diseño de interfaz
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Administración de la memoria virtual.
Administración de la memoria virtual.Administración de la memoria virtual.
Administración de la memoria virtual.
 
La política informática en méxico
La política informática en méxicoLa política informática en méxico
La política informática en méxico
 
Arquitecturas de software
Arquitecturas de softwareArquitecturas de software
Arquitecturas de software
 
Analisis y-diseño-farmacia-ximena
Analisis y-diseño-farmacia-ximenaAnalisis y-diseño-farmacia-ximena
Analisis y-diseño-farmacia-ximena
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Implantación de sistemas
Implantación de sistemasImplantación de sistemas
Implantación de sistemas
 
Clases 30 05
Clases 30 05Clases 30 05
Clases 30 05
 
Unidad 1. caracterizacion de los sistemas distribuidos
Unidad 1.  caracterizacion de los sistemas distribuidosUnidad 1.  caracterizacion de los sistemas distribuidos
Unidad 1. caracterizacion de los sistemas distribuidos
 
Archivo Secuencial
Archivo SecuencialArchivo Secuencial
Archivo Secuencial
 
Diapositivas xp
Diapositivas xpDiapositivas xp
Diapositivas xp
 
Unidad 5 marcos de referencia para la gestión de servicios de ti
Unidad 5 marcos de referencia para la gestión de servicios de tiUnidad 5 marcos de referencia para la gestión de servicios de ti
Unidad 5 marcos de referencia para la gestión de servicios de ti
 
Fase de implementación de sistemas de información
Fase de implementación de sistemas de informaciónFase de implementación de sistemas de información
Fase de implementación de sistemas de información
 

Destaque

Mantenimiento De Software
Mantenimiento De SoftwareMantenimiento De Software
Mantenimiento De Softwarecharly13
 
Ingeniería Inversa: Mando teledirigido
Ingeniería Inversa: Mando teledirigido Ingeniería Inversa: Mando teledirigido
Ingeniería Inversa: Mando teledirigido Juanfritan
 
Ingeniería inversa
Ingeniería inversaIngeniería inversa
Ingeniería inversakarin0902
 
Proceso de fabricacion de juguetes
Proceso de fabricacion de juguetesProceso de fabricacion de juguetes
Proceso de fabricacion de juguetesMiguel Angel
 
Apuntes diagramas y manuales
Apuntes diagramas y manualesApuntes diagramas y manuales
Apuntes diagramas y manualesEdison Dominguez
 
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 productoDiseño e Ingeniería
 

Destaque (13)

Mantenimiento De Software
Mantenimiento De SoftwareMantenimiento De Software
Mantenimiento De Software
 
Reingeniería
ReingenieríaReingeniería
Reingeniería
 
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
 
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
 

Semelhante a Reingenieria inversa

Topicos de ingeniería de software
Topicos de ingeniería de softwareTopicos de ingeniería de software
Topicos de ingeniería de softwareAlex Hurtado
 
metodologias de desarrollo.ppt
metodologias de desarrollo.pptmetodologias de desarrollo.ppt
metodologias de desarrollo.pptCristianFlasher1
 
Reingeniería
Reingeniería Reingeniería
Reingeniería one_ramos
 
Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Vanessa Toral Yépez
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9naviwz
 
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 sistemasMario J Arrieta
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de SoftwareCARMEN
 
Construcción unidad completa yanelkys reyes
Construcción unidad completa yanelkys reyesConstrucción unidad completa yanelkys reyes
Construcción unidad completa yanelkys reyesyanelkysr
 
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 sistemasMario J Arrieta
 
Presentaciã³n1adsi
Presentaciã³n1adsiPresentaciã³n1adsi
Presentaciã³n1adsiOsoriio Vm
 
8 creacion de sistemas de informacion
8 creacion de sistemas de informacion8 creacion de sistemas de informacion
8 creacion de sistemas de informacionAbelAbedSilvaSantaCr
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de siaAntonio Atenas
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de siaAntonio Atenas
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de siaAntonio Atenas
 

Semelhante a 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
 

Último

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Último (15)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.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).