SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
7. Mantenimiento de Software
Ingeniería de Software
UTM 2017
Junio 2015
2
3
4
5
6
Introducción
✤ Durante su ciclo de vida, el software se ve presionado a cambiar. Estas
presiones son las consecuencias inevitables de la naturaleza del software y
el constante cambio en el medio ambiente en el que se usa.
✤ Una forma de reducir este impacto es de diseñar, desarrollar y mantener un
sistema que facilite el cambio y reduzca el impacto de cambios individuales.
✤ Estos esfuerzos se encuentran englobados en el mantenimiento de
software.
7
7.1 Aspectos Generales
✤ El mantenimiento de software es la modificación de un producto
de software después de su entrega, con el objetivo de corregir
fallas, mejorar su ejecución u otros atributos. Un error común es
pensar que es sólo corregir defectos.
8
Cambios
✤ Cambios adaptativos - para volver el software más acorde con condiciones
diferentes
✤ Cambios correctivos - para quitar defectos
✤ Cambios perfectivos - para mejorar el software
✤ Cambios preventivos - para detener el deterioro
9
Ventajas
✤ Reducir costos de mantenimiento
✤ Desarrollo de un diseño modular
✤ Extender la vida del sistema
✤ Diferir el reemplazo del sistema
✤ Reutilizar módulos o componentes
10
Mantenimiento Óptimo
Maximiza ganancias y minimiza costos
Los costos dependen de la disponibilidad y capacidad de manutención del
sistema para determinar los parámetros a minimizar.
Ejemplos de parámetros:
✤ costo de fallo, costo de downtime, costo de mantenimiento correctivo,
preventivo y reemplazo del sistema
11
Costo de Mantenimiento
✤ Reportes sugieren que el costo de
mantenimiento es alto, aproximadamente
el 67% de el total del ciclo de desarrollo
✤ En promedio, es aproximadamente del
50%. ¿Por qué?
http://www.tutorialspoint.com/software_engineering/software_maintenance_overview.htm
12
Actividades de Mantenimiento
✤ Identificación y rastreo
✤ Análisis
✤ Diseño
✤ Implementación
✤ Pruebas del sistema
✤ Pruebas de Aceptación
✤ Entrega
✤ Administración del Mantenimiento 13
Distribución de las Actividades de
Mantenimiento
http://www.slideshare.net/rajeevsharan/software-maintenance-9841842
14
Problemas de Mantenimiento
✤ Es el programa de alguien más
✤ El desarrollador no está disponible
✤ La documentación no existe
✤ No fue diseñado con el cambio en mente
✤ El mantenimento no es una actividad primordial
15
7.2 Características del Mantenimiento
Razones del costo tan elevado del mantenimiento
1. Estabilidad del Equipo de Desarrollo - los equipos de desarrollo se disuelven. Se invierte
mucho tiempo y dinero en volver a comprender lo esencial del sistema
2. Responsabilidad Contractual - contrato de desarrollo puede ser diferente al contrato de
mantenimiento
3. Habilidades de Personal - el mantenimiento no se aprecia igual que el desarrollo de software
4. Edad y Estructura del Sistema
16
Predicción del Mantenimiento
Somerville pp 455
17
Complejidad del Mantenimiento
1. El número y la complejidad de las interfaces del sistema
2. El número de requerimientos del sistema intrínsecamente volátiles
3. Los procesos de negocios en los que se utiliza el sistema
18
7.3 Categorías de Mantenimiento: Correctivo,
Adaptativo, Preventivo, Perfectivo
Existen tres tipos diferentes de mantenimiento de software:
1. Mantenimiento para depurar defectos de software. Generalmente, los errores de código son relativamente
baratos de corregir; los errores de diseño son mucho más caros ya que implican reescribir varios
componentes de los programas. Los errores de requerimientos son los más caros de reparar debido a que
puede ser necesario un rediseño extenso del sistema.
2. Mantenimiento para adaptar el software a diversos entornos operativos. Se requiere cuando se cambia
algún aspecto del entorno del sistema, por ejemplo el hardware, la plataforma del sistema operativo u otro
software de soporte. El sistema de aplicaciones debe modificarse para adaptarse a estos cambios en el
entorno.
3. Mantenimiento para añadir o modificar funcionalidades al sistema. Es necesario cuando los
requerimientos del sistema cambian como respuesta a cambios organizacionales o del negocio. La escala de
los cambios requeridos en el software es a menudo mucho mayor que en los otros tipos de mantenimiento.
19
✤ En la práctica, no existe una clara distinción entre estos tipos de
mantenimiento. Cuando se adapta el sistema a un nuevo entorno, pueden
añadirse funcionalidades para aprovechar las ventajas de las nuevas
características del entorno.
✤ Los defectos del software a menudo se muestran debido a que los usuarios
utilizan el sistema en formas no anticipadas. La mejor forma de reparar estos
defectos consiste en realizar cambios en el sistema que se adapten a su forma
de trabajo.
20
✤ Normalmente se reconocen estos tipos de mantenimiento, pero
varias personas les dan distintos nombres. El mantenimiento
correctivo se utiliza generalmente para referirse al
mantenimiento para reparación de defectos. Sin embargo, el
mantenimiento adaptativo algunas veces significa adaptarse a un
nuevo entorno y puede significar adaptar el software a nuevos
requerimientos.
✤ El mantenimiento perfectivo puede significar perfeccionar el
software implementando nuevos requerimientos; en otros casos
significa mantener la funcionalidad del sistema, pero mejorando
su estructura y su rendimiento.
21
Costos de Mantenimiento
Los costos de mantenimiento depende de la naturaleza del sistema:
✤ Los costos de mantenimiento para sistemas de aplicaciones corporativas
son en general compatibles con los costos del desarrollo de los sistemas
✤ Para sistemas de tiempo real embebidos, los costos de mantenimiento
pueden ser hasta cuatro veces mayores que los costos de desarrollo
22
Costos de Mantenimiento
Ingeniería de Software de Sommerville pp. 453
23
7.4 Reingeniería de Sistemas
✤ Como hemos visto, el proceso de mantenimiento de sistemas puede ser
complicado, especialmente para sistemas heredados. Estos sistemas son difíciles
de comprender y de mejorar.
✤ Una manera de poder hacer mantenimiento a sistemas heredados es utilizando
un proceso de reingeniería. La reingeniería de sistemas consiste en en la
reimplementación de sistemas heredados para hacerlos más mantenibles.
✤ Reingeniería implica redocumentar el sistema, organizar y restructurar, traducir
el sistema a un lenguaje moderno y modificar y actualizar la estructura de los
datos. Su funcionalidad y arquitectura no se cambia.
24
Ventajas de la Reingeniería
1. Riesgo reducido. Existe un alto riesgo en volver a desarrollar software crítico para negocios.
Pueden cometerse errores en la especificación, o puede haber problemas en el desarrollo. Los
retrasos en la introducción del nuevo software pueden significar pérdidas en el negocio e incurrir
en costos adicionales. Por ejemplo, en 1999 una gran compañía de comida en Estados Unidos
tuvo retrasos en la introducción de un nuevo sistema de pedidos, lo que condujo a retrasos en las
entregas de productos valoradas en 100 millones de dólares en una estación de máxima venta.
2. Costo reducido. El costo de hacer reingeniería es significativamente menor que el costo de
desarrollar nuevo software. Ulrich (Ulrich, 1990) cita un ejemplo de un sistema comercial en el
que los costos de reimplementación se estimaron en 50 millones de dólares. Al sistema se le
aplicó reingeniería con éxito por 12 millones de dólares. Se presume que, con la tecnología
moderna del software, el costo relativo de la reimplementación probablemente sea menor, pero
aún así supera de forma considerable los costos de la reingeniería.
25
Diferencias entre Ingeniería y Reingeniería
Ingeniería de Software de Sommerville pp. 459
26
Actividades de Reingeniería
27
Actividades de Reingeniería
1. Traducción del código fuente. El programa es convenido desde un lenguaje de programación antiguo a
una versión más moderna del mismo lenguaje o a un lenguaje diferente.
2. Ingeniería inversa. El programa se analiza y se extrae información a partir de él. Ésto ayuda a
documentar su organización y funcionalidad.
3. Mejora de la estructura del sistema. La estructura de control del programa se analiza y modifica para
hacerla más fácil de leer y comprender.
4. Modularización de los programas. Se agrupan las partes relacionadas del programa y se elimina la
redundancia en donde resulta adecuado. Esta etapa puede implicar una transformación de un sistema
centralizado a una plataforma distribuida.
5. Reingeniería de datos. Los datos procesados por el programa se cambian para reflejar los cambios en él.
28
Costos en Reingeniería
1. La calidad del software en el que se va a hacer reingeniería. Cuanto más baja sea la calidad del software
y su documentación asociada, más altos serán los costos de reingeniería.
2. Las herramientas de soporte disponibles para la reingeniería. Normalmente no es rentable hacer
reingeniería sobre un sistema software a menos que puedan utilizarse herramientas CASE para
automatizar la mayor parte de los cambios en los programas.
3. La amplitud de la conversión de datos requerida. Si el sistema sobre el que se va a hacer reingeniería
requiere que se conviertan grandes volúmenes de datos, el costo del proceso se incrementa de forma
significativa.
4. La disponibilidad de personal experto. Si el personal responsable de mantener el sistema no puede
involucrarse en el proceso de reingeniería, los costos se incrementarán debido a que los ingenieros
encargados de la reingeniería tienen que invertir una gran cantidad de tiempo en comprender el sistema.
29
Fin.
Ingeniería de Software
UTM 2017
16 de Junio, 2015
30

Más contenido relacionado

La actualidad más candente

modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
Brihany Rossell
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
joshell
 
diseño lógico y diseño físico
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físico
errroman
 
FUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMASFUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMAS
Cinthia López
 

La actualidad más candente (20)

Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativo
 
Introducción al Diseño de Interacción Humano-Computadora
Introducción al Diseño de Interacción Humano-ComputadoraIntroducción al Diseño de Interacción Humano-Computadora
Introducción al Diseño de Interacción Humano-Computadora
 
Conceptos basicos de analisis y diseño
Conceptos basicos de analisis y diseñoConceptos basicos de analisis y diseño
Conceptos basicos de analisis y diseño
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salida
 
Sistemas de entrada y salida
Sistemas de entrada y salidaSistemas de entrada y salida
Sistemas de entrada y salida
 
Analisis de sistemas, Necesidad del Analisis y Participantes
Analisis de sistemas,  Necesidad del Analisis y ParticipantesAnalisis de sistemas,  Necesidad del Analisis y Participantes
Analisis de sistemas, Necesidad del Analisis y Participantes
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesos
 
diseño lógico y diseño físico
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físico
 
Metodología CommonKADS
Metodología CommonKADSMetodología CommonKADS
Metodología CommonKADS
 
FUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMASFUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMAS
 
Resumen de los capitulos i, ii, iii del libro kendall & kendall
Resumen de los capitulos i, ii, iii del libro kendall & kendallResumen de los capitulos i, ii, iii del libro kendall & kendall
Resumen de los capitulos i, ii, iii del libro kendall & kendall
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
Diseño de salida de un Sistema
Diseño de salida de un SistemaDiseño de salida de un Sistema
Diseño de salida de un Sistema
 
Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructura
 
Programación concurrente
Programación concurrenteProgramación concurrente
Programación concurrente
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de software
 
Seguridad física y protección en centros de cómputo .pptx
Seguridad física y protección en centros de cómputo .pptxSeguridad física y protección en centros de cómputo .pptx
Seguridad física y protección en centros de cómputo .pptx
 

Destacado

Software para realizar mantenimiento preventivo.
Software para realizar mantenimiento preventivo. Software para realizar mantenimiento preventivo.
Software para realizar mantenimiento preventivo.
Uziel Mendiola Rws
 
Mantenimiento en Software - Modelo Evolutivo
Mantenimiento en Software - Modelo EvolutivoMantenimiento en Software - Modelo Evolutivo
Mantenimiento en Software - Modelo Evolutivo
miguelpaz1995
 
Adquisición de software y hardware
Adquisición de software y hardwareAdquisición de software y hardware
Adquisición de software y hardware
Carlos R. Adames B.
 
7 Propuesta Manejo De Contratos Con Proveedores
7   Propuesta Manejo De Contratos Con Proveedores7   Propuesta Manejo De Contratos Con Proveedores
7 Propuesta Manejo De Contratos Con Proveedores
equisoide
 
Formato contrato de mantenimiento
Formato contrato de mantenimientoFormato contrato de mantenimiento
Formato contrato de mantenimiento
yolanda guadalupe
 
Mantenimiento preventivo y correctivo de Software.
Mantenimiento preventivo y correctivo de Software.Mantenimiento preventivo y correctivo de Software.
Mantenimiento preventivo y correctivo de Software.
AnasusAlarcon
 
Manual de usuario para un centro de computo
Manual de usuario para un centro de computoManual de usuario para un centro de computo
Manual de usuario para un centro de computo
soldevilla1005
 

Destacado (20)

Mantenimiento del software
Mantenimiento del softwareMantenimiento del software
Mantenimiento del software
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de Software
 
Software para realizar mantenimiento preventivo.
Software para realizar mantenimiento preventivo. Software para realizar mantenimiento preventivo.
Software para realizar mantenimiento preventivo.
 
Mantenimiento en Software - Modelo Evolutivo
Mantenimiento en Software - Modelo EvolutivoMantenimiento en Software - Modelo Evolutivo
Mantenimiento en Software - Modelo Evolutivo
 
7. Mantenimiento de Software
7. Mantenimiento de Software7. Mantenimiento de Software
7. Mantenimiento de Software
 
Contrato informativo ani espinoza
Contrato informativo ani espinozaContrato informativo ani espinoza
Contrato informativo ani espinoza
 
contratos informatico
contratos informaticocontratos informatico
contratos informatico
 
El Contrato de desarrollo de software
El Contrato de desarrollo de softwareEl Contrato de desarrollo de software
El Contrato de desarrollo de software
 
CONTRATOS_INFORMATICOS_PED_V
CONTRATOS_INFORMATICOS_PED_VCONTRATOS_INFORMATICOS_PED_V
CONTRATOS_INFORMATICOS_PED_V
 
Mantenimiento de Software y Hardware al Laboratorio de la Escuela Básica Naci...
Mantenimiento de Software y Hardware al Laboratorio de la Escuela Básica Naci...Mantenimiento de Software y Hardware al Laboratorio de la Escuela Básica Naci...
Mantenimiento de Software y Hardware al Laboratorio de la Escuela Básica Naci...
 
MODELO DE CONTRATO INFORMÁTICO
MODELO DE CONTRATO INFORMÁTICOMODELO DE CONTRATO INFORMÁTICO
MODELO DE CONTRATO INFORMÁTICO
 
MANTENIMIENTO DE COMPUTADORAS( HARDWARE Y SOFTWARE).
MANTENIMIENTO DE COMPUTADORAS( HARDWARE Y SOFTWARE).MANTENIMIENTO DE COMPUTADORAS( HARDWARE Y SOFTWARE).
MANTENIMIENTO DE COMPUTADORAS( HARDWARE Y SOFTWARE).
 
Adquisición de software y hardware
Adquisición de software y hardwareAdquisición de software y hardware
Adquisición de software y hardware
 
7 Propuesta Manejo De Contratos Con Proveedores
7   Propuesta Manejo De Contratos Con Proveedores7   Propuesta Manejo De Contratos Con Proveedores
7 Propuesta Manejo De Contratos Con Proveedores
 
Formato contrato de mantenimiento
Formato contrato de mantenimientoFormato contrato de mantenimiento
Formato contrato de mantenimiento
 
Mantenimiento preventivo y correctivo de Software.
Mantenimiento preventivo y correctivo de Software.Mantenimiento preventivo y correctivo de Software.
Mantenimiento preventivo y correctivo de Software.
 
Manual de usuario para un centro de computo
Manual de usuario para un centro de computoManual de usuario para un centro de computo
Manual de usuario para un centro de computo
 
Software financiero
Software financieroSoftware financiero
Software financiero
 
El contrato informatico
El contrato informaticoEl contrato informatico
El contrato informatico
 
Manual de mantenimiento para un centro de cómputo
Manual de mantenimiento para un centro de cómputoManual de mantenimiento para un centro de cómputo
Manual de mantenimiento para un centro de cómputo
 

Similar a 7. Mantenimiento de Software

7. cambios en el software y mejora de procesos
7. cambios en el software y mejora de procesos7. cambios en el software y mejora de procesos
7. cambios en el software y mejora de procesos
silviamap64
 

Similar a 7. Mantenimiento de Software (20)

Evolucion del software
Evolucion del softwareEvolucion del software
Evolucion del software
 
Mantenimieto de Software
Mantenimieto de SoftwareMantenimieto de Software
Mantenimieto de Software
 
7. cambios en el software y mejora de procesos
7. cambios en el software y mejora de procesos7. cambios en el software y mejora de procesos
7. cambios en el software y mejora de procesos
 
Reingenieria
ReingenieriaReingenieria
Reingenieria
 
TECNICAS DE MANTENIMIENTO DE SW.pptx
TECNICAS DE MANTENIMIENTO DE SW.pptxTECNICAS DE MANTENIMIENTO DE SW.pptx
TECNICAS DE MANTENIMIENTO DE SW.pptx
 
manual de compra de motos
manual de compra de motos manual de compra de motos
manual de compra de motos
 
Exposicion 3
Exposicion 3Exposicion 3
Exposicion 3
 
Mantenimiento de software (síntesis)
Mantenimiento de software (síntesis)Mantenimiento de software (síntesis)
Mantenimiento de software (síntesis)
 
Unidad 4 Gerencia
Unidad 4 GerenciaUnidad 4 Gerencia
Unidad 4 Gerencia
 
Tripticokino
TripticokinoTripticokino
Tripticokino
 
Mantenimiento de-software
Mantenimiento de-softwareMantenimiento de-software
Mantenimiento de-software
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Mantenimiento de-software
Mantenimiento de-softwareMantenimiento de-software
Mantenimiento de-software
 
Modelos de desarrollo rápido de software
Modelos de desarrollo rápido de softwareModelos de desarrollo rápido de software
Modelos de desarrollo rápido de software
 
Mantenimiento de-software-v6 abad-esquenleyner
Mantenimiento de-software-v6 abad-esquenleynerMantenimiento de-software-v6 abad-esquenleyner
Mantenimiento de-software-v6 abad-esquenleyner
 
Mantenimiento de software
Mantenimiento de softwareMantenimiento de software
Mantenimiento de software
 
Mantenimiento de software
Mantenimiento de softwareMantenimiento de software
Mantenimiento de software
 
Dpss u3 a2_hehm
Dpss u3 a2_hehmDpss u3 a2_hehm
Dpss u3 a2_hehm
 
Proyecto de reingenieria de software
Proyecto de reingenieria  de softwareProyecto de reingenieria  de software
Proyecto de reingenieria de software
 

Más de Mario A Moreno Rocha

Más de Mario A Moreno Rocha (20)

UsaLab presentation (ENG)
UsaLab presentation (ENG)UsaLab presentation (ENG)
UsaLab presentation (ENG)
 
Definición del Examen Final (UTM 2017)
Definición del Examen Final (UTM 2017)Definición del Examen Final (UTM 2017)
Definición del Examen Final (UTM 2017)
 
¿Cómo haría yo el 3er parcial?
¿Cómo haría yo el 3er parcial?¿Cómo haría yo el 3er parcial?
¿Cómo haría yo el 3er parcial?
 
6. Administración de la Calidad de Software
6. Administración de la Calidad de Software6. Administración de la Calidad de Software
6. Administración de la Calidad de Software
 
Ingeniería de Software (UTM) - Tercer Examen Parcial
Ingeniería de Software (UTM) - Tercer Examen ParcialIngeniería de Software (UTM) - Tercer Examen Parcial
Ingeniería de Software (UTM) - Tercer Examen Parcial
 
5. Métodos de Prueba de Software
5. Métodos de Prueba de Software5. Métodos de Prueba de Software
5. Métodos de Prueba de Software
 
4. Diseño e Implementación de Software
4. Diseño e Implementación de Software4. Diseño e Implementación de Software
4. Diseño e Implementación de Software
 
3. Análisis de Requerimientos
3. Análisis de Requerimientos3. Análisis de Requerimientos
3. Análisis de Requerimientos
 
2. Administración de Proyectos de Software (UTM 2071)
2. Administración de Proyectos de Software (UTM 2071)2. Administración de Proyectos de Software (UTM 2071)
2. Administración de Proyectos de Software (UTM 2071)
 
1. introducción a la Ingeniería de Software (UTM 2071)
1. introducción a la Ingeniería de Software (UTM 2071)1. introducción a la Ingeniería de Software (UTM 2071)
1. introducción a la Ingeniería de Software (UTM 2071)
 
Plan de Estudios Ingeniería de Software (2071)
Plan de Estudios Ingeniería de Software (2071)Plan de Estudios Ingeniería de Software (2071)
Plan de Estudios Ingeniería de Software (2071)
 
Presentación Ingeniería de Software (2071)
Presentación Ingeniería de Software (2071)Presentación Ingeniería de Software (2071)
Presentación Ingeniería de Software (2071)
 
Redes Sociales: Una vuelta por el mundo (Expo Orienta 2015)
Redes Sociales: Una vuelta por el mundo (Expo Orienta 2015)Redes Sociales: Una vuelta por el mundo (Expo Orienta 2015)
Redes Sociales: Una vuelta por el mundo (Expo Orienta 2015)
 
Una Aproximación a la Interacción Humano-Computadora (ITD 2015)
Una Aproximación a la Interacción Humano-Computadora (ITD 2015)Una Aproximación a la Interacción Humano-Computadora (ITD 2015)
Una Aproximación a la Interacción Humano-Computadora (ITD 2015)
 
UX Nights Vol. 4 Estudios Contextuales
UX Nights Vol. 4 Estudios ContextualesUX Nights Vol. 4 Estudios Contextuales
UX Nights Vol. 4 Estudios Contextuales
 
Desarrollando un estudio de usabilidad para sitios gubernamentales mexicanos:...
Desarrollando un estudio de usabilidad para sitios gubernamentales mexicanos:...Desarrollando un estudio de usabilidad para sitios gubernamentales mexicanos:...
Desarrollando un estudio de usabilidad para sitios gubernamentales mexicanos:...
 
Capítulo 8: Usabilidad y experiencia de usuario
Capítulo 8: Usabilidad y experiencia de usuarioCapítulo 8: Usabilidad y experiencia de usuario
Capítulo 8: Usabilidad y experiencia de usuario
 
Oportunidades de estancias y prácticas en la UTM 2014-2015
Oportunidades de estancias y prácticas en la UTM 2014-2015Oportunidades de estancias y prácticas en la UTM 2014-2015
Oportunidades de estancias y prácticas en la UTM 2014-2015
 
Taller de Desarrollo de Interfaces (Conalep 2014)
Taller de Desarrollo de Interfaces (Conalep 2014)Taller de Desarrollo de Interfaces (Conalep 2014)
Taller de Desarrollo de Interfaces (Conalep 2014)
 
Historia y Evolución de los Sistemas Operativos
Historia y Evolución de los Sistemas Operativos Historia y Evolución de los Sistemas Operativos
Historia y Evolución de los Sistemas Operativos
 

Último

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Último (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 

7. Mantenimiento de Software

  • 1. 7. Mantenimiento de Software Ingeniería de Software UTM 2017 Junio 2015
  • 2. 2
  • 3. 3
  • 4. 4
  • 5. 5
  • 6. 6
  • 7. Introducción ✤ Durante su ciclo de vida, el software se ve presionado a cambiar. Estas presiones son las consecuencias inevitables de la naturaleza del software y el constante cambio en el medio ambiente en el que se usa. ✤ Una forma de reducir este impacto es de diseñar, desarrollar y mantener un sistema que facilite el cambio y reduzca el impacto de cambios individuales. ✤ Estos esfuerzos se encuentran englobados en el mantenimiento de software. 7
  • 8. 7.1 Aspectos Generales ✤ El mantenimiento de software es la modificación de un producto de software después de su entrega, con el objetivo de corregir fallas, mejorar su ejecución u otros atributos. Un error común es pensar que es sólo corregir defectos. 8
  • 9. Cambios ✤ Cambios adaptativos - para volver el software más acorde con condiciones diferentes ✤ Cambios correctivos - para quitar defectos ✤ Cambios perfectivos - para mejorar el software ✤ Cambios preventivos - para detener el deterioro 9
  • 10. Ventajas ✤ Reducir costos de mantenimiento ✤ Desarrollo de un diseño modular ✤ Extender la vida del sistema ✤ Diferir el reemplazo del sistema ✤ Reutilizar módulos o componentes 10
  • 11. Mantenimiento Óptimo Maximiza ganancias y minimiza costos Los costos dependen de la disponibilidad y capacidad de manutención del sistema para determinar los parámetros a minimizar. Ejemplos de parámetros: ✤ costo de fallo, costo de downtime, costo de mantenimiento correctivo, preventivo y reemplazo del sistema 11
  • 12. Costo de Mantenimiento ✤ Reportes sugieren que el costo de mantenimiento es alto, aproximadamente el 67% de el total del ciclo de desarrollo ✤ En promedio, es aproximadamente del 50%. ¿Por qué? http://www.tutorialspoint.com/software_engineering/software_maintenance_overview.htm 12
  • 13. Actividades de Mantenimiento ✤ Identificación y rastreo ✤ Análisis ✤ Diseño ✤ Implementación ✤ Pruebas del sistema ✤ Pruebas de Aceptación ✤ Entrega ✤ Administración del Mantenimiento 13
  • 14. Distribución de las Actividades de Mantenimiento http://www.slideshare.net/rajeevsharan/software-maintenance-9841842 14
  • 15. Problemas de Mantenimiento ✤ Es el programa de alguien más ✤ El desarrollador no está disponible ✤ La documentación no existe ✤ No fue diseñado con el cambio en mente ✤ El mantenimento no es una actividad primordial 15
  • 16. 7.2 Características del Mantenimiento Razones del costo tan elevado del mantenimiento 1. Estabilidad del Equipo de Desarrollo - los equipos de desarrollo se disuelven. Se invierte mucho tiempo y dinero en volver a comprender lo esencial del sistema 2. Responsabilidad Contractual - contrato de desarrollo puede ser diferente al contrato de mantenimiento 3. Habilidades de Personal - el mantenimiento no se aprecia igual que el desarrollo de software 4. Edad y Estructura del Sistema 16
  • 18. Complejidad del Mantenimiento 1. El número y la complejidad de las interfaces del sistema 2. El número de requerimientos del sistema intrínsecamente volátiles 3. Los procesos de negocios en los que se utiliza el sistema 18
  • 19. 7.3 Categorías de Mantenimiento: Correctivo, Adaptativo, Preventivo, Perfectivo Existen tres tipos diferentes de mantenimiento de software: 1. Mantenimiento para depurar defectos de software. Generalmente, los errores de código son relativamente baratos de corregir; los errores de diseño son mucho más caros ya que implican reescribir varios componentes de los programas. Los errores de requerimientos son los más caros de reparar debido a que puede ser necesario un rediseño extenso del sistema. 2. Mantenimiento para adaptar el software a diversos entornos operativos. Se requiere cuando se cambia algún aspecto del entorno del sistema, por ejemplo el hardware, la plataforma del sistema operativo u otro software de soporte. El sistema de aplicaciones debe modificarse para adaptarse a estos cambios en el entorno. 3. Mantenimiento para añadir o modificar funcionalidades al sistema. Es necesario cuando los requerimientos del sistema cambian como respuesta a cambios organizacionales o del negocio. La escala de los cambios requeridos en el software es a menudo mucho mayor que en los otros tipos de mantenimiento. 19
  • 20. ✤ En la práctica, no existe una clara distinción entre estos tipos de mantenimiento. Cuando se adapta el sistema a un nuevo entorno, pueden añadirse funcionalidades para aprovechar las ventajas de las nuevas características del entorno. ✤ Los defectos del software a menudo se muestran debido a que los usuarios utilizan el sistema en formas no anticipadas. La mejor forma de reparar estos defectos consiste en realizar cambios en el sistema que se adapten a su forma de trabajo. 20
  • 21. ✤ Normalmente se reconocen estos tipos de mantenimiento, pero varias personas les dan distintos nombres. El mantenimiento correctivo se utiliza generalmente para referirse al mantenimiento para reparación de defectos. Sin embargo, el mantenimiento adaptativo algunas veces significa adaptarse a un nuevo entorno y puede significar adaptar el software a nuevos requerimientos. ✤ El mantenimiento perfectivo puede significar perfeccionar el software implementando nuevos requerimientos; en otros casos significa mantener la funcionalidad del sistema, pero mejorando su estructura y su rendimiento. 21
  • 22. Costos de Mantenimiento Los costos de mantenimiento depende de la naturaleza del sistema: ✤ Los costos de mantenimiento para sistemas de aplicaciones corporativas son en general compatibles con los costos del desarrollo de los sistemas ✤ Para sistemas de tiempo real embebidos, los costos de mantenimiento pueden ser hasta cuatro veces mayores que los costos de desarrollo 22
  • 23. Costos de Mantenimiento Ingeniería de Software de Sommerville pp. 453 23
  • 24. 7.4 Reingeniería de Sistemas ✤ Como hemos visto, el proceso de mantenimiento de sistemas puede ser complicado, especialmente para sistemas heredados. Estos sistemas son difíciles de comprender y de mejorar. ✤ Una manera de poder hacer mantenimiento a sistemas heredados es utilizando un proceso de reingeniería. La reingeniería de sistemas consiste en en la reimplementación de sistemas heredados para hacerlos más mantenibles. ✤ Reingeniería implica redocumentar el sistema, organizar y restructurar, traducir el sistema a un lenguaje moderno y modificar y actualizar la estructura de los datos. Su funcionalidad y arquitectura no se cambia. 24
  • 25. Ventajas de la Reingeniería 1. Riesgo reducido. Existe un alto riesgo en volver a desarrollar software crítico para negocios. Pueden cometerse errores en la especificación, o puede haber problemas en el desarrollo. Los retrasos en la introducción del nuevo software pueden significar pérdidas en el negocio e incurrir en costos adicionales. Por ejemplo, en 1999 una gran compañía de comida en Estados Unidos tuvo retrasos en la introducción de un nuevo sistema de pedidos, lo que condujo a retrasos en las entregas de productos valoradas en 100 millones de dólares en una estación de máxima venta. 2. Costo reducido. El costo de hacer reingeniería es significativamente menor que el costo de desarrollar nuevo software. Ulrich (Ulrich, 1990) cita un ejemplo de un sistema comercial en el que los costos de reimplementación se estimaron en 50 millones de dólares. Al sistema se le aplicó reingeniería con éxito por 12 millones de dólares. Se presume que, con la tecnología moderna del software, el costo relativo de la reimplementación probablemente sea menor, pero aún así supera de forma considerable los costos de la reingeniería. 25
  • 26. Diferencias entre Ingeniería y Reingeniería Ingeniería de Software de Sommerville pp. 459 26
  • 28. Actividades de Reingeniería 1. Traducción del código fuente. El programa es convenido desde un lenguaje de programación antiguo a una versión más moderna del mismo lenguaje o a un lenguaje diferente. 2. Ingeniería inversa. El programa se analiza y se extrae información a partir de él. Ésto ayuda a documentar su organización y funcionalidad. 3. Mejora de la estructura del sistema. La estructura de control del programa se analiza y modifica para hacerla más fácil de leer y comprender. 4. Modularización de los programas. Se agrupan las partes relacionadas del programa y se elimina la redundancia en donde resulta adecuado. Esta etapa puede implicar una transformación de un sistema centralizado a una plataforma distribuida. 5. Reingeniería de datos. Los datos procesados por el programa se cambian para reflejar los cambios en él. 28
  • 29. Costos en Reingeniería 1. La calidad del software en el que se va a hacer reingeniería. Cuanto más baja sea la calidad del software y su documentación asociada, más altos serán los costos de reingeniería. 2. Las herramientas de soporte disponibles para la reingeniería. Normalmente no es rentable hacer reingeniería sobre un sistema software a menos que puedan utilizarse herramientas CASE para automatizar la mayor parte de los cambios en los programas. 3. La amplitud de la conversión de datos requerida. Si el sistema sobre el que se va a hacer reingeniería requiere que se conviertan grandes volúmenes de datos, el costo del proceso se incrementa de forma significativa. 4. La disponibilidad de personal experto. Si el personal responsable de mantener el sistema no puede involucrarse en el proceso de reingeniería, los costos se incrementarán debido a que los ingenieros encargados de la reingeniería tienen que invertir una gran cantidad de tiempo en comprender el sistema. 29
  • 30. Fin. Ingeniería de Software UTM 2017 16 de Junio, 2015 30