Está en la página 1de 37

MANTENIMIENTO DEL SOFTWARE

16.010

DISTRIBUCION DEL COSTE DEL CICLO DE VIDA


Pruebas
Pruebas
modulares de integracin

8%

Cdigo
Diseo
Anlisis
de requisitos

7%

7%
5%
6%
67 %

Mantenimiento

MANTENIMIENTO DEL SOFTWARE


16.020

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

MANTENIMIENTO DEL SOFTWARE


16.030

ACTUACIONES COMUNES PARA MANTENER


LA OPERATIVIDAD DEL SOFTWARE

Correccin de defectos en el software


Creacin de nuevas funcionalidades en el software
por nuevos requisitos de usuario
Mejora de la funcionalidad y del rendimiento

MANTENIMIENTO DEL SOFTWARE


16.040

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

MANTENIMIENTO DEL SOFTWARE


16.050

TIPOS DE MANTENIMIENTO Y COSTE RELATIVO

Adaptativo
Preventivo

5%
Correctivo

17 %

18 %

Perfectivo

60 %

MANTENIMIENTO DEL SOFTWARE


16.060

DISTRIBUCION DEL TIEMPO EN TAREAS


DE MANTENIMIENTO
Implementar
cambio
Actualizar
documentacin
Estudiar
documentacin

6%
6%

19 %

18 %
Estudiar
peticiones

Estudio del
cdigo

23 %

28 %
Pruebas

MANTENIMIENTO DEL SOFTWARE


16.070

LA REINGENIERA DEL SOFTWARE


TECNOLOGA DE LA REINGENIERA
MEJORA DEL SOFTWARE

COMPRENSIN DEL SOFTWARE

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.

MANTENIMIENTO DEL SOFTWARE


16.080

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

MANTENIMIENTO DEL SOFTWARE


16.090

RELACIONES ENTRE LOS TERMINOS


ASOCIADOS CON LA REINGENIERIA
REQUISITOS

DISEO
Ingeniera
directa

Ingeniera
directa

Ingeniera
inversa

Ingeniera
inversa

Recuperacin
diseo

Recuperacin
diseo

Reingeniera

Reestructuracin

IMPLEMENTACION

Reingeniera

Reestructuracin

Reestructuracin
Redocumentacin

MANTENIMIENTO DEL SOFTWARE


16.100

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

MANTENIMIENTO DEL SOFTWARE


16.110

INGENIERIA INVERSA

Es el proceso de anlisis de un sistema para


identificar sus componentes e interrelaciones
y crear representaciones del sistema en otra
forma o a un nivel ms alto de abstraccin

MANTENIMIENTO DEL SOFTWARE


16.120

AREAS EN LA INGENIERA INVERSA

Redocumentacin: es la creacin o revisin


de una representacin equivalente semnticamente
dentro del mismo nivel de abstraccin relativo
Recuperacin de diseo: es un subconjunto
de la ingeniera inversa, en el cual, aparte de
las observaciones del sistema, se aaden
conocimientos sobre su dominio de aplicacin,
informacin externa, y procesos deductivos con
el objeto de identificar abstracciones significativas
a un mayor nivel

MANTENIMIENTO DEL SOFTWARE


16.130

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

MANTENIMIENTO DEL SOFTWARE


16.140

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

MANTENIMIENTO DEL SOFTWARE


16.150

PROCESO DE REINGENIERIA DEL SOFTWARE


Mejorar su facilidad de mantenimiento futuro
Facilitar su migracin, que el proceso de traducir
un programa de un lenguaje a otro, moverlo de un
entorno operativo a otro o actualizar su tecnologa
Aumentar su esperanza de vida
Capturar sus componentes en un repositorio que puede
ser gestionado por herramientas CASE
Incrementar la productividad de mantenimiento

MANTENIMIENTO DEL SOFTWARE


16.160

PASOS DE LA REINGENIERIA DEL SOFTWARE


Cdigo
Cdigo
antiguo
antiguo
ANLISIS
ANLISIS
DE
DECDIGO
CDIGO

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

MANTENIMIENTO DEL SOFTWARE


16.170

ANALISIS DE CDIGO FUENTE

Verificacin

25 %

Implantacin
del cambio

28 %
47 %

Comprensin

MANTENIMIENTO DEL SOFTWARE


16.180

ANALISIS DE CDIGO FUENTE


Anlisis esttico
Consiste en una evaluacin que estudia la estructura
del cdigo sin ejercitar o ejecutar dicho cdigo.
Auditora de cdigo: revisin del cdigo para
identificar errores de sintaxis y para comprobar
el seguimiento de los estndares de codificacin
Mtricas de producto: permiten obtener un conjunto
de mtricas sobre distintos atributos del software
Anlisis de flujo:identifica el flujo de control y de
datos para determinar dnde estn los errores

MANTENIMIENTO DEL SOFTWARE


16.190

TIPOS DE MTRICAS DE PRODUCTO


MEDIDAS DE COMPLEJIDAD
ESTRUCTURAL
DE PROGRAMAS

MEDIDAS DE
COMPLEJIDAD TEXTUAL
DE MDULOS

PRODUCTO

MEDIDAS DE
COMPLEJIDAD
ESTRUCTURAL
DE MDULOS

MANTENIMIENTO DEL SOFTWARE


16.200

ALGUNAS METRICAS DE PRODUCTO


Mtricas de la complejidad estructural de los programas
Nmero de caminos
Accesibilidad de un mdulo
Facilidad de prueba de un mdulo
Complejidad jerrquica
Complejidad estructural
Facilidad de prueba del sistema
Entropa del grafo de llamadas
Impureza del grafo de llamadas
Complejidad del flujo de informacin
Mtricas de la complejidad estructural de los mdulos
Nmero ciclomtico de McCabe
Densidad de control
Nmero de nodos pendientes
Nmero mximo de grado
Nmero mximo de niveles
Mtricas de la complejidad textual de los mdulos
Mtricas de Halstead

MANTENIMIENTO DEL SOFTWARE


16.210

REPRESENTACION DE UN DIAGRAMA DE KIVIAT


Valores
de referencia

Valores reales
del mdulo

Valores dentro
del estndar

Valores fuera
del estndar

MANTENIMIENTO DEL SOFTWARE


16.220

ANALISIS DE CDIGO FUENTE

Anlisis dinmico o pruebas


Es un proceso por el que se detectan defectos
ejecutando el cdigo al comparar los resultados
obtenidos con los esperados

MANTENIMIENTO DEL SOFTWARE


16.230

UNA SELECCIN DE MTRICAS PARA MEDIR


EL FACTOR FACILIDAD DE MANTENIMIENTO
FACTORES

FACILIDAD
DE
MANTENIMIENTO

CRITERIOS

MTRICAS

SIMPLICIDAD

Nmero Ciclomtico V(G)


Nmero de sentencias
Frecuencia de operandos

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)

MANTENIMIENTO DEL SOFTWARE


16.240

EJEMPLO DE DEFINICION DE MTRICAS Y SU


ASIGNACION A LOS CRITERIOS DE CALIDAD
Definicin de mtricas de mdulo
Longitud de programa
: LENG
Nmero de sentencias
: NSTM
Frecuencia comentarios : COMF
Frecuencia operandos
: OPEF
Nmero ciclomtico
: V(G)
Niveles anidados (mx) : NEST
Nivel de mdulo
: MLEV
Seleccin de lmites
LENG 1
100
NSTM 1
50
COMF 0.15
1.0
OPEF 1.0
3.0
V(G) 1
20
NEST 0
4
MLEV 0.03
1.00
Definicin de criterios de calidad
FACILIDAD DE PRUEBA: V(G), NEST
: V(G), NSTM, OPEF
SIMPLICIDAD
: LENG, MLEV
CONCISION
LEGIBILIDAD
: LENG, NEST, NSTM
: COMF
AUTODESCRIPTIVO

MANTENIMIENTO DEL SOFTWARE


16.250

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

MANTENIMIENTO DEL SOFTWARE


16.260

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

MANTENIMIENTO DEL SOFTWARE


16.270

REESTRUCTURACION DE DATOS
Un mismo dato puede nombrarse de distintas formas
en un sistema (sinonimia).

Un mismo dato puede definirse varias veces de forma


diferente en un sistema

MANTENIMIENTO DEL SOFTWARE


16.280

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

MANTENIMIENTO DEL SOFTWARE


16.290

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

MANTENIMIENTO DEL SOFTWARE


16.300

REESTRUCTURACION DE PROCESOS
SECUENCIA
if

case

SELECCION

REPETICION

while

repeat

MANTENIMIENTO DEL SOFTWARE


16.310

CONSTRUCCIONES NO PERMITIDAS
EN UN PROGRAMA ESTRUCTURADO

a)

b)

c)

d)

MANTENIMIENTO DEL SOFTWARE


16.320

PROCESO NORMALMENTE EFECTUADO POR LAS


HERRAMIENTAS DE REESTRUCTURACION DE LA
LOGICA DEL PROGRAMA
Funcionalmente
equivalente

Programa

Diagrama
de flujo

Programa
reestructurado

Diagrama
reestructurado

MANTENIMIENTO DEL SOFTWARE


16.330

UN PROGRAMA ES ESTRUCTURADO SI
LA COMPLEJIDAD CICLOMATICA
ES REDUCIBLE A UNO
V(G) reducible a 1

b a

c
b

MANTENIMIENTO DEL SOFTWARE


16.340

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

MANTENIMIENTO DEL SOFTWARE


16.360

INGENIERA INVERSA
OBJETIVOS

Detectar efectos laterales: los cambios sobre un


sistema pueden generar efectos laterales no deseados
Facilitar la reutilizacin: mediante las tcnicas de
ingeniera inversa podemos detectar los componentes
candidatos a reutilizar de sistemas existentes

MANTENIMIENTO DEL SOFTWARE


16.370

INGENIERIA INVERSA DE DATOS


REPOSITORIO CASE
DATOS DEL SISTEMA
Cdigo Fuente
Diccionario de
datos
LDD

INGENIERA
INGENIERA
INVERSA
INVERSA
DE
DEDATOS
DATOS

Especificacin de
datos a nivel:
CONCEPTUAL
LGICO
FSICO

MANTENIMIENTO DEL SOFTWARE


16.380

INGENIERIA INVERSA DE PROCESOS

Modelos a nivel de anlisis: como diagramas de flujo


de datos (DFD) y sus correspondientes descripciones
de proceso y el diccionario de datos
Modelos a nivel de diseo: como los diagramas de
estructuras, que representa la jerarqua de llamadas
a los mdulos
Modelos de interfaz de usuario: jerarquas de mens
y pantallas

También podría gustarte