Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1300 Reingenieria Software
1300 Reingenieria Software
16.010
8%
Cdigo
Diseo
Anlisis
de requisitos
7%
7%
5%
6%
67 %
Mantenimiento
FACTORES
Inexistencia de mtodos, tcnicas y herramientas que puedan
proporcionar una solucin global al mantenimiento
La complejidad de los sistemas se incrementa paulatinamente
por la realizacin de continuas modificaciones
La documentacin del sistema es defectuosa o inexistente
Se considera el mantenimiento como una actividad poco
creativa, a diferencia del desarrollo
Las actividades del mantenimiento se suelen realizar bajo
presin de tiempo
Poca participacin del usuario durante el desarrollo del sistema
TIPOS DE MANTENIMIENTO
Mantenimiento perfectivo: conjunto de actividades para
mejorar o aadir nuevas funcionalidades requeridas por
el usuario
Mantenimiento adaptativo: es el conjunto de actividades
para adaptar el sistema a los cambios (hardware o software)
en su entorno tecnolgico
Mantenimiento correctivo: es el conjunto de actividades
dedicadas a corregir defectos en el hardware o en el
software detectados por los usuarios durante la explotacin
del sistema
Mantenimiento preventivo: conjunto de actividades para
facilitar el mantenimiento futuro del sistema
Adaptativo
Preventivo
5%
Correctivo
17 %
18 %
Perfectivo
60 %
6%
6%
19 %
18 %
Estudiar
peticiones
Estudio del
cdigo
23 %
28 %
Pruebas
CAPTURA, CONSERVACIN Y
EXTENSIN DEL
CONOCIMIENTO SOBRE EL
SOFTWARE
Reestructuracin.
Redocumentacin, Anotacin, actualizacin de documentacin.
Ingeniera para reutilizacin.
Remodularizacin.
Reingeniera de procesos de negocio (BPR)
Reingeniera de datos.
Anlisis de facilidad de mantenimiento, anlisis econmico.
Visualizacin
Anlisis, mediciones.
Ingeniera inversa, recuperacin de diseo.
Descomposicin.
Ingeniera Inversa y recuperacin de diseo.
Recuperacin de objetos.
Comprensin de programas.
Transformaciones y bases de conocimiento.
LA IMPORTANCIA DE LA REINGENIERA
DEL SOFTWARE
Puede reducir los riesgos evolutivos de una organizacin
Puede ayudar a las organizaciones a recuperar sus inversiones
en software
Puede hacer el software ms fcilmente modificable
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 (IA) para resolver problemas de reingeniera
DISEO
Ingeniera
directa
Ingeniera
directa
Ingeniera
inversa
Ingeniera
inversa
Recuperacin
diseo
Recuperacin
diseo
Reingeniera
Reestructuracin
IMPLEMENTACION
Reingeniera
Reestructuracin
Reestructuracin
Redocumentacin
INGENIERIA DIRECTA
Corresponde al desarrollo de software tradicional
REESTRUCTURACION
Es la transformacin de una forma de representacin
a otra en el mismo nivel de abstraccin relativo,
mientras se mantenga el comportamiento externo del
sistema (funcionalidad y semntica)
Es la modificacin del software para hacerlo ms fcil
de entender y cambiar
INGENIERIA INVERSA
REDISEO
Consiste en consolidar y modificar los modelos
obtenidos, aadiendo nuevas funciones requeridas
por los usuarios
REINGENIERA DEL SOFTWARE
Es el examen y alteracin de un sistema para
reconstruirlo de una nueva forma y la subsiguiente
implementacin de esta nueva forma
OTRAS TECNOLOGIAS
La remodularizacin consiste en cambiar la estructura
modular de un sistema de forma que se obtenga una
nueva estructura siguiendo los principios del diseo
estructurado
Anlisis de la facilidad de mantenimiento. Normalmente
la mayor parte del mantenimiento se centra relativamente
en unos pocos mdulos del sistema
Visualizacin. El proceso ms antiguo para la comprensin
del software
Anlisis y mediciones. Son importantes tecnologas que
estudian ciertas propiedades de los programas
PASOS DE LA REINGENIERA
DEL SOFTWARE
REESTRUCTURACIN
REESTRUCTURACIN
HERRAMIENTA CASE
INGENIERA
INGENIERA
INVERSA
INVERSA
CONVERSOR
DE CDIGO
REPOSITORIO
Nuevo
Nuevo
Cdigo
Cdigo
INGENIERA
INGENIERA
DIRECTA
DIRECTA
Verificacin
25 %
Implantacin
del cambio
28 %
47 %
Comprensin
MEDIDAS DE
COMPLEJIDAD TEXTUAL
DE MDULOS
PRODUCTO
MEDIDAS DE
COMPLEJIDAD
ESTRUCTURAL
DE MDULOS
Valores reales
del mdulo
Valores dentro
del estndar
Valores fuera
del estndar
FACILIDAD
DE
MANTENIMIENTO
CRITERIOS
MTRICAS
SIMPLICIDAD
CONCISION
Longitud de programa
Nivel de Mdulo
AUTODESCRIPTIVO
LEGIBILIDAD
FACILIDAD DE PRUEBA
Frecuencia de comentarios
Longitud de programa
Niveles anidados (MAX)
Nmero de sentencias
V(G)
Niveles anidados (MAX)
GRAFICO DE CRITERIOS
CRITERIO
CLASE
LEGIBILIDAD
SIMPLICIDAD
CONCISIN
TOLERANCIA
AUTODESCR.
: CRTICO
: CRTICO
: ACEPTADO
: ACEPTADO CONCISIN
: RECHAZADO
NB_STMT
SIMPLICIDAD
C_D
VG
P_SIZE
LEGIBILIDAD
T_COM
P_SIZE
INT_CONT
T_COM
AUTODESCRIPCIN
NB_ERROR
TOLERANCIA
INT_CONT
REESTRUCTURACION
Nivel de anlisis: se transforman los modelos de anlisis
en otros ms comprensibles
Nivel de diseo: se transforman unos modelos de diseo
en otros
Nivel de implementacin: las representaciones obtenidas
pueden enfocarse tanto a datos como a procesos
REESTRUCTURACION DE DATOS
Un mismo dato puede nombrarse de distintas formas
en un sistema (sinonimia).
VENTAJAS
Mejorar la comprensin de los sistema
Incrementar la productividad del personal
encargado del mantenimiento
Mejorar la documentacin sobre los datos
y forzar estndares sobre su utilizacin
Preparar el sistema antes de derivar modelos
de diseo mediante tcnicas de ingeniera inversa
Facilitar la reutilizacin de los datos para otras
aplicaciones
HERRAMIENTA DE REESTRUCTURACION
DE DATOS
ENTRADA
Cdigo fuente
JCL
Mdulos
Copias
Descripciones
de datos
SALIDA
Reestructurador
de datos
Nombres estndar
Cdigo revisado
Nuevas copias
Referencias cruzadas
REPOSITORIO CASE
REESTRUCTURACION DE PROCESOS
SECUENCIA
if
case
SELECCION
REPETICION
while
repeat
CONSTRUCCIONES NO PERMITIDAS
EN UN PROGRAMA ESTRUCTURADO
a)
b)
c)
d)
Programa
Diagrama
de flujo
Programa
reestructurado
Diagrama
reestructurado
UN PROGRAMA ES ESTRUCTURADO SI
LA COMPLEJIDAD CICLOMATICA
ES REDUCIBLE A UNO
V(G) reducible a 1
b a
c
b
BENEFICIOS DE LA REESTRUCTURACION
DE CODIGO
Reduccin
esfuerzo de mantenimiento
100%
50%
44 %
44 %
33%
0%
1987
Software
Maintenance
Conference
1986
Mellon
Bank
1988
U.S Defense
Logistics
Agency
INGENIERA INVERSA
OBJETIVOS
INGENIERA
INGENIERA
INVERSA
INVERSA
DE
DEDATOS
DATOS
Especificacin de
datos a nivel:
CONCEPTUAL
LGICO
FSICO