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

Post on 03-Feb-2016

227 views 0 download

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

1

MANTENIMIENTO

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)

3

TIPOS DE MANTENIMIENTO

Mantenimiento CorrectivoMantenimiento AdaptativoMantenimiento PerfectivoMantenimiento Preventivo

4

MANTENIMIENTO CORRECTIVO

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

5

MANTENIMIENTO ADAPTATIVO

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

6

MANTENIMIENTO PERFECTIVO

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

7

ESFUERZO DEDICADO A CADA TIPO DE MANTENIMIENTO

8

Relación entre los tipos de Mantenimiento

9

ACTIVIDADES DEL PROCESO DE MANTENIMIENTO (Sommerville)

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

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

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. 

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

14

COSTOS DE MANTENIMIENTO Y LOS

COSTOS DE DESARROLLO

15

COSTOS DE DESARROLLO DE UN SISTEMA

Costos directos : desarrollo del sistema

Costos indirectos: instalación, mantenimiento

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%

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

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.

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.

20

REINGENIERIA

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

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

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

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

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

26

Relaciones

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.

28

The End