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).