You are on page 1of 34

INGENIERA DE SOFTWARE

REINGENIERIA

Integrantes: Darwin Valarezo Vickmar Morocho

AGENDA
 INTRODUCCION  REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)  REINGENIERIA DE SOFTWARE  INGENIERIA INVERSA  REESTRUCTURACION  INGENIERIA DIRECTA  LA ECONOMIA DE LA INGENIERIA

INTROCUCION
Qu es? Es el proceso de reconstruccin del software, crear un producto con una mejor funcionalidad, mejor desempeo y fiabilidad, as como una mejor facilidad de mantenimiento. Quin la hace? En el mbito de las organizaciones, la reingeniera la llevan a cabo especialistas en negocios. En nuestro mbito lo realizan los ingenieros de software. Por qu es importante? Por que nos permite mantenernos en el ritmo de las exigencias de las nuevas tecnologas, por tal motivo el software tendr que redisearse para estar en ritmo.

INTROCUCION
Cules son los pasos? El proceso de reingeniera de software incluye anlisis de inventarios, reestructuracin de documentos, ingeniera inversa, reestructuracin de programas y datos, e ingeniera avanzada. Cul es el producto obtenido? Se produce una diversidad de productos de trabajo de reingeniera. Ejemplo: Modelos de anlisis, modelos de diseo, procedimientos de prueba, entre otros. Cmo puedo estar seguro de que lo he hecho correctamente? Utilizando las mismas prcticas de SQA que se aplican a cualquier proceso de ingeniera del software: las revisiones tcnicas formales evalan los modelos de anlisis y de diseo; 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 PROCESOS DE NEGOCIO (RPN)

La (RPN) rebasa el mbito de las tecnologas de la informacin y de la ingeniera de software. Una de las definiciones mas relevantes pala la (RPN) en la publicada por la revista fortune La bsqueda e implementacin de un cambio radical en el proceso de negocios para lograr resultados de vanguardia. Pero como se lleva a cabo la bsqueda y como se logra la implementacin? Cmo se puede garantizar que el cambio radical nos conducir a resultados de vanguardia en lugar de caos organizacional?

REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)


Procesos de negocios.
Es un conjunto de tareas lgicamente relacionadas que se ejecutan para lograr un resultado de negocios especfico; dentro de este se combina la gente, el equipo, los recursos materiales y los procedimientos del negocio para producir un resultado especfico. Los ejemplos de proceso de negocios incluyen el diseo de un nuevo producto, la compra de servicios y suministros, la contratacin de un nuevo empleado y el pago a proveedores. Cada uno demanda un conjunto de tareas y tambin emplea diversos recursos dentro del negocio. Cada proceso de negocio tiene un cliente definido: una persona o grupo que recibe el resultado. Adems los procesos de negocio traspasan las fronteras de la organizacin. Cada sistema de negocio est compuesto de uno o mas procesos de negocio, y cada proceso de negocio lo define un conjunto de subprocesos.

REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)


Un Modelo de RPN La RPN es iterativa, las metas del negocio y los procesos con que se logran se deben adaptar a un entorno de negocios cambiante. Por tal razn no existe principio ni fin para la RPN.

REINGENIERIA DE PROCESOS DE NEGOCIO (RPN) Un Modelo de RPN


Definicin del negocio: El mismo que se identifica con cuatro controladores clave: Reduccin de costo Reduccin de tiempos Mejora de la calidad Desarrollo y fortalecimiento del personal. Identificacin del proceso: Se identifican los procesos claves para as lograr las metas precisas en la definicin del negocio. Evaluacin del Proceso: se hace un anlisis del proceso existente as como tambin identificamos las tareas del proceso, tomamos nota de los costos y el tiempo que consumen las tareas; aislando los problemas de calidad y desempeo.

REINGENIERIA DE PROCESOS DE NEGOCIO (RPN) Un Modelo de RPN


Especificacin y diseo del proceso: Preparamos casos de uso para cada proceso que ser rediseado. Aqu los casos de uso identifican un escenario que entrega cierto resultado a un cliente. Con el caso de uso como la especificacin del proceso se disea un nuevo conjunto de tareas para el proceso. Elaboracin de Prototipos: Un proceso de negocios rediseado debe convertirse en prototipo antes de que sea integrado por completo en el negocio. Refinamiento y particularizacin: Con base en la retroalimentacin del prototipo, el proceso de negocio se refina y luego se particulariza dentro de un sistema de negocio.

REINGENIERIA DE SOFTWARE
La reingeniera de software involucra diferentes actividades como lo son: anlisis de inventarios, reestructuracin de documentos, ingeniera inversa, reestructuracin de programas y datos, e ingeniera 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. Mantenimiento del software El mantenimiento del software se define identificando cuatro actividades Deferentes como lo son: mantenimiento correctivo, mantenimiento adaptativo, mejora o mantenimiento de perfeccionamiento y mantenimiento preventivo o reingeniera. Segn estadsticas el 20 % del trabajo de mantenimiento se emplea en componer errores. El restante 80% se dedica a adaptar los sistemas existentes a los en su entorno externo.

REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniera del software.

REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniera del software.


Anlisis de Inventarios: Las organizaciones de software deberan tener un inventario de todas sus aplicaciones. El inventario tal vez no sea ms que un modelo en una hoja de clculo que contenga informacin que proporcione una descripcin detallada (tamao, edad, importancia para el negocio) de las aplicaciones activas. Es importante sealar que el inventario deber visitarse con regularidad, el estado de las aplicaciones puede cambiar en funcin del tiempo y, como resultado, cambiaran las prioridades para la reingeniera. Reestructuracin de documentos. La documentacin dbil es la marca de muchos sistemas heredados. Pero que se hace acerca de ello? Cules son las opciones?. Crear documentacin consume mucho tiempo, si el sistema funciona Vivir con lo que tenga. La documentacin debe actualizarse pero se tiene recursos limitados. Se utilizara 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.

REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniera del software.


Ingeniera Inversa: Es el proceso de analizar un programa con la finalidad e crear una representacin del programa en un mayor grado de abstraccin que el cdigo fuente. La ingeniera inversa es un proceso de recuperacin de diseo. Las herramientas de la ingeniera inversa obtienen informacin del diseo de datos, arquitectnico y de procedimientos a partir de un programa existente. Reestructuracin de cdigo: El tipo ms comn de reingeniera es la reestructuracin de cdigo, se lo puede hacer con mdulos individuales que se codifican de una manera que dificultan comprenderlos, probarlos y mantenerlos. Llevar a cabo esta actividad requiere analizar el cdigo fuente empleando una herramienta de reestructuracin.

REINGENIERIA DE SOFTWARE Un modelo de Proceso de Reingeniera del software.


Reestructuracin de datos: 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 atributo, y despus se revisa la calidad de las estructuras de datos existentes. Ingeniera directa: La ingeniera directa, tambin llamada renovacin o reclamacin, 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 mejora el desempeo global.

Ingeniera Inversa


Proceso de analizar el software con el objetivo de recuperar su diseo y especificacin. Requiere de entradas tal como el cdigo fuente. Se diferencia de la reingeniera pues esta trata de obtener un nuevo sistema ms sostenible.

Ingeniera Inversa

Ingeniera Inversa


Grado de Abstraccin.- Se refiere a la sofisticacin del diseo que es obtenido del cdigo fuente. Conforme aumenta el nivel se obtiene informacin que permitir entender de mejor manera los diferentes programas. Completitud:- Se refiere al grado de detalle que se ofrece en un grado de abstraccin, lo cual provee de una mejora en proporcin directa con la cantidad de anlisis que efecta quien realiza la ingeniera inversa. Adems tomamos en cuenta la interactividad refirindose al grado en que el humano esta integrado con las herramientas para crear un proceso de ingeniera inversa efectivo. En consecuencia con el aumento de los puntos antes mencionados se deber incrementar la completitud. Direccionalidad.- tiene que ver en dos sentidos, para el caso de ser unidireccional, la informacin obtenida del cdigo fuente servir en cualquier actividad de mantenimiento. Por otra parte si es bidireccional, la informacin alimentara a herramientas de REINGENIERIA que reestructurara o regenerara el software anterior.

PARA COMPRENDER DATOS.




Es una de las primeras tareas de reingeniera, ya que la frecuente ocurrencia de los datos en distintos niveles de abstraccin, las estructuras de los datos internos son sometidos a esta tarea para ajustarlos con los paradigmas de la gestin de BBDD, con lo cual se establecen escenarios para la introduccin a bases de datos nuevas que contengan todo el sistema.

Estructuras de datos internos




Enfoca a la definicin de clases de objetos para examinar el cdigo con el fin de agrupar las variables que se pueden relacionar.

Estructuras de base de datos




Permite comprender los objetos existentes y sus respectivas relaciones.


QUE PASOS SE SIGUEN? 1. 2. 3. 4. 5. Construccin de un modelo inicial de objeto. Determinacin de los candidatos claves. Refinar las clases tentativas. Definicin de generalidades. Descubrimiento de asociaciones.

Luego se realiza una serie de transformaciones para correlacionar con el modelo anterior con la nueva.

PARA COMPRENDER EL PROCESAMIENTO.




Trata de comprender y extraer abstracciones de los procedimientos que se representan en el cdigo. Para esto se debe analizar en grados variables de abstraccin como sistema, programas componentes, patrones y planteamiento. Adems se debe considerar la funcionalidad de forma global

DE INTERFACES DE USUARIO.


Antes de reconstruir cualquier interfaz de usuario se realiza actividades de II, se requiere especificar estructuras y comportamientos de las interfaces.

Consideraciones
Cules son las acciones bsicas que procesa la interfaz? Descripcin del comportamiento del sistema a dichas acciones? Qu equivalencia de las interfaces es mas relevante?.

Reestructuracin


Modifica el cdigo o los datos con la finalidad de adecuarlos para futuros cambios. No modifica la arquitectura sino que se enfoca sobre detalles de diseo de los mdulos y en la estructura de datos

Reestructuracin de cdigo


Genera un diseo que produzca la misma funcin del programa pero con mayor calidad. El objetivo es tomar una porcin de cdigo y derivar el diseo de procedimientos que concuerden con la filosofa del mismo.

Reestructuracin de datos
 

Primero se realiza el ANALISIS del cdigo. Se evalan las definiciones de los datos, archivos, O/I e Interfaces. Extraer elementos y objetos de datos para obtener informacin del flujo de datos y comprender la estructura

Reestructuracin de datos


Rediseo de datos trata de que exista consistencia de los mismos (nombres y formatos de registro) en na estructura o archivo. Racionalizacin de nombre asegura que el nombramiento de datos concuerden con el estndar local y elimina los pseudnimos (flujo de datos a travs del sistema)

INGENIERIA DIRECTA


Se puede trabajar modificacin tras modificacin y luchar con el diseo para implementar los cambios. Intentar conocer el funcionamiento interno del SW para realizar modificaciones eficientes. Redisear, recodificar y. probar el Sw en un enfoque de Ingeniera de Sw

ECONOMIA DE LA REINGENIERIA
         

P1 COSTO DE MANTENIMIENTO ANUAL P2 COSTO DE OPERACIN ANUAL P3 VALOR DE NEGOCIOS P4 COSTO DE MANT PREDICHO P5 COSTO DE OPERACIN ANUAL PREDICHO P6 VALOR DE NEGOCIOS PREDICHO P7 COSTO ESTIMADO P8 FECHA ESTIMADO P9 FACTOR RIESGO L VIDA ESPERADA

Formulas para el Calculo




Costo mantenimiento (p3 (p1+ p2) * L Costo reingeniera (p6 (p4+ p5)*(L p8) (p7*p9)). Costo beneficio Costo reingeniera - Costo mantenimiento