Вы находитесь на странице: 1из 48

n n1 1

Mantenimiento Avanzado de Mantenimiento Avanzado de


Sistemas de Informacin Sistemas de Informacin
Ciudad Real, 2005 Ciudad Real, 2005
Departamento de Informtica Departamento de Informtica
Escuela Superior de Informtica Escuela Superior de Informtica
Universidad de Castilla Universidad de Castilla- -La Mancha La Mancha
1 1 El Problema del El Problema del
Mantenimiento del Software Mantenimiento del Software
Francisco Ruiz, Macario Polo Francisco Ruiz, Macario Polo
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 2
El Problema del Mantenimiento del Software El Problema del Mantenimiento del Software
Objetivos parciales Objetivos parciales (i) (i)
Adquirir una buena base conceptual, Adquirir una buena base conceptual,
metodolgica y aplicada sobre el problema del metodolgica y aplicada sobre el problema del
Mantenimiento del Software, la etapa ms Mantenimiento del Software, la etapa ms
costosa del ciclo de vida de un producto costosa del ciclo de vida de un producto
software software
El efecto 2000 y la adaptacin al Euro son casos El efecto 2000 y la adaptacin al Euro son casos
paradigmticos que demuestran la gran importancia de esta paradigmticos que demuestran la gran importancia de esta
actividad dentro del campo de la Informtica actividad dentro del campo de la Informtica
n n2 2
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 3
El Problema del Mantenimiento del Software El Problema del Mantenimiento del Software
Objetivos parciales Objetivos parciales (ii) (ii)
Qu haremos Qu haremos para conseguirlo? para conseguirlo?
n n Analizar la importancia econmica del Mantenimiento del Analizar la importancia econmica del Mantenimiento del
Software (MS), Software (MS),
n n Estudiar sus caractersticas, causas, costes y soluciones, Estudiar sus caractersticas, causas, costes y soluciones,
n n Relacionar el Mantenimiento y la Calidad de un producto Relacionar el Mantenimiento y la Calidad de un producto
software, software,
n n Encuadrar el Mantenimiento en el ciclo de vida del software, es Encuadrar el Mantenimiento en el ciclo de vida del software, es
decir, establecer su relacin con otros procesos, decir, establecer su relacin con otros procesos,
n n Conocer los principales estndares internacionales, Conocer los principales estndares internacionales,
n n Explicar las principales tcnicas y herramientas disponibles, Explicar las principales tcnicas y herramientas disponibles,
n n Presentar los principales mtodos de medida y estimacin del Presentar los principales mtodos de medida y estimacin del
mantenimiento, mantenimiento,
n n Revisar los tipos de herramientas existentes, y Revisar los tipos de herramientas existentes, y
n n Analizar las metodologas especficas para MS. Analizar las metodologas especficas para MS.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 4
El Problema del Mantenimiento del Software El Problema del Mantenimiento del Software
Contenidos Contenidos (i) (i)
Concepto de Mantenimiento del Software Concepto de Mantenimiento del Software
Costes y Causas del MS Costes y Causas del MS
n n El efecto Iceberg: costes intangibles El efecto Iceberg: costes intangibles
n n Causas del alto coste del MS Causas del alto coste del MS
Tipos de Mantenimiento Tipos de Mantenimiento
n n Mantenimiento Correctivo Mantenimiento Correctivo
n n Mantenimiento Adaptativo Mantenimiento Adaptativo
n n Mantenimiento Perfectivo Mantenimiento Perfectivo
n n Mantenimiento Preventivo Mantenimiento Preventivo
Actividades del MS Actividades del MS
n n Actividades segn el Tipo de Mantenimiento Actividades segn el Tipo de Mantenimiento
Dificultades del MS Dificultades del MS
n n Cdigo Heredado Cdigo Heredado
n n Leyes del Mantenimiento del Software Leyes del Mantenimiento del Software
n n Problemas inherentes al MS Problemas inherentes al MS
n n3 3
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 5
El Problema del Mantenimiento del Software El Problema del Mantenimiento del Software
Contenidos Contenidos (ii) (ii)
Dificultades del MS ( Dificultades del MS (cont. cont.) )
n n Efectos secundarios Efectos secundarios
n n sobre el cdigo sobre el cdigo
n n sobre los datos sobre los datos
n n sobre la documentacin sobre la documentacin
Soluciones al Problema del MS Soluciones al Problema del MS
n n de Gestin de Gestin
n n Mejora de los recursos dedicados al mantenimiento Mejora de los recursos dedicados al mantenimiento
n n Gestin de la Calidad Gestin de la Calidad
n n Gestin Estructurada del MS Gestin Estructurada del MS
n n Organizacin del equipo humano Organizacin del equipo humano
n n Documentacin de los cambios Documentacin de los cambios
n n Tcnicas Tcnicas
n n Soluciones Soluciones - - Conclusiones Conclusiones
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 6
El Problema del Mantenimiento del Software El Problema del Mantenimiento del Software
Contenidos Contenidos (iii) (iii)
Mantenibilidad y Mantenimiento Mantenibilidad y Mantenimiento
n n La Mantenibilidad en ISO 9126 La Mantenibilidad en ISO 9126
n n Aspectos que influyen en la Mantenibilidad Aspectos que influyen en la Mantenibilidad
n n Propiedades de la Mantenibilidad Propiedades de la Mantenibilidad
n n Efectos de los cambios sobre la Mantenibilidad Efectos de los cambios sobre la Mantenibilidad
Medida de la Mantenibilidad Medida de la Mantenibilidad
n n Mtricas de Mantenibilidad Mtricas de Mantenibilidad
Estndares tiles para el MS Estndares tiles para el MS
n n El estndar ISO 12207 El estndar ISO 12207
n n El estndar ISO 14764 El estndar ISO 14764
n n Trminos y definiciones Trminos y definiciones
n n Procesos de Soporte Procesos de Soporte
n n Tipos de Mantenimiento Tipos de Mantenimiento
n n Actividades del Proceso de Mantenimiento Actividades del Proceso de Mantenimiento
n n4 4
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 7
El Problema del Mantenimiento del Software El Problema del Mantenimiento del Software
Lecturas Lecturas
Bsicas Bsicas
n n Piattini Piattini, M. G., Ruiz, F., Polo, M., et al (2000): Mantenimiento del , M. G., Ruiz, F., Polo, M., et al (2000): Mantenimiento del
Software. Modelos, tcnicas y mtodos para la gestin del cambio Software. Modelos, tcnicas y mtodos para la gestin del cambio. . Ra Ra- -
Ma. ISBN 84 Ma. ISBN 84- -7897 7897- -448 448- -2. 2.
n n Bennet Bennet K.H. y K.H. y Rajlich Rajlich V.T. (2000): Software V.T. (2000): Software Maintenance Maintenance and and
Evolution Evolution: a : a Roadmap Roadmap. En . En Finkelstein Finkelstein, A. [editor]: , A. [editor]: The The Future Future of of
Software Software Engineering Engineering, , International International Conference Conference on on Software Software
Engineering Engineering (ICSE2000). (ICSE2000). Limerick Limerick (Irlanda), 4 (Irlanda), 4- -11 junio, pp. 73 11 junio, pp. 73- -87. 87.
n n ISO/IEC (1998): FDIS 14764: Software ISO/IEC (1998): FDIS 14764: Software Engineering Engineering - - Software Software
Maintenance Maintenance ( (draft draft), ), December December- -1998. 1998.
Complementarias Complementarias
n n Polo, M., Polo, M., Piattini Piattini, M. y Ruiz, F. ( , M. y Ruiz, F. (eds eds.) (2003): .) (2003): Advances Advances in Software in Software
Maintenance Maintenance Management Management: Technologies : Technologies and and Solutions Solutions. Idea . Idea Group Group
Publishing Publishing, EEUU. , EEUU. Caps Caps. 1, 4, 7 y 8. . 1, 4, 7 y 8.
n n Glass Glass, R.L. (1998): , R.L. (1998): Maintenance Maintenance: : Less Less is is not not More. IEEE Software; More. IEEE Software;
15(4), pp. 67 15(4), pp. 67- -68. 68.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 8
Concepto de Mantenimiento del Software Concepto de Mantenimiento del Software
Aun cuando son las ltimas en el ciclo de vida del Aun cuando son las ltimas en el ciclo de vida del
software, las actividades de mantenimiento no son las software, las actividades de mantenimiento no son las
menos importantes. Muy al contrario, a continuacin menos importantes. Muy al contrario, a continuacin
veremos que el mantenimiento del software se ha veremos que el mantenimiento del software se ha
convertido en la principal actividad en cuanto a convertido en la principal actividad en cuanto a
recursos necesarios y costes. recursos necesarios y costes.
Segn la terminologa ANSI Segn la terminologa ANSI- -IEEE, el mantenimiento del IEEE, el mantenimiento del
software es: software es: la modificacin de un producto software la modificacin de un producto software
despus de su entrega al cliente o usuario para corregir despus de su entrega al cliente o usuario para corregir
defectos, para mejorar el rendimiento u otras defectos, para mejorar el rendimiento u otras
propiedades deseables, o para adaptarlo a un cambio propiedades deseables, o para adaptarlo a un cambio
de entorno de entorno. .
n n5 5
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 9
Costes del MS (i) Costes del MS (i)
Mltiples estudios sealan que el mantenimiento es la Mltiples estudios sealan que el mantenimiento es la parte ms parte ms
costosa del ciclo de vida del software costosa del ciclo de vida del software. Estadsticamente est . Estadsticamente est
comprobado que el coste de mantenimiento de un producto comprobado que el coste de mantenimiento de un producto
software a lo largo de toda su vida til supone mas del doble qu software a lo largo de toda su vida til supone mas del doble que e
los costes de su desarrollo. La tendencia es creciente con el pa los costes de su desarrollo. La tendencia es creciente con el paso so
del tiempo: del tiempo:
Referencia Referencia Fechas Fechas % Mantenimiento % Mantenimiento
[ [Pressman Pressman, 1993] , 1993] aos 70 aos 70 35% 35%- -40% 40%
[ [Lientz Lientz y y Swanson Swanson, 1980] , 1980] 1976 1976 60% 60%
[ [Pigoski Pigoski, 1997] , 1997] 1980 1980- -1984 1984 55% 55%
[ [Pressman Pressman, 1993] , 1993] Aos 80 Aos 80 60% 60%
[Rock [Rock- -Evans Evans y Hales, 1990] y Hales, 1990] 1987 1987 67% 67%
[ [Schach Schach, 1990] , 1990] 1987 1987 67% 67%
[ [Pigoski Pigoski, 1997] , 1997] 1985 1985- -1989 1989 75% 75%
[ [Frazer Frazer, 1992] , 1992] 1990 1990 80% 80%
[ [Pressman Pressman, 1993] , 1993] Aos 90 ( Aos 90 (prev prev.) .) 90% 90%
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 10
Costes del MS (ii) Costes del MS (ii)
n n6 6
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 11
Costes del MS (iii) Costes del MS (iii)
Existen empresas que se acercan a porcentajes del 95% de los Existen empresas que se acercan a porcentajes del 95% de los
recursos dedicados al mantenimiento, con lo cual se hace recursos dedicados al mantenimiento, con lo cual se hace
imposible el desarrollo de nuevos productos software. Esta imposible el desarrollo de nuevos productos software. Esta
situacin se conoce como situacin se conoce como Barrera de Mantenimiento Barrera de Mantenimiento. .
En general, el porcentaje de recursos necesarios para En general, el porcentaje de recursos necesarios para
mantenimiento se incrementa a medida que se produce ms mantenimiento se incrementa a medida que se produce ms
software (ver figura). software (ver figura).
El MS supone, cada vez ms, un mercado El MS supone, cada vez ms, un mercado
importantsimo importantsimo. .
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 12
El efecto El efecto Iceberg Iceberg: costes intangibles (i) : costes intangibles (i)
Cuando se planifican los costes de mantenimiento, los analistas Cuando se planifican los costes de mantenimiento, los analistas- -
programadores experimentados tienen la impresin de que el MS programadores experimentados tienen la impresin de que el MS
es algo descontrolado y que nunca se sabe qu va a pasar (es alg es algo descontrolado y que nunca se sabe qu va a pasar (es algo o
as como predecir el futuro). Parece como si fuese un as como predecir el futuro). Parece como si fuese un iceberg iceberg del del
cual slo se percibe una pequea parte, pero bajo cuya superfici cual slo se percibe una pequea parte, pero bajo cuya superficie e
se esconde una gran cantidad de problemas potenciales y de se esconde una gran cantidad de problemas potenciales y de
costes encubiertos. costes encubiertos.
En la parte sumergida de este iceberg se ocultan otros costes, En la parte sumergida de este iceberg se ocultan otros costes,
menos tangibles que los monetarios, pero que pueden ser causa menos tangibles que los monetarios, pero que pueden ser causa
de muchas preocupaciones. de muchas preocupaciones.
Un Un coste intangible coste intangible del MS se encuentra en las oportunidades de del MS se encuentra en las oportunidades de
desarrollo que se han de posponer o que se pierden, debido a que desarrollo que se han de posponer o que se pierden, debido a que
los recursos disponibles estn dedicados a las tareas de los recursos disponibles estn dedicados a las tareas de
mantenimiento. mantenimiento.
n n7 7
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 13
El efecto El efecto Iceberg Iceberg: costes intangibles (ii) : costes intangibles (ii)
Otros costes intangibles son los siguientes: Otros costes intangibles son los siguientes:
n n Insatisfaccin del cliente Insatisfaccin del cliente cuando no se puede atender en un tiempo cuando no se puede atender en un tiempo
aceptable una peticin de reparacin o modificacin que parece aceptable una peticin de reparacin o modificacin que parece
razonable. razonable.
n n Los Los errores ocultos errores ocultos introducidos al cambiar el software durante el introducidos al cambiar el software durante el
mantenimiento reducen la calidad global del producto. mantenimiento reducen la calidad global del producto.
n n Perjuicio en otros proyectos Perjuicio en otros proyectos de desarrollo cuando la plantilla tiene que de desarrollo cuando la plantilla tiene que
dejarlos, total o parcialmente, para atender peticiones de dejarlos, total o parcialmente, para atender peticiones de
mantenimiento. mantenimiento.
En suma, un coste final del mantenimiento del software es la En suma, un coste final del mantenimiento del software es la
reduccin que se produce en la productividad de los reduccin que se produce en la productividad de los
informticos informticos al iniciar el mantenimiento de aplicaciones antiguas. al iniciar el mantenimiento de aplicaciones antiguas.
Algunos estudios han calculado reducciones de la productividad Algunos estudios han calculado reducciones de la productividad - -
medida en LDC por persona y mes medida en LDC por persona y mes - - de 40 a 1, es decir, de 40 a 1, es decir, el coste el coste
de mantener (modificar) una lnea de cdigo puede llegar a ser 4 de mantener (modificar) una lnea de cdigo puede llegar a ser 40 0
veces ms alto que el de escribirla veces ms alto que el de escribirla durante el proceso de durante el proceso de
desarrollo. desarrollo.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 14
Causas del alto coste del MS (i) Causas del alto coste del MS (i)
Son varias las Son varias las causas causas de que en la mayora de las organizaciones de que en la mayora de las organizaciones
actuales se requiera mucho trabajo de mantenimiento: actuales se requiera mucho trabajo de mantenimiento:
n n Una gran cantidad del software que existe actualmente ha sido Una gran cantidad del software que existe actualmente ha sido
desarrollado hace ms de 10 aos. Aunque estos programas fuesen desarrollado hace ms de 10 aos. Aunque estos programas fuesen
creados utilizando las mejores tcnicas de diseo y codificacin creados utilizando las mejores tcnicas de diseo y codificacin
existentes en su momento (la mayora no lo fueron), se construye existentes en su momento (la mayora no lo fueron), se construyeron ron
con restricciones de tamao y espacio de almacenamiento y se con restricciones de tamao y espacio de almacenamiento y se
desarrollaron con herramientas tecnolgicamente desfasadas. desarrollaron con herramientas tecnolgicamente desfasadas.
n n Estos programas han sufrido una o varias migraciones a nuevas Estos programas han sufrido una o varias migraciones a nuevas
plataformas o sistemas operativos. plataformas o sistemas operativos.
n n Y han experimentado mltiples modificaciones para mejorarlos y Y han experimentado mltiples modificaciones para mejorarlos y
adaptarlos a las nuevas necesidades de los usuarios. adaptarlos a las nuevas necesidades de los usuarios.
n n Todos estos cambios se realizaron sin tener en cuenta la arquite Todos estos cambios se realizaron sin tener en cuenta la arquitectura ctura
general del sistema (no se aplicaron tcnicas de ingeniera inve general del sistema (no se aplicaron tcnicas de ingeniera inversa o rsa o
reingeniera). reingeniera).
n n8 8
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 15
Causas del alto coste del MS (ii) Causas del alto coste del MS (ii)
El resultado de todo lo anterior, es la existencia de sistemas El resultado de todo lo anterior, es la existencia de sistemas
software con una baja calidad: software con una baja calidad:
n n diseo pobre de las estructuras de datos, diseo pobre de las estructuras de datos,
n n mala codificacin, mala codificacin,
n n lgica defectuosa, y lgica defectuosa, y
n n documentacin escasa. documentacin escasa.
Pero que tienen que seguir funcionando, y por tanto, tienen que Pero que tienen que seguir funcionando, y por tanto, tienen que
ser mantenidos ser mantenidos
n n baja calidad => mayores costes de mantenimiento. baja calidad => mayores costes de mantenimiento.
Otra causa directa de los grandes costes del MS es que el Otra causa directa de los grandes costes del MS es que el coste coste
relativo de reparar un defecto relativo de reparar un defecto aumenta considerablemente en las aumenta considerablemente en las
ltimas etapas del ciclo de vida del software, de forma que la ltimas etapas del ciclo de vida del software, de forma que la
relacin entre el coste de detectar y reparar un defecto en la f relacin entre el coste de detectar y reparar un defecto en la fase ase
de anlisis de requisitos y en la fase de mantenimiento es de 1 de anlisis de requisitos y en la fase de mantenimiento es de 1 a a
100 respectivamente (ver figura). 100 respectivamente (ver figura).
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 16
Causas del alto coste del MS (iii) Causas del alto coste del MS (iii)
1
2
3
5
15
35
100
0
20
40
60
80
100
120
Requerimientos Planificacin Programacin Mantenimiento
Fases del Ciclo de Vida del Software
C
o
s
t
e

r
e
l
a
t
i
v
o

a
p
r
o
x
i
m
a
d
o
Coste Coste relativo aproximado de detectar y corregir defectos.
n n9 9
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 17
Causas del alto coste del MS (iv) Causas del alto coste del MS (iv)
Algunas de las Algunas de las razones razones por las que es menos costoso por las que es menos costoso
detectar y corregir un error durante las etapas iniciales detectar y corregir un error durante las etapas iniciales
del ciclo de vida que durante las etapas ltimas son: del ciclo de vida que durante las etapas ltimas son:
n n Es ms fcil cambiar la documentacin (por ejemplo, los Es ms fcil cambiar la documentacin (por ejemplo, los
documentos de especificacin o de diseo) que modificar el documentos de especificacin o de diseo) que modificar el
cdigo. cdigo.
n n Un cambio durante una fase tarda puede requerir que sea Un cambio durante una fase tarda puede requerir que sea
modificada la documentacin de todas las fases anteriores. modificada la documentacin de todas las fases anteriores.
n n Es ms fcil encontrar un defecto durante la fase en la cual se Es ms fcil encontrar un defecto durante la fase en la cual se
ha introducido el defecto que tratar de detectar y corregir los ha introducido el defecto que tratar de detectar y corregir los
efectos provocados por el defecto en una fase posterior. efectos provocados por el defecto en una fase posterior.
n n La causa de un defecto puede esconderse en la inexistencia o La causa de un defecto puede esconderse en la inexistencia o
falta de actualizacin de los documentos de especificacin o falta de actualizacin de los documentos de especificacin o
diseo. diseo.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 18
Causas del alto coste del MS (v) Causas del alto coste del MS (v)
Los costes se incrementan al utilizar tcnicas y metodologas po Los costes se incrementan al utilizar tcnicas y metodologas poco co
actas, casi siempre pensadas para las fases previas. actas, casi siempre pensadas para las fases previas.
n n10 10
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 19
Tipos de Mantenimiento (i) Tipos de Mantenimiento (i)
En la definicin de mantenimiento aparecen indicados, En la definicin de mantenimiento aparecen indicados,
directa o indirectamente, cuatro tipos: directa o indirectamente, cuatro tipos:
n n Corregir defectos Corregir defectos correctivo correctivo
n n Mejorar el rendimiento Mejorar el rendimiento preventivo/perfectivo preventivo/perfectivo
u otras propiedades u otras propiedades
n n Adaptar a un cambio de entorno Adaptar a un cambio de entorno adaptativo adaptativo
Las definiciones de ISO e IEEE no coinciden. Las definiciones de ISO e IEEE no coinciden.
En algunas propuestas ms modernas, se proponen En algunas propuestas ms modernas, se proponen
algunas subdivisiones (metodologa MANTEMA). algunas subdivisiones (metodologa MANTEMA).
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 20
Tipos de Mantenimiento (ii) Tipos de Mantenimiento (ii)
Un resumen del papel Un resumen del papel
que representa cada que representa cada
tipo de mantenimiento tipo de mantenimiento
aparece en la figura: aparece en la figura:
n n Mientras que el cambio Mientras que el cambio
tecnolgico afecta tecnolgico afecta
indirectamente a los indirectamente a los
sistemas software, el sistemas software, el
entorno de trabajo y los entorno de trabajo y los
usuarios lo hacen usuarios lo hacen
directamente, directamente,
produciendo demandas produciendo demandas
de mantenimiento de mantenimiento
adaptativo y perfectivo adaptativo y perfectivo
respectivamente respectivamente. .
Mantenimiento Perfectivo
Mantenimiento Adaptativo
Mantenimiento Correctivo

y

Mantenimiento Preventivo
Usuarios del
Sistema
Base
Tecnolgica
Entorno de
Trabajo
Sistema
Software
n n11 11
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 21
Tipos de Mantenimiento (iii) Tipos de Mantenimiento (iii)
En En MANTEMA MANTEMA se trabaja con los siguientes tipos: se trabaja con los siguientes tipos:
n n No Planificable No Planificable (NP): (NP):
n n Correctivo Urgente Correctivo Urgente (UC): (UC): localizar y eliminar los posibles localizar y eliminar los posibles
defectos que bloquean el programa o los procesos de defectos que bloquean el programa o los procesos de
funcionamiento de la empresa. funcionamiento de la empresa.
n n Planificable Planificable (P): (P):
n n Correctivo No Urgente Correctivo No Urgente (NUC): (NUC): localizar y eliminar los posibles localizar y eliminar los posibles
defectos de los programas que no son defectos de los programas que no son bloqueantes bloqueantes. .
n n Perfectivo Perfectivo (PER): (PER): aadir al software nuevas funcionalidades aadir al software nuevas funcionalidades
solicitadas por los usuarios. solicitadas por los usuarios.
n n Adaptativo Adaptativo (A): (A): modificar el software para adaptarlo a cambios modificar el software para adaptarlo a cambios
en el entorno de trabajo (hardware o software). en el entorno de trabajo (hardware o software).
n n Preventivo Preventivo (PRE): (PRE): modificar el software para mejorar sus modificar el software para mejorar sus
propiedades (calidad, mantenibilidad, etc.). propiedades (calidad, mantenibilidad, etc.).
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 22
Mantenimiento Correctivo (i) Mantenimiento Correctivo (i)
A pesar de las pruebas y verificaciones que aparecen en etapas A pesar de las pruebas y verificaciones que aparecen en etapas
anteriores del ciclo de vida del software, los programas pueden anteriores del ciclo de vida del software, los programas pueden
tener defectos. El mantenimiento correctivo tiene por objetivo tener defectos. El mantenimiento correctivo tiene por objetivo
localizar y eliminar los posibles defectos localizar y eliminar los posibles defectos de los programas. de los programas.
Un Un defecto defecto en un sistema es una caracterstica del sistema con el en un sistema es una caracterstica del sistema con el
potencial de causar un fallo. potencial de causar un fallo.
Un Un fallo fallo ocurre cuando el comportamiento de un sistema es ocurre cuando el comportamiento de un sistema es
diferente del establecido en la especificacin. Entre otros, los diferente del establecido en la especificacin. Entre otros, los fallos fallos
en el software pueden ser de: en el software pueden ser de:
- - Procesamiento, por ejemplo, salidas incorrectas de un programa. Procesamiento, por ejemplo, salidas incorrectas de un programa.
- - Rendimiento, por ejemplo, tiempo de respuesta demasiado alto en Rendimiento, por ejemplo, tiempo de respuesta demasiado alto en una una
bsqueda de informacin. bsqueda de informacin.
- - Programacin, por ejemplo, inconsistencias en el diseo de un pr Programacin, por ejemplo, inconsistencias en el diseo de un programa. ograma.
- - Documentacin, por ejemplo, inconsistencias entre la funcionalid Documentacin, por ejemplo, inconsistencias entre la funcionalidad de un ad de un
programa y el manual de usuario. programa y el manual de usuario.
n n12 12
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 23
Mantenimiento Correctivo (ii) Mantenimiento Correctivo (ii)
La figura muestra la distribucin de las causas de los La figura muestra la distribucin de las causas de los
defectos segn un estudio realizado en 1994. defectos segn un estudio realizado en 1994.
Lgica
20,2%
Comprobacin
de errores
11,0%
Interfaz
Hardware
7,8%
Manejo de
datos
10,6%
Estndares
7,0%
Interfaz
Software
6,0%
Interfaz de
usuario
11,8%
Especificacin/
Diseo
25,7%
Origen de los defectos del software
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 24
Mantenimiento Adaptativo (i) Mantenimiento Adaptativo (i)
Este tipo de mantenimiento consiste en la modificacin Este tipo de mantenimiento consiste en la modificacin
de un programa debido a de un programa debido a cambios en el entorno cambios en el entorno
(hardware o software) en el cual se ejecuta. (hardware o software) en el cual se ejecuta.
Los cambios pueden afectar a: Los cambios pueden afectar a:
n n el sistema operativo (cambio a uno ms moderno), el sistema operativo (cambio a uno ms moderno),
n n la arquitectura fsica del sistema informtico (paso de una la arquitectura fsica del sistema informtico (paso de una
arquitectura de red de rea local a Internet/Intranet), arquitectura de red de rea local a Internet/Intranet),
n n o al entorno de desarrollo del software (incorporacin de o al entorno de desarrollo del software (incorporacin de
nuevos elementos o herramientas como ODBC). nuevos elementos o herramientas como ODBC).
La envergadura del cambio necesario puede ser muy La envergadura del cambio necesario puede ser muy
diferente: desde un pequeo retoque en la estructura diferente: desde un pequeo retoque en la estructura
de un mdulo hasta tener que reescribir prcticamente de un mdulo hasta tener que reescribir prcticamente
todo el programa para su ejecucin en un ambiente todo el programa para su ejecucin en un ambiente
distribuido en una red. distribuido en una red.
n n13 13
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 25
Mantenimiento Adaptativo (ii) Mantenimiento Adaptativo (ii)
Los cambios en el entorno software pueden ser de dos clases: Los cambios en el entorno software pueden ser de dos clases:
n n En el entorno de los En el entorno de los datos datos, por ejemplo, al dejar de trabajar con un , por ejemplo, al dejar de trabajar con un
sistema de ficheros clsico y sustituirlo por un sistema de gest sistema de ficheros clsico y sustituirlo por un sistema de gestin de in de
bases de datos relacionales. bases de datos relacionales.
n n En el entorno de los En el entorno de los procesos procesos, por ejemplo, migrando a una nueva , por ejemplo, migrando a una nueva
plataforma de desarrollo con componentes distribuidos, Java, plataforma de desarrollo con componentes distribuidos, Java, ActiveX ActiveX, ,
etc. etc.
Este tipo de mantenimiento es cada vez ms frecuente debido Este tipo de mantenimiento es cada vez ms frecuente debido
principalmente al cambio, cada vez ms rpido, en los diversos principalmente al cambio, cada vez ms rpido, en los diversos
aspectos de la informtica: nuevas generaciones de hardware, aspectos de la informtica: nuevas generaciones de hardware,
nuevos sistemas operativos nuevos sistemas operativos - -o versiones de los antiguos o versiones de los antiguos- -, y , y
mejoras en los perifricos o en otros elementos del sistema (fre mejoras en los perifricos o en otros elementos del sistema (frente nte
a esto, la vida til de un sistema software puede superar a esto, la vida til de un sistema software puede superar
fcilmente los diez aos). fcilmente los diez aos).
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 26
Mantenimiento Perfectivo Mantenimiento Perfectivo
Cambios en la especificacin, normalmente debidos a cambios en Cambios en la especificacin, normalmente debidos a cambios en
los requerimientos de un producto software, implican un nuevo los requerimientos de un producto software, implican un nuevo
tipo de mantenimiento llamado perfectivo. La casustica es muy tipo de mantenimiento llamado perfectivo. La casustica es muy
variada. Desde algo tan simple como cambiar el formato de variada. Desde algo tan simple como cambiar el formato de
impresin de un informe, hasta la incorporacin de un nuevo impresin de un informe, hasta la incorporacin de un nuevo
mdulo funcional. Podemos definir el mantenimiento perfectivo mdulo funcional. Podemos definir el mantenimiento perfectivo
como el conjunto de actividades para como el conjunto de actividades para mejorar o aadir nuevas mejorar o aadir nuevas
funcionalidades funcionalidades requeridas por el usuario. requeridas por el usuario.
Algunos autores dividen este tipo de mantenimiento en dos: Algunos autores dividen este tipo de mantenimiento en dos:
n n Mantenimiento de Ampliacin: orientado a la incorporacin de nue Mantenimiento de Ampliacin: orientado a la incorporacin de nuevas vas
funcionalidades. funcionalidades.
n n Mantenimiento de Eficiencia: que busca la mejora de la eficienc Mantenimiento de Eficiencia: que busca la mejora de la eficiencia de ia de
ejecucin. ejecucin.
n n14 14
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 27
Mantenimiento Preventivo Mantenimiento Preventivo
Este ltimo tipo de mantenimiento consiste en la modificacin de Este ltimo tipo de mantenimiento consiste en la modificacin del l
software para software para mejorar las propiedades mejorar las propiedades de dicho software (por de dicho software (por
ejemplo, aumentando su calidad y/o su mantenibilidad) sin altera ejemplo, aumentando su calidad y/o su mantenibilidad) sin alterar r
sus especificaciones funcionales. Algunas maneras de hacerlo son sus especificaciones funcionales. Algunas maneras de hacerlo son: :
n n incluir sentencias que comprueben la validez de los datos de ent incluir sentencias que comprueben la validez de los datos de entrada, rada,
n n reestructurar los programas para mejorar su legibilidad, o reestructurar los programas para mejorar su legibilidad, o
n n incluir nuevos comentarios que faciliten la posterior comprensi incluir nuevos comentarios que faciliten la posterior comprensin del n del
programa. programa.
En algunos casos se ha planteado el Mantenimiento para la En algunos casos se ha planteado el Mantenimiento para la
Reutilizacin, consistente en modificar el software (buscando y Reutilizacin, consistente en modificar el software (buscando y
modificando componentes para incluirlos en bibliotecas) para que modificando componentes para incluirlos en bibliotecas) para que
sea mas fcilmente reutilizable. En realidad este tipo de sea mas fcilmente reutilizable. En realidad este tipo de
mantenimiento es preventivo, especializado en mejorar la mantenimiento es preventivo, especializado en mejorar la
propiedad de propiedad de reusabilidad reusabilidad del software. del software.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 28
Actividades del MS (i) Actividades del MS (i)
Lo primero que se suele asociar con el MS es la correccin de Lo primero que se suele asociar con el MS es la correccin de
errores de los programas. Por esta causa, la impresin mas errores de los programas. Por esta causa, la impresin mas
generalizada entre los gestores, usuarios, e incluso entre los generalizada entre los gestores, usuarios, e incluso entre los
propios informticos, es que la mayor parte del mantenimiento qu propios informticos, es que la mayor parte del mantenimiento que e
se realiza en el mundo es de tipo correctivo. se realiza en el mundo es de tipo correctivo.
Sin embargo, los principales estudios realizados sobre el tema Sin embargo, los principales estudios realizados sobre el tema
indican que esta impresin es equivocada, y establecen que indican que esta impresin es equivocada, y establecen que el el
mantenimiento perfectivo es el tipo ms habitual mantenimiento perfectivo es el tipo ms habitual (ver (ver
figura). figura).
El establecimiento de analogas entre el MS y el mantenimiento d El establecimiento de analogas entre el MS y el mantenimiento del el
hardware puede conducir a confusin, ya que el software, a hardware puede conducir a confusin, ya que el software, a
diferencia del hardware, no se desgasta y, por tanto, la princip diferencia del hardware, no se desgasta y, por tanto, la principal al
actividad asociada con el mantenimiento del hardware actividad asociada con el mantenimiento del hardware - -reemplazar reemplazar
o reparar las piezas estropeadas o defectuosas o reparar las piezas estropeadas o defectuosas- - no es aplicable al no es aplicable al
software. software.
n n15 15
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 29
Actividades del MS (ii) Actividades del MS (ii)
Correctivo
17%
Preventivo
5%
Adaptativo
18%
Perfectivo
60%
Esfuerzo dedicado a cada tipo de mantenimiento
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 30
Actividades del MS (iii) Actividades del MS (iii)
Las actividades de MS se pueden agrupar en Las actividades de MS se pueden agrupar en tres categoras tres categoras
funcionales: funcionales:
n n Comprensin Comprensin del software y de los cambios a realizar del software y de los cambios a realizar: : para para
poder modificar un programa, los programadores necesitan conocer poder modificar un programa, los programadores necesitan conocer su su
funcionalidad y objetivos, su estructura interna y los requisito funcionalidad y objetivos, su estructura interna y los requisitos de operacin. s de operacin.
De no ser as, se corre un gran riesgo de introducir nuevos defe De no ser as, se corre un gran riesgo de introducir nuevos defectos que en el ctos que en el
futuro supondrn un coste de mantenimiento adicional. futuro supondrn un coste de mantenimiento adicional.
n n Modificacin Modificacin del software del software: : para incorporar los cambios necesarios se para incorporar los cambios necesarios se
deben crear y modificar las estructuras de datos, la lgica de l deben crear y modificar las estructuras de datos, la lgica de los procesos, las os procesos, las
interfaces y la documentacin. Los programadores deben conocer l interfaces y la documentacin. Los programadores deben conocer lo mejor o mejor
posible las repercusiones que tienen en el sistema los cambios q posible las repercusiones que tienen en el sistema los cambios que estn ue estn
realizando, con el fin de evitar al mximo posible los efectos s realizando, con el fin de evitar al mximo posible los efectos secundarios. ecundarios.
n n Realizacin de Realizacin de pruebas pruebas: : para validar los cambios se deben realizar para validar los cambios se deben realizar
pruebas selectivas que nos permitan comprobar la correccin del pruebas selectivas que nos permitan comprobar la correccin del software. software.
Esta actividad es necesaria siempre, ya que incluso un cambio mu Esta actividad es necesaria siempre, ya que incluso un cambio muy pequeo no y pequeo no
verificado puede producir defectos en el software que reduzcan s verificado puede producir defectos en el software que reduzcan su calidad y u calidad y
fiabilidad. fiabilidad.
n n16 16
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 31
Actividades del MS (iv) Actividades del MS (iv)
En la tabla se indican las proporciones del tiempo de En la tabla se indican las proporciones del tiempo de
mantenimiento que supone cada actividad especfica segn mantenimiento que supone cada actividad especfica segn
McClure McClure [1992]: [1992]:
Categora______________ Categora______________ Actividad___________ Actividad___________ %Tiempo %Tiempo
a) Comprensin del software a) Comprensin del software Estudiar las peticiones Estudiar las peticiones 18% 18%
y de los cambios a realizar y de los cambios a realizar Estudiar la documentacin Estudiar la documentacin 6% 6%
Estudiar el cdigo Estudiar el cdigo 23% 23%
b) Modificacin del software b) Modificacin del software Modificar el cdigo Modificar el cdigo 19% 19%
Actualizar la documentacin Actualizar la documentacin 6% 6%
c) Realizacin de pruebas c) Realizacin de pruebas Disear y realizar pruebas Disear y realizar pruebas 28% 28%
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 32
Actividades segn el Tipo de Actividades segn el Tipo de
Mantenimiento (i) Mantenimiento (i)
Segn el tipo de mantenimiento, se debern realizar un conjunto Segn el tipo de mantenimiento, se debern realizar un conjunto
de actividades y tareas diferentes. de actividades y tareas diferentes.
El mantenimiento UC (MANTEMA) tiene diferencias claras con los El mantenimiento UC (MANTEMA) tiene diferencias claras con los
dems tipos debido a que la urgencia necesaria para reparar los dems tipos debido a que la urgencia necesaria para reparar los
errores no permite realizar ninguna actividad de planificacin. errores no permite realizar ninguna actividad de planificacin.
Se pueden definir subconjuntos de actividades y tareas comunes a Se pueden definir subconjuntos de actividades y tareas comunes a
varios tipos de mantenimiento, cumplindose que: varios tipos de mantenimiento, cumplindose que:
n n Existe un conjunto de actividades y tareas " Existe un conjunto de actividades y tareas "iniciales iniciales" comunes a todos " comunes a todos
los tipos de mantenimiento. los tipos de mantenimiento.
n n Existe un conjunto de actividades y tareas " Existe un conjunto de actividades y tareas "finales finales" comunes a todos " comunes a todos
los tipos de mantenimiento. los tipos de mantenimiento.
n n Las actividades " Las actividades "intermedias intermedias" de los tipos de mantenimiento P son " de los tipos de mantenimiento P son
bastante coincidentes. bastante coincidentes.
n n17 17
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 33
Actividades segn el Tipo de Actividades segn el Tipo de
Mantenimiento (ii) Mantenimiento (ii)
Tipos de mantenimiento y actividades en MANTEMA
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 34
Dificultades del MS Dificultades del MS
La problemtica del mantenimiento se resume en La problemtica del mantenimiento se resume en
realizar el mantenimiento del software de forma tan realizar el mantenimiento del software de forma tan
rigurosa que la calidad no se deteriore como resultado rigurosa que la calidad no se deteriore como resultado
de este proceso. de este proceso.
La pregunta a formular es la siguiente: La pregunta a formular es la siguiente:
cmo debe mantenerse el software para preservar su cmo debe mantenerse el software para preservar su
fiabilidad? fiabilidad?
Las principales dificultades que hacen que la respuesta a Las principales dificultades que hacen que la respuesta a
esta pregunta no sea fcil y est muy condicionada esta pregunta no sea fcil y est muy condicionada
son: son:
n n La existencia de los llamados La existencia de los llamados legacy legacy code code (cdigo heredado). (cdigo heredado).
n n Problemas inherentes al mantenimiento del software. Problemas inherentes al mantenimiento del software.
n n Efectos secundarios o laterales no previstos ni deseados. Efectos secundarios o laterales no previstos ni deseados.
n n18 18
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 35
Cdigo Heredado (i) Cdigo Heredado (i)
Con el paso de los aos se ha ido produciendo un volumen muy Con el paso de los aos se ha ido produciendo un volumen muy
grande de software. En la actualidad, la mayor parte de ste grande de software. En la actualidad, la mayor parte de ste
software est formado por cdigo antiguo " software est formado por cdigo antiguo "heredado heredado" (del ingls " (del ingls
legacy legacy code code); es decir, cdigo de aplicaciones desarrolladas hace ); es decir, cdigo de aplicaciones desarrolladas hace
algn tiempo, con tcnicas y herramientas en desuso y algn tiempo, con tcnicas y herramientas en desuso y
probablemente por personas que ya no pertenecen al colectivo probablemente por personas que ya no pertenecen al colectivo
responsable en este momento del mantenimiento del software responsable en este momento del mantenimiento del software
concreto. concreto.
En muchas ocasiones, la situacin se complica porque el cdigo En muchas ocasiones, la situacin se complica porque el cdigo
heredado fue objeto de mltiples actividades de mantenimiento. L heredado fue objeto de mltiples actividades de mantenimiento. La a
opcin de desechar este software y reescribirlo para adaptarlo a opcin de desechar este software y reescribirlo para adaptarlo a
las nuevas necesidades tecnolgicas o a los cambios en la las nuevas necesidades tecnolgicas o a los cambios en la
especificacin es muchas veces inadecuada por la gran carga especificacin es muchas veces inadecuada por la gran carga
financiera que supuso el desarrollo del software original y la financiera que supuso el desarrollo del software original y la
necesidad econmica de su amortizacin. necesidad econmica de su amortizacin.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 36
Cdigo Heredado (ii) Cdigo Heredado (ii)
Los problemas especficos del mantenimiento de cdigo Los problemas especficos del mantenimiento de cdigo
heredado han sido caracterizados en las llamadas heredado han sido caracterizados en las llamadas
Leyes del Mantenimiento del Software Leyes del Mantenimiento del Software, propuestas , propuestas
por por Lehman Lehman: :
n n Continuidad del Cambio. Continuidad del Cambio.
n n Incremento de la Complejidad. Incremento de la Complejidad.
n n Evolucin del Programa. Evolucin del Programa.
n n Conservacin de la Estabilidad Organizacional. Conservacin de la Estabilidad Organizacional.
n n Conservacin de la Familiaridad. Conservacin de la Familiaridad.
n n19 19
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 37
Leyes del Mantenimiento del Software (i) Leyes del Mantenimiento del Software (i)
Continuidad del Cambio Continuidad del Cambio: Un programa utilizado en : Un programa utilizado en
un entorno del mundo real esta destinado a cambiar, un entorno del mundo real esta destinado a cambiar,
ya que, en caso contrario, ser utilizado cada vez ya que, en caso contrario, ser utilizado cada vez
menos en dicho entorno (tan pronto como un programa menos en dicho entorno (tan pronto como un programa
ha sido escrito, est ya desfasado). ha sido escrito, est ya desfasado).
Las razones que conducen a esta afirmacin son varias: Las razones que conducen a esta afirmacin son varias:
n n a los usuarios se les ocurren nuevas funcionalidades cuando a los usuarios se les ocurren nuevas funcionalidades cuando
comienzan a utilizar el software; comienzan a utilizar el software;
n n nuevas caractersticas en el hardware pueden permitir mejoras en nuevas caractersticas en el hardware pueden permitir mejoras en el el
software; software;
n n se encuentran defectos en el software que deben ser corregidos; se encuentran defectos en el software que deben ser corregidos;
n n el software debe instalarse en otro sistema operativo o mquina; el software debe instalarse en otro sistema operativo o mquina;
n n o el software necesita ser ms eficiente. o el software necesita ser ms eficiente.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 38
Leyes del Mantenimiento del Software (ii) Leyes del Mantenimiento del Software (ii)
Incremento de la Complejidad Incremento de la Complejidad: A la par que los cambios : A la par que los cambios
transforman los programas, su estructura se har progresivamente transforman los programas, su estructura se har progresivamente
ms compleja salvo que se haga un esfuerzo activo para evitar ms compleja salvo que se haga un esfuerzo activo para evitar
este fenmeno. Esto significa que al realizar cambios en un este fenmeno. Esto significa que al realizar cambios en un
programa (excluyendo el mantenimiento preventivo), la estructura programa (excluyendo el mantenimiento preventivo), la estructura
de dicho programa se hace ms compleja cuando los de dicho programa se hace ms compleja cuando los
programadores no pueden o no quieren usar tcnicas de ingeniera programadores no pueden o no quieren usar tcnicas de ingeniera
del software. del software.
Evolucin del Programa Evolucin del Programa: La evolucin de un programa es un : La evolucin de un programa es un
proceso autorregulado. Las medidas de determinadas propiedades proceso autorregulado. Las medidas de determinadas propiedades
(tamao, tiempo entre versiones y nmero de errores) revelan (tamao, tiempo entre versiones y nmero de errores) revelan
estadsticamente determinadas tendencias e invariantes. estadsticamente determinadas tendencias e invariantes.
n n20 20
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 39
Leyes del Mantenimiento del Software (iii) Leyes del Mantenimiento del Software (iii)
Conservacin de la Estabilidad Organizacional Conservacin de la Estabilidad Organizacional: A : A
lo largo del tiempo de vida de un programa, la carga lo largo del tiempo de vida de un programa, la carga
que supone el desarrollo de dicho programa es que supone el desarrollo de dicho programa es
aproximadamente constante e independiente de los aproximadamente constante e independiente de los
recursos dedicados. recursos dedicados.
Conservacin de la Familiaridad Conservacin de la Familiaridad: Durante todo el : Durante todo el
tiempo de vida de un producto software, el incremento tiempo de vida de un producto software, el incremento
en el nmero de cambios incluidos con cada versin en el nmero de cambios incluidos con cada versin
( (release release) es aproximadamente constante. ) es aproximadamente constante.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 40
Problemas inherentes al MS (i) Problemas inherentes al MS (i)
Adems de las dificultades de mantenimiento que sealan las leye Adems de las dificultades de mantenimiento que sealan las leyes s
anteriores, existen otros problemas clsicos que complican el anteriores, existen otros problemas clsicos que complican el
mantenimiento y que son debidos a la propia naturaleza del mantenimiento y que son debidos a la propia naturaleza del
proceso: proceso:
n n De carcter tcnico: De carcter tcnico:
n n Ausencia metodolgica. Ausencia metodolgica.
n n Tendencia a la des Tendencia a la des- -estructuracin. estructuracin.
n n Disminucin de la comprensibilidad. Disminucin de la comprensibilidad.
n n Poca participacin de los usuarios. Poca participacin de los usuarios.
n n De gestin. De gestin.
Todos estos problemas se pueden atribuir Todos estos problemas se pueden atribuir - -parcialmente parcialmente- - al gran al gran
nmero de programas existentes que han sido desarrollados sin nmero de programas existentes que han sido desarrollados sin
utilizar la utilizar la ingeniera del software ingeniera del software (no es una panacea, pero (no es una panacea, pero
aporta soluciones parciales a los diversos problemas planteados aporta soluciones parciales a los diversos problemas planteados
con el MS). con el MS).
n n21 21
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 41
Problemas inherentes al MS (ii) Problemas inherentes al MS (ii)
Ausencia metodolgica Ausencia metodolgica: : A menudo, el mantenimiento es realizado A menudo, el mantenimiento es realizado
de una manera de una manera ad ad hoc hoc en un estilo libre establecido por el propio en un estilo libre establecido por el propio
programador. No en todas las ocasiones esta situacin es debida programador. No en todas las ocasiones esta situacin es debida a la falta a la falta
de tiempo para producir una modificacin diseada cuidadosamente de tiempo para producir una modificacin diseada cuidadosamente. .
Prcticamente todas las metodologas se han centrado en el desar Prcticamente todas las metodologas se han centrado en el desarrollo de rollo de
nuevos sistemas y no han tenido en cuenta la importancia del nuevos sistemas y no han tenido en cuenta la importancia del
mantenimiento. Por esta razn, no existen o son poco conocidos l mantenimiento. Por esta razn, no existen o son poco conocidos los os
mtodos, tcnicas y herramientas que proporcionan una solucin g mtodos, tcnicas y herramientas que proporcionan una solucin global al lobal al
problema del mantenimiento. problema del mantenimiento.
Tendencia a la des Tendencia a la des- -estructuracin estructuracin: : Cambio tras cambio, los Cambio tras cambio, los
programas tienden a ser menos estructurados. Esto se manifiesta programas tienden a ser menos estructurados. Esto se manifiesta en una en una
documentacin desfasada, cdigo que no cumple los estndares, documentacin desfasada, cdigo que no cumple los estndares,
incremento en el tiempo que los programadores necesitan para ent incremento en el tiempo que los programadores necesitan para entender ender
y comprender los programas o en el incremento en los efectos y comprender los programas o en el incremento en los efectos
secundarios producidos por los cambios. Todas estas situaciones secundarios producidos por los cambios. Todas estas situaciones implican implican
casi siempre unos costes de MS muy altos. casi siempre unos costes de MS muy altos.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 42
Problemas inherentes al MS (iii) Problemas inherentes al MS (iii)
Disminucin de la comprensibilidad Disminucin de la comprensibilidad: : Es muy habitual que los Es muy habitual que los
sistemas que estn siendo sometidos a mantenimiento sean cada ve sistemas que estn siendo sometidos a mantenimiento sean cada vez ms z ms
difciles de cambiar. Esto se debe al hecho de que los cambios e difciles de cambiar. Esto se debe al hecho de que los cambios en un n un
programa por actividades de mantenimiento dificultan la posterio programa por actividades de mantenimiento dificultan la posterior r
comprensin de la funcionalidad del programa (por ejemplo, el pr comprensin de la funcionalidad del programa (por ejemplo, el programa ograma
original puede basarse en decisiones de programacin no document original puede basarse en decisiones de programacin no documentadas a adas a
las que no puede acceder el personal de mantenimiento). En estas las que no puede acceder el personal de mantenimiento). En estas
situaciones, es normal que el software no pueda ser cambiado sin situaciones, es normal que el software no pueda ser cambiado sin correr correr
el riesgo de introducir efectos laterales no deseados debidos a el riesgo de introducir efectos laterales no deseados debidos a
interdependencias entre variables y procedimientos que el manten interdependencias entre variables y procedimientos que el mantenedor no edor no
ha detectado. ha detectado.
Poca participacin de los usuarios Poca participacin de los usuarios: : La falta de una metodologa La falta de una metodologa
adecuada suele conducir a que los usuarios participen poco duran adecuada suele conducir a que los usuarios participen poco durante el te el
desarrollo del sistema software. Esto tiene como consecuencia qu desarrollo del sistema software. Esto tiene como consecuencia que, e,
cuando el producto se entrega a los usuarios, no satisface sus cuando el producto se entrega a los usuarios, no satisface sus
necesidades y se tienen que producir esfuerzos de mantenimiento necesidades y se tienen que producir esfuerzos de mantenimiento
mayores en el futuro. mayores en el futuro.
n n22 22
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 43
Problemas inherentes al MS (iv) Problemas inherentes al MS (iv)
Problemas de gestin Problemas de gestin: : Adems de los problemas de carcter tcnico Adems de los problemas de carcter tcnico
anteriores, tambin pueden existir problemas de gestin. anteriores, tambin pueden existir problemas de gestin.
n n Muchos programadores consideran el trabajo de mantenimiento como Muchos programadores consideran el trabajo de mantenimiento como
una actividad inferior una actividad inferior - -menos creativa menos creativa- - que les distrae del trabajo que les distrae del trabajo - -
mucho ms interesante mucho ms interesante- - del desarrollo de software. del desarrollo de software.
n n Esta visin puede verse reforzada por las condiciones laborales Esta visin puede verse reforzada por las condiciones laborales y y
salariales y crea una baja moral entre las personas dedicadas al salariales y crea una baja moral entre las personas dedicadas al
mantenimiento. mantenimiento.
n n Como resultado de lo anterior, cuando se hace necesario realizar Como resultado de lo anterior, cuando se hace necesario realizar
mantenimiento, en vez de emplear una estrategia sistemtica, las mantenimiento, en vez de emplear una estrategia sistemtica, las
correcciones tienden a ser realizadas con precipitacin, sin pen correcciones tienden a ser realizadas con precipitacin, sin pensarse sarse
de forma suficiente, no documentadas adecuadamente y pobremente de forma suficiente, no documentadas adecuadamente y pobremente
integradas con el cdigo existente. integradas con el cdigo existente.
n n No es extrao, pues, que el propio mantenimiento conduzca a la No es extrao, pues, que el propio mantenimiento conduzca a la
introduccin de nuevos errores e ineficiencias que conducen a nu introduccin de nuevos errores e ineficiencias que conducen a nuevos evos
esfuerzos de mantenimiento con posterioridad. esfuerzos de mantenimiento con posterioridad.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 44
Efectos secundarios Efectos secundarios
La posibilidad de error al cambiar un procedimiento lgico tan La posibilidad de error al cambiar un procedimiento lgico tan
complejo como el que constituyen la mayor parte de los complejo como el que constituyen la mayor parte de los
programas actuales es muy grande. Por esta razn, una de las programas actuales es muy grande. Por esta razn, una de las
principales dificultades del MS es el riesgo del llamado principales dificultades del MS es el riesgo del llamado efecto efecto
bola de nieve bola de nieve, , de manera que los cambios producidos por una de manera que los cambios producidos por una
peticin de mantenimiento introducen efectos secundarios que peticin de mantenimiento introducen efectos secundarios que
implicarn nuevas peticiones de mantenimiento en el futuro. Esto implicarn nuevas peticiones de mantenimiento en el futuro. Estos s
efectos secundarios suponen nuevos defectos que aparecen como efectos secundarios suponen nuevos defectos que aparecen como
consecuencia de las modificaciones realizadas. consecuencia de las modificaciones realizadas.
Segn las consecuencias que se derivan, los efectos secundarios Segn las consecuencias que se derivan, los efectos secundarios
del MS son de tres clases: del MS son de tres clases:
n n efectos sobre el cdigo, efectos sobre el cdigo,
n n efectos sobre los datos, y efectos sobre los datos, y
n n efectos sobre la documentacin. efectos sobre la documentacin.
n n23 23
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 45
Efectos secundarios sobre el cdigo Efectos secundarios sobre el cdigo
Todos los desarrolladores de software han " Todos los desarrolladores de software han "sufrido sufrido" en algn " en algn
momento los problemas originados por olvidar aadir un ";" o por momento los problemas originados por olvidar aadir un ";" o por
confundir un signo de puntuacin con otro. Las consecuencias de confundir un signo de puntuacin con otro. Las consecuencias de
estos " estos "despistes despistes" pueden ser muy importantes y sirven para " pueden ser muy importantes y sirven para
corroborar que los efectos secundarios por cambios en el cdigo corroborar que los efectos secundarios por cambios en el cdigo
son difciles de prever. son difciles de prever.
Las modificaciones en el cdigo fuente que tienen una mayor Las modificaciones en el cdigo fuente que tienen una mayor
probabilidad de inducir a nuevos errores son: probabilidad de inducir a nuevos errores son:
n n Cambios en el diseo que suponen muchos cambios en el cdigo. Cambios en el diseo que suponen muchos cambios en el cdigo.
n n Eliminacin o modificacin de un subprograma. Eliminacin o modificacin de un subprograma.
n n Eliminacin o modificacin de una etiqueta. Eliminacin o modificacin de una etiqueta.
n n Eliminacin o modificacin de un identificador. Eliminacin o modificacin de un identificador.
n n Cambios para mejorar el rendimiento. Cambios para mejorar el rendimiento.
n n Modificacin de la apertura/cierre de ficheros. Modificacin de la apertura/cierre de ficheros.
n n Modificacin de operaciones lgicas. Modificacin de operaciones lgicas.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 46
Efectos secundarios sobre los datos Efectos secundarios sobre los datos
Las estructuras de datos constituyen una parte fundamental y Las estructuras de datos constituyen una parte fundamental y
bsica en cualquier producto software, por lo que cualquier camb bsica en cualquier producto software, por lo que cualquier cambio io
que se produzca en ellas puede conducir a fallos importantes del que se produzca en ellas puede conducir a fallos importantes del
sistema. sistema.
Los efectos secundarios de este tipo pueden aparecer debido a lo Los efectos secundarios de este tipo pueden aparecer debido a los s
siguientes cambios: siguientes cambios:
n n Redefinicin de constantes locales o globales. Redefinicin de constantes locales o globales.
n n Modificacin de los formatos de registros o archivos. Modificacin de los formatos de registros o archivos.
n n Cambio en el tamao de una matriz u otras estructuras similares. Cambio en el tamao de una matriz u otras estructuras similares.
n n Modificacin de la definicin de variables globales. Modificacin de la definicin de variables globales.
n n Reinicializacin Reinicializacin de indicadores de control o punteros. de indicadores de control o punteros.
n n Cambios en los argumentos de los subprogramas. Cambios en los argumentos de los subprogramas.
Para reducir esta clase de efectos secundarios es importante una Para reducir esta clase de efectos secundarios es importante una
correcta documentacin de todos los datos, incluyendo tablas de correcta documentacin de todos los datos, incluyendo tablas de
referencias cruzadas datos referencias cruzadas datos- -procesos. procesos.
n n24 24
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 47
Efectos secundarios sobre la Efectos secundarios sobre la
documentacin documentacin
Los efectos secundarios de esta clase se producen cuando los Los efectos secundarios de esta clase se producen cuando los
cambios sobre el cdigo de una aplicacin no se reflejan en la cambios sobre el cdigo de una aplicacin no se reflejan en la
documentacin de diseo y/o en la documentacin de usuario. Si documentacin de diseo y/o en la documentacin de usuario. Si
la documentacin tcnica no se corresponde con el estado actual la documentacin tcnica no se corresponde con el estado actual
del software, se producirn efectos secundarios debidos a una del software, se producirn efectos secundarios debidos a una
incorrecta caracterizacin de las propiedades de dicho software. incorrecta caracterizacin de las propiedades de dicho software.
Por otro lado, la estima que los usuarios tendrn del producto Por otro lado, la estima que los usuarios tendrn del producto
software se reducir considerablemente si comprueban que la software se reducir considerablemente si comprueban que la
documentacin no se adapta a los ejecutables. documentacin no se adapta a los ejecutables.
Los cambios que con mayor probabilidad pueden producir efectos Los cambios que con mayor probabilidad pueden producir efectos
secundarios sobre la documentacin son: secundarios sobre la documentacin son:
n n Modificar el formato de las entradas interactivas. Modificar el formato de las entradas interactivas.
n n Nuevos mensajes de error no documentados. Nuevos mensajes de error no documentados.
n n Tablas o ndices no actualizados. Tablas o ndices no actualizados.
n n Texto no actualizado correctamente. Texto no actualizado correctamente.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 48
Soluciones al Problema del MS Soluciones al Problema del MS
Las diversas propuestas para resolver este problema Las diversas propuestas para resolver este problema
pueden dividirse en dos categoras: pueden dividirse en dos categoras:
n n Soluciones de Gestin Soluciones de Gestin (organizativas): (organizativas):
n n Mejora de los recursos dedicados al mantenimiento Mejora de los recursos dedicados al mantenimiento
n n Gestin de la calidad Gestin de la calidad
n n Gestin estructurada del proceso ( Gestin estructurada del proceso (Metodologas) Metodologas)
n n Organizacin del equipo humano Organizacin del equipo humano
n n Documentacin de los cambios Documentacin de los cambios
n n Soluciones Tcnicas Soluciones Tcnicas (herramientas y (herramientas y
Metodologas Metodologas). ).
n n25 25
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 49
Soluciones de Gestin Soluciones de Gestin
En trminos financieros, el MS puede ser visto como un continuo En trminos financieros, el MS puede ser visto como un continuo
consumidor de recursos consumidor de recursos, mientras que los beneficios no estn , mientras que los beneficios no estn
claros ni cuantificados. Para ayudar a evitar esta situacin se claros ni cuantificados. Para ayudar a evitar esta situacin se
necesita un necesita un mayor apoyo por parte de la direccin mayor apoyo por parte de la direccin de las de las
organizaciones para las actividades de mantenimiento. Para ello organizaciones para las actividades de mantenimiento. Para ello es es
necesario que los gestores veteranos ( necesario que los gestores veteranos (seniors seniors) de las ) de las
organizaciones sean conscientes de: organizaciones sean conscientes de:
n n La importancia de las tecnologas de la informacin para la La importancia de las tecnologas de la informacin para la
organizacin; y organizacin; y
n n Que el software es un activo corporativo que puede suponer una Que el software es un activo corporativo que puede suponer una
ventaja competitiva. ventaja competitiva.
Los gestores que estn descontentos con la situacin y que Los gestores que estn descontentos con la situacin y que
quieran cambiarla, tendrn que adquirir un compromiso personal y quieran cambiarla, tendrn que adquirir un compromiso personal y
visible con las soluciones organizativas propuestas. Tales visible con las soluciones organizativas propuestas. Tales
soluciones se concretan fundamentalmente en dos aspectos: soluciones se concretan fundamentalmente en dos aspectos: los los
recursos y la calidad recursos y la calidad. .
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 50
Mejora de los recursos dedicados al MS Mejora de los recursos dedicados al MS
El recurso fundamental y clave para el MS es el humano El recurso fundamental y clave para el MS es el humano
n n Por tanto, una manera de mejorar el mantenimiento podra ser Por tanto, una manera de mejorar el mantenimiento podra ser
constituir un grupo separado de programadores dedicados a constituir un grupo separado de programadores dedicados a
mantener cdigo antiguo. mantener cdigo antiguo.
n n Sin embargo, debido al carcter poco atractivo de este trabajo, Sin embargo, debido al carcter poco atractivo de este trabajo,
es habitual que el personal nuevo recin incorporado sea es habitual que el personal nuevo recin incorporado sea
asignado a esta actividad. asignado a esta actividad.
n n Estos programadores inexpertos deben intentar comprender la Estos programadores inexpertos deben intentar comprender la
lgica de diseo del sistema, a pesar de que no pueden lgica de diseo del sistema, a pesar de que no pueden
comprender el modelo conceptual del software debido a que comprender el modelo conceptual del software debido a que
carecen de experiencia de uso de las tcnicas de ingeniera del carecen de experiencia de uso de las tcnicas de ingeniera del
software y de conocimiento del dominio de lo que el programa software y de conocimiento del dominio de lo que el programa
realiza. As, raramente saben cmo encontrar y corregir realiza. As, raramente saben cmo encontrar y corregir
defectos o realizar modificaciones. defectos o realizar modificaciones.
n n26 26
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 51
Gestin de la Calidad (i) Gestin de la Calidad (i)
El aumento de los recursos humanos y econmicos dedicados al El aumento de los recursos humanos y econmicos dedicados al
MS puede suponer una solucin a corto plazo, pero para resolver MS puede suponer una solucin a corto plazo, pero para resolver
el problema a largo plazo se hace necesario adoptar una el problema a largo plazo se hace necesario adoptar una
aproximacin que permita aproximacin que permita mejorar la calidad del proceso mejorar la calidad del proceso en su en su
conjunto. conjunto.
Entre las mejores tcnicas de gestin de la calidad del software Entre las mejores tcnicas de gestin de la calidad del software se se
incluyen: incluyen:
n n Uso de tcnicas estndares para la descomposicin del software e Uso de tcnicas estndares para la descomposicin del software en n
entidades funcionales; entidades funcionales;
n n Empleo estricto de estndares de documentacin del software; Empleo estricto de estndares de documentacin del software;
n n Diseo paso a paso en cada nivel de descomposicin del software; Diseo paso a paso en cada nivel de descomposicin del software;
n n Uso de cdigo estructurado; y Uso de cdigo estructurado; y
n n Definicin de todas las interfaces y estructuras de datos import Definicin de todas las interfaces y estructuras de datos importantes antes
antes de comenzar el diseo detallado. antes de comenzar el diseo detallado.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 52
Gestin de la Calidad (ii) Gestin de la Calidad (ii)
qu es Calidad? qu es Calidad?: es la adecuacin de un producto o proceso a : es la adecuacin de un producto o proceso a
las especificaciones previamente establecidas. las especificaciones previamente establecidas.
Los Los mtodos mtodos para para aumentar la calidad aumentar la calidad, tanto de un producto , tanto de un producto
software como del proceso de su produccin, se parecen cada vez software como del proceso de su produccin, se parecen cada vez
ms a los empleados en la industria en general: ms a los empleados en la industria en general:
n n Adecuacin a estndares preestablecidos; Adecuacin a estndares preestablecidos;
n n QSA ( QSA (Quality Quality Software Software Assurance Assurance); );
n n TQ (Total TQ (Total Quality Quality) )
Adicionalmente, pueden utilizarse Adicionalmente, pueden utilizarse mtricas mtricas de producto (para de producto (para
medir los atributos del producto software) y mtricas de proceso medir los atributos del producto software) y mtricas de procesos s
(para evaluar la calidad del proceso). (para evaluar la calidad del proceso).
Otra forma de poder mejorar la calidad es utilizar Otra forma de poder mejorar la calidad es utilizar mejores mejores
herramientas herramientas de desarrollo de software (por ejemplo, un entorno de desarrollo de software (por ejemplo, un entorno
nico que integre editor, compilador y depurador). nico que integre editor, compilador y depurador).
n n27 27
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 53
Gestin Estructurada del MS (i) Gestin Estructurada del MS (i)
Es muy importante emplear una Es muy importante emplear una gestin estructurada gestin estructurada del del
proceso de MS. proceso de MS.
Este Mantenimiento Estructurado aparece como resultado de la Este Mantenimiento Estructurado aparece como resultado de la
aplicacin de una metodologa aplicacin de una metodologa de ingeniera del software. de ingeniera del software.
La existencia de tcnicas y herramientas adecuadas para Gestiona La existencia de tcnicas y herramientas adecuadas para Gestionar r
la la Configuracin del Software Configuracin del Software reduce la cantidad de esfuerzo reduce la cantidad de esfuerzo
requerido en el mantenimiento y mejora la calidad general de los requerido en el mantenimiento y mejora la calidad general de los
cambios. cambios.
Configuracin del Software Configuracin del Software: Documentacin e informacin sobre los : Documentacin e informacin sobre los
requerimientos, especificacin, diseo y pruebas en cada una de requerimientos, especificacin, diseo y pruebas en cada una de las versiones las versiones
para cada uno de los elementos software. para cada uno de los elementos software.
Elemento Software Elemento Software: cada uno de los componentes de un producto software: : cada uno de los componentes de un producto software:
cdigo de un mdulo, fichero ejecutable, fichero de ayuda en ln cdigo de un mdulo, fichero ejecutable, fichero de ayuda en lnea, ea,
especificacin de requisitos, documento de anlisis, esquema de especificacin de requisitos, documento de anlisis, esquema de la base de la base de
datos, etc. datos, etc.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 54
Gestin Estructurada del MS (ii) Gestin Estructurada del MS (ii)
Cuando el mantenimiento no es estructurado, se sufren las Cuando el mantenimiento no es estructurado, se sufren las
consecuencias de la consecuencias de la falta de metodologa falta de metodologa: :
n n dolorosa evaluacin del cdigo (muchas veces poco legible), dolorosa evaluacin del cdigo (muchas veces poco legible),
n n complicada comprensin del sistema por la pobre documentacin complicada comprensin del sistema por la pobre documentacin
interna (desconocimiento de la estructura del programa, las interna (desconocimiento de la estructura del programa, las
estructuras de datos globales, las interfaces y otros requisitos estructuras de datos globales, las interfaces y otros requisitos de de
diseo y/o rendimiento), diseo y/o rendimiento),
n n dificultad para descubrir las consecuencias de los cambios en el dificultad para descubrir las consecuencias de los cambios en el
cdigo, y por ltimo, cdigo, y por ltimo,
n n imposibilidad de realizar pruebas de regresin (repeticin de pr imposibilidad de realizar pruebas de regresin (repeticin de pruebas uebas
anteriores) al no existir ningn registro de pruebas. anteriores) al no existir ningn registro de pruebas.
Antes de optar por deshacerse de un programa y re Antes de optar por deshacerse de un programa y re- -escribirlo de escribirlo de
nuevo, es necesario hacer un estudio detallado para evaluar las nuevo, es necesario hacer un estudio detallado para evaluar las
ventajas e inconvenientes de una y otra opcin. ventajas e inconvenientes de una y otra opcin.
n n28 28
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 55
Gestin Estructurada del MS (iii) Gestin Estructurada del MS (iii)
Pueden Pueden atenuarse las dificultades atenuarse las dificultades al mantener cdigo heredado al mantener cdigo heredado
siguiendo algunas sugerencias propuestas por siguiendo algunas sugerencias propuestas por Yourdon Yourdon : :
n n Prevenir antes que curar: obtener la mayor informacin posible s Prevenir antes que curar: obtener la mayor informacin posible sobre el obre el
programa antes de que surjan las emergencias de mantenimiento. programa antes de que surjan las emergencias de mantenimiento.
n n Conocer y entender el flujo de control general del programa. En Conocer y entender el flujo de control general del programa. En caso de que caso de que
no exista, dibujar los diagramas de estructura y de flujo de alt no exista, dibujar los diagramas de estructura y de flujo de alto nivel. o nivel.
n n Evaluar la documentacin. Evaluar la documentacin.
n n Aadir comentarios al cdigo para facilitar su entendimiento pos Aadir comentarios al cdigo para facilitar su entendimiento posterior. terior.
n n Utilizar las ayudas que proporcionan los compiladores: listados Utilizar las ayudas que proporcionan los compiladores: listados de referencias de referencias
cruzadas, tablas de smbolos, etc. cruzadas, tablas de smbolos, etc.
n n Al realizar cambios, respetar el estilo y formato previos en la Al realizar cambios, respetar el estilo y formato previos en la medida de lo medida de lo
posible. posible.
n n Sealar las instrucciones cambiadas en el cdigo. Sealar las instrucciones cambiadas en el cdigo.
n n Asegurarse antes de eliminar cdigo (guardando una copia por si Asegurarse antes de eliminar cdigo (guardando una copia por si acaso). acaso).
n n Utilizar variables propias para evitar los posibles efectos secu Utilizar variables propias para evitar los posibles efectos secundarios que ndarios que
pueden surgir al utilizar las variables existentes previamente. pueden surgir al utilizar las variables existentes previamente.
n n Llevar un registro completo de todas las actividades de mantenim Llevar un registro completo de todas las actividades de mantenimiento. iento.
n n Aadir comprobacin de errores. Aadir comprobacin de errores.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 56
Gestin Estructurada del MS (iv) Gestin Estructurada del MS (iv)
Debe emplearse una Debe emplearse una
metodologa metodologa para gestionar para gestionar
y realizar el MS. y realizar el MS.
Las caractersticas y Las caractersticas y
necesidades del necesidades del
mantenimiento de software mantenimiento de software
son diferentes que las del son diferentes que las del
desarrollo. Por tanto es desarrollo. Por tanto es
necesario disponer de necesario disponer de
metodologas especficas: metodologas especficas:
MANTEMA MANTEMA
Es una necesidad manifestada Es una necesidad manifestada
por las empresas de servicios por las empresas de servicios
informticos relacionados con informticos relacionados con
el mantenimiento el mantenimiento
( (outsourcing outsourcing, externalizacin, , externalizacin,
etc.). etc.).
Eval uar,
cl asi fi car,
col ocar en l a
col a
Ti po?
Ti po?
Eval uar,
cl asi f i car
Sever i dad?
I nf or maci n
requeri da para
i nf ormar al cl i ent e
Act i vi dad de
act uaci n i nmedi at a.
Col ocar al pr i nci pi o
de l a col a
Eval uar,
cl asi fi car,
col ocar en l a
col a
Acci n?
Pri ori zar.
Col ocar en
la cola.
Sel ecci onar
si gui ent e t area de
la col a de pr i or i dad
Pl ani f i car, organi zar,
apl i car Ingeni era del
Software
Quedan
t ar eas?
Apl i car recursos a l os
nuevos desar r ol l os
Er r or Otro
Mej ora Adapt aci n Mucha No mucha
Pr oceder No pr oceder
S
N o
Peti ci n de
mant eni mi ent o
n n29 29
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 57
Organizacin del equipo humano Organizacin del equipo humano
Puesto que las tareas relacionadas con el mantenimiento Puesto que las tareas relacionadas con el mantenimiento
comienzan mucho antes de que se realice la primera peticin de comienzan mucho antes de que se realice la primera peticin de
mantenimiento, es muy aconsejable mantenimiento, es muy aconsejable establecer una organizacin establecer una organizacin
del equipo de mantenimiento desde las fases iniciales del del equipo de mantenimiento desde las fases iniciales del
desarrollo desarrollo, definiendo claramente las personas que participarn en , definiendo claramente las personas que participarn en
cada actividad para tratar de evitar que el mantenimiento se cada actividad para tratar de evitar que el mantenimiento se
realice "como se pueda". realice "como se pueda".
Esta organizacin puede ser creada formalmente o simplemente Esta organizacin puede ser creada formalmente o simplemente
constituirse de hecho, pero, en cualquier caso, se debern constituirse de hecho, pero, en cualquier caso, se debern
establecer claramente los procedimientos de evaluacin, control, establecer claramente los procedimientos de evaluacin, control,
supervisin e informacin de cada peticin de mantenimiento supervisin e informacin de cada peticin de mantenimiento. .
Asignar responsabilidades antes de comenzar las actividades Asignar responsabilidades antes de comenzar las actividades de de
mantenimiento reduce considerablemente la confusin y ayuda a mantenimiento reduce considerablemente la confusin y ayuda a
evitar en gran parte las incomodidades de la persona que se sien evitar en gran parte las incomodidades de la persona que se siente te
"mareada" al cambiarla apresuradamente de tarea: de desarrollo a "mareada" al cambiarla apresuradamente de tarea: de desarrollo a
mantenimiento y viceversa. mantenimiento y viceversa.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 58
Documentacin de los cambios Documentacin de los cambios
Informacin del programa. Informacin del programa.
Tamao (LDC) del programa Tamao (LDC) del programa
fuente. fuente.
Tamao del ejecutable. Tamao del ejecutable.
Lenguaje de programacin Lenguaje de programacin
utilizado. utilizado.
Fecha de instalacin del Fecha de instalacin del
programa. programa.
Nmero de fallos. Nmero de fallos.
Nmero de sentencias aadidas, Nmero de sentencias aadidas,
eliminadas y modificadas en el eliminadas y modificadas en el
cambio. cambio.
Nmero de personas Nmero de personas- -hora. hora.
Identificacin del responsable del Identificacin del responsable del
cambio (ingeniero de software). cambio (ingeniero de software).
Identificacin de la peticin de Identificacin de la peticin de
mantenimiento. mantenimiento.
Tipo de mantenimiento. Tipo de mantenimiento.
Fechas de comienzo y final del Fechas de comienzo y final del
mantenimiento. mantenimiento.
Beneficios netos que supone el Beneficios netos que supone el
cambio. cambio.
Es muy importante realizar una correcta documentacin de los
cambios.
Las principales informaciones que se pueden registrar para cada
cambio:
n n30 30
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 59
Soluciones Tcnicas (i) Soluciones Tcnicas (i)
Las soluciones tcnicas al problema del MS son de dos clases: Las soluciones tcnicas al problema del MS son de dos clases:
herramientas y mtodos herramientas y mtodos
Las primeras sirven para soportar de forma ms efectiva y cmoda Las primeras sirven para soportar de forma ms efectiva y cmoda
los segundos. los segundos.
Estas herramientas han sido diseadas para ayudar al personal de Estas herramientas han sido diseadas para ayudar al personal de
mantenimiento a comprender el programa y a probar sus mantenimiento a comprender el programa y a probar sus
modificaciones para asegurar que no han sido introducidos errore modificaciones para asegurar que no han sido introducidos errores. s.
Muchas de estas herramientas son iguales o similares a las Muchas de estas herramientas son iguales o similares a las
utilizadas para la prueba (test) del software: utilizadas para la prueba (test) del software: formateador formateador, ,
analizador esttico, analizador esttico, estructurador estructurador, , documentador documentador, depurador , depurador
interactivo, generador de datos de prueba y comparador. interactivo, generador de datos de prueba y comparador.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 60
Soluciones Tcnicas (ii) Soluciones Tcnicas (ii)
Los principales Los principales mtodos mtodos empleados en el MS son: empleados en el MS son:
n n Reingeniera Reingeniera: consiste en el examen y modificacin de un : consiste en el examen y modificacin de un
sistema para reconstruirlo en una nueva forma. sistema para reconstruirlo en una nueva forma.
n n Ingeniera Inversa Ingeniera Inversa: es el proceso de analizar un sistema : es el proceso de analizar un sistema
para identificar sus componentes y las interrelaciones que para identificar sus componentes y las interrelaciones que
existen entre ellos, as como para crear representaciones del existen entre ellos, as como para crear representaciones del
sistema en otra forma o en un nivel de abstraccin ms sistema en otra forma o en un nivel de abstraccin ms
elevado. elevado.
n n Reestructuracin Reestructuracin del software: consiste en la modificacin del software: consiste en la modificacin
del software para hacerlo ms fcil de entender y cambiar o del software para hacerlo ms fcil de entender y cambiar o
menos susceptible de incluir errores en cambios posteriores. Se menos susceptible de incluir errores en cambios posteriores. Se
diferencia de la ingeniera inversa en que el software diferencia de la ingeniera inversa en que el software
reestructurado tiene el mismo nivel de abstraccin que el reestructurado tiene el mismo nivel de abstraccin que el
original. original.
n n31 31
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 61
Soluciones Soluciones - - Conclusiones Conclusiones
Necesidad de emplear Necesidad de emplear Metodologas Metodologas, si puede ser, , si puede ser,
especficas para el proceso de MS. especficas para el proceso de MS.
Necesidad de Necesidad de Herramientas Herramientas: :
n n Muchas metodologas han fracasado por no disponer de Muchas metodologas han fracasado por no disponer de
herramientas que permitan su automatizacin. herramientas que permitan su automatizacin.
n n Adems, hacen falta medidas para poder tomar decisiones. Adems, hacen falta medidas para poder tomar decisiones.
n n Para ello debemos disponer de mtricas que nos permitan Para ello debemos disponer de mtricas que nos permitan
medir los aspectos de inters en MS. medir los aspectos de inters en MS.
Utilizar tcnicas de Control y Gestin de la Utilizar tcnicas de Control y Gestin de la Calidad Calidad: :
n n Gestin de Riesgos, Gestin de Riesgos,
n n Gestin de Configuraciones, Gestin de Configuraciones,
n n Auditora. Auditora.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 62
El estndar ISO 9126 (i) El estndar ISO 9126 (i)
El nuevo estndar El nuevo estndar ISO 9126 ISO 9126 define un define un modelo de calidad del modelo de calidad del
software software en el que en el que la calidad se define como la totalidad de la calidad se define como la totalidad de
caractersticas relacionadas con su habilidad para caractersticas relacionadas con su habilidad para
satisfacer necesidades establecidas o implicadas satisfacer necesidades establecidas o implicadas. .
Los atributos de calidad se clasifican segn seis caracterstica Los atributos de calidad se clasifican segn seis caractersticas, las s, las
cuales a su vez se dividen en cuales a su vez se dividen en sub sub- -caractersticas (ver figura). caractersticas (ver figura).
Tambin se describen mtricas de calidad del software basadas en Tambin se describen mtricas de calidad del software basadas en
atributos internos y en el comportamiento externo del sistema. atributos internos y en el comportamiento externo del sistema.
En este estndar se establece que cualquier componente de la En este estndar se establece que cualquier componente de la
calidad del software puede ser descrito en trminos de algunos calidad del software puede ser descrito en trminos de algunos
aspectos de una o ms de estas seis caractersticas. aspectos de una o ms de estas seis caractersticas.
n n32 32
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 63
El estndar ISO 9126 (ii) El estndar ISO 9126 (ii)
Funcionalidad
Conveniencia
Exactitud
Interoperabilidad
Seguridad
Conformidad
Fiabilidad
Madurez
Tolerancia a fallos
Recuperabilidad
Conformidad
Calidad de Producto Software
Tiempo de
respuesta
Utilizacin
de recursos
Conformidad
Comprensibilidad
Facilidad de
aprendizaje
Operabilidad
Atractivo
Conformidad
Eficiencia Usabilidad
Analizabilidad
Cambiabilidad
Estabilidad
Facilidad
de prubea
Conformidad
Mantenibilidad
Adaptabilidad
Facilidad de
instalacin
Coexistencia
Recambiabilidad
Conformidad
Transportabilidad
Calidad de un producto software (modelo I SO 9126)
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 64
La Mantenibilidad en ISO 9126 La Mantenibilidad en ISO 9126
La La mantenibilidad mantenibilidad se define como la se define como la capacidad de un producto capacidad de un producto
software para ser modificado software para ser modificado. .
Se divide en cinco Se divide en cinco sub sub- -caractersticas caractersticas: :
n n Analizabilidad Analizabilidad: Capacidad del producto software de diagnosticar sus : Capacidad del producto software de diagnosticar sus
deficiencias o causas de fallos, o de identificar las partes que deficiencias o causas de fallos, o de identificar las partes que deben ser deben ser
modificadas. modificadas.
n n Cambiabilidad Cambiabilidad: Capacidad del producto software de permitir implementar : Capacidad del producto software de permitir implementar
una modificacin especificada previamente. La implementacin inc una modificacin especificada previamente. La implementacin incluye los luye los
cambios en el diseo, el cdigo y la documentacin. Si el softwa cambios en el diseo, el cdigo y la documentacin. Si el software es re es
modificado por el usuario final, entonces, la cambiabilidad pued modificado por el usuario final, entonces, la cambiabilidad puede afectar a la e afectar a la
operabilidad. operabilidad.
n n Estabilidad Estabilidad: Capacidad del producto software de minimizar los efectos : Capacidad del producto software de minimizar los efectos
inesperados de las modificaciones. inesperados de las modificaciones.
n n Facilidad de prueba Facilidad de prueba: Capacidad del producto software de permitir evaluar : Capacidad del producto software de permitir evaluar
las partes modificadas. las partes modificadas.
n n Conformidad Conformidad: Capacidad del producto software de satisfacer los estndares : Capacidad del producto software de satisfacer los estndares
o convenciones relativas con la mantenibilidad. o convenciones relativas con la mantenibilidad.
n n33 33
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 65
Mantenibilidad y Mantenimiento Mantenibilidad y Mantenimiento
Es el atributo de calidad del software que ms directamente infl Es el atributo de calidad del software que ms directamente influye uye
en los costes y necesidades del mantenimiento: en los costes y necesidades del mantenimiento:
n n A A mayor mantenibilidad menores costes de mantenimiento mayor mantenibilidad menores costes de mantenimiento, y , y
viceversa. viceversa.
La mantenibilidad debe establecerse como objetivo en las fases La mantenibilidad debe establecerse como objetivo en las fases
iniciales del ciclo de vida para reducir las posteriores necesid iniciales del ciclo de vida para reducir las posteriores necesidades ades
de mantenimiento. de mantenimiento.
Tambin se debe tener como objetivo durante la fase de Tambin se debe tener como objetivo durante la fase de
mantenimiento para reducir los efectos laterales y otros mantenimiento para reducir los efectos laterales y otros
inconvenientes ocultos. inconvenientes ocultos.
(se trata de conocer la situacin en la que se encuentra el prod (se trata de conocer la situacin en la que se encuentra el producto ucto
software para poder decidir mejor cmo gestionar y realizar cada software para poder decidir mejor cmo gestionar y realizar cada
peticin de mantenimiento y, en general, planificar mejor el pro peticin de mantenimiento y, en general, planificar mejor el proceso ceso
de mantenimiento) de mantenimiento)
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 66
Aspectos que influyen en la Aspectos que influyen en la
Mantenibilidad (i) Mantenibilidad (i)
Existen unos pocos factores que afectan directamente a la Existen unos pocos factores que afectan directamente a la
mantenibilidad, de forma que si alguno de ellos no se satisface mantenibilidad, de forma que si alguno de ellos no se satisface
adecuadamente, sta se resiente. Los tres ms significativos son adecuadamente, sta se resiente. Los tres ms significativos son: :
n n Proceso de desarrollo Proceso de desarrollo: : la mantenibilidad debe formar parte integral del la mantenibilidad debe formar parte integral del
proceso de desarrollo del software. Las tcnicas utilizadas debe proceso de desarrollo del software. Las tcnicas utilizadas deben ser lo menos n ser lo menos
intrusivas intrusivas posible con el software existente. Los problemas que surgen en posible con el software existente. Los problemas que surgen en
muchas organizaciones de mantenimiento son de doble naturaleza: muchas organizaciones de mantenimiento son de doble naturaleza: mejorar la mejorar la
mantenibilidad y convencer a los responsables de que la mayor ga mantenibilidad y convencer a los responsables de que la mayor ganancia se nancia se
obtendr nicamente cuando la mantenibilidad est incorporada obtendr nicamente cuando la mantenibilidad est incorporada
intrnsecamente en los productos software. intrnsecamente en los productos software.
n n Documentacin Documentacin: En mltiples ocasiones, ni la documentacin ni las : En mltiples ocasiones, ni la documentacin ni las
especificaciones de diseo estn disponibles, y por tanto, los c especificaciones de diseo estn disponibles, y por tanto, los costes del MS se ostes del MS se
incrementan debido al tiempo requerido para que un mantenedor en incrementan debido al tiempo requerido para que un mantenedor entienda el tienda el
diseo del software antes de poder ponerse a modificarlo. Las de diseo del software antes de poder ponerse a modificarlo. Las decisiones sobre cisiones sobre
la documentacin que debe desarrollarse son muy importantes cuan la documentacin que debe desarrollarse son muy importantes cuando la do la
responsabilidad del mantenimiento de un sistema se va a transfer responsabilidad del mantenimiento de un sistema se va a transferir a una ir a una
organizacin nueva. organizacin nueva.
n n34 34
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 67
Aspectos que influyen en la Aspectos que influyen en la
Mantenibilidad (ii) Mantenibilidad (ii)
n n Comprensin de Programas Comprensin de Programas: La causa bsica de la mayor parte de : La causa bsica de la mayor parte de
los altos costes del MS es la presencia de obstculos a la compr los altos costes del MS es la presencia de obstculos a la comprensin ensin
humana de los programas y sistemas existentes. Estos obstculos humana de los programas y sistemas existentes. Estos obstculos
surgen de tres fuentes principales: surgen de tres fuentes principales:
n n La informacin disponible es incomprensible, incorrecta o insufi La informacin disponible es incomprensible, incorrecta o insuficiente. ciente.
n n La complejidad del software, de la naturaleza de la aplicacin o La complejidad del software, de la naturaleza de la aplicacin o de ambos. de ambos.
n n La confusin, mala interpretacin o olvidos sobre el programa o La confusin, mala interpretacin o olvidos sobre el programa o sistema. sistema.
La utilizacin de algunas prcticas de desarrollo La utilizacin de algunas prcticas de desarrollo
(tcnicas de programacin estructurada, paquetes (tcnicas de programacin estructurada, paquetes
software estndares y generadores de listados) software estndares y generadores de listados)
suponen la reduccin del esfuerzo de mantenimiento, suponen la reduccin del esfuerzo de mantenimiento,
mientras que otras prcticas (uso de generadores de mientras que otras prcticas (uso de generadores de
cdigo) implican un aumento de la necesidad de cdigo) implican un aumento de la necesidad de
mantenimiento. mantenimiento.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 68
Aspectos que influyen en la Aspectos que influyen en la
Mantenibilidad (iii) Mantenibilidad (iii)
Los factores concretos que influyen en la mantenibilidad son los Los factores concretos que influyen en la mantenibilidad son los
siguientes [ siguientes [Kopetz Kopetz]: ]:
n n Falta de cuidado en las fases de diseo, codificacin o prueba. Falta de cuidado en las fases de diseo, codificacin o prueba.
n n Pobre configuracin del producto software. Pobre configuracin del producto software.
n n Adecuada cualificacin del equipo de desarrolladores del softwar Adecuada cualificacin del equipo de desarrolladores del software. e.
n n Estructura del software fcil de comprender. Estructura del software fcil de comprender.
n n Facilidad de uso del sistema. Facilidad de uso del sistema.
n n Empleo de lenguajes de programacin y sistemas operativos estand Empleo de lenguajes de programacin y sistemas operativos estandarizados. arizados.
n n Estructura estandarizada de la documentacin. Estructura estandarizada de la documentacin.
n n Documentacin disponible de los casos de prueba. Documentacin disponible de los casos de prueba.
n n Incorporacin en el sistema de facilidades de depuracin. Incorporacin en el sistema de facilidades de depuracin.
n n Disponibilidad del equipo (computador y perifricos) adecuado pa Disponibilidad del equipo (computador y perifricos) adecuado para realizar el ra realizar el
mantenimiento. mantenimiento.
n n Disponibilidad de la persona o grupo que desarroll originalment Disponibilidad de la persona o grupo que desarroll originalmente el software. e el software.
n n Planificacin del mantenimiento Planificacin del mantenimiento. .
n n35 35
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 69
Efectos de los cambios sobre la Efectos de los cambios sobre la
Mantenibilidad (i) Mantenibilidad (i)
Los sistemas software pueden llegar a resultar una Los sistemas software pueden llegar a resultar una
sangra econmica por los costes de mantenimiento. sangra econmica por los costes de mantenimiento.
Para evitarlo, los responsables deberan evaluar los Para evitarlo, los responsables deberan evaluar los
efectos de cada cambio, verificar por completo todas efectos de cada cambio, verificar por completo todas
las modificaciones en el software, y tener actualizada la las modificaciones en el software, y tener actualizada la
documentacin. documentacin.
Los ingenieros de software debern Los ingenieros de software debern evaluar los evaluar los
efectos de una modificacin efectos de una modificacin sobre las siguientes sobre las siguientes
caractersticas del software: caractersticas del software:
- - Eficiencia. Eficiencia. - - Consumo de recursos. Consumo de recursos.
- - Cohesin. Cohesin. - - Acoplamiento. Acoplamiento.
- - Complejidad. Complejidad. - - Consistencia. Consistencia.
- - Portabilidad. Portabilidad. - - Fiabilidad. Fiabilidad.
- - Mantenibilidad. Mantenibilidad. - - Seguridad ( Seguridad (safety safety & & security security) )
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 70
Efectos de los cambios sobre la Efectos de los cambios sobre la
Mantenibilidad (ii) Mantenibilidad (ii)
La La complejidad complejidad y la y la mantenibilidad mantenibilidad son las que son las que
tienen una relacin ms directa sobre los costes del tienen una relacin ms directa sobre los costes del
mantenimiento: mantenimiento: un aumento en la complejidad implica una un aumento en la complejidad implica una
mayor dificultad de mantenimiento, es decir, una reduccin de la mayor dificultad de mantenimiento, es decir, una reduccin de la
mantenibilidad. mantenibilidad.
Efectos sobre la Efectos sobre la complejidad complejidad: :
n n Durante las actividades de mantenimiento la complejidad del Durante las actividades de mantenimiento la complejidad del
software tiende a aumentar. Si este fenmeno no se corrige, se software tiende a aumentar. Si este fenmeno no se corrige, se
llegar a una situacin en la que un eventual cambio ser llegar a una situacin en la que un eventual cambio ser
impracticable porque requiere ms esfuerzo que el disponible impracticable porque requiere ms esfuerzo que el disponible
para implementarlo. para implementarlo.
n n La reduccin de la complejidad del software redunda en un La reduccin de la complejidad del software redunda en un
aumento de su fiabilidad y mantenibilidad. aumento de su fiabilidad y mantenibilidad.
n n La complejidad del software puede ser medida con diversas La complejidad del software puede ser medida con diversas
mtricas (p.e. nmero mtricas (p.e. nmero ciclomtico ciclomtico de de McCabe McCabe). ).
n n36 36
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 71
Efectos de los cambios sobre la Efectos de los cambios sobre la
Mantenibilidad (iii) Mantenibilidad (iii)
Efectos sobre la Efectos sobre la mantenibilidad mantenibilidad: : Algunos cambios en Algunos cambios en
el software pueden reducir la mantenibilidad. Los que el software pueden reducir la mantenibilidad. Los que
producen este efecto con ms asiduidad son: producen este efecto con ms asiduidad son:
n n Violar los estndares de codificacin Violar los estndares de codificacin
n n Reducir la cohesin Reducir la cohesin
n n Incrementar el acoplamiento Incrementar el acoplamiento
n n Incrementar la complejidad esencial Incrementar la complejidad esencial
Los Los costes y beneficios costes y beneficios de los cambios de los cambios que hacen que el que hacen que el
software sea ms mantenible deberan ser software sea ms mantenible deberan ser evaluados evaluados antes de antes de
llevar a acabo dichos cambios. Puesto que todo el cdigo llevar a acabo dichos cambios. Puesto que todo el cdigo
modificado debe ser probado, el coste de volver a probar el cdi modificado debe ser probado, el coste de volver a probar el cdigo go
cambiado podra superar la reduccin del esfuerzo requerido en cambiado podra superar la reduccin del esfuerzo requerido en
futuros cambios. futuros cambios.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 72
Medida de la Mantenibilidad (i) Medida de la Mantenibilidad (i)
En orden a determinar mejor los costes del MS, los mantenedores En orden a determinar mejor los costes del MS, los mantenedores
debern debern medir la mantenibilidad medir la mantenibilidad y utilizar dicha medida como y utilizar dicha medida como
un factor en la determinacin de costes: un factor en la determinacin de costes:
n n Las medidas durante el Las medidas durante el desarrollo desarrollo ayudan a determinar la cuanta en ayudan a determinar la cuanta en
que se est incorporando en el software el objetivo de mantenibi que se est incorporando en el software el objetivo de mantenibilidad. lidad.
n n Una vez el software ha sido desarrollado, las medidas pueden gui Una vez el software ha sido desarrollado, las medidas pueden guiar ar
durante el proceso de durante el proceso de mantenimiento mantenimiento, bien para evaluar el impacto , bien para evaluar el impacto
de un cambio, o bien para realizar un anlisis comparativo entre de un cambio, o bien para realizar un anlisis comparativo entre
varias propuestas. varias propuestas.
Cmo medir la mantenibilidad? Cmo medir la mantenibilidad?
La respuesta a esta pregunta se encuentra en la La respuesta a esta pregunta se encuentra en la estrecha relacin estrecha relacin que que
existe existe entre entre los conceptos de los conceptos de calidad calidad del software y de del software y de mantenibilidad mantenibilidad. .
Por esta razn, los estndares ISO e IEEE proponen mtricas de Por esta razn, los estndares ISO e IEEE proponen mtricas de
calidad para medir la mantenibilidad del software. calidad para medir la mantenibilidad del software.
n n37 37
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 73
Medida de la Mantenibilidad (ii) Medida de la Mantenibilidad (ii)
Las Las mtricas de mantenibilidad mtricas de mantenibilidad no pueden medir el coste de no pueden medir el coste de
realizar un cambio particular al sistema software, sino que mide realizar un cambio particular al sistema software, sino que miden n
aspectos de la complejidad y la calidad de los programas ya que aspectos de la complejidad y la calidad de los programas ya que
existe una alta correlacin entre la complejidad y la mantenibil existe una alta correlacin entre la complejidad y la mantenibilidad idad
(a mayor complejidad menor mantenibilidad) y entre la calidad y (a mayor complejidad menor mantenibilidad) y entre la calidad y la la
mantenibilidad (a mayor calidad mayor mantenibilidad). mantenibilidad (a mayor calidad mayor mantenibilidad).
Existen maneras de Existen maneras de medir medir la mantenibilidad para la mantenibilidad para todos los todos los
elementos software elementos software que estn o estarn sometidos a que estn o estarn sometidos a
mantenimiento: cdigo, documentos de usuario, documentos de mantenimiento: cdigo, documentos de usuario, documentos de
anlisis o diseo, etc. anlisis o diseo, etc.
En el En el estndar ISO 9126 estndar ISO 9126 (anexos 2 y 3) se incluye un anlisis de (anexos 2 y 3) se incluye un anlisis de
las las mtricas de calidad mtricas de calidad (y entre ellas, las de mantenibilidad). Se (y entre ellas, las de mantenibilidad). Se
definen mtricas internas, externas y las interrelaciones entre definen mtricas internas, externas y las interrelaciones entre unas unas
y otras. Tambin se expone el problema de la eleccin de mtrica y otras. Tambin se expone el problema de la eleccin de mtricas s
y los criterios de medida, as como los requerimientos que deben y los criterios de medida, as como los requerimientos que deben
cumplir las mediciones utilizadas para comparar. cumplir las mediciones utilizadas para comparar.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 74
Medida de la Mantenibilidad (iii) Medida de la Mantenibilidad (iii)
Existen Existen dos aproximaciones dos aproximaciones diferentes para medir la diferentes para medir la
mantenibilidad, segn se consideren los aspectos externos o mantenibilidad, segn se consideren los aspectos externos o
internos de los atributos considerados. internos de los atributos considerados.
n n La mantenibilidad es claramente un La mantenibilidad es claramente un atributo de producto atributo de producto externo externo
porque no depende nicamente del producto, sino tambin de la porque no depende nicamente del producto, sino tambin de la
persona que realiza el mantenimiento, del soporte documental, de persona que realiza el mantenimiento, del soporte documental, de las las
herramientas disponibles, y de la utilizacin real del software. herramientas disponibles, y de la utilizacin real del software. La La
aproximacin externa ms directa para medir la mantenibilidad aproximacin externa ms directa para medir la mantenibilidad
consiste en consiste en medir el proceso de mantenimiento medir el proceso de mantenimiento; si el proceso es ; si el proceso es
efectivo, entonces se asume que el producto es mantenible. efectivo, entonces se asume que el producto es mantenible.
n n La aproximacin alternativa se utiliza para identificar La aproximacin alternativa se utiliza para identificar atributos atributos
internos internos de producto y determinar cules de ellos son de producto y determinar cules de ellos son predictivos predictivos
de las medidas de proceso. Aunque esta aproximacin es ms prct de las medidas de proceso. Aunque esta aproximacin es ms prctica ica
puesto que las medidas pueden realizarse mucho ms fcilmente, l puesto que las medidas pueden realizarse mucho ms fcilmente, la a
mantenibilidad nunca se puede definir slo en trminos de medida mantenibilidad nunca se puede definir slo en trminos de medidas s
internas. internas.
n n38 38
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 75
Mtricas de Mantenibilidad Mtricas de Mantenibilidad
Ejemplo de Mtrica Externa de Ejemplo de Mtrica Externa de Analizabilidad Analizabilidad: :
n n Tiempo medio en analizar un fallo Tiempo medio en analizar un fallo
X = X = sum(Tout sum(Tout- -Tin Tin) / N ) / N
siendo siendo Tout Tout = momento en el que se encuentran las causas del fallo = momento en el que se encuentran las causas del fallo
(o son reportadas por el usuario) (o son reportadas por el usuario)
Tin Tin = momento en el que se recibe el informe del fallo = momento en el que se recibe el informe del fallo
y N = nmero total de fallos registrados y N = nmero total de fallos registrados
Ejemplo de Mtrica Interna de Ejemplo de Mtrica Interna de Estabilidad Estabilidad: :
n n Frecuencia de fallos debidos a efectos laterales producidos Frecuencia de fallos debidos a efectos laterales producidos
despus de una modificacin despus de una modificacin
X = 1 X = 1 - - A / B A / B
siendo A= nmero de fallos debidos a efectos laterales detectado siendo A= nmero de fallos debidos a efectos laterales detectados y s y
corregidos corregidos
y B= nmero total de fallos corregidos y B= nmero total de fallos corregidos
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 76
Estndares tiles para el MS Estndares tiles para el MS
Para los procesos del ciclo de vida del software: Para los procesos del ciclo de vida del software:
n n ISO 12207 ISO 12207
n n IEEE 1074 IEEE 1074
Para la calidad del software y sus mtricas: Para la calidad del software y sus mtricas:
n n ISO 9126 ISO 9126
n n IEEE 1061 IEEE 1061
Para el mantenimiento del software: Para el mantenimiento del software:
n n IEEE 1219 IEEE 1219
n n ISO 14764 ISO 14764
n n39 39
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 77
El estndar ISO 12207 (i) El estndar ISO 12207 (i)
Resulta fundamental Resulta fundamental entender el mantenimiento entender el mantenimiento como uno de los como uno de los
procesos principales procesos principales dentro del contexto del ciclo de vida del dentro del contexto del ciclo de vida del
software software, para lo que conviene examinar los principales estndares , para lo que conviene examinar los principales estndares
internacionales relativos a este tema, y en particular, la norma internacionales relativos a este tema, y en particular, la norma ISO ISO
12207. 12207.
Este estndar " Este estndar "establece un establece un marco de referencia marco de referencia comn para los comn para los
procesos del ciclo de vida software procesos del ciclo de vida software, con una terminologa bien , con una terminologa bien
definida, que puede ser referenciada por la industria software definida, que puede ser referenciada por la industria software
En este marco se definen los En este marco se definen los procesos procesos, , actividades actividades (que forman (que forman
cada proceso) y cada proceso) y tareas tareas (que constituyen cada actividad) presentes (que constituyen cada actividad) presentes
en la adquisicin, suministro, desarrollo, operacin y en la adquisicin, suministro, desarrollo, operacin y
mantenimiento del software mantenimiento del software
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 78
El estndar ISO 12207 (ii) El estndar ISO 12207 (ii)
Las actividades que pueden ser realizadas durante el ciclo de vi Las actividades que pueden ser realizadas durante el ciclo de vida da
del software se agrupan en cinco procesos principales, ocho del software se agrupan en cinco procesos principales, ocho
procesos de soporte, y cuatro procesos organizativos, as como e procesos de soporte, y cuatro procesos organizativos, as como el l
proceso de adaptacin. proceso de adaptacin.
PROCESOS DE SOPORTE PROCESOS PRINCIPALES
ADQUISICIN
SUMINISTRO
DESARROLLO
EXPLOTACIN
MANTENIMIENTO
DOCUMENTACIN
GESTIN DE CONFIGURACIN
RESOLUCIN DE PROBLEMAS
PROCESOS DE LA ORGANIZACIN
GESTIN INFRAESTRUCTURA
MEJORA FORMACIN
ASEGURAMIENTO DE CALIDAD
VERIFICACIN
VALIDACIN
AUDITORA
REVISIN CONJUNTA
Proceso de adaptacin
n n40 40
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 79
Introduccin al estndar ISO 14764 Introduccin al estndar ISO 14764
Describe en detalle la Describe en detalle la gestin del PMS gestin del PMS descrito en ISO 12207. descrito en ISO 12207.
Establece definiciones para los distintos Establece definiciones para los distintos tipos tipos de mantenimiento. de mantenimiento.
Pretende ser una Pretende ser una gua para la planificacin, ejecucin, gua para la planificacin, ejecucin,
control, revisin, evaluacin y cierre control, revisin, evaluacin y cierre del PMS. del PMS.
Provee un Provee un marco formal marco formal para que para que planes planes genricos y especficos genricos y especficos
de mantenimiento, puedan ser ejecutados, evaluados y adaptados. de mantenimiento, puedan ser ejecutados, evaluados y adaptados.
Provee el entorno conceptual, terminologa y procesos para la Provee el entorno conceptual, terminologa y procesos para la
aplicacin consistente de la tecnologa aplicacin consistente de la tecnologa (herramientas, (herramientas,
tcnicas y mtodos) al MS. tcnicas y mtodos) al MS.
Define las Define las actividades y tareas actividades y tareas del MS, y provee requerimientos del MS, y provee requerimientos
para la planificacin del mantenimiento. para la planificacin del mantenimiento.
Es aplicable a situaciones de mantenimiento internas de una Es aplicable a situaciones de mantenimiento internas de una
organizacin o a situaciones con dos organizaciones involucradas organizacin o a situaciones con dos organizaciones involucradas. .
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 80
Trminos y definiciones en ISO 14764 (i) Trminos y definiciones en ISO 14764 (i)
Baseline Baseline: Una versin aprobada formalmente de un elemento de : Una versin aprobada formalmente de un elemento de
configuracin, independientemente del medio, diseado formalment configuracin, independientemente del medio, diseado formalmente y e y
fijado un momento especfico del ciclo de vida en de ese element fijado un momento especfico del ciclo de vida en de ese elemento de o de
configuracin ( configuracin (release release). ).
Plan de Mantenibilidad Plan de Mantenibilidad: Un documento que establece las prcticas, : Un documento que establece las prcticas,
recursos y secuencias de actividades relevantes para la mantenib recursos y secuencias de actividades relevantes para la mantenibilidad del ilidad del
software. software.
Mantenimiento de Mejora Mantenimiento de Mejora: Cambio que no es debido a una correccin : Cambio que no es debido a una correccin
( (mantenimientos adaptativo y perfectivo mantenimientos adaptativo y perfectivo). ).
Plan de Mantenimiento Plan de Mantenimiento: Un documento que establece las prcticas, : Un documento que establece las prcticas,
recursos y secuencias de actividades relevantes para mantener un recursos y secuencias de actividades relevantes para mantener un
producto software. producto software.
Proceso de Mantenimiento Proceso de Mantenimiento: actividades y tareas que debe llevar a : actividades y tareas que debe llevar a
cabo el mantenedor. cabo el mantenedor.
Programa de Mantenimiento Programa de Mantenimiento: estructura organizativa, : estructura organizativa,
responsabilidades, procedimientos, procesos y recursos usados pa responsabilidades, procedimientos, procesos y recursos usados para ra
implementar el plan de mantenimiento ( implementar el plan de mantenimiento (idem idem infraestructura). infraestructura).
n n41 41
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 81
Trminos y definiciones en ISO 14764 (ii) Trminos y definiciones en ISO 14764 (ii)
Peticin de Modificacin Peticin de Modificacin (PM) (PM): propuesta o solicitud de cambios en un : propuesta o solicitud de cambios en un
producto software que est siendo mantenido ( producto software que est siendo mantenido (Modification Modification Request Request, MR , MR). ).
Informe de Problema Informe de Problema: documento identificando y describiendo : documento identificando y describiendo
problemas detectados en un producto software ( problemas detectados en un producto software (P Problem roblem Report Report, PR , PR). ).
Entorno de Ingeniera del Software Entorno de Ingeniera del Software: conjunto de herramientas, : conjunto de herramientas,
dispositivos dispositivos firmware firmware y hardware necesarios para llevar a cabo el trabajo y hardware necesarios para llevar a cabo el trabajo
de ingeniera del software ( de ingeniera del software (Software Software Engineering Engineering Environment Environment, SEE , SEE). ).
Entorno de Pruebas del Software Entorno de Pruebas del Software: instalaciones, hardware, software, : instalaciones, hardware, software,
firmware firmware, procedimientos y documentacin necesarios para la realizacin , procedimientos y documentacin necesarios para la realizacin
de pruebas de cualificacin y de otro tipo del software ( de pruebas de cualificacin y de otro tipo del software (Software Test Software Test
Environment Environment, STE , STE). ).
Transicin del Software Transicin del Software: secuencia controlada y organizada de : secuencia controlada y organizada de
acciones para que un producto software pase desde la organizaci acciones para que un producto software pase desde la organizacin que n que
inicialmente lo ha desarrollado a la organizacin que realizar inicialmente lo ha desarrollado a la organizacin que realizar el el
mantenimiento. mantenimiento.
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 82
Procesos de Soporte en ISO 14764 Procesos de Soporte en ISO 14764
Resolucin de Problemas Resolucin de Problemas: durante la realizacin del PMS, : durante la realizacin del PMS,
cualquier problema detectado es registrado y supervisado cualquier problema detectado es registrado y supervisado
mediante este proceso. mediante este proceso.
n n Cuando los requerimientos de cambio (peticiones de modificacin Cuando los requerimientos de cambio (peticiones de modificacin o o
informes de problemas) son recibidos, este proceso analiza y res informes de problemas) son recibidos, este proceso analiza y resuelve uelve
los problemas. los problemas.
n n Tambin determina si es un problema o una mejora. Tambin determina si es un problema o una mejora.
Gestin de la Configuracin Gestin de la Configuracin: registra y reporta el estado de las : registra y reporta el estado de las
peticiones de modificacin o informes de problemas ( peticiones de modificacin o informes de problemas (MRs MRs/ /PRs PRs). ).
n n Se somete a aprobacin de la peticin. Se somete a aprobacin de la peticin.
n n Las Las MRs MRs/ /PRs PRs aprobadas se implementan llamando al proceso de aprobadas se implementan llamando al proceso de
mantenimiento. mantenimiento.
n n42 42
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 83
Tipos de Mantenimiento en ISO 14764 (i) Tipos de Mantenimiento en ISO 14764 (i)
Clasificacin de las peticiones de modificacin y tipos de
mantenimiento
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 84
Tipos de Mantenimiento en ISO 14764 (ii) Tipos de Mantenimiento en ISO 14764 (ii)
Adaptativo Adaptativo: Modificacin de un producto software, despus de su : Modificacin de un producto software, despus de su
entrega, para conseguir que sea utilizable en un nuevo entorno. entrega, para conseguir que sea utilizable en un nuevo entorno.
Correctivo Correctivo: Modificacin reactiva de un producto software, : Modificacin reactiva de un producto software,
despus de su entrega, para corregir defectos detectados. despus de su entrega, para corregir defectos detectados.
Errores actuales detectados. Errores actuales detectados.
Perfectivo Perfectivo: Modificacin de un producto software, despus de su : Modificacin de un producto software, despus de su
entrega, para mejorar su rendimiento o su mantenibilidad. entrega, para mejorar su rendimiento o su mantenibilidad.
Preventivo Preventivo: Modificacin de un producto software, despus de su : Modificacin de un producto software, despus de su
entrega, para detectar y corregir defectos latentes antes de que entrega, para detectar y corregir defectos latentes antes de que
produzcan fallos efectivos. produzcan fallos efectivos.
Errores potenciales. Errores potenciales.
n n43 43
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 85
Planificacin del Mantenimiento Planificacin del Mantenimiento
Preparar los recursos humanos y materiales Preparar los recursos humanos y materiales
necesarios para proporcionar mantenimiento de uno o necesarios para proporcionar mantenimiento de uno o
varios productos software. varios productos software.
Los Los anlisis de mantenibilidad anlisis de mantenibilidad sirven de entrada sirven de entrada
( (input input) para el desarrollo de la estrategia de ) para el desarrollo de la estrategia de
mantenimiento. mantenimiento.
La planificacin de mantenimiento del software produce La planificacin de mantenimiento del software produce
los siguientes artefactos: los siguientes artefactos:
n n Especificacin del Mantenimiento Especificacin del Mantenimiento, ,
n n Plan de Mantenimiento Plan de Mantenimiento, y , y
n n Anlisis de Recursos Anlisis de Recursos. .
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 86
Estructura del Plan de Mantenimiento (i) Estructura del Plan de Mantenimiento (i)
a) a) Introduccin Introduccin
1 1- - describir el sistema que ser soportado describir el sistema que ser soportado
2 2- - identificar el estado inicial del software identificar el estado inicial del software
3 3- - describir porqu es necesario el mantenimiento describir porqu es necesario el mantenimiento
4 4- - identificar el mantenedor (la organizacin) identificar el mantenedor (la organizacin)
5 5- - describir los protocolos de acuerdo entre el cliente y el sumin describir los protocolos de acuerdo entre el cliente y el suministrador istrador
b) Especificacin del Mantenimiento b) Especificacin del Mantenimiento
1 1- - describir el concepto describir el concepto
2 2- - describir el nivel de soporte describir el nivel de soporte
3 3- - identificar el periodo de tiempo soportado identificar el periodo de tiempo soportado
4 4- - Personalizar el proceso Personalizar el proceso
c) Organizacin y actividades de mantenimiento c) Organizacin y actividades de mantenimiento
1 1- - Papeles y responsabilidades del mantenedor antes de la entrega Papeles y responsabilidades del mantenedor antes de la entrega
i) Implementacin del Proceso i) Implementacin del Proceso
ii) establecer infraestructura ii) establecer infraestructura
n n44 44
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 87
Estructura del Plan de Mantenimiento (ii) Estructura del Plan de Mantenimiento (ii)
iii) Establecer Proceso de Formacin iii) Establecer Proceso de Formacin
iv) Establecer el Proceso de Mantenimiento iv) Establecer el Proceso de Mantenimiento
2 2- - Papeles y responsabilidades del mantenedor despus de la entreg Papeles y responsabilidades del mantenedor despus de la entrega a
i) Implementacin del Proceso i) Implementacin del Proceso
ii) Anlisis del Problema y la Modificacin ii) Anlisis del Problema y la Modificacin
iii) Realizacin de la Modificacin iii) Realizacin de la Modificacin
iv) revisin/Aceptacin iv) revisin/Aceptacin delMantenimiento delMantenimiento
v) Migracin v) Migracin
vi) Retirada vi) Retirada
vii) Resolucin de problemas (incluida ayuda en lnea) vii) Resolucin de problemas (incluida ayuda en lnea)
viii) formacin del personal (mantenedores y usuarios) viii) formacin del personal (mantenedores y usuarios)
ix) Mejora del Proceso ix) Mejora del Proceso
3 3- - Papel del usuario Papel del usuario
i) Pruebas de Aceptacin i) Pruebas de Aceptacin
ii) Interfaz con otras organizaciones ii) Interfaz con otras organizaciones
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 88
Estructura del Plan de Mantenimiento (iii) Estructura del Plan de Mantenimiento (iii)
d) Recursos d) Recursos
1 1- - Personal Personal
i) Tamao del equipo del proyecto i) Tamao del equipo del proyecto
2 2- - Software Software
i) identificar el software necesario i) identificar el software necesario
3 3- - Hardware Hardware
i) identificar el hardware necesario i) identificar el hardware necesario
4 4- - Instalaciones Instalaciones
i) identificar los requerimientos i) identificar los requerimientos
5 5- - Documentacin Documentacin
i) Plan de Calidad del Software i) Plan de Calidad del Software
ii) Plan de Gestin del Proyecto ii) Plan de Gestin del Proyecto
iii) Plan de Gestin de la Configuracin iii) Plan de Gestin de la Configuracin
iv) Documentos del desarrollo iv) Documentos del desarrollo
v) Manuales de Mantenimiento v) Manuales de Mantenimiento
vi) Plan de Verificacin vi) Plan de Verificacin
n n45 45
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 89
Estructura del Plan de Mantenimiento (iv) Estructura del Plan de Mantenimiento (iv)
vii) Plan de Validacin vii) Plan de Validacin
viii) Plan de Pruebas, procedimientos e informes de pruebas viii) Plan de Pruebas, procedimientos e informes de pruebas
ix) Plan de Formacin ix) Plan de Formacin
x) Manuales de Usuario x) Manuales de Usuario
6 6- - Datos Datos
7 7- - Otros requerimientos de recursos (si los hubiera) Otros requerimientos de recursos (si los hubiera)
e) Proceso (cmo ser realizado el trabajo) e) Proceso (cmo ser realizado el trabajo)
1 1- - Proceso del mantenedor (resumen) Proceso del mantenedor (resumen)
2 2- - Proceso personalizado Proceso personalizado
f) Formacin f) Formacin
1 1- - Identificar necesidades de formacin de mantenedores y usuarios Identificar necesidades de formacin de mantenedores y usuarios
g) Registros e informes de mantenimiento g) Registros e informes de mantenimiento
1 1- - Listas de peticiones de ayuda/modificacin o informes de proble Listas de peticiones de ayuda/modificacin o informes de problemas mas
2 2- - Estado de las peticiones, segn categoras Estado de las peticiones, segn categoras
3 3- - Prioridades de las peticiones Prioridades de las peticiones
4 4- - Datos de mtricas recogidos durante las actividades de mantenim Datos de mtricas recogidos durante las actividades de mantenimiento iento
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 90
El Proceso de Mantenimiento en ISO El Proceso de Mantenimiento en ISO
14764 14764
El PMS incluye las El PMS incluye las actividades y tareas necesarias actividades y tareas necesarias para para
modificar modificar un producto software existente un producto software existente preservando su preservando su
integridad integridad. .
Estas actividades y tareas son Estas actividades y tareas son responsabilidad del responsabilidad del
mantenedor mantenedor. .
El PMS debe ser activado cuando existe un requerimiento para El PMS debe ser activado cuando existe un requerimiento para
mantener un producto software. En cuanto se activa el PMS, mantener un producto software. En cuanto se activa el PMS,
deben desarrollarse planes y procedimientos de mantenimiento y deben desarrollarse planes y procedimientos de mantenimiento y
deben estar disponibles los recursos necesarios. deben estar disponibles los recursos necesarios.
El proceso concluye cuando un producto software es retirado El proceso concluye cuando un producto software es retirado
completamente. completamente.
Las actividades que forman el PMS consumen o transforman las Las actividades que forman el PMS consumen o transforman las
entradas ( entradas (inputs inputs) para producir las salidas ( ) para producir las salidas (outputs outputs). ).
Las salidas son los datos u objetos generados por las actividade Las salidas son los datos u objetos generados por las actividades s
de mantenimiento. de mantenimiento.
n n46 46
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 91
Actividades del Proceso de Mantenimiento Actividades del Proceso de Mantenimiento
(i) (i)
1.
Implementacin del
Proceso
2.
Anlisis del
Problema y la
Modificacin
4.
Revisin/
Aceptacin del
Mantenimiento
3.
Realizacin de la
Modificacin
5.
Migracin
6.
Retirada
Actividades del Proceso de Mantenimiento del Software
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 92
Actividades del Proceso de Mantenimiento Actividades del Proceso de Mantenimiento
(ii) (ii)
Durante la Durante la Implementacin del Proceso Implementacin del Proceso, el mantenedor: , el mantenedor:
n n Desarrolla el plan y los procedimientos de mantenimiento; Desarrolla el plan y los procedimientos de mantenimiento;
n n Establece procedimientos para recibir, registrar y seguir la pis Establece procedimientos para recibir, registrar y seguir la pista a los ta a los
informes de problemas (PR) y peticiones de modificacin (MR) de informes de problemas (PR) y peticiones de modificacin (MR) de los los
usuarios; y usuarios; y
n n Implementa o define los interfaces organizacionales con el proce Implementa o define los interfaces organizacionales con el proceso de so de
gestin de la configuracin (CM). gestin de la configuracin (CM).
Durante la etapa de Durante la etapa de Anlisis del Problema y la Modificacin Anlisis del Problema y la Modificacin, ,
el mantenedor: el mantenedor:
n n Analiza el informe del problema o requerimiento de modificacin Analiza el informe del problema o requerimiento de modificacin para para
determinar su impacto en la organizacin, en el sistema existent determinar su impacto en la organizacin, en el sistema existente y en e y en
los interfaces; los interfaces;
n n Replica o verifica el problema; Replica o verifica el problema;
n n Define varias opciones para implementar la modificacin; Define varias opciones para implementar la modificacin;
n n Documenta el informe del problema o requerimiento de modificaci Documenta el informe del problema o requerimiento de modificacin, n,
los resultados y opciones de implementacin; y los resultados y opciones de implementacin; y
n n Obtiene la aprobacin para la opcin de modificacin seleccionad Obtiene la aprobacin para la opcin de modificacin seleccionada. a.
n n47 47
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 93
Actividades del Proceso de Mantenimiento Actividades del Proceso de Mantenimiento
(iii) (iii)
Durante la etapa de Durante la etapa de Realizacin de la Modificacin Realizacin de la Modificacin, el , el
mantenedor: mantenedor:
n n Realiza un anlisis para determinar los "elementos software" que Realiza un anlisis para determinar los "elementos software" que
deben ser modificados; e deben ser modificados; e
n n Invoca al proceso de desarrollo del software para realizar la Invoca al proceso de desarrollo del software para realizar la
modificacin (incluyendo las pruebas). modificacin (incluyendo las pruebas).
Durante la etapa de Durante la etapa de Revisin/Aceptacin del Mantenimiento Revisin/Aceptacin del Mantenimiento, ,
el mantenedor: el mantenedor:
n n Tiene entrevistas con la autoridad (cliente externo o interno) Tiene entrevistas con la autoridad (cliente externo o interno)
correspondiente para determinar la correcta integridad del siste correspondiente para determinar la correcta integridad del sistema ma
modificado; y modificado; y
n n Obtiene la aprobacin de la modificacin mediante los mecanismos Obtiene la aprobacin de la modificacin mediante los mecanismos
determinados previamente (en un contrato o similar). determinados previamente (en un contrato o similar).
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 94
Actividades del Proceso de Mantenimiento Actividades del Proceso de Mantenimiento
(iv) (iv)
La etapa de La etapa de Migracin Migracin no es obligatoria, slo existe cuando un no es obligatoria, slo existe cuando un
producto software es modificado para funcionar en un nuevo producto software es modificado para funcionar en un nuevo
entorno operativo. En ese caso, el mantenedor: entorno operativo. En ese caso, el mantenedor:
n n Disea un plan de migracin; Disea un plan de migracin;
n n Notifica a los usuarios el inicio y conclusin de la migracin; Notifica a los usuarios el inicio y conclusin de la migracin;
n n Forma a los usuarios en el nuevo entorno; Forma a los usuarios en el nuevo entorno;
n n Evala el impacto del nuevo entorno; y Evala el impacto del nuevo entorno; y
n n Archiva el producto software antiguo. Archiva el producto software antiguo.
La etapa de La etapa de Retirada Retirada tampoco es obligatoria ya que slo existe tampoco es obligatoria ya que slo existe
cuando un producto software ha concluido su vida til y es cuando un producto software ha concluido su vida til y es
sustituido por otro nuevo. En ese caso, el mantenedor realiza sustituido por otro nuevo. En ese caso, el mantenedor realiza
tareas similares a las referidas para la migracin. tareas similares a las referidas para la migracin.
n n48 48
UCLM-Dep. Informtica. Mantenimiento Avanzado de S.I. 1. 95
Actividades del Proceso de Mantenimiento Actividades del Proceso de Mantenimiento
(v) (v)
Para cada una de las Para cada una de las tareas de mantenimiento tareas de mantenimiento
indicadas, el estndar ISO 14764 incluye cinco indicadas, el estndar ISO 14764 incluye cinco
apartados: apartados:
n n Las Las entradas entradas: documentos de : documentos de input input necesarios para realizar la necesarios para realizar la
tarea. tarea.
n n Los Los pasos detallados pasos detallados que se deben seguir. que se deben seguir.
n n Los Los controles controles (guas para asegurar que se obtendrn salidas (guas para asegurar que se obtendrn salidas
correctas). correctas).
n n Los Los procesos de soporte procesos de soporte que ayudan a realizar la tarea. que ayudan a realizar la tarea.
n n Las Las salidas salidas (documentos u objetos generados durante la (documentos u objetos generados durante la
tarea). tarea).

Вам также может понравиться