Evolucion del software
-
Upload
carlos-r-adames-b -
Category
Documents
-
view
1.294 -
download
1
Transcript of Evolucion del software
![Page 1: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/1.jpg)
Carlos R. Adames B.Programador HTML5@crabalex
EVOLUCIÓN DEL SOFTWARE
![Page 2: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/2.jpg)
DINÁMICA DE EVOLUCIÓNDE LOS PROGRAMAS
![Page 3: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/3.jpg)
LAS LEYES DE LEHMAN
1Cambio continuadoUn programa que se usa en un entorno real necesariamente debe cambiar o se volverá progresivamente menos útil en ese entorno.
![Page 4: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/4.jpg)
2Complejidad crecienteA medida que un programa en evolución cambia, su estructura tiende a ser cada vez más compleja.
![Page 5: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/5.jpg)
3Evolución prolongada del programaSugiere que los grandes sistemas tienen su propia dinámica que se establece en una etapa temprana en el proceso de desarrollo.
![Page 6: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/6.jpg)
4Estabilidad organizacionalSugiere que la mayoría de los proyectos de programación grandes trabajan en lo que se denomina un estado saturado.
![Page 7: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/7.jpg)
5Conservación de la familiaridadDurante el tiempo de vida de un sistema, el cambio incremental en cada entrega es aproximadamente constante.
![Page 8: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/8.jpg)
6Crecimiento continuadoLa funcionalidad ofrecida por los sistemas tiene que crecer continuamente para mantener la satisfacción de los usuarios.
![Page 9: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/9.jpg)
7Decremento de la calidadLa calidad de los sistemas comenzara a disminuir a menos que dichos sistemas se adapten a los cambios en su entorno.
![Page 10: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/10.jpg)
8Realimentación del sistemaEs necesaria para lograr una mejora significativa del producto.
![Page 11: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/11.jpg)
MANTENIMIENTO DEL SOFTWAREEs el proceso general de cambiar un sistema después de que éste ha sido entregado.
![Page 12: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/12.jpg)
TIPOS DE MANTENIMIENTO
• Correctivo: Se utiliza generalmente para referirse al mantenimiento para reparación de defectos.
• Adaptativo: Significa adaptar el software a nuevos requerimientos.
• Perfectivo: Significa mantener la funcionalidad del sistema, pero mejorando su estructura y su rendimiento.
![Page 13: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/13.jpg)
Factores que conducen a costes de mantenimiento más elevados:
1. Estabilidad del equipo. Después de entregar un sistema, es normal que el equipo de desarrollo se disuelva y la gente trabaje en nuevos proyectos.
2. Responsabilidad contractual. El contrato para mantener un sistema normalmente está separado del contrato para desarrollar el sistema.
![Page 14: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/14.jpg)
3. Habilidades del personal. El personal de mantenimiento a menudo no tiene experiencia y no está familiarizado con el dominio de la aplicación.
4. Edad y estructura del programa. A medida que pasa el tiempo, la estructura de los programas tiende a degradarse con los cambios.
![Page 15: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/15.jpg)
PREDICCIÓN DEL MANTENIMIENTOSe debería intentar predecir qué cambios del sistema son probables y qué partes del sistema son probablemente las más difíciles de mantener.
![Page 16: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/16.jpg)
PROCESOS DE EVOLUCIÓN• Tipo de software a mantener• Los procesos de desarrollo utilizados• El personal implicado en el proceso
![Page 17: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/17.jpg)
• Requerimientos existentes que no han sido implementados en el sistema entregado.
• Peticiones para nuevos requerimientos y reparaciones de errores por parte de los stakeholders del sistema.
• Nuevas ideas y propuestas para mejoras en el software por parte del equipo de desarrollo del sistema.
Propuestas de cambio:
![Page 18: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/18.jpg)
PROCESO DE EVOLUCIÓNLos procesos de identificación de cambios y evolución del sistema son cíclicos y continúan durante toda la vida del sistema.
![Page 19: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/19.jpg)
PROCESOS DE EVOLUCIÓNIncluyen las actividades fundamentales de análisis de cambios, planificación de entregas, implementación del sistema y entrega de un sistema a los clientes.
![Page 20: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/20.jpg)
IMPLEMENTACIÓN DE LOS CAMBIOS
1. Si ocurre un defecto serio en el sistema que tenga que ser reparado para permitir la continuación del funcionamiento normal.
2. Si los cambios en el entorno del sistema operativo tienen efectos inesperados que impiden el funcionamiento normal.
3. Si hay cambios no anticipados en las empresas que utilizan el sistema.
![Page 21: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/21.jpg)
REINGENIERÍA DE SISTEMASLa reingeniería del software se refiere a la reimplementación de los sistemas heredados para hacerlos más mantenibles.
![Page 22: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/22.jpg)
REINGENIERÍA DE SISTEMAS
• Redocumentar el sistema.
• Organizar y reestructurar el sistema.
• Traducir el sistema a un lenguaje de programación más moderno.
• Modificar y actualizar la estructura y valores de los datos del sistema.
Puede implicar:
![Page 23: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/23.jpg)
REINGENIERÍA DE SISTEMAS
Ventajas:
• Riesgo reducido. Existe un alto riesgo en volver a desarrollar software crítico para los negocios.
• Coste reducido. El coste de hacer reingeniería es significativamente menor que el coste de desarrollar nuevo software.
![Page 24: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/24.jpg)
REINGENIERÍA DE SISTEMAS
Desventajas:
• Existen límites prácticos a la extensión del sistema que puede ser mejorada mediante reingeniería.
• No es posible convertir un sistema diseñado utilizando una aproximación funcional en un sistema orientado a objetos.
• Los cambios arquitectónicos mayores no pueden realizarse de forma automática, implica costes adicionales.
![Page 25: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/25.jpg)
REINGENIERÍA DE SISTEMAS
La distinción crítica entre reingeniería y nuevo desarrollo software es el punto de partida del desarrollo.
![Page 26: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/26.jpg)
EVOLUCIÓN DE SISTEMAS HEREDADOS
![Page 27: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/27.jpg)
1.Desechar completamente el sistema. Esta opción debería elegirse cuando el sistema no constituye una contribución efectiva para los procesos de negocio.
2.Dejar el sistema sin cambios y continuar con un mantenimiento regular. Esta opción debería elegirse cuando el sistema todavía es necesario.
Opciones estratégicas:
![Page 28: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/28.jpg)
3.Hacer reingeniería del sistema para mejorar su mantenibilidad. Esta opción debería elegirse cuando la calidad del sistema se ha degradado por los cambios continuos .
4.Reemplazar todo o parte del sistema con un nuevo sistema. Esta opción debería elegirse cuando otros factores, como un nuevo hardware, implican que el sistema antiguo no puede continuar en funcionamiento.
![Page 29: Evolucion del software](https://reader036.fdocuments.co/reader036/viewer/2022062307/558272fad8b42a70198b55a5/html5/thumbnails/29.jpg)
Carlos R. Adames B.Programador HTML5@crabalex
EVOLUCIÓN DEL SOFTWAREEspacio para: preguntas, dudas,
aclarando, aportaciones y plugins