• No se han encontrado resultados

Mantenimiento del Software

N/A
N/A
Protected

Academic year: 2021

Share "Mantenimiento del Software"

Copied!
92
0
0

Texto completo

(1)

Mantenimiento del

Software

Santiago Moral García

(2)

1. Introducción

2. Tipos de Mantenimiento de SW

3. Dificultades del Mantenimiento de SW

4. Soluciones al problema del Mantenimiento de SW 5. Mantenibilidad

6. Métodos de Mantenimiento de SW

(3)

Índice

1. Introducción

• Origen

• Definiciones

• El Efecto Iceberg

• Causas del Alto Coste

• Actividades del Mantenimiento

2. Tipos de Mantenimiento de SW

3. Dificultades del Mantenimiento de SW

4. Soluciones al problema del Mantenimiento de SW 5. Mantenibilidad

(4)

Origen

 Rápida evolución de la Ingeniería de

Computadores.

 Sin embargo, el desarrollo de SW ha sufrido un

retraso histórico.

 En 1970, ya se había popularizado el término Crisis

de Software.

 Para resolver este problema surgió un área de la

informática que recibió el nombre de Ingeniería del Software [Sommerville, 1992].

(5)

Introducción

Origen

 Una de las principales causas de esta situación ha sido

la poca importancia que se ha dado al Mantenimiento del Software.

 Aunque se sitúa al final del ciclo de vida, el

mantenimiento es un proceso de suma importancia por su repercusión económica, temporal y de recursos.

Análisis Diseño Implementación Pruebas Mantenimiento

(6)

Origen

Referencia Periodo % Mantenimiento

[Pressman, 1993] años 70 35%-40 [Pigoski, 1997] 1980-1984 55% [Pressman, 1993] Años 80 60% [Rock-Evans y Hales, 1990] 1987 67% [Schach, 1990] 1987 67% [Pigoski, 1997] 1985-1989 75% [Frazer, 1992] 1990 80% [Pressman, 1993] Años 90 90%

 Según varios estudios,

el Mantenimiento es la fase mas costosa del ciclo de vida del SW.

 Mayor parte del

presupuesto: Mantener software existente.  Sobrepasando la Barrera de Mantenimiento se imposibilitan nuevos desarrollos.

(7)

Introducción

Definiciones

Estándar ISO 12207: “el

proceso de mantenimiento

contiene las actividades y tareas realizadas por el mantenedor. Este proceso se activa cuando el producto software sufre

modificaciones en el código y la documentación asociada, debido a un problema o a la necesidad de mejora o adaptación. El objetivo es modificar el

producto software existente preservando su integridad. Este proceso incluye la migración y retirada del producto software”.

PROCESOS PRINCIPALES ADQUISICIÓN SUMINISTRO DESARROLLO EXPLOTACIÓN MANTENIMIENTO PROCESOS DE SOPORTE DOCUMENTACIÓN GESTIÓN DE CONFIGURACIÓN ASEGURAMIENTO DE CALIDAD VERIFICACIÓN VALIDACIÓN REVISIÓN CONJUNTA AUDITORÍA RESOLUCIÓN DE PROBLEMAS USABILIDAD EVALUACIÓN DE PRODUCTO PROCESOS DE SOPORTE DOCUMENTACIÓN GESTIÓN DE CONFIGURACIÓN ASEGURAMIENTO DE CALIDAD VERIFICACIÓN VALIDACIÓN REVISIÓN CONJUNTA AUDITORÍA RESOLUCIÓN DE PROBLEMAS USABILIDAD EVALUACIÓN DE PRODUCTO PROC. ORGANIZACIONALES GESTIÓN INFRAESTRUCTURA MEJORA RECURSOS HUMANOS GESTIÓN DE ACTIVOS GEST. PROG. REUTILIZACIÓN

INGENIERÍA DE DOMINIO PROC. ORGANIZACIONALES GESTIÓN INFRAESTRUCTURA MEJORA RECURSOS HUMANOS GESTIÓN DE ACTIVOS GEST. PROG. REUTILIZACIÓN

INGENIERÍA DE DOMINIO

PROCESO DE ADAPTACIÓN

(8)

Definiciones

IEEE 1219:

“Modificación de un producto software

después de haber sido entregado (a los usuarios o clientes) con el fin de corregir los defectos,

mejorar el rendimiento u otros atributos, o adaptarlo a un cambio de entorno”.  Pressman [1998]: “la fase de mantenimiento se centra en el cambio que va a asociado a la corrección de errores, a las adaptaciones

requeridas a medida que evoluciona el entorno del software, y a cambios

debidos a las mejoras producidas por los

requisitos cambiantes del cliente”.

(9)

Introducción

el Efecto Iceberg

 A la hora de planificar los costes de

mantenimiento, los analistas-programadores

tienen la impresión de que el mantenimiento es algo descontrolado, nunca se sabe que va a pasar (sería predecir el futuro).

 Esta situación se asemeja a un Iceberg, del cual

sólo se percibe una pequeña parte, pero bajo cuya superficie se esconde una gran cantidad de

problemas potenciales y costes encubiertos [Canning, 1972].

(10)

el Efecto Iceberg

 En la parte sumergida de este Iceberg se ocultan

costes, menos tangibles que los monetarios.

 Los costes intangibles del mantenimiento del software

están vinculados a las oportunidades de desarrollo que se deben posponer o se pierden [McCracken, 1980].

 Otros costes intangibles son:

Insatisfacción del cliente, cuando no se pueden atender a

tiempo las reparaciones o modificaciones.

Errores ocultos introducidos al realizar el mantenimiento.  Perjuicio en otros proyectos de desarrollo, cuando la

(11)

Introducción

el Efecto Iceberg

Al final, el

coste

de

mantenimiento

de un

SW

es la

reducción

que se produce en la

productividad

de los

informáticos

.

Algunos autores [Boehm, 1979], han calculado

que el

coste

de

mantener

una línea de código

(LCD) puede llegar a ser

40 veces más alto

que

en el proceso de

desarrollo

.

(12)

Causas del Alto Coste

1 2 3 5 35 100 0 20 40 60 80 100 120

Coste de detectar y corregir defectos

(13)

Introducción

Causas del Alto Coste

Una gran cantidad del

SW actual

ha sido

desarrollado

hace más de

15-20 años

.

Aunque fuese creado utilizando las mejores

técnicas:

Restricciones de tamaño.

Restricciones de espacio de almacenamiento.  Herramientas tecnológicamente desfasadas.

(14)

Causas del Alto Coste

Cambios Incontrolados

 Los programas sufren migraciones a nuevas

plataformas o SO.

 Los programas experimentan mejoras y

adaptaciones para satisfacer las nuevas

necesidades de los usuarios.

Problema: Los cambios se realizan sin tener en

cuenta la arquitectura del sistema. No se aplican técnicas de ingeniería inversa o reingeniería.

(15)

Introducción

Causas del Alto Coste

 Escasez de métodos, técnicas y herramientas que

puedan proporcionar una solución global al

mantenimiento:

 Las metodologías de desarrollo no reflejan costes

necesarios ni esfuerzo.

 Las metodologías se centran en el desarrollo de

nuevos sistemas.

Complejidad de los sistemas aumenta:

 Debido a continuas modificaciones.

 Pérdida de información; cada vez hay menos personas

(16)

Causas del Alto Coste

Documentación del sistema defectuosa o

inexistente:

 Muchas veces no se actualiza cuando cambia el

sistema.

Actividad poco creativa:

 A diferencia del desarrollo, se considera mas sencilla

y menos importante

 La realiza personal con menor experiencia.

 Se cree que tiene un menor soporte de herramientas

y menos esfuerzo de gestión (FALSO).

¿Qué perfil profesional es encargado del mantenimiento en los equipos de trabajo?

(17)

Introducción

Causas del Alto Coste

Actividades

de

mantenimiento

bajo

presión

de

tiempo

.

 Poco tiempo para realizar modificaciones

(generalmente sobre el código).

No actualización de la documentación.

Problema: Las correcciones imperfectas dan

lugar a nuevos esfuerzos de corrección en el futuro.

(18)

Causas del Alto Coste

Por todo esto, en la actualidad nos podemos

encontrar

sistemas SW

con una

escasa calidad

debida a:

 Estructuras de datos con un diseño pobre.  Mala codificación.

 Lógica defectuosa.

 Documentación escasa o errónea.

Estas mismas razones provocan que el

coste

de

solucionar

un

defecto

en la etapa de

mantenimiento

sea mucho

mayor

que en

tiempo de

análisis

(2/100).

(19)

Introducción

Actividades del Mantenimiento

Muchos de los problemas anteriores vienen

dados por el

desconocimiento

de la

actividades

durante el

mantenimiento

.

Algunas definiciones solo consideran como

mantenimiento

la

corrección

de

defectos

.

Ampliación de

nuevos requisitos

se

consideran

proyecto

de

desarrollo

continuado

o

redesarrollo

.

(20)

Actividades del Mantenimiento

¿Qué actividades consideramos entonces

como mantenimiento [IEEE 1219]?

Corrección de defectos en el software.

Creación de nuevas funcionalidades en el

software por nuevos requisitos de usuario.

(21)

Índice

1. Introducción 2. Tipos de Mantenimiento de SW • Mantenimiento Correctivo • Mantenimiento Adaptativo • Mantenimiento Perfectivo • Mantenimiento Preventivo

• Tareas del Mantenimiento

3. Dificultades del Mantenimiento de SW

4. Soluciones al problema del Mantenimiento de SW 5. Mantenibilidad

(22)

Usuarios del Sistema Base Tecnológica Entorno de Trabajo Sistema Software Mantenimiento Perfectivo Mantenimiento Adaptativo Mantenimiento Preventivo Mantenimiento Correctivo

(23)

Tipos de Mantenimiento de SW

¿Qué estimación en esfuerzo podemos realizar

sobre cada uno de los tipos de mantenimiento?

60% 18%

17% 5%

Costes estimados por tipo de Mantenimiento

Perfectivo Adaptativo Correctivo Preventivo

(24)

Mantenimiento Correctivo

 Aún habiendo superado las etapas de prueba y

verificación, el software puede contener defectos.

 Este tipo de mantenimiento tiene como objetivo

encontrar y eliminar estos defectos del software.

Defectos Vs. Fallos:

 Un defecto en un sistema es una característica del

sistema con el potencial de causar un fallo [Piattini, 2000].

 Un fallo ocurre cuando el comportamiento de un

sistema es diferente del establecido en la

(25)

Tipos de Mantenimiento de SW

Mantenimiento Correctivo

Podríamos llegar a considerar los siguientes

fallos:

Procesamiento:

Salidas incorrectas en un

programa.

Rendimiento:

Demasiado tiempo de respuesta.

Programación:

Diseño inconsistente de un

sistema.

Documentación:

Diferencias entre la

funcionalidad de un programa y el manual de

usuario.

(26)

Mantenimiento Correctivo

38%

26% 36%

Origen de los defectos del SW

Requisitos Diseño

(27)

Tipos de Mantenimiento de SW

Mantenimiento Adaptativo

 Este tipo de mantenimiento responde a una

situación en la que se produce algún cambio en el

SW o HW del entorno en el que se ejecuta el

sistema.

 Estos cambios pueden deberse a:

Cambio en el SO.

Cambio del tipo de arquitectura en la que se ejecuta

(red local a Internet/Intranet).

Entorno de desarrollo del software (nuevos

elementos y herramientas como ODBC).

 La envergadura del cambio necesario puede ser

(28)

Mantenimiento Adaptativo

 Los cambios en el entorno SW pueden ser:

 En el entorno de los datos (Sistema Ficheros Vs.

BBDD).

 En el entorno de los procesos (Sistemas Distribuidos,

Java, …).

 El mantenimiento adaptativo cada vez es más

usual debido a:

 Nuevas generaciones de HW cada poco tiempo.  Nuevos sistemas operativos.

 Mejoras en las prestaciones y elementos.

 Frente a esto, la vida útil de un sistema SW puede

(29)

Tipos de Mantenimiento de SW

Mantenimiento Perfectivo

 Este tipo de mantenimiento está asociado a

cambios en los requisitos de un producto SW.

 Se podría definir como “el conjunto de actividades

para mejorar o añadir nuevas funcionalidades requeridas por el usuario”.

 A su vez, este tipo de mantenimiento se puede

dividir en dos:

Mantenimiento de Ampliación: orientado a la

incorporación de nuevas funcionalidades.

Mantenimiento de Eficiencia: busca la mejora de las

(30)

Mantenimiento Perfectivo

Este tipo de mantenimiento aumenta

cuando un producto SW

tiene éxito

comercial.

(31)

Tipos de Mantenimiento de SW

Mantenimiento Preventivo

 El principal objetivo de este tipo de

mantenimiento es mitigar o evitar las consecuencias

de los fallos.

 Para ello:

Comprobación de la validez de los datos de entrada.

Reestructuración del software para mejorar la

legibilidad y su futuro mantenimiento.

Adición de comentarios.

Monitorización de las prestaciones del sistema en

todo momento (Almacenamiento, Procesamiento, Ancho de Banda, …).

(32)

Mantenimiento Preventivo

Otros Mantenimientos

Vs. Preventivo

Los otros tipos de mantenimientos se

realizan

, generalmente

a causa

de una

petición

.

El mantenimiento

preventivo

se produce

tras

un

estudio

de

posibilidades

de

mejora

(33)

Tipos de Mantenimiento de SW

Ejercicio

Partiendo de los tipos de mantenimiento:

Correctivo

Adaptativo

Perfectivo

Preventivo

Buscar un ejemplo de cada uno de ellos,

básandose en la práctica de

(34)
(35)

Tipos de Mantenimiento de SW

Tareas del Mantenimiento

I - Comprensión del SW y de los cambios

a

realizar:

Se deben

conocer

la

funcionalidad

, el

objetivo

, la

estructura interna

y los

requisitos

.

Si no respetamos esto,

podríamos introducir

nuevos

errores

que nos lleven a

más gastos

(36)

Tareas del Mantenimiento

II - Modificación del Software

Se deben

crear

y

modificar

las

estructuras

de

datos

, la

lógica

de los

procesos

, las

interfaces

y la

documentación

.

Para

evitar

los

efectos secundarios

, los

programadores deben

conocer

las

repercusiones

de las

modificaciones

que van

a introducir.

(37)

Tipos de Mantenimiento de SW

Tareas del Mantenimiento

III - Realización de Pruebas:

Es necesario

realizar pruebas

para

validar

los

cambios

.

Las pruebas

verificaran

que

no

se han

introducido

a la vez otros

errores

.

Incluso el

cambio

más pequeño puede

inducir

defectos

que

reduzcan

la

calidad

y la

(38)

Tareas del Mantenimiento

Partiendo de las distintas categorías:

Comprensión de los cambios

Modificación del software

Realización de pruebas

Identificar actividades de mantenimiento

llevadas a cabo por un analista/programador

(39)

Tipos de Mantenimiento de SW

Tareas del Mantenimiento

Categoría Actividad % Tiempo

Comprensión del software y de los cambios a realizar

Estudiar las peticiones 18%

Estudiar la documentación 6% Estudiar el código 23% Modificación del software Modificar el código 19% Actualizar la documentación 6% Realización de

(40)

1. Introducción

2. Tipos de Mantenimiento de SW

3. Dificultades del Mantenimiento de SW

• Código Heredado

• Problemas del Mantenimiento

• Efectos Secundarios del Mantenimiento

4. Soluciones al problema del Mantenimiento de SW 5. Mantenibilidad

6. Métodos de Mantenimiento de SW

(41)

Dificultades del Mantenimiento

Se debe

realizar

el

mantenimiento

del

SW

de

forma que la

calidad no

se

deteriore

como

resultado del proceso.

¿Cómo debe mantenerse el SW para

preservar su fiabilidad?

(42)

Código Heredado

 Con el paso de los años se ha ido produciendo un

volumen muy grande de SW.

 En la actualidad, la mayor parte del SW está

formado por código heredado (legacy code), es decir:

Código desarrollado hace algún tiempo.  Con técnicas y herramientas en desuso.

 Desarrollado por personas que ya no pertenecen al

colectivo.

 En muchas ocasiones, la situación se complica

porque el código heredado fue objeto de

(43)

Dificultades del Mantenimiento

Código Heredado

Leyes del Mantenimiento del Software

Continuidad del Cambio

: Un

programa

evoluciona

con su

entorno

para no hacerse

obsoleto.

 Ideas de los usuarios.

 Nuevas características HW  Mejoras SW.

 Corrección de defectos.

 Migración del sistema a otra máquina o SO.  El software necesita ser más eficiente.

(44)

Código Heredado

Leyes del Mantenimiento del Software

Incremento de la Complejidad:

 Cuando un programa es modificado, se

incrementa la complejidad de la estructura

del mismo, salvo que se haga un esfuerzo para evitarlo.

 Esto sucede cuando los programadores no

utilizan técnicas de Ingeniería del SW (en este caso no cuenta el mantenimiento preventivo).

(45)

Dificultades del Mantenimiento

Código Heredado

Leyes del Mantenimiento del Software

Evolución del Programa

 Es un proceso autorregulado.

 La medición de determinadas propiedades

(tamaño, tiempo entre versiones, numero de errores) permiten evaluar esta tendencia.

Conservación de la Estabilidad Organizacional  La carga que supone el desarrollo de un

sistema es aproximadamente constante e

(46)

Código Heredado

Leyes del Mantenimiento del Software

Conservación de la Familiaridad

 Durante todo el tiempo de vida de un sistema,

el incremento en el número de cambios incluidos con cada versión (release) es aproximadamente constante.

Según [Lehman et al, 1998], los grandes

programas no llegan nunca a completarse

y

están en constante evolución

(47)

Dificultades del Mantenimiento

Problemas del Mantenimiento

Además de las dificultades de mantenimiento

mostradas en las leyes anteriores, existen otros

problemas clásicos

que

complican

el

mantenimiento

[Schneidewind, 1987]:

Problemas de carácter técnico

 Ausencia metodológica.

 Tendencia a la des-estructuración.  Disminución de la comprensibilidad.

(48)

Problemas del Mantenimiento

Problemas de carácter técnico

Ausencia Metodológica

 Las metodologías no suelen contemplar la

participación del usuario.

 Si no se satisfacen las necesidades, hay que

realizar un esfuerzo adicional para adaptar el SW.

Tendencia a la des-estructuración

Documentación desfasada.

 El código no cumple los estándares.

Incremento en el tiempo necesitado para

(49)

Dificultades del Mantenimiento

Problemas del Mantenimiento

Problemas de carácter técnico

Disminución de la Comprensividad

 Los sucesivos cambios producidos por el

mantenimiento hacen que el código sea más difícil

de modificaraumento de los costes.

 Según Sommerville [1992], “cualquier cambio

conlleva la corrupción de la estructura del

software y, a mayor corrupción, la estructura del programa se torna menos comprensible y más difícil de modificar”.

(50)

Problemas del Mantenimiento

Problemas de gestión

 Hay programadores que consideran el trabajo

del mantenimiento como una actividad inferior.

Personas dedicadas al mantenimiento peores

condiciones laborables y salariales.

 Como resultado, al realizar un mantenimiento:

No se emplea una estrategia sistemática.  Correcciones realizadas con precipitación.  No se documentan adecuadamente.

(51)

Dificultades del Mantenimiento

Efectos Secundarios

La

posibilidad

de

error

al

modificar

un

sistema

actual es muy

grande

.

Una de las mayores dificultades es el riesgo del

llamado “

Efecto Bola de Nieve

”:

 Los cambios producidos por una petición

introducen efectos secundarios, implicando

nuevos mantenimientos.

 Estos nuevos mantenimientos a su vez pueden

(52)

Efectos Secundarios

• Cambios en el Diseño = cambios en el Código.

• Eliminación o modificación de un

Subprograma.

• Eliminación o modificación de una Etiqueta.

• Eliminación o modificación de un

Identificador.

• Cambios para mejorar el Rendimiento.

• Modificación de la apertura/cierre de

Ficheros.

• Modificación de Operaciones Lógicas.

(53)

Dificultades del Mantenimiento

Efectos Secundarios

• Redefinición de Variables Locales o Globales.

• Modificación de Permisos de los Archivos. • Modificación de las Rutas de Acceso a

Ficheros.

• Modificación del Tamaño de una Matriz. • Reinicialización de Punteros.

• Cambios en los Parámetros de los

Subprogramas.

(54)

Efectos Secundarios

• Modificar el formato de las

Entradas Interactivas.

• Nuevos Mensajes de Error

no documentados. • Tablas o Índices no actualizados. • Texto no actualizado correctamente. Documentación

(55)

Índice

1. Introducción

2. Tipos de Mantenimiento de SW

3. Dificultades del Mantenimiento de SW

4. Soluciones al problema del Mantenimiento de SW

• Soluciones de Gestión

• Soluciones Técnicas

5. Mantenibilidad

6. Métodos de Mantenimiento de SW

(56)

Mantenimiento del SW

Desde un punto de vista

financiero

, el

mantenimiento

del

SW

es un continuo

consumidor

de

recursos

(beneficios???).

Se necesita un

apoyo

por parte de la

dirección

de las

organizaciones

, siendo conscientes:

Importancia de las tecnologías de la

información.

 El SW es un activo corporativo que puede

(57)

Soluciones al Problema del

Mantenimiento del SW

57

Recursos dedicados al mantenimiento

Gestión de la Calidad

Gestión estructurada del mantenimiento

Organización del equipo humano

Documentación de los cambios

Gestión

Reingeniería

Ingeniería Inversa

Restructuración del Software

(58)

Soluciones de Gestión

Recursos dedicados al Mantenimiento

 Principal recurso para el mantenimiento es el

humano.

 Constitución de un equipo dedicado con

experiencia.

Gestión de la Calidad

Aumento de Recursos => Solución a corto plazo.  Métodos para aumentar la calidad, tanto del

producto SW como del proceso de producción

(59)

Soluciones al Problema del Mantenimiento del SW

Soluciones de Gestión

Gestión Estructurada del Mantenimiento

 La existencia de una adecuada Configuración del Software reduce la cantidad de esfuerzo

requerido y mejora la calidad.

 Partiendo desde este punto, se deben subdividir

las tareas a desarrollar, para así realizar un

seguimiento directo sobre cada una de las

etapas:

 Comprensión del SW y de los cambios a realizar.  Modificación del SW.

(60)

Soluciones de Gestión

Organización del Equipo Humano

 Las tareas relacionados con el mantenimiento

comienzan mucho antes de la primera petición.

Establecer las personas que participarán en

cada actividad.

Delegación de responsabilidades [Pressman,

1993]:

 Controlador del Mantenimiento (gestión y segto).  Supervisor del sistema SW (Conocimiento).

 Gestor de la configuración (actualiza SW).

(61)

Soluciones al Problema del Mantenimiento del SW

Soluciones de Gestión

Documentación de los cambios

 Información del programa.

 Tamaño: LDC programa fuente y ejecutable.

 Lenguaje de programación.

 Fecha de instalación del programa.

 Número de ejecuciones del programa desde la instalación.  Número de fallos.

 Numero de sentencias añadidas, modificadas y eliminadas.

 Número de personas/hora.

 Persona responsable del cambio.  Identificación de la petición.  Tipo de mantenimiento.

(62)

Soluciones Técnicas

Herramientas

Ayudan al personal de mantenimiento, a la hora

de comprender el problema y probar las

modificaciones.

 Muchas de estas herramientas son similares a las

utilizadas en las pruebas de SW:

Depuradores

Generadores de Datos de PruebaDocumentadores

(63)

Soluciones al Problema del Mantenimiento del SW

Soluciones Técnicas

Métodos

Reingeniería

 Examen y Modificación de un sistema para

reconstruirlo de una nueva forma [Bennett, 1990].

Ingeniería Inversa

 Proceso de analizar un sistema para identificar sus

componentes y las interrelaciones que existen entre ellos. [Chikofsky y Cross, 1990].

Reestructuración del Software

 Modificación del software para hacerlo más fácil de

(64)

1. Introducción

2. Tipos de Mantenimiento de SW

3. Dificultades del Mantenimiento de SW

4. Soluciones al problema del Mantenimiento de SW 5. Mantenibilidad

• Propiedades

• Métricas

6. Métodos de Mantenimiento de SW

(65)

Mantenibilidad

Medida

cualitativa

de la

facilidad

de

comprender

,

corregir

,

adaptar

y/o

mejorar

el

Software

[Pressman, 1993].

Hay

muchos factores

que

influyen

en la

mantenibilidad

.

Los más principales son:

Proceso de Desarrollo.

Comprensión de Programas. Documentación.

(66)

Resumiendo…

Debemos

considerar

el

SW

como un

producto

que estará

sujeto a cambios

casi con total

seguridad.

Diseñar etapas

previas

considerando

la

mantenibilidad

.

Realizar

una

documentación estricta

y

estandarizada

desde el

primer desarrollo

(67)

Mantenibilidad

Propiedades

Reparabilidad

 Un sistema SW es reparable si permite la

corrección de sus defectos con una cantidad de trabajo limitada y razonable.

Flexibilidad

 Un sistema SW es flexible si permite cambiar o

incrementar sus funcionalidades con una cantidad de trabajo limitada y razonable.

¿Son fácilmente medibles?

¿Qué criterios utilizaríais?

(68)

Métricas

MANTENIB

IL

IDAD

CRITERIOS MÉTRICAS

SIMPLICIDAD •• Nº ciclomático v(G)Nº de sentencias

• Frecuencia de operandos CONCISIÓN • Longitud de programa

• Nivel de módulo

AUTODESCRIPTIVO • Frecuencia de comentarios

LEGIBILIDAD •• Longitud de programaNiveles anidados (MAX) • Nº de sentencias

(69)

Índice

1. Introducción

2. Tipos de Mantenimiento de SW

3. Dificultades del Mantenimiento de SW

4. Soluciones al problema del Mantenimiento de SW 5. Mantenibilidad

6. Métodos de Mantenimiento de SW

• Conceptos Básicos

• Proceso de Reingeniería del Software

• Costes y Beneficios de la Reingeniería

(70)

Conceptos Básicos

Reingeniería del SW

Análisis

y

modificación

de un

sistema

para

reconstruirlo

en una

nueva forma

[Bennett

et al., 1990].

Beneficios…

Ayuda a la gestión y automatización de las actividades de mantenimiento.

Reducción del esfuerzo de mantenimiento.  Reutilización de componentes.

(71)

Métodos de Mantenimiento de SW

Conceptos Básicos

Ingeniería Inversa

Es el

proceso

de

análisis

de un sistema para

identificar

sus

componentes

e

interrelaciones

[CHIKOFSKY, 1990].

Recuperación de diseño:

Observación del sistema.

Conocimientos sobre su dominio de aplicación.Información externa.

(72)

Conceptos Básicos

Reestructuración

Es la

transformación

de un

sistema

a otro en

el

mismo nivel

de

abstracción

relativo,

manteniendo su comportamiento externo

(funcionalidad y semántica)

[CHIKOFSKY, 1990].

Es la

modificación

del software para hacerlo

más

fácil de entender y cambiar

” [ARNOLD,

1993].

(73)

Métodos de Mantenimiento de SW

Conceptos Básicos

Ingeniería Directa

Desarrollo inicial de un sistema, basándose

en una metodología o proceso del software

estandarizado.

Redocumentación

La creación de

información correcta

y

(74)

Proceso de Reingeniería del SW

Definición Diseño Implement. Ingeniería directa (1) Ingeniería directa (2)

Reing.(6) Reing.(8) Redocumentación (5) Redocumentación (7) Redocumentación (8) Ing. inversa (4) Ing. inversa (3) (Piattini et al. 98)

(75)

Métodos de Mantenimiento de SW

Costes y Beneficios de la Reing.

Antes

de

reconstruir

un sistema en

explotación, es altamente recomendable

analizar

las

alternativas:

Dejar el producto como está.

Adquirir uno en el mercado que realice la

misma función.

Reconstruirlo.

Evidentemente, elegiremos la

opción

con

(76)

Costes y Beneficios de la Reing.

Antes

de

reconstruir

un sistema en

explotación, es altamente recomendable

analizar

las

alternativas:

Dejar el producto como está.

Adquirir uno en el mercado que realice la

misma función.

Reconstruirlo.

Evidentemente, elegiremos la

opción

con

(77)

Métodos de Mantenimiento de SW

Costes y Beneficios de la Reing.

Para calcular los costes de un proyecto de

Reingeniería, Sneed [1995] propone un modelo

basado en cuatro etapas:

Justificación del Proyecto de Reingeniería. Análisis de la cartera de aplicaciones.

Estimación de costes.

(78)

Costes y Beneficios de la Reing.

I - Justificación del Proyecto de Reingeniería

Requiere:

Análisis del Software existente.

Análisis de los procesos de mantenimiento

actuales.

Análisis del valor de negocio de las

aplicaciones.

Muchas organizaciones sólo tienen en cuenta

el

proceso

de

Reingeniería cuando

el

coste

de un

nuevo desarrollo

es muy

alto

(Ej.

Hardware).

(79)

Métodos de Mantenimiento de SW

Costes y Beneficios de la Reing.

II - Análisis de la Cartera de Aplicaciones

En esta etapa se cotejan la

calidad técnica

y

el

valor

de

negocio

de cada una de las

aplicaciones

.

Objetivo

: Constituir una

lista

de

aplicaciones

,

ordenada

según sus

prioridades

en el proceso de Reingeniería.

La

calidad técnica

de un producto es una

medida relativa

, dependiente de cada

organización.

(80)

Costes y Beneficios de la Reing.

II - Análisis de la Cartera de Aplicaciones

ALTA CALIDAD, BAJO VALOR BAJA CALIDAD, ALTO VALOR BAJA CALIDAD, BAJO VALOR ALTA CALIDAD, ALTO VALOR Valor de Negocio Calidad Técn ic a

(81)

Métodos de Mantenimiento de SW

Costes y Beneficios de la Reing.

II - Análisis de la Cartera de Aplicaciones

Cuadrante superior izquierdo => No requieren

Reingeniería.

Cuadrante inferior izquierdo => Desarrolladas

de nuevo o reemplazadas por productos comerciales.

Cuadrante superior derecho => Se puede aplicar

Reingeniería, pero sin excesiva prioridad.

Cuadrante inferior derecho => Primeras

(82)

Costes y Beneficios de la Reing.

III - Estimación de Costes

Identificar

y

ponderar

todos los

componentes

del

software

que se van a

modificar.

Para ello, se deben

utilizar métricas

adecuadas (existe gran diversidad de

métricas).

Comprobar

si es

rentable

hacer

Reingeniería

, empezar de

nuevo

el

desarrollo

o

comprar

en el mercado (pedir

presupuestos a partners).

(83)

Métodos de Mantenimiento de SW

Costes y Beneficios de la Reing.

IV - Análisis de Costes Vs. Beneficios

La última etapa es

comparar

los

costes

estimados de cada uno de los

presupuestos

:

Reingeniería.

Nuevo Desarrollo.

Comprar en el Mercado.

Con los

beneficios

estimados de cada uno de

(84)

1. Introducción

2. Tipos de Mantenimiento de SW

3. Dificultades del Mantenimiento de SW

4. Soluciones al problema del Mantenimiento de SW 5. Mantenibilidad

6. Métodos de Mantenimiento de SW

7. Externalización del Mantenimiento del SW

• Concepto de Outsourcing

(85)

Externalización del

Mantenimiento de SW

Sistemas de Información

han

crecido

considerablemente,

incrementando

el

porcentaje de

inversiones

.

En algunos casos ha puesto en

peligro

los

resultados de las

compañías

.

Se ha comprobado que realizar

outsourcing

total

sobre los

mantenimientos

de los sistemas

de información tiene una

buena relación

coste/beneficio

.

(86)

Concepto de Outsourcing

Externalización

de una parte o la totalidad de

cualquier

actividad

.

Se pueden identificar

dos enfoques

distintos:

 Una actividad que era realizada

tradicionalmente en el ámbito interno pasa a ser desarrollada por un proveedor externo.

Cualquier externalización de actividades de la

empresa, independientemente si ésta lo realizó con anterioridad.

(87)

Externalización del Mantenimiento de SW

Objetivos de la Externalización

Aumentar la competitividad de su negocio.

Aumentar los niveles de calidad del servicio.

Aumentar el servicio dado a los usuarios. Estratégicos

Reducción de Costes.

Aumento de la Productividad. Financieros

(88)

Objetivos de la Externalización

Estratégicos

• Mayor focalización en su

Core Business

.

• Cambios en la

dedicación

de

los

responsables de

informática

.

Liberar recursos

para

desarrollos estratégicos.

Aumentar

la

Compe-titividad

de Negocio

(89)

Externalización del Mantenimiento de SW

Objetivos de la Externalización

Estratégicos

Plan de Garantía de Calidad

que asegure los compromisos

adquiridos con el proveedor.

• Definiendo unos

indicadores

claros de

mejora

.

Reduciendo

las

interrupciones

del sistema

(Ej. Batch).

Aumentar

los niveles

de calidad

del

servicio

(90)

Objetivos de la Externalización

Estratégicos

Sistema mecanizado

que le

permite al usuario conocer la

evolución

de sus

demandas

(CAU).

Despersonalizando

la

actividad del

mantenimiento

.

Aumentar

el servicio

dado a los

usuarios

(91)

Externalización del Mantenimiento de SW

Objetivos de la Externalización

Financieros

• Mayor

facilidad

para

imputar costes

.

Ahorro

en la

gestión

y

formación

de las

personas

(proveedor).

Conocer

y

fijar costes

antes

de realizar el

servicio

.

Reducción

de costes

(92)

Objetivos de la Externalización

Financieros

• Nuevos desarrollos

eliminan

las

interferencias

de

mantenimiento

.

• Beneficio de la

especialización

de los

proveedores

.

• Mantenimiento como un

proyecto cerrado

.

Aumento

de la

productivi-dad

Referencias

Documento similar

 Funciones básicas: Mantenimiento y de las aplicaciones de gestión y explotación de las BBDD de gestión educativa.. Consejería

– Analizar los procesos de mantenimiento, montaje e instalación en planta de maquinaria y equipo industrial, así como los de mantenimiento y construcción de sus

Todo esto aplicado para el desarrollo de una propuesta de solución ante la principal debilidad de la empresa, fue necesario realizar un diagnóstico financiero

Pressman donde define el término de Calidad de Software y uniéndolo a los vocablos gestión y administración, se tiene que el Aseguramiento de Calidad del Software es el

El presente trabajo se centra en analizar los procesos operativos en el sector automotriz, a través de una encuesta de campo, para mejorar la calidad de los servicios de

Por tanto el objeto de estudio es: El desarrollo de los procesos de calidad de software y el campo de acción está determinado por: El proceso de estimación y planificación

La Guía cuenta con tres elementos principales, en el primero se recomiendan procesos necesarios para el aseguramiento y desarrollo de la gestión de las reglas

“Descripción de la solución”: Muestra la descripción de la Estrategia para el Aseguramiento de la Calidad durante los procesos de Revisión y Prueba de los