Você está na página 1de 12

2012

Ingeniera Inversa

Ingeniera de Software 8 Cuatrimestre Materia: Ingeniera de Software Facilitador: Joel Vzquez Ros Alumno: Andrs Ortiz Herrera Matrcula: 1101150064 20/Mayo/2013

Tabla de contenido
Introduccin .................................................................................................................................. 2 Herramientas de la Ingeniera inversa ................................................................................ 3
Caracterizacin de Herramientas de Ingeniera Inversa ..................................................................... 4 Clasificacin de las Herramientas de la ingeniera Inversa ................................................................. 5 Herramientas Caracterizadas: ............................................................................................................. 6

Costes y Beneficios de la Reingeniera ................................................................................. 6


Justificacin del proyecto de reingeniera .......................................................................................... 7 Anlisis de la cartera de aplicaciones .................................................................................................. 8 Estimacin de Costos .......................................................................................................................... 9 Anlisis de Costo Beneficio ............................................................................................................... 10

Clinikita S.A. ............................................................................................................................... 11


Anlisis .............................................................................................................................................. 11 Propuesta .......................................................................................................................................... 11

Ing. De Software

Andrs Ortiz

Introduccin
En las dos ltimas dcadas la ingeniera inversa ha evolucionado representativamente, posibilitando un continuo mejoramiento de los procesos de construccin de software, permitiendo a arquitectos y desarrolladores tener una clara imagen del sistema que estn construyendo, disminuyendo la posibilidad de error al facilitar la verificacin de la coherencia entre el cdigo desarrollado y la arquitectura propuesta, facilitando a su vez el mantenimiento y la adquisicin de conocimiento de sistemas heredados (Canfora y Di Penta, 2007). Esto se evidencia en el surgimiento de un nmero cada vez ms amplio de herramientas de ingeniera inversa que ofrecen mltiples funcionalidades. Esta situacin afecta a usuarios y productores de este tipo de herramientas, as como tambin a investigadores interesados en la ingeniera inversa. Mientras los usuarios se ven obligados a seleccionar la que mejor se ajusta a sus necesidades, en una lista que se ampla y diversifica con frecuencia, sin contar con un instrumento que facilite la toma de decisin; los productores requieren identificar nuevas funcionalidades y caractersticas que representen valor agregado a su producto, lo que les exige conocer con claridad qu caractersticas brindan las herramientas actuales. Por su parte los investigadores desean proponer nuevos mtodos, tcnicas y herramientas que representen mejoras a los procesos de desarrollo de software y recuperacin de conocimiento de sistemas heredados, para lo cual requieren identificar en forma precisa las caractersticas de las herramientas disponibles.

Ing. De Software

Andrs Ortiz

Herramientas de la Ingeniera inversa


Para caracterizar las herramientas de ingeniera inversa, tomando como principal referente su arquitectura genrica, se establece la siguiente estructura: elemento, funcin, aspecto y caracterstica. Se han definido dos tipos de elementos: Analizador e Interfaz. El primero es el componente responsable de la transformacin del software objeto de anlisis a un mayor nivel de abstraccin, mientras que la interfaz se encarga de permitir la interaccin entre el usuario y la herramienta. Una funcin corresponde a las tareas que realiza cada elemento de la arquitectura, por ejemplo el analizador cumple con tareas de entrada, proceso y salida. El aspecto indica un matiz o rasgo diferenciador para cada funcin que cumplen los elementos, tal es el caso de la funcin entrada que cumple el analizador, para la cual se definen cinco aspectos: Los supuestos de la entrada, La fuente, La precisin, La automatizacin y El manejo de versiones.

Por ltimo se encuentra la caracterstica, entendida como una cualidad que sirve para distinguir a cada uno de los aspectos identificados para las funciones que cumplen los elementos.

Ing. De Software

Andrs Ortiz

Caracterizacin de Herramientas de Ingeniera Inversa

Ing. De Software

Andrs Ortiz

Clasificacin de las Herramientas de la ingeniera Inversa

Es pertinente aclarar que al momento de hacer una evaluacin completa de las herramientas de ingeniera inversa, se debe tener en cuenta que son sistemas software y por lo tanto se requiere utilizar marcos de referencia generales para su evaluar, adems son herramientas computacionales para el apoyo a la ingeniera de software, motivo por el cual, la evaluacin tambin se debe ajustar al estndar ISO/IEC 14102: gua para la seleccin y evaluacin de herramientas CASE (ISO/EC, 2008).

Ing. De Software

Andrs Ortiz

Herramientas Caracterizadas:
Enterprise Architect, Visual Paradigm y Rational Rose son las herramientas que cumplen con la mayor parte de los parmetros deseables de la ingeniera inversa.

Costes y Beneficios de la Reingeniera


Antes de reconstruir un sistema en uso, es altamente recomendable analizar las diversas alternativas disponibles:

Dejar el producto como est. Adquirir uno en el mercado que realice la misma funcin. Reconstruirlo.

Evidentemente, elegiremos la opcin que mejor relacin coste/beneficio nos ofrezca. Para calcular los costes de un proyecto de reingeniera, Harry Sneed [Snee 95] propone un modelo basado en cuatro etapas:

Justificacin del proyecto de reingeniera. Anlisis de la cartera de aplicaciones. Estimacin de costes. Anlisis de costes / beneficios.

Ing. De Software

Andrs Ortiz

Justificacin del proyecto de reingeniera


Para justificar un proyecto de reingeniera se requiere de un anlisis del software existente, de los procesos de mantenimiento actuales y del valor de negocio que tienen las aplicaciones; todo esto con el objeto de hacer una evaluacin en posibles aumentos de valores sobre estos tres factores. La mayora de las organizaciones slo toman en consideracin los procesos de reingeniera cuando el coste de un nuevo desarrollo es demasiado alto. En cualquier caso, y aunque a primera vista parezca la nica o la mejor alternativa, es necesario confirmar la necesidad de reconstruir el sistema. Existen cuatro operaciones que nos pueden dar una idea de los costes del proyecto y del valor del software actual dentro del negocio:

Introduccin de un sistema de evaluacin de los costes del mantenimiento. Anlisis de la calidad del software actual, para lo cual pueden utilizarse auditores de cdigo automticos que proporcionan datos del tamao, complejidad y mtricas de calidad del cdigo fuente.

Anlisis de los costes de mantenimiento: Se proponen tres mtricas para medir los procesos de mantenimiento:
o

"Dominio del impacto" o proporcin de instrucciones y elementos de datos afectados por una tarea de mantenimiento con respecto al total de instrucciones y elementos de datos del sistema;

"Esfuerzo empleado", que es el nmero de horas dedicadas a tareas de mantenimiento.

"Tasa de errores de segundo nivel", que es el nmero de errores causados por acciones de mantenimiento.

Evaluacin del valor de negocio del sistema actual, que es realizado por la direccin de la organizacin.

Ing. De Software

Andrs Ortiz

Anlisis de la cartera de aplicaciones


En esta etapa se cotejan la calidad tcnica y el valor de negocio de cada aplicacin, con el objetivo de construir una lista de aplicaciones, ordenada segn sus prioridades en el proceso de reingeniera. La calidad tcnica de un producto es una medida relativa, dependiente de cada organizacin, que se calcula en funcin de diversas caractersticas. Para cada variable que interviene en la calidad tcnica se fijan unos lmites inferior y superior (que representan los valores mximos y mnimo de calidad). Para halla r el nivel de calidad de la variable considerada se puede utilizar la siguiente formula:

Por ejemplo, si establecemos los valores mnimo y mximo de calidad en 0 y 7 errores por KLDC, y actualmente hay 3, Ci = 0.571. Asociando un punto de un plano para cada aplicacin, e interpretando el valor de negocio y la calidad tcnica como coordenadas de estos puntos, se puede representar como en el diagrama de la siguiente figura.

Ing. De Software

Andrs Ortiz

Estimacin de Costos
Se realiza identificando y ponderando, mediante mtricas adecuadas, todos los componentes del software que se van a modificar. Se deben considerar los costes de cada proyecto de reingeniera: si stos son superiores a los beneficios, la reingeniera no ser una alternativa viable y la aplicacin deber ser desarrollada de nuevo o bien adquirirse en el mercado. Para estimar los costes de la reingeniera, se tienen ciertas ventajas respecto a la misma estimacin en proyectos de ingeniera directa: no se debe calcular factores influyentes como el nmero de lneas de cdigo, sentencias ejecutables, elementos de datos, accesos a archivos, etc., ya que son medidas que se pueden tomar directamente de la aplicacin. Se aconseja utilizar como variables para calcular los costes las que se ofrecen a continuacin, y que deben ser debidamente ponderadas en funcin de su influencia en el coste total:

Nmero de lneas de cdigo no comentadas. Coste de los casos de prueba, que se calcula multiplicando el coste medio de cada caso de prueba por el nmero de stos, que es funcin de la complejidad ciclomtica del problema.

Nmero de accesos a archivos, bases de datos y campos. En la ponderacin de estas entradas/salidas consideramos la complejidad de las estructuras de informacin y el grado de independencia de la aplicacin respecto de los datos.

Nmero de operaciones que realizan los usuarios de la aplicacin, nmero de ventanas, nmero de informes, etc., para el caso de las interfaces de usuario.

Ing. De Software

Andrs Ortiz

Anlisis de Costo Beneficio


Una vez que se ha calculado el coste de la reingeniera, la ltima etapa es comparar los costes con los beneficios esperados (no es suficiente con examinar los beneficios que aporte la reingeniera). El beneficio proporcionado por continuar manteniendo el producto sin reingeniera es el siguiente: BM = [P3 (P1 + P2)] * P16 Deber retocarse la frmula cuando los diversos costes varen de un ao para otro. Si se desarrolla de nuevo el sistema, se obtiene este beneficio: BD = [(P12 (P10 + P11)) * (P16 P14) (P13 * P15)] BM El beneficio producido por la reingeniera es: BR = [(P6 (P4 + P5)) * (P16 P8) (P7 * P9)] BM Donde: P1 = Coste de mantenimiento actual para una aplicacin (anual). P2 = Coste de operacin de una aplicacin (anual). P3 = Valor del negocio actual (anual). P4 = Coste previsto de mantenimiento tras la reingeniera (anual). P5 = Coste previsto de operaciones tras la reingeniera (anual). P6 = Valor de negocio previsto tras la reingeniera (anual). P7 = Coste estimado de la reingeniera. P8 = Duracin estimada de la reingeniera. P9 = Factor de riesgo de la reingeniera. P10 = Coste previsto de mantenimiento tras el redesarrollo (anual). P11 = Coste previsto de operaciones tras el redesarrollo (anual). P12 = Valor de negocio previsto el nuevo sistema (anual). Andrs Ortiz

Ing. De Software

10

P13 = Coste estimado del redesarrollo. P14 = Duracin estimada del redesarrollo. P15 = Factor de riesgo del redesarrollo. P16 = Vida esperada del sistema.

Clinikita S.A.
Anlisis
En base a lo estudiado previamente se puede hacer un anlisis del software de la Clinikita S.A. y se puede obtener lo siguiente: El software no tiene coste de mantenimiento actual ya que no se implementa. Se pueden corregir muchos errores que nunca se resolvieron. La organizacin de los archivos est pobremente estructurada. Se pueden eficientar las consultas. El software no genera ningn ingreso, por lo que todo los cambios que se hagan seran sin remuneracin, la luz que se utilice para estar conectados a internet y la carga de las computadoras sera muy alto.

Propuesta
En base al "Dominio del impacto" las modificaciones que se hagan al sistema no se vern reflejadas a gran escala, el esfuerzo empleado sera de muchas horas hombre y la tasa de errores d esegundo nivel sera elevada ya que cada programador trabaja diferente y podr afectar en gran medida la implementacin del sistema. Y en cuanto al anlisis de Coste beneficio con la Clinikita S.A. pues sern puras perdidas porque es un software que no se implementar, no se vender y por lo tanto se concluye que no es recommendable hacer una reingeniera ni mantenimiendo de ningn tipo a este software.

Ing. De Software

Andrs Ortiz

11

Você também pode gostar