Este documento trata sobre el mantenimiento de sistemas de software. Explica los procesos de evolución del software, las leyes de Lehman y Belady, las etapas de madurez del software, los tipos de cambios en el mantenimiento como cambios computacionales, de interfaz, de rendimiento y por mejora. También habla sobre la reingeniería de sistemas y concluye resaltando la importancia del mantenimiento y la necesidad de actualizar el software constantemente.
1. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Ingeniería en Desarrollo de Software.
Semestre 8
Pruebas y mantenimiento de sistemas de software.
Unidad 3.
Mantenimiento de Sistemas de software.
Actividad 2
Procesos De Evolución Del Software.
Elaboro: Héctor Benjamín Herrera Martínez.
Matricula: AL10528272
Facilitador: Ricardo Rodríguez Nieves.
2. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Leyes de Lehman y Belady.
En un articulo que publicación
de manera conjunta hicieron la
distinción de tres categorías de
software, llamadas S, P, E.
3. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Categoría S:
En esta categoría entran todas las aplicaciones que
se pueden especificar formalmente, por ejemplo
sistemas donde su ámbito de acción esta muy
definido, por ejemplo la codificación de una
calculadora.
Categoría P:
En esta categoría entran todas las aplicaciones que
aunque se pueden especificar formalmente, su
solución no es cercana ni especifica, un ejemplo
seria un programa para jugar ajedrez, donde la
codificación de las reglas existe pero las soluciones
son infinitas.
4. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Categoría E:
En esta categoría se tratan de modelar procesos del
mundo real, por lo que evolucionan de manera
conjunta a su entorno, son los mas comunes
actualmente y el ejemplo mas fuerte de ellos serian
los sistemas operativos.
5. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Etapas de Madures del Software
Las etapas de Madurez del Software se dividen en Alfa, Madurez y Salida según Bennett y Rajlich.
Alfa: Esta etapa también es conocida como etapa de desarrollo, es en este etapa donde se identificaran
todas las características de la aplicación, incluso algunas características pueden ser pensadas futuro y
algunas detectadas adicionales a lo planeado, es la etapa previa a implementar la aplicación
Madurez: En esta etapa la aplicación ya esta implantada pero se encuentra que se requieren cambios en
la misma motivados por las necesidades de los usuarios o cambios del entorno, incluso pueden ser
cambios requeridos al encontrar fallas que previamente no se habían detectado.
Salida: Por lo general la etapa de madurez es relativamente larga, pero llegara un momento en que la
aplicación ya no tiene soporte, la aplicación ya no soporta los nuevos hardware o su desarrollo ya no se
puede actualizar mas, aunque el sistema aun este en producción se tendrá que pensar en remplazarlo y
así dar por terminado su uso ya que es mas caro mantenerlo que obtener uno nuevo, a esto se le conoce
como salida.
6. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Reingeniería de Sistemas
La reingeniería de sistemas se toma en cuenta cuando una aplicación lleva siendo usada años y es fácil que esta
aplicación se vuelva inestable como fruto de las múltiples correcciones, adaptaciones o mejoras que han podido surgir a
lo largo del tiempo. Esto deriva en que cada vez que se pretende realizar un cambio se producen efectos colaterales
inesperados y hasta de gravedad, por lo que se hace necesario, si se prevé que la aplicación seguirá siendo de utilidad,
aplicar reingeniería a la misma.
En el ejemplo Grafico vemos como son
necesarios varios módulos para llegar a B y C,
con la reingeniería se logra eliminar el uso de
estos módulos e incluso eliminar la salida C la
cual ya no se requiere.
7. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Tipos de cambio en el mantenimiento de Software
El cambio en un software puede ser por varios motivos, ya sea por cambios en el entorno, fallas
detectadas o niveles de seguridad, existen varios tipos de cambio pero solo veremos cuatro de ellos.
Cambios Computacionales.
Aquí se pueden manejar varios motivos del
problema los cuales pueden ser:
• Operandos incorrectos en ecuación
• Uso incorrecto de paréntesis
• Ecuación incorrecta o inexacta
• Error de redondeo o truncamiento
Ejemplo:
Es muy común, aun y cuando es algo obvio,
el no manejar adecuadamente una división
entre cero, lo que nos arrojara un error y si
no tenemos las sentencias correctas para
manejarlos nos detendrá la aplicación
8. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Cambios de Interfaz.
Los motivos pueden ser varios de acuerdo a la
interfaz:
• Interfaz de software/hardware
• Interfaz de usuario software
• Interfaz de base de datos de software
Ejemplo:
Un ejemplo claro es que los iconos de la
interfaz no representen lo que hacen, por
ejemplo es común usar el icono de un
engrane para entrar a la configuración de una
aplicación, pero si se utiliza un icono
diferente, el usuario puede no estar
familiarizado y no deducir para que es.
Familiar No familiar
9. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Cambios de Rendimiento.
Los motivos pueden ser varios, por ejemplo:
• Tiempo límite excedido
• Límite de almacenamiento excedido
• Código o diseño ineficiente
• Eficiencia de la red
Ejemplo:
Un ejemplo claro es cuando se obtiene un time out
al querer obtener un archivo muy grande de un FTP
el cual excede los parámetros normales, lo que
requiere cambios en el código para solucionar el
problema, o al menos saber que hacer con el.
10. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Cambios por mejora.
Los motivos pueden ser:
• Mejora de funciones existentes
• Mejora de interfaz
Ejemplo:
Un ejemplo claro pueden ser los sistemas operativos
actuales, ya que están mejorando constantemente
tanto técnica como visualmente.
11. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Conclusiones:
En este tema podemos apreciar como se da la evolución del software y como
interactúa con el entorno o el entorno interactúa con el, es muy común que el
software cambie para mejorar o reparar errores, un ejemplo para reparar
errores o minimizar que sucedan son los parches de Windows, también las
actualizaciones pueden deberse a mejoras y no necesariamente errores.
También hay que tomar en cuenta que todo software tiene un tiempo de vida y
muchas veces es mas costoso mantenerlo por ya demasiado tiempo que pensar
en desarrollar uno nuevo, por lo que se debe evaluar muy bien el costo
beneficio.
12. Pruebas y Mantenimiento de Sistemas de Software
Unidad 3. Mantenimiento de sistemas de software
Referencias:
UnADM. (NA). Pruebas y mantenimiento de sistemas de software. 2018, de UnADM Sitio web:
https://unadmexico.blackboard.com/bbcswebdav/institution/DCEIT/2016_S2_B1/DS/08/DPSS/U3/Unidad_3_Mantenimien
to_de_sistemas_de_software.pdf
Sommerville, Ian. (2011). Ingeniería de Software. 2018, de Universidad de Cauca. Sitio web:
http://artemisa.unicauca.edu.co/~cardila/Libro_Somerville_9.pdf
Verónica Alexandra Herrera Caldas. (2006). Desarrollo de un plan de gestión de mantenimiento de software para el
departamento de sistemas de la Universidad Politécnica Salesiana. 2018, Universidad Politécnica Salesiana Sitio web:
https://dspace.ups.edu.ec/bitstream/123456789/8936/1/UPS-CT005189.pdf
Damián N.. (2011). Reingeniería de Sistemas. 2018, de Norsoft Sitio web: http://www.norsoft.com.ar/servicios/servicios-
reingenieria.html4