Bienvenida
Después de establecer los fundamentos del aseguramiento de la calidad en la unidad 1, y de someter al sistema a un proceso de pruebas para lograr un grado de aceptación por parte del cliente en la unidad 2, donde mediante el diseño de un plan de pruebas se realizó el análisis de los requerimientos del software, éste pasa a una etapa de implementación; es decir, que el sistema de software se libera.
El sistema, puesto ya en producción, implica su evolución. Lo que es funcional ahora, mañana ya no lo será, porque surgen nuevos requerimientos o son necesarios cambios estructurales en el sistema para adaptarse rápidamente a nuevas necesidades, de tal forma que se requieren acciones.
No es menos complejo que desarrollar un sistema de software. Se trata ni más ni menos que del mantenimiento, donde antes de la liberación del sistema se establecen las fechas del mantenimiento periódico, para conservar al sistema funcional. Durante la vida en producción es posible que broten errores ocultos que hay que arreglar, o nuevos requerimientos en el proceso de negocio que necesiten cambios en el sistema y que deben implementarse si no se quiere perder ventaja competitiva.
La fase del mantenimiento se ubica como la última dentro del proceso de desarrollo de software y, generalmente, no es un proceso económico; por lo que, para comprender su importancia y peso en el desarrollo de la presente unidad, se abordarán los siguientes temas:
El 3.1. Mantenimiento del software es una introducción a la fase del mantenimiento, se identifica el concepto, los tipos de mantenimiento según la norma y los pronósticos del mismo, sienta las bases necesarias para la comprensión del siguiente, el 3.2. Procesos de evolución del software, donde se expone el proceso de evolución, el papel de la reingeniería como herramienta para su evolución lógica y el mantenimiento de un software en operación. Para darle sentido a los temas anteriores, es necesaria una adecuada gestión, que es el último tema de la Unidad 3.3. Gestión del mantenimiento, que engloba en una metodología los pasos necesarios para asegurar el mantenimiento en tiempo, sin abusar del presupuesto, y con el objetivo de conservar la funcionalidad del software.

Fuente de consulta: https://www.freepik.com/free-vector/programm-development-flat-illustration_3976581.htm#position=22
Da clic en Competencias para continuar el estudio de la unidad 3.
Competencia específica
Diseñar el proyecto de mantenimiento de un producto software para asegurar el funcionamiento, de acuerdo con los estándares de calidad, mediante un estudio de viabilidad, riesgos y costos.
Logros
- Identificar los tipos de mantenimiento de sistemas de software.
- Relacionar el proceso de evolución del software con sus requerimientos de mantenimiento.
- Analizar la viabilidad y los riesgos de implementar procesos de mantenimiento de software.
- Seleccionar el tipo de mantenimiento para un producto de software.
Da clic en Contenido para continuar el estudio de la unidad 3.
Contenido
Material de estudio
Da clic en el ícono, para descargar el contenido de la unidad 3.
Material de apoyo
Da clic en el ícono, para descargar el material de apoyo.
Da clic en Cierre para continuar el estudio de la unidad 3.
Cierre
Durante la presente unidad se han abordado las nociones básicas del mantenimiento, identificando los tipos y realizando pronósticos de los próximos mantenimientos del software. Es importante reconocer la evolución del software para aplicar la técnica de mantenimiento de reingeniería de sistemas o el proceso de mantenimiento a un sistema existente, concordando que todas las actividades inherentes deben estar englobadas en una gestión como tal, para determinar los costos a través de un estudio de viabilidad y análisis de riesgos que determine si el proyecto es viable o no. Si es viable se seguirá el proceso de la metodología de desarrollo de software para la modificación solicitada y si no tal vez ya se ha llegado al fin de la vida útil del sistema.
Grandes empresas dedicadas al desarrollo de software tienen clara la importancia del seguimiento de las normas de calidad, para asegurar la misma en los productos desarrollados. Las pruebas no son un tema a tomar a la ligera, ya que, si se aplican en los momentos correspondientes, se garantiza un producto con un porcentaje mínimo de errores que impacten en la funcionalidad del sistema de software. El mantenimiento fue considerado por mucho tiempo como un proceso necesario, pero no con la importancia que cobra hoy en día, donde una buena planeación garantiza una buena evolución del sistema de software, conservándolo funcional por mucho más tiempo.
Sin embargo, hay muchas otras que por falta de especialistas ocupan a los programadores para las diferentes actividades antes descritas, programación, pruebas y mantenimiento, y eso resulta en un trabajo a medias, clientes inconformes, sistemas inestables.
Es un reto el que se tiene como profesionista, que va desde especializarse hasta hacer una carrera profesional en la empresa. Por lo anterior, esta materia ha presentado un panorama de dichos tópicos, que tienen un amplio horizonte de desarrollo.
Es cierto que muchos tienen la experiencia, pero es necesario certificarla para asegurar trabajos de alta calidad y de acuerdo con las exigencias actuales.
Lo anterior genera las siguientes interrogantes:
¿Es necesario certificarse? ¿Valdrá la pena certificarse? ¿Qué empresas tienen la capacidad de certificar? ¿La certificación efectivamente garantizará un trabajo de calidad?
Las respuestas las obtendrás en el desarrollo de tu vida profesional.
En México, hay mucho camino por recorrer aún, tanto en investigación como en la profesionalización; ya sea que te inclines por una opción o la otra, es importante desempeñar siempre el mejor papel.

Fuente de consulta: https://n9.cl/r7mjq
Da clic en Fuentes de consulta para concluir el estudio de la unidad 3.
Fuentes de consulta
Básica
- Abernethy, R. (2006). The New Weibull Handbook, 5a. ed. Florida, EE.UU: Robert B. Abernethy.
- Abran, C. y Moore, J. (2004). Guide to the Software Engineering Body of Knowledge. [En línea]: http://sceweb.sce.uhcl.edu/helm/SWEBOK_IEEE/SWEBOK_Guide_2004.pdf
- Alain, A., Alain, A. (2008). Software Maintenance Management: Evaluation and Continuous Improvement. New Jersey: John Wiley & Sons.
- Albrecht, A. (1979). Measuring Application Development Productivity. En Proceedings of the Joint SHARE, GUIDE, and IBM Application Development Symposium. Monterrey, California. [En línea]: https://www.scirp.org/(S(lz5mqp453edsnp55rrgjct55))/reference/ReferencesPapers.aspx?ReferenceID=2012816
- Baca, G. (2010). Evaluación de proyectos, 6a. ed. México: McGraw-Hill.
- Bennett, K.,Rajlich, V.(2000). Software Maintenance and Evolution: A Roadmap. Future of Sofware Engineering Limerick Ireland Copyright ACM 2000.
- Boehm, B. (2000). Software Cost Estimation with COCOCOMO II.New Jersey:. Prentice Hall.
- Bourque, P. y Fairley, R. (2014). Guide to the Software Engineering Body of Knowledge Version 3.0. Disponible en https://cs.fit.edu/~kgallagher/Schtick/Serious/SWEBOKv3.pdf
- Crespo, A. (2013). The Maintenance Management Framework. (Chinese Edition). Beigjing, China. National Defense Industry Press. ISBN 978-7118083972
- Chiavenato, I. (2001). Administración. Proceso Administrativo, 3a. ed. Bogotá, Colombia: McGraw- Hill.
- Date, C. (2001). Introducción a los sistemas de bases de datos. México: Pearson Prentice Hall.
- FHWA CA División. (2009) Guidebook for ITS v3.0. EU. Disponible en https://www.fhwa.dot.gov/cadiv/segb/files/segbversion3.pdf
- Foster, J. (1993). Thesis Cost Factors in Software Maintenance. Disponible en https://core.ac.uk/download/pdf/108739.pdf
- Gallego, J C. (2010). Mantenimiento de sistemas microinformáticos. Madrid: Editex.
- García Martín, D. (2010). Ingeniería inversa: modifica un programa. [En línea]: https://www.redeszone.net/2010/11/22/ingenieria-inversa-modifica-un-programa/
- Gómez de León, F. C., (1998). Tecnología del mantenimiento industrial. Murcia: Universidad de Murcia.
- Gómez, J.(2014). Guía práctica de estimación y medición de proyectos software: ¿por qué?, ¿para qué? y ¿cómo? .Madrid, España: Edición Kindle.
- Henry, S. y Wakem, S. (1988). Predicting Maintainability with Software Quality Metrics. Recuperado de: http://eprints.cs.vt.edu/archive/00000131/
- Institute of Electrical and Electronics Engineers, IEEE. (2017). IEEE/ISO/IEC 12207-2017 International Standard - Systems and software engineering -- Software life cycle processes [En línea]. URL: https://standards.ieee.org/ieee/12207/5672/
- IEEE Standard. (2014). 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology. Disponible en https://n9.cl/3q2u3
- ISO/IEC 14764 (2006). Standard for Software Engineering-Software Life CycleProcesses-Maintenance. Disponible en https://standards.ieee.org/ieee/14764/7701/
- ISO (2001). ISO/IEC TR 9126-1. Software engineering: Product quality. Part 1: Quality model. Suiza: ISO.
- Kuna, H. (2008). Plan de Riesgos para la implementación, desarrollo y mantenimiento de componentes de Web 2.0 en Bibliotecas, caso de estudio en una biblioteca especializada. Disponible en http://sedici.unlp.edu.ar/handle/10915/48365
- Krajewski, L. y Ritzman, L. (2000). Administración de operaciones estratégicas y análisis, 5a. ed. México: Pearson Educación.
- Lakey, P. et ál. (2014). Software Reliability Assurance Handbook. Disponible en https://www.cs.colostate.edu/~cs530/rh/
- Lehman, M. y Belady, L. (1985). Program evolution: process software change. Vol.27 of A.P.I.C. Studies in data processing. Texas, USA. Editorial Academic Press. ISBN 0124424406, 9780124424401
- Lientz, B.P. y Swanson, E. (1978). Characteristics of Application Software Maintenance. Volume 21 No. 6. New York: Magazine Communications of the ACM. p..466-471. [En línea]: https://dl.acm.org/citation.cfm?id=359522
- Llorens, J. (2005) Gerencia de proyectos de tecnología de información. Caracas, Venezuela Colección Minerva. Editorial Los libros El Nacional.
- Morales, L. (2008). Análisis por árboles de decisión para elección de un curso de acción empresarial sobre desarrollo interno, contratación o COTS. Disponible en http://www.ingenieriasimple.com/problemas/EjemploArbolesDecision.pdf
- Newport, J.R. (1994). Avionic Systems Design. Florida, EE.UU: Press Inc.
- Pressman, R. S. (2010). Software Engineering: a Practitioner's Approach. Nueva York: McGraw-Hill Higher Education.
- RAE Real Academia Española (2014a). Pronóstico. [En línea] http://lema.rae.es/drae/?val=Pron%C3%B3stico
- RAE Real Academia Española (2014b). Riesgo. [En línea]: https://www.rae.es/?val=riesgo
- RAE Real Academia Española (2014c). Viabilidad. [En línea]: https://www.rae.es/?val=viabilidad
- Sommerville, I. (2011). Ingeniería del software. 9a.ed. Madrid: Pearson Educación.
- Stark, G. (1996). Measurements for Managing Software Maintenance. Disponible en https://www.researchgate.net/publication/221307869_Measurements_for_managing_software_maintenance.
- (S.A) (2008). El verdadero costo del mantenimiento del software. [Mensaje de un blog]. Disponible en https://webcool.wordpress.com/2008/02/22/el-verdadero-costo-del-mantenimiento-del-software/
- UDELAR, Universidad de la República de Uruguay. (2003). Casos de estudio.
Fuentes de imagen
- PAE, Portal Administración Electrónica. (2013).Métrica V3. Estudio de Viabilidad del Sistema (Proceso EVS). Disponible en https://administracionelectronica.gob.es/pae_Home/pae_Documentacion/pae_Metodolog/pae_Metrica_v3.html
- Bassi, R. (2003). Apunte de clases: estimación de costos de proyectos informáticos y TCO (Total Cost of Ownership).
Muy bien, has concluido el estudio de la unidad 3, ahora realiza las Actividades de aprendizaje.