Evolucion del software

2,475 views

Published on

1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
2,475
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
74
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Evolucion del software

  1. 1. EVOLUCIÓN DEL SOFTWARECarlos R. Adames B.Programador HTML5@crabalex
  2. 2. DINÁMICA DE EVOLUCIÓNDE LOS PROGRAMAS
  3. 3. LAS LEYES DE LEHMAN Cambio continuado Un programa que se usa en un entorno real necesariamente debe cambiar o se volverá progresivamente menos útil en ese entorno.
  4. 4. Complejidad crecienteA medida que un programa en evolucióncambia, su estructura tiende a ser cadavez más compleja.
  5. 5. Evolución prolongada del programaSugiere que los grandes sistemas tienen supropia dinámica que se establece en una etapatemprana en el proceso de desarrollo.
  6. 6. Estabilidad organizacionalSugiere que la mayoría de los proyectos deprogramación grandes trabajan en lo que sedenomina un estado saturado.
  7. 7. Conservación de la familiaridadDurante el tiempo de vida de un sistema, elcambio incremental en cada entrega esaproximadamente constante.
  8. 8. Crecimiento continuadoLa funcionalidad ofrecida por los sistemastiene que crecer continuamente paramantener la satisfacción de los usuarios.
  9. 9. Decremento de la calidadLa calidad de los sistemas comenzara adisminuir a menos que dichos sistemas seadapten a los cambios en su entorno.
  10. 10. Realimentación del sistemaEs necesaria para lograr una mejorasignificativa del producto.
  11. 11. MANTENIMIENTO DEL SOFTWAREEs el proceso general de cambiar un sistema despuésde que éste ha sido entregado.
  12. 12. 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.
  13. 13. Factores que conducen a costes de mantenimientomá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.
  14. 14. 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.
  15. 15. PREDICCIÓN DEL MANTENIMIENTOSe debería intentar predecir qué cambios del sistema son probablesy qué partes del sistema son probablemente las más difíciles demantener.
  16. 16. PROCESOS DE EVOLUCIÓN• Tipo de software a mantener• Los procesos de desarrollo utilizados• El personal implicado en el proceso
  17. 17. Propuestas de cambio:• 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.
  18. 18. PROCESO DE EVOLUCIÓN Los procesos de identificación de cambios y evolución del sistema son cíclicos y continúan durante toda la vida del sistema.
  19. 19. PROCESOS DE EVOLUCIÓNIncluyen las actividades fundamentales de análisis de cambios,planificación de entregas, implementación del sistema y entrega deun sistema a los clientes.
  20. 20. IMPLEMENTACIÓN DE LOS CAMBIOS1. 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.
  21. 21. REINGENIERÍA DE SISTEMASLa reingeniería del software se refiere a la reimplementación de lossistemas heredados para hacerlos más mantenibles.
  22. 22. REINGENIERÍA DE SISTEMASPuede implicar:• 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.
  23. 23. REINGENIERÍA DE SISTEMASVentajas:• 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.
  24. 24. REINGENIERÍA DE SISTEMASDesventajas:• 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.
  25. 25. REINGENIERÍA DE SISTEMASLa distinción crítica entre reingeniería y nuevo desarrollo softwarees el punto de partida del desarrollo.
  26. 26. EVOLUCIÓN DE SISTEMAS HEREDADOS
  27. 27. Opciones estratégicas:1.Desechar completamente el sistema. Esta opción deberíaelegirse cuando el sistema no constituye una contribuciónefectiva para los procesos de negocio.2.Dejar el sistema sin cambios y continuar con unmantenimiento regular. Esta opción debería elegirse cuandoel sistema todavía es necesario.
  28. 28. 3.Hacer reingeniería del sistema para mejorar sumantenibilidad. Esta opción debería elegirse cuando lacalidad del sistema se ha degradado por los cambioscontinuos .4.Reemplazar todo o parte del sistema con un nuevosistema. Esta opción debería elegirse cuando otrosfactores, como un nuevo hardware, implican que el sistemaantiguo no puede continuar en funcionamiento.
  29. 29. EVOLUCIÓN DEL SOFTWARE Espacio para: preguntas, dudas, aclarando, aportaciones y pluginsCarlos R. Adames B.Programador HTML5@crabalex

×