Vous êtes sur la page 1sur 38

Repblica Bolivariana de Venezuela Gobierno del Distrito Metropolitano de Caracas Secretara de Educacin del Distrito Capital E. T. C.

R Juan Espaa El Valle - Caracas

Ingeniera Inversa y Reingeniera de Software


Prof.: Ana Toro Asignatura: Sistemas de informacin Seccin: 5 A Autores: Moiss Aldana #09 Norelys Delgado #10 Moiss Medina #15

Contenido:

Ingeniera Inversa * Beneficios de la Ingeniera Inversa * Tipos de Ingeniera Inversa * Herramientas para la Ingeniera Inversa Reingeniera de Software * Beneficios de la Reingeniera de Software * Pasos de la Reingeniera de Software Anlisis y Diseo de Sistemas Orientados a Objetos * Principios del Anlisis y Diseo de Sistemas Orientados a Objetos * Metodologas Orientadas al Anlisis y Diseo de Sistemas Orientados a Objetos Programacin Extrema * Valores de la Programacin Extrema

Ingeniera Inversa
No es generar cdigos, sino que, el cdigo fuente es examinado, analizado y convertido en entidades para el deposito. Su primer paso es cargar, en el conjunto de herramientas el cdigo de programas existen, segn ese conjunto de herramientas.

Beneficios de la Ingeniera 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 cdigo fuente, se generan representaciones grficas lo que facilita su comprensin.

Beneficios de la Ingeniera Inversa

Recuperar y/o actualizar la informacin perdida (cambios que no se documentaron en su momento): en la evolucin del sistema se realizan cambios que no se suele actualizar en las representaciones de nivel de abstraccin ms alto, para lo cual se utiliza la recuperacin de diseo.

Beneficios de la Ingeniera Inversa

Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que surjan efectos no deseados, esta serie de anomalas puede ser detectados por la ingeniera inversa. Facilitar la reutilizacin: por medio de la ingeniera inversa se pueden detectar componentes de posible reutilizacin de sistemas existentes, pudiendo aumentar la productividad, reducir los costes y los riesgos de mantenimiento.

Tipos de Ingeniera Inversa

Ingeniera inversa de interfaces de usuario: Se aplica con objeto de mantener la lgica interna del programa para obtener los modelos y especificaciones que sirvieron de base para la construccin de la misma, con objeto de tomarlas como punto de partida en procesos de ingeniera directa que permitan modificar dicha interfaz.

Tipos de Ingeniera Inversa

Ingeniera inversa de datos: Se aplica sobre algn cdigo de bases datos (aplicacin, cdigo SQL, etc.) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad-relacin. Ingeniera inversa de lgica o de proceso: Cuando la ingeniera inversa se aplica sobre cdigo de un programa para averiguar su lgica o sobre cualquier documento de diseo para obtener documentos de anlisis o de requisitos.

Herramientas para la Ingeniera Inversa

Los Depuradores: Un depurador es un programa que se utiliza para controlar otros programas. Permite avanzar paso a paso por el cdigo, 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 lgico del programa.

Herramientas para la Ingeniera Inversa

Las Herramientas de Inyeccin 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 insercin 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.

Herramientas para la Ingeniera Inversa

Los Desensambladores: Se trata de una herramienta que convierte cdigo mquina en lenguaje ensamblador. El lenguaje ensamblador es una forma legible para los humanos del cdigo mquina. Los desensambladores revelan que instrucciones mquinas son usadas en el cdigo. El cdigo mquina normalmente es especfico para una arquitectura dada del hardware. De forma que los desensambladores son escritor expresamente para la arquitectura del hardware del software a desensamblar.

Herramientas para la Ingeniera Inversa

Los Descompiladores: Un descompilador es una herramienta que transforma cdigo en ensamblador o cdigo mquina en cdigo fuente en lenguaje de alto nivel. Tambin existen descompiladores que transforman lenguaje intermedio en cdigo fuente en lenguaje de alto nivel. Estas herramientas son sumamente tiles para determinar la lgica a nivel superior como bucles o declaraciones if-then de los programas que son descompilados.

Herramientas para la Ingeniera Inversa

La Herramienta CASE: Las herramientas de ingeniera de sistemas asistida por ordenador (Computer-Aided Systems Engineering CASE) aplican la tecnologa informtica a las actividades, las tcnicas y las metodologas propias de desarrollo de sistemas para automatizar o apoyar una o ms fases del ciclo de vida del desarrollo de sistemas.

Reingeniera de Software
Se puede definir como el proceso completo de convertir el cdigo de programa al diseo CASE, modificar el diseo y volver a generar el nuevo cdigo. El termino se usa en distintas reas de la ingeniera, programacin y negocios.

Reingeniera de software

Con respecto a los negocios, es una forma de darle una nueva orientacin a los procesos claves de una organizacin, de esta manera el rol de los analistas de sistemas radica en el uso de tecnologas de informacin novedosas, como consecuencia a los cambios requeridos.

Beneficios de la Reingeniera de Software


Entre los beneficios de aplicar reingeniera a un producto existente se puede incluir:

Pueden reducir los riegos evolutivos de una organizacin. Puede ayudar a las organizaciones a recuperar sus inversiones en software.

Puede hacer el software ms fcilmente modificable.

Beneficios de la Reingeniera de Software


Ampla las capacidades de las herramientas CASE. Es un catalizador para la automatizacin del mantenimiento del software.

Puede actuar como catalizador para la aplicacin de tcnicas de inteligencia artificial para resolver problemas de reingeniera.

Pasos para la Reingeniera de software

Pasos para la Reingeniera de Software

Anlisis de inventario: Todas las organizaciones de software deberan tener un inventario de todas sus aplicaciones. Los candidatos a la reingeniera aparecen cuando se ordena esta informacin en funcin de su importancia para el negocio, longevidad, mantenibilidad actual y otros criterios localmente importantes. Es importante sealar que el inventario deber visitarse con regularidad, el estado de las aplicaciones puede cambiar en funcin del tiempo y, como resultado, cambiarn las prioridades para la reingeniera.

Pasos para la Reingeniera de Software

Restauracin de documentos: La documentacin 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 documentacin a un mnimo esencial. Cada una de estas opciones es viable. Una organizacin de software debe elegir la ms apropiada para cada caso.

Pasos para la Reingeniera de Software

Ingeniera Inversa: La Ingeniera inversa es un proceso de recuperacin de diseo. Con las herramientas de la ingeniera inversa se extraer del programa existente informacin del diseo arquitectnico y de proceso, e informacin de los datos.

Pasos para la Reingeniera de Software

Restructuracin de cdigos: Llevar a cabo esta actividad requiere analizar el cdigo fuente empleando una herramienta de reestructuracin, se indican las violaciones de las estructuras de programacin estructurada, y entonces se reestructura el cdigo (esto se puede hacer automticamente). El cdigo reestructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalas.

Pasos para la Reingeniera de Software

La reestructuracin de datos: Es una actividad de reingeniera a gran escala. En la mayora de los casos, la reestructuracin de datos comienza con una actividad de ingeniera 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 despus se revisa la calidad de las estructuras de datos existentes.

Pasos para la Reingeniera de Software

Ingeniera directa: La ingeniera directa no solo recupera la informacin de diseo a partir del software existente, tambin utiliza esta informacin para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayora de los casos el software sometido a reingeniera vuelve a implementar la funcin del sistema existente y tambin aade nuevas funciones o mejoras.

Anlisis y Diseo de Sistemas Orientados a Objetos


Se puede definir como el enfoque con el propsito de facilitar el desarrollo de sistemas que deben cambiar con rapidez en respuesta a entornos de negocios dinmicos. Se utilizan el estndar de la industria para la modelacin de los mismos, en su defecto el lenguaje unificado de modelacin (UML), para analizar los sistemas en forma de modelo de caso de uso.

Principios del Anlisis y Diseo de Sistemas Orientados a Objetos


La idea bsica del anlisis y diseo de sistema orientados a objetos se basa en 8 principios, que se muestran para un mejor entendimiento de la metodologa:

Clases: Una clase es una categora de objetos similares. Los objetos se agrupan en clases.

Principios del Anlisis y Diseo 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.

Principios del Anlisis y Diseo de Sistemas Orientados a Objetos

Objetos: Un objeto es una representacin en computadora de alguna cosa o evento del mundo real.

una

Encapsulacin: Tpicamente, la informacin 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.

Principios del Anlisis y Diseo de Sistemas Orientados a Objetos

Atributo: dato asociado a un objeto.


Mensajes: Se puede enviar informacin de un objeto a otro. Mtodo: proceso que realiza un objeto cuando recibe un mensaje.

Principios del Anlisis y Diseo de Sistemas Orientados a Objetos

Polimorfismo: El trmino 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.

Metodologas Orientadas al Anlisis y Diseo de Sistema Orientado a Objetos


Existen diferentes metodologas orientadas al anlisis y diseo de sistema orientado a objetos, entre estas se encuentran:

El mtodo de Rumbaugh: este mtodo mejor conocido como OMT, se utiliza para el anlisis, diseo del sistema y diseo a nivel de objetos. La de anlisis crea tres modelos: el modelo de objetos, el modelo dinmico y el modelo funcional. El diseo se divide en dos actividades diseo de sistemas y diseo de objetos.

Metodologas Orientadas al Anlisis y Diseo de Sistema Orientado a Objetos

El mtodo de Booch: Consta de un micro proceso y un macro proceso de desarrollo tanto para el anlisis y el diseo. El micro proceso identifica clase y objetos, define relaciones entre clases y objetos y realizan una serie de refinamientos para elaborar el modelo del anlisis. El macro proceso, en el diseo, engloba una actividad de planificacin arquitectnica, identifica situaciones relevantes, crea un prototipo de diseo y valida el prototipo aplicndolo a situaciones de uso.

Metodologas Orientadas al Anlisis y Diseo de Sistema Orientado a Objetos

El mtodo de Jacobson: Este mtodo, en el anlisis, se diferencia de los otros por la importancia que da al caso de uso. En principio, el modelo idealizado del anlisis se adapta para acoplarse al ambiente del mundo real. Despus los objetos de diseo primarios, llamados bloques, son creados y catalogados como bloques de interfaz, bloques de entidades y bloques de control. La comunicacin entre bloques durante la ejecucin se define y los bloques se organizan en subsistemas.

Programacin Extrema (XP)

Es un metodologa de desarrollo de software ms exitosas de los tiempos recientes. Es el enfoque de desarrollo, usando prcticas de desarrollo y las lleva a los extremos valindose de valores para ello.

Valores de la programacin Extrema

Simplicidad: Es la base de la programacin extrema. Se simplifica el diseo para agilizar el desarrollo y facilitar el mantenimiento. Comunicacin: Para los programadores el cdigo comunica mejor cuanto ms simple sea. El cdigo autodocumentado es ms fiable que los comentarios ya que stos ltimos pronto quedan desfasados con el cdigo a medida que es modificado.

Valores de la programacin Extrema

Retroalimentacin: 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 ms importante.
Valenta: La valenta le permite a los desarrolladores que se sientan cmodos con reconstruir su cdigo cuando sea necesario. Esto significa revisar el sistema existente y modificarlo si con ello los cambios futuros se implementaran mas fcilmente.

Fuentes Consultadas

De la Morena, Vernica (2009 a). Qu es la ingeniera inversa? Documento en lnea. Disponible en: [http://cnx.org/content/m17432/latest/]. Recuperado: 10/ 02/ 2012 07:23 p.m. De la Morena, Vernica (2009 b). Qu es la reingeniera del software? Documento en lnea. Disponible en: [http://cnx.org/content/m17438/latest/]. Recuperado: 10/ 02/ 2012 07:27 p.m.

Fundacin Wikipedia, Inc. (2012) Programacin Extrema, Documento en lnea. Disponible en: [http://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema]. Recuperado: 10/ 02/2012 10:53 p.m.
Galeano, Abraham; Porras, Reinaldo; Gutirrez, Osman (2005) Anlisis y diseo orientado a objetos. Documento en lnea. 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) Anlisis y Diseo de Sistemas (6 ed.) Mxico: Pearson Educacin.

Vous aimerez peut-être aussi