Este documento presenta los conceptos de planificación, reingeniería y plan de proyecto en el contexto del desarrollo de software. Explica que la planificación es fundamental para distribuir las tareas y estimar los costos y plazos del proyecto. También cubre los pasos para realizar la reingeniería de software existente. Finalmente, indica que el plan de proyecto documenta el alcance, costos y riesgos para comunicar la estrategia a las partes interesadas.
2. Aprendizajes Esperados:
Utiliza Patrones de diseño de acuerdo
a características de desarrollo.
Contenidos:
Analiza la solución de diseño para una
aplicación informática para gestión.
3. Temario Semana 12
1. Planificación Temporal del Proyecto
2. Reingeniería del Software
3. Plan de Proyecto del Software
4. Síntesis
4. Planificación Temporal
Esta planificación se puede visualizar desde 2 perspectivas:
• La fecha del lanzamiento del Sistema ya ha sido
irrevocablemente establecida. Quizás es necesario
distribuir el esfuerzo dentro del marco prescrito.
• El segundo enfoque asume que se han estudiado unos
límites cronológicos aproximados, pero la organización
del Sistema es la que fijará la fecha final.
Quizás mas a menudo que lo esperado nos encontramos
con que la planificación es mas importante que los mismo
valores estimados para sus Costes…
5. Planificación Temporal
Relación Gente/Trabajo:
• En un proyecto pequeño una sola persona puede
desarrollar todas las fases del proyecto.
• Si nos retrasamos en la agenda, ¿siempre podremos
añadir más personal y mas tarde ponernos al día con el
proyecto?.
• A parte del tiempo que lleva comprender el
Sistema, también se amplían los canales de
comunicación y, por consiguiente, crece la complejidad
en todo el proyecto.
• Siendo la comunicación esencial para un fructífero
desarrollo, cada nuevo camino (canal) requiere esfuerzo
y tiempo adicional.
6. Planificación Temporal
Relación Gente/Trabajo:
• Regularmente, la relación entre el número de personas
trabajando versus la productividad global no es lineal.
• Por lo tanto, ¿son poco productivos los equipos de
trabajo?
• La respuesta es
NO, considerando que la
comunicación servirá para
mejorar la calidad y la facilitar el
mantenimiento del software.
7. Planificación Temporal
Definición de Tareas y Paralelismo:
• En un proyecto es posible que varias de las actividades
de desarrollo se realicen en forma paralela.
• El Análisis, las Especificaciones y los Requisitos, son las
primeras tareas que hay que desarrollar y serán la base
para el paralelismo de las siguiente etapas.
• La naturaleza modular de un software bien
diseñado, lleva por si solo al desarrollo en paralelo del
diseño detallado, de la codificación, y de las pruebas
unitarias.
• El planificador es el que deberá determinar la
dependencia entre tareas, para asegurar el progreso
continuo y el cumplimiento de los hitos establecidos.
8. Planificación Temporal
Distribución de Esfuerzo:
• Las técnicas de Estimación son las que nos entregan el
esfuerzo requerido en personas/mes para terminar el
proyecto.
Distribucion de Esfuerzo
Analisis y Diseño Prueba y Depuracion Codificacion
15-20%
40-50%
30-40%
9. Planificación Temporal
Distribución de Esfuerzo:
• La gráfica anterior solo es una directriz; las características
de cada proyecto son las que impondrán la distribución
del esfuerzo.
• El detalle anterior podría suponer que:
El esfuerzo gastado en la Planificación, rara vez
superará el 2% ó 3%
El análisis de requisitos supone entre el 10% y 25%
Para el diseño de software, entre el 20% y el 25%.
Para la Codificación, entre el 15% y 20%.
Las Pruebas y sus depuraciones, pueden requerir
entre el 30% y 40%.
10. Planificación Temporal
Seguimiento y Control del Proyecto:
• “Los proyectos del software salen de su agenda día a día”
• Un día no va a afectar en la agenda, pero los días se van
acumulando y al final esos pequeños retrasos pueden
producir grandes problemas.
• Por lo anterior, el Seguimiento es fundamental para el
éxito del proyecto y se puede desarrollar de las
siguientes formas:
Realizando reuniones periódicas sobre el estado del
proyecto.
Evaluando los resultados de todas las revisiones
realizadas en todo el proceso de ingeniería.
11. Planificación Temporal
Seguimiento y Control del Proyecto:
Determinar si los hitos formales del proyecto se han
alcanzado en la fecha programada, comparando la
fecha de comienzo real con la fecha de comienzo
planeada para cada tarea del proyecto.
Reuniéndose informalmente con los técnicos para
conocer sus valoraciones subjetivas acerca del
progreso y los problemas que acechan en el
horizonte.
• Los gestores de proyecto utilizan el Control para
administrar los recursos del proyecto, para así hacer
frente a los problemas y para dirigir al personal a cargo.
12. Temario Semana 12
1. Planificación Temporal del Proyecto
2. Reingeniería del Software
3. Plan de Proyecto del Software
4. Síntesis
13. Reingeniería del Software
Casi todas las empresas que utilizan algún software o que
construyen sus propios sistemas, se encontrarán con que el
este “envejece”.
Muchos programas que son cruciales para la operación de
la organización se han vuelto mucho mas costosos y difíciles
de mantener.
Incluso, se llega al grado de implementar “parches” sobre
“parches”, logrando un funcionamiento ineficiente, fallas
concurrentes y que no responden a las necesidades del
usuario.
Considerando los casos anteriores, se puede elaborar una
estrategia para llevar a cabo una reingeniería sobre el
software existente.
14. Reingeniería del Software
Siendo la reingeniería una alternativa incluso de “bajo
coste”, debemos considerar los siguiente pasos:
i. Seleccionar aquellos programas que actualmente se
están utilizando y que sea probable de que se sigua
utilizando durante los próximos 5 o 10 años.
ii. Estimar el Coste anual de mantenimiento de los
programas seleccionados. Este coste debe incluir la
corrección de errores, la adaptación al entorno y las
mejoras funcionales.
iii. Asignar prioridades a los programas seleccionados según
su importancia y su coste de mantención.
iv. Estimar el coste de la reingeniería de los programas
seleccionados.
15. Reingeniería del Software
v. Para cada programa seleccionado comparar el coste de
mantenimiento con el coste de reingeniería.
vi. Calcular el tiempo requerido para que se empiece a
recuperar la inversión en reingeniería.
vii.Considerar ciertos asuntos intangibles como la facilidad
de cambio, la mejora en la fiabilidad, el rendimiento del
sistema y la mejora en las interfaces de usuario.
viii.Comenzar la reingeniería a partir de una sencilla
aplicación.
ix. Con las lecciones aprendidas en el paso
anterior, comenzar la estrategia para los siguientes
16. Temario Semana 12
1. Planificación Temporal del Proyecto
2. Reingeniería del Software
3. Plan de Proyecto del Software
4. Síntesis
17. Plan de Proyecto
Cada paso del proceso de ingeniería de software debe
producir algo que se pueda entregar, que se pueda revisar y
que sirva de base para las etapas posteriores.
El Plan de Proyecto del Software es la culminación de la
Planificación y proporciona una línea base con información
de costes y agenda que se utilizará a lo largo del desarrollo
del proyecto.
18. Plan de Proyecto
Este Plan de Proyecto es un documento breve que debe
incluir, entre otras cosas, lo siguiente:
• Comunicar el ámbito y los recursos a los gestores del
software, al personal técnico y a los clientes.
• Definir los riesgos y sugerir técnicas de aversión al riesgo
• Definir el coste y la agenda de la revisión de la gestión.
• Proporcionar un enfoque global del
desarrollo del software para la gente
involucrada en el proyecto.
19. Temario Semana 12
1. Planificación Temporal del Proyecto
2. Reingeniería del Software
3. Plan de Proyecto del Software
4. Síntesis
20. Síntesis
• La Planificación en una herramienta que nos
entregará la distribución de tareas, actividades,
esfuerzo y sus costes a lo largo del proyecto.
• Esta Planificación puede incluir todos aquellos
aspectos del proyecto desde que nace hasta que
termina su mantención.
• El desarrollo de un proyecto apunta también a
encontrase con situaciones de reutilización. Estas
aportan otra visión y postura ante el enfoque del
mismo. Esto se llama Reingeniería.
21. Síntesis
• La Reingeniería trata el desarrollo como una instancia
para generar una solución escalar e integral.
• Todo proceso se debe documentar y la Planificación
no escapa a esto. El término de esta actividad se
plasma en una documento denominado Plan de
Proyecto.
• El Plan de Proyecto es de suma importancia ya que es
la formalidad de los procesos a seguir y además
entrega una visión general al cliente en caso que lo
requiera.