You are on page 1of 24

UNIVERSIDAD FRANCISCO GAVIDIA

FACULTAD DE INGENIERIA Y SISTEMAS

TEMA : Mantenimiento del software

INGENIERIA DEL SOFTWARE II


OBJETIVO
Aplicar el mantenimiento en los
sistemas
Mantenimiento de software

El mantenimiento del software es el proceso


general de cambiar un sistema despus de que
ste ha sido entregado. El trmino se aplica
normalmente a software a medida en donde
grupos de desarrollo distintos estn implicados
antes y despus de la entrega.

Los cambios realizados al software pueden ser


cambios sencillos para corregir errores de
cdigo, cambios ms extensos para corregir
errores de diseo o mejoras significativas para
corregir errores de especificacin o acomodar
nuevos requerimientos.
Mantenimiento de software

Los cambios se implementan


modificando los componentes del
sistema existente y aadiendo
nuevos componentes al sistema
donde sea necesario.
Tres tipos diferentes de
mantenimiento de software:
1. Mantenimiento para reparar
defectos de! software.
2. Mantenimiento para adaptar el
software a diferentes entornos
operativos.
3. Mantenimiento para aadir o
modificar las funcionalidades del
sistema.
Mantenimiento para reparar
defectos del software
Por lo general, los errores de cdigo son
relativamente baratos de corregir; los
errores de diseo son mucho ms caros
ya que implican reescribir varios
componentes de los programas. Los
errores de requerimientos son los ms
caros de reparar debido a que puede ser
necesario un rediseo extenso del
sistema.
Mantenimiento para adaptar el software
a diferentes entornos operativos

Este tipo de mantenimiento se requiere


cuando cambia algn aspecto del
entorno del sistema, como 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.
Mantenimiento para aadir o modificar
las funcionalidades del sistema

Este tipo de mantenimiento 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.
mantenimiento correctivo se utiliza generalmente para
referirse al mantenimiento para reparacin de defectos.

mantenimiento adaptativo algunas veces significa adaptarse a


un nuevo entorno y puede significar adaptar el software a
nuevos requerimientos.

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.
Los factores clave que distinguen el desarrollo y
el mantenimiento, y que conducen a costes de
mantenimiento ms elevados, son

1 Estabilidad del equipo.


2. Responsabilidad contractual.
3. Habilidades del personal.
4 Edad y estructura del
programa .
Estabilidad del equipo.
Despus de entregar un sistema, es normal que
el equipo de
desarrollo de disuelva y la gente trabaje en
nuevos proyectos.
El nuevo equipo o los individuos responsables
del mantenimiento del sistema no comprenden
dicho sistema o las razones de fondo de las
decisiones de su diseo.
Se dedica demasiado esfuerzo durante el
proceso de mantenimiento en comprender el
sistema antes de implementar cambios sobre l.
Responsabilidad contractual
El contrato para mantener un sistema normalmente est
separado del contrato para desarrollar el sistema.
El contrato de mantenimiento puede darse con una compaa
diferente en lugar de con el desarrollador original del sistema.

Este factor, junto con la ausencia de estabilidad del equipo,


implica que no existe incentivo para que un equipo de desarrollo
escriba el software para que sea fcil de cambiar.

Si el equipo de desarrollo realiza ciertas acciones para ahorrar


esfuerzo durante el desarrollo, lo har sin preocuparse
demasiado aunque esto signifique incrementar
los costes de mantenimiento.
Habilidades del personal.
El personal de mantenimiento a menudo no tiene experiencia y
no est familiarizado con el dominio de la aplicacin.
El mantenimiento tiene una pobre imagen entre los ingenieros
software.
Est visto como un proceso que requiere menos habilidades
que el desarrollo del sistema y a menudo se asigna al personal
principiante.
Adems, los sistemas antiguos pueden haberse escrito en
lenguajes de programacin obsoletos.
El personal de mantenimiento puede no tener mucha
experiencia de desarrollo en estos lenguajes y debe
aprenderlos para mantener el sistema.
Edad y estructura del programa.

A medida que pasa el tiempo, la estructura de los programas


tiende a degradarse con los cambios, por lo que se vuelve ms
difcil de comprender y modificar.
Algunos sistemas han sido desarrollados sin tcnicas
modernas de ingeniera del software.
Pueden no haber sido nunca bien estructurados y quiz estn
optimizados para su eficiencia en lugar de para su
comprensibilidad.
La documentacin del sistema puede haberse perdido o ser
inconsistente.
Los sistemas antiguos pueden no haber sido sometidos a
gestin de configuraciones, por lo que a menudo se emplea
mucho tiempo en encontrar las versiones correctas de los
componentes del sistema a cambiar.
Prediccin del mantenimiento

Predicciones estn estrechamente relacionadas:


1. La aceptacin o no de un cambio en el sistema
depende, hasta cierto punto, de la mantenibilidad de los
componentes del sistema afectados por dicho cambio.
2. La implementacin de los cambios del sistema tiende a
degradar la estructura de dicho sistema y, por lo tanto,
reduce su mantenibilidad.
3. Los costes de mantenimiento dependen del nmero de
cambios, y los costes de la implementacin de los
cambios dependen de la mantenibilidad de los
componentes del
sistema.
Para evaluar las relaciones entre un sistema
y su entorno, debera tenerse en cuenta:

1. El nmero y la complejidad de las inierfaces del sistema. Cuanto


mayor sea el nmero de interfaces y ms complejas sean stas, es
ms probable que se hagan ms peticiones de cambio.
2. El nmero de requerimientos del sistema intrnsecamente voltiles.
los requerimientos que reflejan polticas y procedimientos
organizacionales
son probablemente ms voltiles que los requerimientos que se basan
en
caractersticas estables del dominio.
3. Los procesos de negocios en ios que se utiliza el sistema. Puesto
que los procesos de negocios evolucionan, generan peticiones de
cambio del sistema. Cuanto ms procesos de negocios utilice el
sistema, habr ms peticiones de cambio del sistema.
Ejemplos de mtricas del proceso que pueden
utilizarse para evaluar la mantenibilidad son:

1. El nmero de peticiones de mantenimiento correctivo.


Un crecimiento en el nmero
de informes de fallos de ejecucin puede indicar que se
han introducido ms errores en el programa de los que se
han corregido durante el proceso de mantenimiento. Esto
puede suponer una disminucin de la mantenibilidad.
2. El tiempo medio requerido para el anlisis de impacto.
Este refleja el nmero de componentes del programa
que se ven afectados por una peticin de cambio. Si este
tiempo se incrementa, implica que ms y ms
componentes se ven afectados y que la mantenibilidad
disminuye.
Ejemplos de mtricas del proceso que pueden
utilizarse para evaluar la mantenibilidad son:

3. El tiempo medio empleado en implementar una peticin de cambio.


ste no es el mismo que el tiempo para el anlisis de impacto, aunque
est relacionado con t. Se trata de la cantidad de tiempo que se
necesita para modificar realmente el sistema y su documentacin,
despus de que haya evaluado qu componentes se ven afectados.
Un incremento en el tiempo necesario para implementar un cambio
puede indicar una disminucin en la mantenibilidad.

4. El nmero de peticiones de cambio pendientes. Un incremento en


este nmero a lo largo del tiempo puede implicar una disminucin en
la mantenibilidad.
Problemas del
mantenimiento de sistemas
Dificultad para seguir la evolucin del software a travs de varias
versiones al no existir documentacin sobre los cambios.

Dificultad para seguir el proceso por el que se construy el


software.

Dificultad para comprender un programa ajeno.

Dificultad para contactar con los desarrolladores.

La documentacin apropiada no existe.

No se prev el cambio cuando se disea.

El mantenimiento no se considera un trabajo atractivo


Factores del Mantenimiento

Definicin
Se tratan de factores que dificultan el mantenimiento del software, entre los cuales se
encuentran:

Cdigo Heredado
Cdigo antiguo, el cual la mayora fue construido para ocupar poco espacio, sin importar la
eficiencia, diseo y mantenimiento del mismo. A su vez el cdigo se encuentra muy deteriorado
lo que aumenta el coste y la dificultad de su mantenimiento.

Evolucin del Software


El software va sufriendo cambios a lo largo del tiempo, lo que disminuye su calidad y lo hace
menos eficiente, aumentando su complejidad y deteriorndolo. Si tampoco se ha llevado un
control de la documentacin su mantenimiento se vuelve ms costoso.

Ausencia de herramientas
No se utilizan herramientas, mtodos ni tcnicas que faciliten la realizacin del mantenimiento.
Por lo tanto la mayora de las veces el mantenimiento se realiza Ad-hoc.
Reingeniera
Definicin
Alternativa al mantenimiento. Modificacin del producto software o componentes del
mismo para mejorar su mantenimiento futuro. La reingeniera del software se compone
de los siguientes pasos:
Anlisis de inventarios
Lista con informacin de las aplicaciones candidatas a la reingeniera, ordenadas para
conocer cual son las mejores candidatas para la misma.
Restructuracin de documentos
Realizar la documentacin necesaria para llegar comprender el sistema y hacer que el
software sea ms fcil de entender y cambiar. Tambin se puede definir como una
representacin funcionalmente equivalente dentro de un mismo nivel de abstraccin.
Ingeniera inversa
Es el proceso de analizar un programa con la finalidad de conocer su comportamiento.
De esta forma se logra una representacin del programa con una mayor abstraccin
que la ofrecida por el cdigo fuente y proporciona informacin del diseo y la
arquitectura del programa.
Ingeniera directa
Tambin llamada renovacin, consiste en utilizar los principios, mtodos y conceptos
de la ingeniera del software para volver a implementar la aplicacin.
Reingeniera

Herramientas CASE
Se tratan de Aplicaciones destinadas a facilitar y aumentar la
productividad en el desarrollo Software. Uno de los objetivos de la
Reingeniera es capturar informacin en un repositorio que ser
utilizado posteriormente por estas herramientas.
Migracin
Consiste en trasladar la aplicacin de un sistema a otro nuevo en
condiciones de compatibilidad. La reingeniera facilita esta accin.
Esperanza de vida
Es el tiempo que la aplicacin puede estar funcionando sin presentar
inconvenientes graves. La reingeniera permite aumentar la esperanza
de vida de la aplicacin.
Prototipo de Software
Versin inicial de una aplicacin Software la cual se va refinando a
travs de diferentes versiones. Aumenta la productividad al utilizarse
Ingeniera Directa.
GRACIAS

You might also like