You are on page 1of 34

INGENIERA DE SOFTWARE

REINGENIERIA

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

Introduccin
Qu es la reingeniera?
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.

Introduccin
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 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.

Reingeniera de Procesos de
Negocios (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?

Reingeniera de Procesos de
Negocios (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.

Reingeniera de Procesos de
Negocios (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.

Reingeniera de Procesos de
Negocios (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.

Reingeniera de Procesos de
Negocios (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.

Reingeniera 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.

Reingeniera de Software
Un modelo de Proceso de Reingeniera del software.

Reingeniera de 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.

Reingeniera de Software
Un modelo de Proceso de Reingeniera del software.
Ingeniera Inversa: Es el proceso de analizar un programa con la finalidad de
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.

Reingeniera 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

Interfaces de Usuario.

Antes de reconstruir cualquier interfaz de


usuario se requiere especificar estructuras y
comportamientos.

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)

Ingeniera 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

Economa de la Reingeniera.

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

You might also like