Procesos de Ingeniería de Software Calendarización de Proyectos de Software
Introducción El reciente aumento de aplicaciones en donde se utiliza la computadora  ha sido posible debido a  un hardware de bajo costo, por lo cual la demanda de software ha crecido de forma exponencial.
Introducción Esto implica que son necesarias técnicas y tecnología eficientes de Ingeniería de Software para resolver los múltiples problemas que se derivan de las aplicaciones en donde se desarrollan sistemas de software de gran tamaño.
Introducción Cada proyecto de software presenta distintos problemas en su desarrollo, los cuales involucran personas, equipo, usuarios del software y ambiente de la aplicación. Por estas razones, cada proyecto debe resolver el problema de la producción del software.
Conceptos Básicos Aunque existen muchas razones por las cuales el software se entrega con rechazo, entre ellas: fechas límite irrealizables, cambios en requisitos, riesgos, dificultades humanas y técnicas, falta de comunicación, fallas en la gestión del proyecto.
¿Por qué las cosas van mal? Las técnicas de estimación son pobremente desarrolladas.  Se confunde esfuerzo con progreso, suponiendo que hombres y meses son intercambiables.  El progreso de la calendarización es pobremente monitoreado.  Cuando un resbalón en la calendarización es reconocido, la respuesta tradicional es añadir mano de obra.
Calendarización Es una actividad que distribuye estimaciones de esfuerzo a través de la duración planificada del proyecto, al asignar el esfuerzo a tareas específicas de ingeniería del software.
Principios Básicos Compartimentación. Interdependencia. Asignación de tiempo. Validación del esfuerzo. Definición de responsabilidades. Definición de resultados. Definición de hitos.
Tareas y Subtareas tienen interdependencias basadas en su secuencia. Trabajo paralelo --> Tareas concurrentes deben estar coordinadas. Red de Tareas:  representación gráfica del flujo de tareas de un proyecto. Dos posibles enfoques: Calendarización macroscópica. Calendarización detallada. Definición de una red de Tareas
Red de Tareas (Macroscópica) 1.1 Determinación ámbito concepto 1.2 Planeación concepto 1.3a Evaluación Riesgo Téc. 1.3b Evaluación Riesgo Téc. 1.3c Evaluación Riesgo Téc. 1.4 Prueba de Concepto Integración a, b, c 1.5a Implementación Concepto 1.5b Implementación Concepto 1.5c Implementación Concepto 1.6 Reacción Cliente
Pueden utilizar técnicas/herramientas calendarización de proyectos. PERT (Técnica de evaluación y revisión de programa) CPM (Método de la Ruta Crítica) Información etapas tempranas: Estimación de esfuerzo Descomposición de la función del producto Selección del modelo de proceso y conjunto de tareas apropiadas. Descomposición de Tareas. Calendarización
Diagrama de Gantt. Uno por proyecto ó uno por cada función. Diamantes (rombos) marcan hitos. Seguimiento de la Calendarización realizado: Reuniones valorar estado. Evaluación de resultados proceso de ingeniería software. Hitos. Comparar fechas: tentativa-real inicio tarea usando tabla de tareas. Cronogramas
 
Hitos Técnicos: análisis OO completado Se han denido y revisado todas las clases y la jerarquía de clase. Se han denido y revisado los atributos de clase y las operaciones asociadas con una clase. Se han establecido y revisado las relaciones de clase. Se ha creado y revisado un modelo de  comportamiento. Se han anotado las clases reutilizables. Seguimiento del Proyecto OO (1/*)
Seguimiento del Proyecto OO (1/*) Hitos Técnicos: diseño OO completado Se han definido y el conjunto de subsistemas. Las clases de han revisado y asignado a los subsistemas. Se han identificado las responsabilidades y colaboraciones. Se ha creado y revisado un modelo de comportamiento.
Seguimiento del Proyecto OO (1/*) Hitos Técnicos: análisis OO completado Se han definido y revisado todas las clases y la jerarquía de clase. Se han definido y revisado los atributos de clase y las operaciones asociadas con una clase. Se ha creado y revisado el diseño de las clases. Se ha creado y revisado el modelo de comunicación.
Seguimiento del Proyecto OO (1/*) Hitos Técnicos: programación OO completada •  Cada nueva clase se ha implementado en código a través del modelo de diseño. •  Se han implementado las clases obtenidas (de una librería de reutilización). •  Se ha construido el prototipo o incremento.
Seguimiento del Proyecto OO (1/*) Hitos Técnicos: prueba OO •  Se ha revisado la correción y que estén completos el análisis OO y los modelos de diseño. •  Se ha desarrollado y revisado una red clase-responsabilidad-colaboración. •  Se han diseñado casos de prueba y se han llevado a cabo pruebas al nivel de clase. •  Se han diseñado casos de prueba, se han completado pruebas de agrupamientos y se han integrado las clases. •  Se han completado las pruebas al nivel de sistema.

Calendarización de Proyectos de Software

  • 1.
    Procesos de Ingenieríade Software Calendarización de Proyectos de Software
  • 2.
    Introducción El recienteaumento de aplicaciones en donde se utiliza la computadora ha sido posible debido a un hardware de bajo costo, por lo cual la demanda de software ha crecido de forma exponencial.
  • 3.
    Introducción Esto implicaque son necesarias técnicas y tecnología eficientes de Ingeniería de Software para resolver los múltiples problemas que se derivan de las aplicaciones en donde se desarrollan sistemas de software de gran tamaño.
  • 4.
    Introducción Cada proyectode software presenta distintos problemas en su desarrollo, los cuales involucran personas, equipo, usuarios del software y ambiente de la aplicación. Por estas razones, cada proyecto debe resolver el problema de la producción del software.
  • 5.
    Conceptos Básicos Aunqueexisten muchas razones por las cuales el software se entrega con rechazo, entre ellas: fechas límite irrealizables, cambios en requisitos, riesgos, dificultades humanas y técnicas, falta de comunicación, fallas en la gestión del proyecto.
  • 6.
    ¿Por qué lascosas van mal? Las técnicas de estimación son pobremente desarrolladas. Se confunde esfuerzo con progreso, suponiendo que hombres y meses son intercambiables. El progreso de la calendarización es pobremente monitoreado. Cuando un resbalón en la calendarización es reconocido, la respuesta tradicional es añadir mano de obra.
  • 7.
    Calendarización Es unaactividad que distribuye estimaciones de esfuerzo a través de la duración planificada del proyecto, al asignar el esfuerzo a tareas específicas de ingeniería del software.
  • 8.
    Principios Básicos Compartimentación.Interdependencia. Asignación de tiempo. Validación del esfuerzo. Definición de responsabilidades. Definición de resultados. Definición de hitos.
  • 9.
    Tareas y Subtareastienen interdependencias basadas en su secuencia. Trabajo paralelo --> Tareas concurrentes deben estar coordinadas. Red de Tareas: representación gráfica del flujo de tareas de un proyecto. Dos posibles enfoques: Calendarización macroscópica. Calendarización detallada. Definición de una red de Tareas
  • 10.
    Red de Tareas(Macroscópica) 1.1 Determinación ámbito concepto 1.2 Planeación concepto 1.3a Evaluación Riesgo Téc. 1.3b Evaluación Riesgo Téc. 1.3c Evaluación Riesgo Téc. 1.4 Prueba de Concepto Integración a, b, c 1.5a Implementación Concepto 1.5b Implementación Concepto 1.5c Implementación Concepto 1.6 Reacción Cliente
  • 11.
    Pueden utilizar técnicas/herramientascalendarización de proyectos. PERT (Técnica de evaluación y revisión de programa) CPM (Método de la Ruta Crítica) Información etapas tempranas: Estimación de esfuerzo Descomposición de la función del producto Selección del modelo de proceso y conjunto de tareas apropiadas. Descomposición de Tareas. Calendarización
  • 12.
    Diagrama de Gantt.Uno por proyecto ó uno por cada función. Diamantes (rombos) marcan hitos. Seguimiento de la Calendarización realizado: Reuniones valorar estado. Evaluación de resultados proceso de ingeniería software. Hitos. Comparar fechas: tentativa-real inicio tarea usando tabla de tareas. Cronogramas
  • 13.
  • 14.
    Hitos Técnicos: análisisOO completado Se han denido y revisado todas las clases y la jerarquía de clase. Se han denido y revisado los atributos de clase y las operaciones asociadas con una clase. Se han establecido y revisado las relaciones de clase. Se ha creado y revisado un modelo de comportamiento. Se han anotado las clases reutilizables. Seguimiento del Proyecto OO (1/*)
  • 15.
    Seguimiento del ProyectoOO (1/*) Hitos Técnicos: diseño OO completado Se han definido y el conjunto de subsistemas. Las clases de han revisado y asignado a los subsistemas. Se han identificado las responsabilidades y colaboraciones. Se ha creado y revisado un modelo de comportamiento.
  • 16.
    Seguimiento del ProyectoOO (1/*) Hitos Técnicos: análisis OO completado Se han definido y revisado todas las clases y la jerarquía de clase. Se han definido y revisado los atributos de clase y las operaciones asociadas con una clase. Se ha creado y revisado el diseño de las clases. Se ha creado y revisado el modelo de comunicación.
  • 17.
    Seguimiento del ProyectoOO (1/*) Hitos Técnicos: programación OO completada • Cada nueva clase se ha implementado en código a través del modelo de diseño. • Se han implementado las clases obtenidas (de una librería de reutilización). • Se ha construido el prototipo o incremento.
  • 18.
    Seguimiento del ProyectoOO (1/*) Hitos Técnicos: prueba OO • Se ha revisado la correción y que estén completos el análisis OO y los modelos de diseño. • Se ha desarrollado y revisado una red clase-responsabilidad-colaboración. • Se han diseñado casos de prueba y se han llevado a cabo pruebas al nivel de clase. • Se han diseñado casos de prueba, se han completado pruebas de agrupamientos y se han integrado las clases. • Se han completado las pruebas al nivel de sistema.