1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa...

28
1 MANTENIMIENTO

Transcript of 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa...

Page 1: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

1

MANTENIMIENTO

Page 2: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

2

MANTENIMIENTO Definición

Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está siendo operado (después de la entrega), para cambiar el sistema, (corrección de codificación o diseño, introducir nuevos requerimientos, etc)

Page 3: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

3

TIPOS DE MANTENIMIENTO

Mantenimiento CorrectivoMantenimiento AdaptativoMantenimiento PerfectivoMantenimiento Preventivo

Page 4: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

4

MANTENIMIENTO CORRECTIVO

Consiste en modificar el sistema tras la detección de defectos, ambigüedades o errores.

Page 5: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

5

MANTENIMIENTO ADAPTATIVO

Consiste en modificar el sistema para acomodarlo a cambios físicos del entorno.

Page 6: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

6

MANTENIMIENTO PERFECTIVO

Consiste en mejorar el Software,,agregar funcionalidad adicional para cumplir con las nuevas necesidades/requerimientos de los usuarios/negocio.

Page 7: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

7

ESFUERZO DEDICADO A CADA TIPO DE MANTENIMIENTO

Page 8: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

8

Relación entre los tipos de Mantenimiento

Page 9: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

9

ACTIVIDADES DEL PROCESO DE MANTENIMIENTO (Sommerville)

Page 10: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

10

EVOLUCIÓN DE SOFTWARE

La evolución del software implica un mantenimiento del mismo durante el ciclo de vida del software

La evolución del SW es una garantía frente a su obsolescencia

Los cambios continuos en los requisitos implican un proceso evolutivo

Leyes de Lehman & Belady

Page 11: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

11

OBJETIVOSDE LA EVOLUCIÓN DE SOFTWAREMantener operativo al sistemaMantener contentos a los usuariosMaximizar la inversión y reducir costesAlargar la vida del softwareAdaptarlo a nuevos cambios o

requisitos

Page 12: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

12

Lehman and Belady (1985)

Primera Ley: cambio continuo: Cada vez menos útil Mantenimiento es inevitable

Segunda Ley: el incremento de la complejidad: Estructura más compleja más costos

 Tercera Ley: la evolución de los programas grandes: Proceso autorregulado. a) tamaño , b)tiempo, c)Nro. De errores reportados, son invariantes para cada entrega del sistema. (actúan como una masa inerte) 

Cuarta Ley: Estabilidad organizacional: Tiempo de vida y la tasa de desarrollo son aproximadamente constantes e independiente de los recursos asignados al desarrollo. (eq. grandes improductivos o cambiar equipo)

 Quinta Ley: Conservación de la familiaridad: Durante la vida de un sistema el cambio incremental en cada entrega es aproximadamente constante, semejantes. 

Las leyes son importantes porque sirven de base para planificar y administrar el proceso de mantenimiento. 

Page 13: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

13

MEDIDAS DE MANTENIBILIDAD

La medida más común dependiente del entorno es el tiempo medio para realizar un cambio:

• Número de problemas no resueltos

• Tiempo empleado en problemas no resueltos

• Porcentaje de cambios que introducen fallos

Page 14: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

14

COSTOS DE MANTENIMIENTO Y LOS

COSTOS DE DESARROLLO

Page 15: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

15

COSTOS DE DESARROLLO DE UN SISTEMA

Costos directos : desarrollo del sistema

Costos indirectos: instalación, mantenimiento

Page 16: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

16

Costos

Lientz & Swason: sugieren que el 50% de su esfuerzo es lo que normalmente se gasta en mantener programas otros autores sugieren que se llega a gastar hasta un 80%

Page 17: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

17

0 100 200 300 400 500 600 700 800 900

Sistema 1

Sistema 2

Costos de Mantenimiento Vs. Costos de Desarrollo

Costos desarrollo Costos Mantenimiento

720220

200 800

Page 18: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

18

COSTOS DE MANTENIMIENTOUna gran cantidad del software actual es

muy antiguoSucesivas migraciones a distintas

plataformas o sistemas operativos.Múltiples modificaciones para mejorarlos y

adaptarlos a las necesidades de los usuarios.

Cambios incontrolados no tienen en cuenta la arquitectura del sistema, no se realizó ingeniería inversa o reingeniería.

Page 19: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

19

Factores de costos de mantenimiento

Factores Técnicos Factores no técnicos

Independencia de módulosLas modificaciones solo afectan a una parte del programa.

Dominio de la aplicaciónSi la aplicación tiene requerimientos claros Se

necesita poco mantenimiento adaptativo. Si la aplicación es nueva , generalmente se exigen modificaciones sobre la marcha.

Lenguaje de programaciónCuanto más alto del nivel del lenguaje de programación, más fácil realizar el mantenimiento.

Estabilidad del staff¡Costo de mantenimiento es más económico si el mismo que desarrolló el sistema es también quién realiza el mantenimiento

Estilo de programaciónCuanto más entendible el estilo de programación, el mantenimiento es menos costoso.

Tiempo de vida (edad) del programa.El tiempo de vida depende de aplicación. Si la aplicación es obsoleta o nuevo hardware ya se desarrolló, entonces el programa también es obsoleto. De manera general los costos crecen con el tiempo de vida de los programas, a más tiempo de vida más costos.

Validación del programaCuanto menos errores, entonces menos requerimientos de mantenimiento.

Entorno del programaCuanto más dependiente del entorno de la

organización entonces se requiere más modificaciones.

DocumentaciónCuanto más documentado el programa este es más entendible y por lo tanto más fácil de mantener.

Estabilidad del hardwareSi el programa es para un hardware en particular entonces requiere más modificaciones.

Page 20: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

20

REINGENIERIA

Page 21: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

21

¿Porqué es necesario?

V 1.2aV 1.2a V 1.2V 1.2

nuevo requerimientonuevo requerimiento

arreglo A812arreglo A812

arreglo A790arreglo A790

Arquitectura 1.0Arquitectura 1.0

Page 22: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

22

Resistencia al cambio

V 1.2aV 1.2a ArquitectuArquitectu

nuevo requerimientonuevo requerimiento

arreglo A812arreglo A812

arreglo A790arreglo A790

V 1.2V 1.2

a 1.0r

Page 23: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

23

Reingeniería: ¿Porqué es necesario?

Alto costo de mantenimiento, porque la estructura de los sistemas se modifica:

•Puede no existir•No es obvia para el lector•Continuos mantenimientos puede haber corroido la estructura original y no es discernible.

V 1.2aV 1.2a ArquitectuArquitectu

nuevo requerimientonuevo requerimiento

arreglo A812arreglo A812arreglo A790arreglo A790

V 1.2V 1.2

a 1.0r

Page 24: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

24

MANTENIMIENTO PREVENTIVO

Llamado también reingeniería

Consiste en hacer cambios al software a fin de que se pueda corregir, adaptar y mejorar fácilmente

LA REESTRUCTURACIÓN (parcial/completa)

Vs. RESCRIBIR TODO EL PROGRAMA

Page 25: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

25

PROCESO DE REINGENIERÍAEsta actividad involucra examinar

partes del programa y su reescritura para MEJORAR su ESTRUCTURA

Reformatear programa

Identificar abstracciones

de datos

Asignar nombres

significativos

Simplificar condiciones

Quitar goto

Quitar código extraño

Page 26: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

26

Relaciones

Page 27: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

27

¿CUANDO APLICAR REINGENIERÍA?

Componentes con tasa de fallas altaComponentes con altos índices de

cambios anualesComponentes con alta complejidad.Componentes que no están dentro los

estándares de la compañía.

Page 28: 1 MANTENIMIENTO. 2 MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está.

28

The End