Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
Ing. De Software
Andrs Ortiz
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.
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
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;
"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
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
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