SlideShare una empresa de Scribd logo

Ingeniería inversa y reingeniería de software

Moises Medina
Moises Medina
Moises MedinaEstudiante en Universidad Central de Venezuela

Ingenieria Inversa y Reingenieria de Software

Ingeniería inversa y reingeniería de software

1 de 38
Descargar para leer sin conexión
República Bolivariana de Venezuela
    Gobierno del Distrito Metropolitano de Caracas
     Secretaría de Educación del Distrito Capital
              E. T. C. R “Juan España”
                  El Valle - Caracas




  Ingeniería Inversa y
Reingeniería de Software

                                Prof.: Ana Toro
                                Asignatura: Sistemas de información
                                Sección: 5 “A”
                                Autores: Moisés Aldana #09
                                           Norelys Delgado #10
                                          Moisés Medina #15
Contenido:
   Ingeniería Inversa
    * Beneficios de la Ingeniería Inversa
    * Tipos de Ingeniería Inversa
    * Herramientas para la Ingeniería Inversa
   Reingeniería de Software
    * Beneficios de la Reingeniería de Software
    * Pasos de la Reingeniería de Software
   Análisis y Diseño de Sistemas Orientados a Objetos
    * Principios del Análisis y Diseño de Sistemas Orientados a Objetos
     * Metodologías Orientadas al Análisis y Diseño de Sistemas Orientados a
    Objetos
   Programación Extrema
    * Valores de la Programación Extrema
Ingeniería Inversa

 No es generar códigos, sino que, el código fuente es
examinado, analizado y convertido en entidades para el
deposito. Su primer paso es cargar, en el conjunto de
herramientas el código de programas existen, según ese
conjunto de herramientas.
Beneficios de la Ingeniería
              Inversa
   Reducir la complejidad del sistema: al intentar comprender
    el software se facilita su mantenimiento y la complejidad
    existente disminuye.

   Generar diferentes alternativas: del punto de partida del
    proceso, principalmente código fuente, se generan
    representaciones gráficas lo que facilita su comprensión.
Beneficios de la Ingeniería
              Inversa

   Recuperar y/o actualizar la información perdida (cambios
    que no se documentaron en su momento): en la evolución
    del sistema se realizan cambios que no se suele actualizar en
    las representaciones de nivel de abstracción más alto, para lo
    cual se utiliza la recuperación de diseño.
Beneficios de la Ingeniería
              Inversa
   Detectar efectos laterales: los cambios que se puedan
    realizar en un sistema puede conducirnos a que surjan efectos
    no deseados, esta serie de anomalías puede ser detectados por
    la ingeniería inversa.

   Facilitar la reutilización: por medio de la ingeniería inversa
    se pueden detectar componentes de posible reutilización de
    sistemas existentes, pudiendo aumentar la productividad,
    reducir los costes y los riesgos de mantenimiento.
Publicidad

Más contenido relacionado

La actualidad más candente

Metodologias de diseño de bd
Metodologias de diseño de bdMetodologias de diseño de bd
Metodologias de diseño de bdArnold Ortiz
 
Metodologia Kendall y Kendall (1.997)
Metodologia Kendall y Kendall (1.997)Metodologia Kendall y Kendall (1.997)
Metodologia Kendall y Kendall (1.997)RobertoCaniza
 
Software De Gestion
Software De GestionSoftware De Gestion
Software De GestionPabloraton
 
Análisis de requerimientos
Análisis de requerimientosAnálisis de requerimientos
Análisis de requerimientosGustavo Araque
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASEdavidsande
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
Ingeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosIngeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosCesar Prado
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.Juan Ravi
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistemaIsrael Rey
 
Herramientas para llevar a cabo un Sistema de Información
Herramientas para llevar a cabo un Sistema de InformaciónHerramientas para llevar a cabo un Sistema de Información
Herramientas para llevar a cabo un Sistema de Informaciónjgbd127
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de softwareEdgardo Rojas
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAngel Reyes
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 

La actualidad más candente (20)

Metodologias de diseño de bd
Metodologias de diseño de bdMetodologias de diseño de bd
Metodologias de diseño de bd
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Metodologia Kendall y Kendall (1.997)
Metodologia Kendall y Kendall (1.997)Metodologia Kendall y Kendall (1.997)
Metodologia Kendall y Kendall (1.997)
 
Software De Gestion
Software De GestionSoftware De Gestion
Software De Gestion
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Lenguaje unificado de modelado
Lenguaje unificado de modeladoLenguaje unificado de modelado
Lenguaje unificado de modelado
 
Tipos de-pruebas
Tipos de-pruebasTipos de-pruebas
Tipos de-pruebas
 
Análisis de requerimientos
Análisis de requerimientosAnálisis de requerimientos
Análisis de requerimientos
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASE
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Ingeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosIngeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientos
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistema
 
Herramientas para llevar a cabo un Sistema de Información
Herramientas para llevar a cabo un Sistema de InformaciónHerramientas para llevar a cabo un Sistema de Información
Herramientas para llevar a cabo un Sistema de Información
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de software
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de software
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 

Destacado

PROCESOS DE INGENIERIA DEL SW
PROCESOS DE INGENIERIA DEL SWPROCESOS DE INGENIERIA DEL SW
PROCESOS DE INGENIERIA DEL SWRaquel Solano
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 
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 softwaresergio
 
El ciclo de vida del desarrollo de los sistemas de información
El ciclo de vida del desarrollo de los sistemas de informaciónEl ciclo de vida del desarrollo de los sistemas de información
El ciclo de vida del desarrollo de los sistemas de informaciónJose Daniel Pacheco Mejia
 
Etapas de Desarrollo Software
Etapas de Desarrollo SoftwareEtapas de Desarrollo Software
Etapas de Desarrollo SoftwareDaniel Román
 

Destacado (8)

Proyecto de reingenieria de software
Proyecto de reingenieria  de softwareProyecto de reingenieria  de software
Proyecto de reingenieria de software
 
La monografía
La monografíaLa monografía
La monografía
 
PROCESOS DE INGENIERIA DEL SW
PROCESOS DE INGENIERIA DEL SWPROCESOS DE INGENIERIA DEL SW
PROCESOS DE INGENIERIA DEL SW
 
Mo Pro Soft
Mo Pro SoftMo Pro Soft
Mo Pro Soft
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
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
 
El ciclo de vida del desarrollo de los sistemas de información
El ciclo de vida del desarrollo de los sistemas de informaciónEl ciclo de vida del desarrollo de los sistemas de información
El ciclo de vida del desarrollo de los sistemas de información
 
Etapas de Desarrollo Software
Etapas de Desarrollo SoftwareEtapas de Desarrollo Software
Etapas de Desarrollo Software
 

Similar a Ingeniería inversa y reingeniería de software

Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de SoftwareCARMEN
 
Topicos de ingeniería de software
Topicos de ingeniería de softwareTopicos de ingeniería de software
Topicos de ingeniería de softwareAlex Hurtado
 
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1Jose Garcia
 
Ingeniería inversa
Ingeniería inversaIngeniería inversa
Ingeniería inversakarin0902
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software jevo1994
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1preciadoag
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 
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
 
El producto y el proceso
El producto y el procesoEl producto y el proceso
El producto y el procesojenmer
 
software
softwaresoftware
softwarealkosto
 

Similar a Ingeniería inversa y reingeniería de software (20)

Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de Software
 
Proyect
ProyectProyect
Proyect
 
Topicos de ingeniería de software
Topicos de ingeniería de softwareTopicos de ingeniería de software
Topicos de ingeniería de software
 
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
 
Ingeniería inversa
Ingeniería inversaIngeniería inversa
Ingeniería inversa
 
Ingeniería inversa
Ingeniería inversaIngeniería inversa
Ingeniería inversa
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
 
Tareasemana1
Tareasemana1Tareasemana1
Tareasemana1
 
Omar,luis,daniel
Omar,luis,danielOmar,luis,daniel
Omar,luis,daniel
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
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
 
El producto y el proceso
El producto y el procesoEl producto y el proceso
El producto y el proceso
 
Presentación case
Presentación casePresentación case
Presentación case
 
Conceptos
ConceptosConceptos
Conceptos
 
Diapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napaDiapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napa
 
software
softwaresoftware
software
 
Tema Introducción IS
Tema Introducción ISTema Introducción IS
Tema Introducción IS
 

Último

Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"DannyErazo5
 
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...DannyErazo5
 
Práctica 2. Uso de Marcadores Sociales
Práctica 2.   Uso de Marcadores SocialesPráctica 2.   Uso de Marcadores Sociales
Práctica 2. Uso de Marcadores SocialesFernandoCalapaqui
 
BIG DATA EJEMPLOS. desarrrollo de curso.pdf
BIG DATA EJEMPLOS. desarrrollo de curso.pdfBIG DATA EJEMPLOS. desarrrollo de curso.pdf
BIG DATA EJEMPLOS. desarrrollo de curso.pdfexpertoleonelmartine
 
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordÍndice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordTelefónica
 
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...DannyErazo5
 
Práctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletPráctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletDannyErazo5
 
Prueba objetiva - Parcial 1_Grupo 11.pdf
Prueba objetiva - Parcial 1_Grupo 11.pdfPrueba objetiva - Parcial 1_Grupo 11.pdf
Prueba objetiva - Parcial 1_Grupo 11.pdfFernandoCalapaqui
 
Redes informáticas, descripción general, tipos, medios de transmisión
Redes informáticas, descripción general, tipos, medios de transmisiónRedes informáticas, descripción general, tipos, medios de transmisión
Redes informáticas, descripción general, tipos, medios de transmisiónborroedgardog
 
DIAPOSITIVAS RIESGO TRÁMITES ONLINE .pptx
DIAPOSITIVAS RIESGO TRÁMITES ONLINE .pptxDIAPOSITIVAS RIESGO TRÁMITES ONLINE .pptx
DIAPOSITIVAS RIESGO TRÁMITES ONLINE .pptxivelezutrera
 
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdfPrueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdfFernandoCalapaqui
 
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"ferpatfut1109
 
Ejercicios de búsqueda eficaz. Navegadores
Ejercicios de búsqueda eficaz. NavegadoresEjercicios de búsqueda eficaz. Navegadores
Ejercicios de búsqueda eficaz. NavegadoresDannyErazo5
 
DIAPOSITIVASTRÁMITESONLINEFORMACION.pptx
DIAPOSITIVASTRÁMITESONLINEFORMACION.pptxDIAPOSITIVASTRÁMITESONLINEFORMACION.pptx
DIAPOSITIVASTRÁMITESONLINEFORMACION.pptxivelezutrera
 
Práctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletPráctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletFernandoCalapaqui
 
Cherubini Meta Z-Wave Smart Plug Manual A510068
Cherubini Meta Z-Wave Smart Plug Manual A510068Cherubini Meta Z-Wave Smart Plug Manual A510068
Cherubini Meta Z-Wave Smart Plug Manual A510068Domotica daVinci
 
Tarea 4. Ensayo sobre "Plagio académico"
Tarea 4. Ensayo sobre "Plagio académico"Tarea 4. Ensayo sobre "Plagio académico"
Tarea 4. Ensayo sobre "Plagio académico"FernandoCalapaqui
 
Diapositiva_Aprendizaje-basado-en-problemas.pdf
Diapositiva_Aprendizaje-basado-en-problemas.pdfDiapositiva_Aprendizaje-basado-en-problemas.pdf
Diapositiva_Aprendizaje-basado-en-problemas.pdfDannyErazo5
 
Documento del proyecto final............
Documento del proyecto final............Documento del proyecto final............
Documento del proyecto final............DannyErazo5
 
Práctica 3. Búsqueda de información en bases de datos académicas
Práctica 3. Búsqueda de información en bases de datos académicasPráctica 3. Búsqueda de información en bases de datos académicas
Práctica 3. Búsqueda de información en bases de datos académicasFernandoCalapaqui
 

Último (20)

Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"
 
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
 
Práctica 2. Uso de Marcadores Sociales
Práctica 2.   Uso de Marcadores SocialesPráctica 2.   Uso de Marcadores Sociales
Práctica 2. Uso de Marcadores Sociales
 
BIG DATA EJEMPLOS. desarrrollo de curso.pdf
BIG DATA EJEMPLOS. desarrrollo de curso.pdfBIG DATA EJEMPLOS. desarrrollo de curso.pdf
BIG DATA EJEMPLOS. desarrrollo de curso.pdf
 
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWordÍndice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
Índice del libro "Hacking Web3: Challenge Acepted!" de 0xWord
 
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
 
Práctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletPráctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta Padlet
 
Prueba objetiva - Parcial 1_Grupo 11.pdf
Prueba objetiva - Parcial 1_Grupo 11.pdfPrueba objetiva - Parcial 1_Grupo 11.pdf
Prueba objetiva - Parcial 1_Grupo 11.pdf
 
Redes informáticas, descripción general, tipos, medios de transmisión
Redes informáticas, descripción general, tipos, medios de transmisiónRedes informáticas, descripción general, tipos, medios de transmisión
Redes informáticas, descripción general, tipos, medios de transmisión
 
DIAPOSITIVAS RIESGO TRÁMITES ONLINE .pptx
DIAPOSITIVAS RIESGO TRÁMITES ONLINE .pptxDIAPOSITIVAS RIESGO TRÁMITES ONLINE .pptx
DIAPOSITIVAS RIESGO TRÁMITES ONLINE .pptx
 
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdfPrueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
 
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
 
Ejercicios de búsqueda eficaz. Navegadores
Ejercicios de búsqueda eficaz. NavegadoresEjercicios de búsqueda eficaz. Navegadores
Ejercicios de búsqueda eficaz. Navegadores
 
DIAPOSITIVASTRÁMITESONLINEFORMACION.pptx
DIAPOSITIVASTRÁMITESONLINEFORMACION.pptxDIAPOSITIVASTRÁMITESONLINEFORMACION.pptx
DIAPOSITIVASTRÁMITESONLINEFORMACION.pptx
 
Práctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletPráctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta Padlet
 
Cherubini Meta Z-Wave Smart Plug Manual A510068
Cherubini Meta Z-Wave Smart Plug Manual A510068Cherubini Meta Z-Wave Smart Plug Manual A510068
Cherubini Meta Z-Wave Smart Plug Manual A510068
 
Tarea 4. Ensayo sobre "Plagio académico"
Tarea 4. Ensayo sobre "Plagio académico"Tarea 4. Ensayo sobre "Plagio académico"
Tarea 4. Ensayo sobre "Plagio académico"
 
Diapositiva_Aprendizaje-basado-en-problemas.pdf
Diapositiva_Aprendizaje-basado-en-problemas.pdfDiapositiva_Aprendizaje-basado-en-problemas.pdf
Diapositiva_Aprendizaje-basado-en-problemas.pdf
 
Documento del proyecto final............
Documento del proyecto final............Documento del proyecto final............
Documento del proyecto final............
 
Práctica 3. Búsqueda de información en bases de datos académicas
Práctica 3. Búsqueda de información en bases de datos académicasPráctica 3. Búsqueda de información en bases de datos académicas
Práctica 3. Búsqueda de información en bases de datos académicas
 

Ingeniería inversa y reingeniería de software

  • 1. República Bolivariana de Venezuela Gobierno del Distrito Metropolitano de Caracas Secretaría de Educación del Distrito Capital E. T. C. R “Juan España” El Valle - Caracas Ingeniería Inversa y Reingeniería de Software Prof.: Ana Toro Asignatura: Sistemas de información Sección: 5 “A” Autores: Moisés Aldana #09 Norelys Delgado #10 Moisés Medina #15
  • 2. Contenido:  Ingeniería Inversa * Beneficios de la Ingeniería Inversa * Tipos de Ingeniería Inversa * Herramientas para la Ingeniería Inversa  Reingeniería de Software * Beneficios de la Reingeniería de Software * Pasos de la Reingeniería de Software  Análisis y Diseño de Sistemas Orientados a Objetos * Principios del Análisis y Diseño de Sistemas Orientados a Objetos * Metodologías Orientadas al Análisis y Diseño de Sistemas Orientados a Objetos  Programación Extrema * Valores de la Programación Extrema
  • 3. Ingeniería Inversa No es generar códigos, sino que, el código fuente es examinado, analizado y convertido en entidades para el deposito. Su primer paso es cargar, en el conjunto de herramientas el código de programas existen, según ese conjunto de herramientas.
  • 4. Beneficios de la Ingeniería Inversa  Reducir la complejidad del sistema: al intentar comprender el software se facilita su mantenimiento y la complejidad existente disminuye.  Generar diferentes alternativas: del punto de partida del proceso, principalmente código fuente, se generan representaciones gráficas lo que facilita su comprensión.
  • 5. Beneficios de la Ingeniería Inversa  Recuperar y/o actualizar la información perdida (cambios que no se documentaron en su momento): en la evolución del sistema se realizan cambios que no se suele actualizar en las representaciones de nivel de abstracción más alto, para lo cual se utiliza la recuperación de diseño.
  • 6. Beneficios de la Ingeniería Inversa  Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que surjan efectos no deseados, esta serie de anomalías puede ser detectados por la ingeniería inversa.  Facilitar la reutilización: por medio de la ingeniería inversa se pueden detectar componentes de posible reutilización de sistemas existentes, pudiendo aumentar la productividad, reducir los costes y los riesgos de mantenimiento.
  • 7. Tipos de Ingeniería Inversa  Ingeniería inversa de interfaces de usuario: Se aplica con objeto de mantener la lógica interna del programa para obtener los modelos y especificaciones que sirvieron de base para la construcción de la misma, con objeto de tomarlas como punto de partida en procesos de ingeniería directa que permitan modificar dicha interfaz.
  • 8. Tipos de Ingeniería Inversa  Ingeniería inversa de datos: Se aplica sobre algún código de bases datos (aplicación, código SQL, etc.) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad-relación.  Ingeniería inversa de lógica o de proceso: Cuando la ingeniería inversa se aplica sobre código de un programa para averiguar su lógica o sobre cualquier documento de diseño para obtener documentos de análisis o de requisitos.
  • 9. Herramientas para la Ingeniería Inversa  Los Depuradores: Un depurador es un programa que se utiliza para controlar otros programas. Permite avanzar paso a paso por el código, rastrear fallos, establecer puntos de control y observar las variables y el estado de la memoria en un momento dado del programa que se esté depurando. Los depuradores son muy valiosos a la hora de determinar el flujo lógico del programa.
  • 10. Herramientas para la Ingeniería Inversa  Las Herramientas de Inyección de Fallos: Las herramientas que pueden proporcionar entradas malformadas con formato inadecuado a procesos del software objetivo para provocar errores son una clase de herramientas de inserción de fallos. Los errores del programa pueden ser analizados para determinar si los errores existen en el software objetivo. Algunos fallos tienen implicaciones en la seguridad, como los fallos que permiten un acceso directo del asaltante al ordenador principal o red.
  • 11. Herramientas para la Ingeniería Inversa  Los Desensambladores: Se trata de una herramienta que convierte código máquina en lenguaje ensamblador. El lenguaje ensamblador es una forma legible para los humanos del código máquina. Los desensambladores revelan que instrucciones máquinas son usadas en el código. El código máquina normalmente es específico para una arquitectura dada del hardware. De forma que los desensambladores son escritor expresamente para la arquitectura del hardware del software a desensamblar.
  • 12. Herramientas para la Ingeniería Inversa  Los Descompiladores: Un descompilador es una herramienta que transforma código en ensamblador o código máquina en código fuente en lenguaje de alto nivel. También existen descompiladores que transforman lenguaje intermedio en código fuente en lenguaje de alto nivel. Estas herramientas son sumamente útiles para determinar la lógica a nivel superior como bucles o declaraciones if-then de los programas que son descompilados.
  • 13. Herramientas para la Ingeniería Inversa  La Herramienta CASE: Las herramientas de ingeniería de sistemas asistida por ordenador (Computer-Aided Systems Engineering – CASE) aplican la tecnología informática a las actividades, las técnicas y las metodologías propias de desarrollo de sistemas para automatizar o apoyar una o más fases del ciclo de vida del desarrollo de sistemas.
  • 14. Reingeniería de Software Se puede definir como el proceso completo de convertir el código de programa al diseño CASE, modificar el diseño y volver a generar el nuevo código. El termino se usa en distintas áreas de la ingeniería, programación y negocios.
  • 15. Reingeniería de software Con respecto a los negocios, es una forma de darle una nueva orientación a los procesos claves de una organización, de esta manera el rol de los analistas de sistemas radica en el uso de tecnologías de información novedosas, como consecuencia a los cambios requeridos.
  • 16. Beneficios de la Reingeniería de Software Entre los beneficios de aplicar reingeniería a un producto existente se puede incluir:  Pueden reducir los riegos evolutivos de una organización.  Puede ayudar a las organizaciones a recuperar sus inversiones en software.  Puede hacer el software más fácilmente modificable.
  • 17. Beneficios de la Reingeniería de Software  Amplía las capacidades de las herramientas CASE.  Es un catalizador para la automatización del mantenimiento del software.  Puede actuar como catalizador para la aplicación de técnicas de inteligencia artificial para resolver problemas de reingeniería.
  • 18. Pasos para la Reingeniería de software
  • 19. Pasos para la Reingeniería de Software  Análisis de inventario: Todas las organizaciones de software deberían tener un inventario de todas sus aplicaciones. 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 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, cambiarán las prioridades para la reingeniería.
  • 20. Pasos para la Reingeniería de Software  Restauración de documentos: 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.
  • 21. Pasos para la Reingeniería de Software  Ingeniería Inversa: La Ingeniería inversa es un proceso de recuperación de diseño. Con las herramientas de la ingeniería inversa se extraerá del programa existente información del diseño arquitectónico y de proceso, e información de los datos.
  • 22. Pasos para la Reingeniería de Software  Restructuración de códigos: 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 se reestructura el código (esto se puede hacer automáticamente). El código reestructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalías.
  • 23. Pasos para la Reingeniería de Software  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 atributos, y después se revisa la calidad de las estructuras de datos existentes.
  • 24. Pasos para la Reingeniería de Software  Ingeniería directa: La ingeniería directa 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 mejoras.
  • 25. Análisis y Diseño de Sistemas Orientados a Objetos Se puede definir como el enfoque con el propósito de facilitar el desarrollo de sistemas que deben cambiar con rapidez en respuesta a entornos de negocios dinámicos. Se utilizan el estándar de la industria para la modelación de los mismos, en su defecto el lenguaje unificado de modelación (UML), para analizar los sistemas en forma de modelo de caso de uso.
  • 26. Principios del Análisis y Diseño de Sistemas Orientados a Objetos La idea básica del análisis y diseño de sistema orientados a objetos se basa en 8 principios, que se muestran para un mejor entendimiento de la metodología:  Clases: Una clase es una categoría de objetos similares. Los objetos se agrupan en clases.
  • 27. Principios del Análisis y Diseño de Sistemas Orientados a Objetos  Herencia: Las clases pueden tener hijos, esto es, una clase puede ser creada a partir de otra clase. La clase original, o madre, es llamada “clase base”. La clase hija es llamada “clase derivada”. Una clase derivada puede ser creada en forma tal que herede todos los atributos y comportamientos de la clase base.
  • 28. Principios del Análisis y Diseño de Sistemas Orientados a Objetos  Objetos: Un objeto es una representación en una computadora de alguna cosa o evento del mundo real.  Encapsulación: Típicamente, la información dentro de un objeto esta encapsulada por su comportamiento. Esto significa que un objeto mantiene datos acerca de cosas del mundo real a las que representa en un sentido verdadero.
  • 29. Principios del Análisis y Diseño de Sistemas Orientados a Objetos  Atributo: dato asociado a un objeto.  Mensajes: Se puede enviar información de un objeto a otro.  Método: proceso que realiza un objeto cuando recibe un mensaje.
  • 30. Principios del Análisis y Diseño de Sistemas Orientados a Objetos  Polimorfismo: El término polimorfismo se refiere a comportamientos alternos entre clases derivadas relacionadas. Cuando varias clases heredan atributos y comportamientos, pude haber casos en donde el comportamiento de una clase derivada debe ser diferente del de su clase base o de sus clases derivadas parientes.
  • 31. Metodologías Orientadas al Análisis y Diseño de Sistema Orientado a Objetos Existen diferentes metodologías orientadas al análisis y diseño de sistema orientado a objetos, entre estas se encuentran:  El método de Rumbaugh: este método mejor conocido como OMT, se utiliza para el análisis, diseño del sistema y diseño a nivel de objetos. La de análisis crea tres modelos: el modelo de objetos, el modelo dinámico y el modelo funcional. El diseño se divide en dos actividades diseño de sistemas y diseño de objetos.
  • 32. Metodologías Orientadas al Análisis y Diseño de Sistema Orientado a Objetos  El método de Booch: Consta de un micro proceso y un macro proceso de desarrollo tanto para el análisis y el diseño. El micro proceso identifica clase y objetos, define relaciones entre clases y objetos y realizan una serie de refinamientos para elaborar el modelo del análisis. El macro proceso, en el diseño, engloba una actividad de planificación arquitectónica, identifica situaciones relevantes, crea un prototipo de diseño y valida el prototipo aplicándolo a situaciones de uso.
  • 33. Metodologías Orientadas al Análisis y Diseño de Sistema Orientado a Objetos  El método de Jacobson: Este método, en el análisis, se diferencia de los otros por la importancia que da al caso de uso. En principio, el modelo idealizado del análisis se adapta para acoplarse al ambiente del mundo real. Después los objetos de diseño primarios, llamados bloques, son creados y catalogados como bloques de interfaz, bloques de entidades y bloques de control. La comunicación entre bloques durante la ejecución se define y los bloques se organizan en subsistemas.
  • 34. Programación Extrema (XP) Es un metodología de desarrollo de software más exitosas de los tiempos recientes. Es el enfoque de desarrollo, usando prácticas de desarrollo y las lleva a los extremos valiéndose de valores para ello.
  • 35. Valores de la programación Extrema  Simplicidad: Es la base de la programación extrema. Se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento.  Comunicación: Para los programadores el código comunica mejor cuanto más simple sea. El código autodocumentado es más fiable que los comentarios ya que éstos últimos pronto quedan desfasados con el código a medida que es modificado.
  • 36. Valores de la programación Extrema  Retroalimentación: Al realizarse ciclos muy cortos tras los cuales se muestran resultados, se minimiza el tener que rehacer partes que no cumplen con los requisitos y ayuda a los programadores a centrarse en lo que es más importante.  Valentía: La valentía le permite a los desarrolladores que se sientan cómodos con reconstruir su código cuando sea necesario. Esto significa revisar el sistema existente y modificarlo si con ello los cambios futuros se implementaran mas fácilmente.
  • 37. Fuentes Consultadas  De la Morena, Verónica (2009 a). ¿Qué es la ingeniería inversa? Documento en línea. Disponible en: [http://cnx.org/content/m17432/latest/]. Recuperado: 10/ 02/ 2012 – 07:23 p.m.  De la Morena, Verónica (2009 b). ¿Qué es la reingeniería del software? Documento en línea. Disponible en: [http://cnx.org/content/m17438/latest/]. Recuperado: 10/ 02/ 2012 – 07:27 p.m.  Fundación Wikipedia, Inc. (2012) Programación Extrema, Documento en línea. Disponible en: [http://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema]. Recuperado: 10/ 02/2012 – 10:53 p.m.  Galeano, Abraham; Porras, Reinaldo; Gutiérrez, Osman (2005) Análisis y diseño orientado a objetos. Documento en línea. Disponible en: [http://docentes.uni.edu.ni/fec/Giovanni.Saenz/Ingenieria_de_Software/Analisis_y_DisenoO O.pdf]. Recuperado: 10/ 02/ 2012 – 07:42 p.m.  Kendall, Kenneth; Kendall, Julie (2005) Análisis y Diseño de Sistemas (6 ed.) México: Pearson Educación.