sistema de generacion de horarios para …zeus.inf.ucv.cl/~jrubio/docs/2009-02/pet/material de...

42
Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Magíster en Ingeniería Informática. SISTEMA DE GENERACION DE HORARIOS PARA CURSOS UNIVERSITARIOS MII - 711 Administración de Proyectos Informáticos Fecha: 26 de Junio de 2007 Profesor: Dr. Claudio Cubillos Alumnos: José Maureira José Miguel Rubio

Upload: trinhminh

Post on 19-Feb-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

Magíster en Ingeniería Informática.

SISTEMA DE GENERACION DE HORARIOS PARA CURSOS

UNIVERSITARIOS

MII - 711 Administración de Proyectos Informáticos

Fecha: 26 de Junio de 2007 Profesor: Dr. Claudio Cubillos

Alumnos: José Maureira

José Miguel Rubio

Tabla de Contenidos 1. Introducción........................................................................................................................ 1 2. Charter del Proyecto ........................................................................................................... 3

2.1 Introducción.................................................................................................................. 3 2.1.1 Visión................................................................................................................. 3 2.1.2 Autoridades........................................................................................................ 3 2.1.3 Agentes .............................................................................................................. 3 2.1.4 Supuestos ........................................................................................................... 3

2.2 Descripción del Proyecto.............................................................................................. 3 2.2.1 Definición del Sistema....................................................................................... 3 2.2.2 Objetivos............................................................................................................ 4 2.2.3 Actores............................................................................................................... 4

2.3 Alcance del Proyecto .................................................................................................... 4 2.3.1 Entregables ........................................................................................................ 4 2.3.2 Programación..................................................................................................... 4 2.3.3 Ítems Fuera de Alcance ..................................................................................... 4

2.4 Supuestos...................................................................................................................... 5 2.5 Caso de Negocio........................................................................................................... 5

2.5.1 Beneficios ......................................................................................................... 5 2.5.2 Costos ................................................................................................................ 5

3. Planificación ....................................................................................................................... 6 3.1 Estructura de Desglose de Trabajo (EDT).................................................................... 6

3.1.1 Lista ................................................................................................................... 6 3.1.2 Diagramas .......................................................................................................... 8

3.2 Organigrama del Proyecto.......................................................................................... 12 3.3 Fichas de Tareas ......................................................................................................... 13

4. Plan de Riesgos................................................................................................................. 27 5. Programación.................................................................................................................... 30

5.1 Carta Gantt.................................................................................................................. 30 5.2 Diagrama de Precedencias.......................................................................................... 32 5.3 Diagrama de Cálculo de Fechas y Camino Crítico..................................................... 33 5.4 Diagramas de Uso de Recursos .................................................................................. 36

6. Estimación ........................................................................................................................ 38 6.1 Puntos de Función ...................................................................................................... 38 6.2 Cocomo....................................................................................................................... 39

7. Conclusión........................................................................................................................ 40

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

1

1. Introducción El problema de generación de horarios ha sido atacado a través de diferentes técnicas y con diferentes

resultados pero en muy pocos casos se ha aplicado a la resolución de problemas reales. Es por este motivo que

nos vemos obligados a aplicar una técnica de resolución innovadora basada en algoritmos híbridos entre la

optimización de colonias de hormigas y búsqueda local para resolver una instancia real de este problema,

generando así una herramienta computacional que entregue soluciones factibles optimas para esta clase de

problemas en Universidad de las Américas, campus Viña del Mar.

El Problema de optimización combinatorial al que nos enfocaremos se llama problema de generación de

Horarios (Timetabling). Se describe un problema que se presenta generalmente en un contexto educativo

(escuelas, universidades, conferencias). La base de este problema está en la tarea de poner los

acontecimientos genéricamente llamados eventos (cursos, clases, exámenes, lecciones, negociaciones) en un

horario. El horario se compone de un número limitado de unidades atómicas llamadas timeslots que se

ordenan y se agrupan generalmente en unidades más grandes como mañanas, tardes o días. Poner un

acontecimiento en el horario significa asignar el número requerido de timeslots consecutivos al

acontecimiento. Se debe considerar que se asumirá la duración de todos los eventos de forma uniforme y que

este largo corresponde al largo de un timeslot.

El problema de poner todos los eventos dentro de timeslots produce el hecho de que tenemos que ocuparnos

de restricciones duras (restricciones que necesariamente se tienen que cumplir) y de restricciones suaves, que

pueden no cumplirse, pero que provocan una reducción en la calidad del horario generado. Una restricción

dura presente en todos los problemas de timetabling es que ciertos pares de eventos no se pueden poner en el

mismo timeslot. Esto es debido al hecho de que a estos eventos asisten estudiantes, profesores o participantes

y que ninguno de ellos pueden asistir a dos eventos en el mismo tiempo. Así pues, ciertos eventos se deben

poner en diversos timeslot para evitar estas colisiones de horarios para los asistentes, ya sean profesores,

alumnos o participantes.

Además de estas restricciones duras que ofrecen todos los problemas timetabling, hay una gran diversidad de

modelos de estos problemas. En este proyecto nos centraremos en los problemas de asignación de horarios

(timetabling) para la Universidad. En este caso específico solamente un número limitado de eventos puede

ocurrir por timeslot y los eventos tienen que ser acomodados a las salas. Obviamente, podemos poner

solamente un acontecimiento por sala y no podemos separar generalmente un acontecimiento sobre dos salas.

Por otra parte, hay una variedad enorme de restricciones suaves que expresan características deseables de un

horario. A continuación se muestra, una selección de restricciones suaves:

• Ciertos timeslot deben ser evitados si es posible

• No muchos eventos para un estudiante particular en un día

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

2

• No tener solo un evento para un estudiante en un día

• No más que X eventos por estudiante dentro de Y timeslot consecutivos

• Intentar utilizar la menor cantidad de timeslot posibles

La creación manual de horarios manual aún con algunas pocas sesiones, puede tomar una cantidad

significativa de tiempo con solo algunas restricciones sencillas. Para una gran cantidad de cursos con un

conjunto complejo de restricciones esto es muy poco práctico.

Esto hace deseable encontrar una forma de generar automáticamente una programación de horarios a partir de

una descripción inicial de los profesores, alumnos, salones y las sesiones requeridas. El problema de

programación de horarios puede manifestarse en variadas formas todo dependiendo del entorno o Institución

en el que se vaya aplicar.

Para resolver el problema de la programación de horarios se han diseñado diversos algoritmos y se han

aplicado diversas estrategias de solución.

Asignar cursos a las salas de clase de Universidad de las Américas es cada vez una tarea más compleja, dada

la escasez de salas de clase y el crecimiento de la población estudiantil, y los criterios de asignación que se

deben resolver para lograr la tarea satisfactoriamente. Las salas de clase tienen diversas características que se

considerarán, por ejemplo: televisión, VHS, computadoras, proyectores de computadora, aire acondicionado,

etc. Una asignación aceptable debe resolver una variedad de condiciones, las más básicas (tales como la

necesidad de que cada curso debe ser asignado a una sala de clase, que no exista ningún traslapo de cursos en

las salas de clase, que la capacidad de los asiento sea la adecuada, y que una clase que se dicte en varios días

de la semana se asigne a la misma sala de clase), otras condiciones que puedan ser consideradas de

preferencia (por ejemplo son , que los cursos con pocos estudiantes no ocupen salas de clase con una gran

cantidad de sillas). De esta forma se tiene un problema a resolver, varias técnicas de resolución y herramientas

informáticas para lograr la mejor solución de este problema.

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

3

2. Charter del Proyecto

2.1 Introducción

2.1.1 Visión

Una mejora en la calidad de los horarios generados para los cursos de Universidad de las Américas (en

adelante UDLA), Campus Viña del Mar (en adelante vl), mediante la automatización de este proceso.

2.1.2 Autoridades

• Auspiciador Corporativo – Rodrigo Torres:

Supervisa la definición del detalle del proyecto y de los principales requisitos de los productos. Provee de

personal al proyecto y supervisa directamente al encargado de proyecto. Asegura que las necesidades del

negocio de la compañía sean satisfechas por el proyecto. Toma las decisiones finales.

• Auspiciador del Proyecto – Felipe Leighton:

Supervisa la definición del detalle del proyecto y de los principales requisitos de los productos. Provee de

personal al proyecto y supervisa directamente al encargado de proyecto. Asegura que las necesidades del

negocio de la compañía sean satisfechas por el proyecto. Toma las decisiones finales.

2.1.3 Agentes

José Rubio, encargado del proyecto: define en detalle el proyecto y los principales requisitos de los productos.

2.1.4 Supuestos

El equipo del proyecto se basa en los siguientes supuestos:

• Los sistemas informáticos actuales estarán disponibles para la integración de prueba con el nuevo sistema

el segundo semestre del presente año.

• Los recursos necesarios (capacitación del personal, computadores, personal, etc.) estarán disponibles

antes de la puesta en marcha del sistema.

2.2 Descripción del Proyecto

2.2.1 Definición del Sistema

El problema de generación de horarios ha sido atacado a través de diferentes técnicas y con diferentes

resultados pero en muy pocos casos se ha aplicado a la resolución de problemas reales. En este proyecto se

pretende aplicar una técnica de resolución innovadora basada en algoritmos híbridos de optimización de

colonias de hormigas y búsqueda local para resolver una instancia real de este problema, generando así una

herramienta computacional que entregue soluciones óptimas para esta clase de problemas aplicados, en

UDLA vl.

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

4

2.2.2 Objetivos • Crear un sistema computacional para la generación de Horarios en UDLA vl, haciendo uso de un

algoritmo hibrido basado en Optimización de Colonias de Hormiga y Búsqueda Local.

• Evaluar el rendimiento del algoritmo con una calificación en función de calidad de las soluciones, en

términos de la complejidad y de la violación de las restricciones impuestas a los horarios.

2.2.3 Actores Patrocinador: Rodrigo Torres, Director de Sede.

Patrocinador: Sergio Valenzuela, Director Académico Facultad de Ciencias de la Ingeniería.

Usuarios: Coordinadores de Área.

Usuarios: Coordinadores de Carrera.

Clientes: Alumnos de programas de pregrado, diurno y vespertino.

Clientes: Alumnos de programas executive.

2.3 Alcance del Proyecto

2.3.1 Entregables • Sistema de Ingreso de programas de carreras de pregrado.

• Sistema de Ingreso disponibilidad de profesores y salas.

• Motor de generación de horarios.

• Motor para exportación de horarios generados a formato Excel y PDF.

• Integración con sistema de administración académica.

• Manuales de usuario.

2.3.2 Programación Se anticipa un marco general de 10-12 meses de desarrollo.

El proyecto espera partir el S2 2007 para completarse el S2 2008

La versión 1.0 se espera a los 10 meses y su entrega a los 2-4 meses posteriores.

2.3.3 Ítems Fuera de Alcance • Infraestructura de Seguridad.

• Sistema de Ayuda.

• Integración con sitio Web corporativo.

• Sistema de reserva de laboratorios y salas.

• Sistema de Ingreso preferencias de profesores.

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

5

2.4 Supuestos • Se reutilizará la infraestructura tecnológica (hardware y software) disponible.

• El sistema se construirá según una arquitectura cliente-servidor

• El cliente entregará expertos del negocio durante el desarrollo.

• El sistema correrá en los computadores y red existentes.

• El cliente firmará los entregables intermedios dentro de 1 semana de la entrega.

• Todos los datos a importar estarán disponibles en formato Excel.

• Esta será una aplicación de escritorio.

2.5 Caso de Negocio

Si bien el proyecto no es crítico para la organización puesto que no se relaciona directamente con el ámbito

del negocio de esta (educación superior), este permitirá optimizar uno de sus principales procesos; la

planificación y asignación de recursos humanos y materiales de forma óptima.

2.5.1 Beneficios

La realización de este proyecto permitirá a UDLA vl:

• Una disminución entre un 80 y 90% en el tiempo requerido para la generación de horarios.

• Mejora en la calidad de los horarios ofrecidos tanto a sus alumnos como a sus profesores.

• Utilización óptima de los recursos disponible.

2.5.2 Costos

Durante la ejecución de este proyecto UDLA vl incurrirá en los siguientes costos:

• Se espero que este proyecto cueste $ 6.900.000 destinados completamente a financiar el personal del

proyecto.

• El proyecto comprenderá la mayor parte del trabajo de mantenimiento de los sistemas asociados al

proceso de generación de horarios existente.

.

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

6

3. Planificación

3.1 Estructura de Desglose de Trabajo (EDT)

3.1.1 Lista

0. Sistema de Generación de Horarios para Cursos Universitarios

1. Especificar requerimientos.

1.1. Análisis del Sistema Actual.

1.2. Especificar Necesidades a Satisfacer.

1.3. Estudio y Análisis Técnicas de Resolución Específicas.

1.4. Evaluación y Definición Técnicas de Resolución a Aplicar.

2. Etapa de Análisis

2.1. Definir Proceso de Generación de Horarios.

2.2. Estudiar Procesos Organizacionales Asociados.

2.3. Estudiar y Definir Datos de Entrada del Proceso.

2.4. Definir Interfaces de Comunicación con los Sistemas Actuales.

3. Etapa de Diseño

3.1. Diseño del programa

3.1.1. Diseñar algoritmo de asignación.

3.1.2. Diseñar algoritmo de optimización.

3.2. Diseño Funcional

3.3. Diseño de Interfaces de Usuario

3.4. Diseño de Interfaces de comunicación.

3.5. Diseñar Base de Datos

3.6. Diseño de Casos de Prueba

4. Implementación

4.1. Codificar algoritmo de asignación.

4.2. Codificar algoritmo de optimización.

4.3. Implementar Base de Datos

4.4. Implementar Interfaces de usuario.

4.5. Implementar Interfaces de comunicación.

5. Pruebas

5.1. Pruebas Unitarias

5.1.1. Prueba Unitaria Base de Datos

5.1.2. Prueba Unitaria Interfaces de Usuario

5.1.3. Prueba Unitaria Interfaces de Comunicación

5.2. Corrección de errores

5.3. Pruebas de Integración

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

7

5.4. Pruebas del Sistema

6. Evaluación de Rendimiento y Ajustes

6.1. Iteración 1

6.1.1. Evaluación Tiempo de Respuesta

6.1.2. Evaluación Calidad de la Solución

6.1.3. Análisis de Resultados

6.1.4. Ajuste de Parámetros y Función Objetivo

6.2. Iteración 2

6.2.1. Evaluación Tiempo de Respuesta

6.2.2. Evaluación Calidad de la Solución

6.2.3. Análisis de Resultados

6.2.4. Ajuste de Parámetros y Función Objetivo

6.3. Iteración 3

6.3.1. Evaluación Tiempo de Respuesta

6.3.2. Evaluación Calidad de la Solución

6.3.3. Análisis de Resultados

6.3.4. Ajuste de Parámetros y Función Objetivo

7. Cierre del proyecto

7.1. Elaboración Manual de usuario.

7.2. Capacitación de usuarios.

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

8

3.1.2 Diagramas

• Diagrama General:

Figura 1. Fases Principales del Proyecto

• Desglose de Cada Fase

1. Especificación de

Requerimientos

1.1 Análisis del Sistema

Actual

1.2 Especificar Necesidades

del Cliente

1.3 Estudio y Análisis de

Técnicas de Resolución

Especificas

1.4 Evaluación y Definición

de Técnicas a Aplicar

Figura 2. Desglose Fase 1: Especificación de Requerimientos

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

9

Figura 3. Desglose Fase 2: Análisis

Figura 4. Desglose Fase 3: Diseño

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

10

4. Implementación

4.1 Codificación Algoritmo de

Asignación

4.2 Codificación Algoritmo de

Optimización

4.3 Implementar Base de Datos

4.4 Implementar Interfaces de

Usuario

4.5 Implementar Interfaces de

Comunicación

Figura 5. Desglose Fase 4: Implementación

5.1 Pruebas Unitarias

5.2 Corrección de Errores

5.3 Pruebas de Integración

5.4 Pruebas del Sistema

5.1.1 Pruebas Unitarias de

Base de Datos

5.1.2 Pruebas Unitarias de

Interfaces de Usuario

5.1.3 Pruebas Unitarias de

Interfaces de Comunicación

5. Pruebas

Figura 6. Desglose Fase 5: Pruebas

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

11

6. Evaluación de

Rendimiento

6.1 Iteración 1

6.1.1 Evaluación del Tiempo

de Respuesta

6.1.2 Evaluación de la

Calidad de la Solución

6.1.3 Análisis de Resultados

6.1.4 Ajuste de Parámetros y

Función Objetivo

6.2 Iteración 2

6.2.1 Evaluación del Tiempo

de Respuesta

6.2.2 Evaluación de la

Calidad de la Solución

6.2.3 Análisis de Resultados

6.2.4 Ajuste de Parámetros y

Función Objetivo

6.3 Iteración 3

6.3.1 Evaluación del Tiempo

de Respuesta

6.3.2 Evaluación de la

Calidad de la Solución

6.3.3 Análisis de Resultados

6.3.4 Ajuste de Parámetros y

Función Objetivo

Figura 7. Desglose Fase 6: Evaluación de Rendimiento

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

12

7. Cierre del Proyecto

7.1 Elaboración Manual de

Usuarios

7.2 Capacitación a Usuarios

Figura 8. Desglose Fase 7: Evaluación de Rendimiento

3.2 Organigrama del Proyecto

Figura 9. Organigrama del Equipo de Proyecto

Encargado de Proyecto

Analista Programador 1

Analista Programador 2

Analista Programador 3

Auspiciador Corporativo

Auspiciador del Proyecto

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

13

3.3 Fichas de Tareas

Especificación de Tarea

Número: 1.1

Nombre: Análisis del Sistema Actual

Descripción: Descripción del sistema actual de generación de horarios

Personas: Encargado de Proyecto

Esfuerzo Estimado: 5 Día/Hombre

Duración: 5 días

Entregables: Documento de Especificación de Requerimientos

Predecesoras:

Especificación de Tarea

Número: 1.2

Nombre: Especificar Necesidades a Satisfacer

Descripción: Definición de problemas y necesidades no cubiertas del sistema actual

Personas: Analista Programador 1

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Especificación de Requerimientos

Predecesoras: 1.1 (FC)

Especificación de Tarea

Número: 1.3

Nombre: Estudio y Análisis Técnicas de Resolución Específicas

Descripción: Análisis de técnicas disponibles para modelar y resolver el problema de generación

de horarios.

Personas: Encargado de Proyecto

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Especificación de Requerimientos

Predecesoras: 1.2 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

14

Especificación de Tarea

Número: 1.4

Nombre: Evaluación y Definición Técnicas de Resolución a Aplicar

Descripción: Se evalúan las técnicas de modelamiento y resolución disponibles y se escoge la más

adecuada según las características del problema.

Personas: Encargado de Proyecto

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Especificación de Requerimientos

Predecesoras: 1.3 (FC)

Especificación de Tarea

Número: 2.1

Nombre: Definir Proceso de Generación de Horarios

Descripción: Se describe en detalle el proceso de generación de horarios

Personas: Analista Programador 1

Esfuerzo Estimado: 4 Día/Hombre

Duración: 4 días

Entregables: Documento de Análisis

Predecesoras: 1 (FC)

Especificación de Tarea

Número: 2.2

Nombre: Estudiar Procesos Organizacionales Asociados

Descripción: Se describen y establecen dependencias entre el proceso de generación de horarios y

los otros procesos organizacionales

Personas: Encargado de Proyecto

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Análisis

Predecesoras: 2.1 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

15

Especificación de Tarea

Número: 2.3

Nombre: Estudiar y Definir Datos de Entrada del Proceso

Descripción: Se describen en detalla los datos de entrada para el proceso de generación de horarios

Personas: Analista Programador 1

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Análisis

Predecesoras: 2.2 (FC)

Especificación de Tarea

Número: 2.4

Nombre: Definir Interfaces de Comunicación con los Sistemas Actuales

Descripción: Se describen en detalle las necesidad de comunicación con los sistemas existentes

Personas: Analista Programador 1

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Análisis

Predecesoras: 2.3 (FC)

Especificación de Tarea

Número: 3.1.1

Nombre: Diseñar algoritmo de asignación

Descripción: Se diseña el algoritmo de asignación de horarios, profesores y salas de clases

Personas: Encargado de Proyecto

Esfuerzo Estimado: 4 Día/Hombre

Duración: 4 días

Entregables: Documento de Diseño

Predecesoras: 2 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

16

Especificación de Tarea

Número: 3.1.2

Nombre: Diseñar algoritmo de optimización

Descripción: Se diseña el algoritmo de optimización para las asignaciones posibles y se define la

función objetivo

Personas: Encargado de Proyecto

Esfuerzo Estimado: 6 Día/Hombre

Duración: 6 días

Entregables: Documento de Diseño

Predecesoras: 3.1.1 (FC)

Especificación de Tarea

Número: 3.2

Nombre: Diseño Funcional

Descripción: Se diseña y refina el modelo de casos de uso general del sistema

Personas: Analista Programador 1

Esfuerzo Estimado: 5 Día/Hombre

Duración: 5 días

Entregables: Documento de Diseño

Predecesoras: 2 (FC)

Especificación de Tarea

Número: 3.3

Nombre: Diseño de Interfaces de Usuario

Descripción: Se diseñan los prototipos de interfaces de usuario gráficas del sistema

Personas: Analista Programador 2

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Diseño

Predecesoras: 2 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

17

Especificación de Tarea

Número: 3.4

Nombre: Diseño de Interfaces de comunicación

Descripción: Se diseñan las interfaces de comunicación con los sistemas existentes

Personas: Analista Programador 3

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Diseño

Predecesoras: 2 (FC)

Especificación de Tarea

Número: 3.5

Nombre: Diseñar Base de Datos

Descripción: Se diseña el modelo de la base de datos a implementar

Personas: Analista Programador 2

Esfuerzo Estimado: 4 Día/Hombre

Duración: 4 días

Entregables: Documento de Diseño

Predecesoras: 3.4 (FC)

Especificación de Tarea

Número: 3.6

Nombre: Diseño de Casos de Prueba

Descripción: Se diseñan los casos de prueba unitaria de caja negra para el sistema

Personas: Analista Programador 1

Esfuerzo Estimado: 3 Día/Hombre

Duración: 3 días

Entregables: Documento de Casos de Prueba

Predecesoras: 3.2 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

18

Especificación de Tarea

Número: 4.1

Nombre: Codificar algoritmo de asignación

Descripción: Se implementa en lenguaje C++ el algoritmo para asignación de salas, horarios y

profesores

Personas: Analista Programador 1

Esfuerzo Estimado: 4 Día/Hombre

Duración: 4 días

Entregables: Programa de asignación

Predecesoras: 3.1 (FC)

Especificación de Tarea

Número: 4.2

Nombre: Codificar algoritmo de optimización

Descripción: Se implementa en lenguaje C++ el algoritmo para optimización de la asignación

Personas: Analista Programador 1

Esfuerzo Estimado: 5 Día/Hombre

Duración: 5 días

Entregables: Programa de optimización

Predecesoras: 4.1 (FC)

Especificación de Tarea

Número: 4.3

Nombre: Implementar Base de Datos

Descripción: Se implementa el modelo de datos en SQL Server

Personas: Analista Programador 2

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Base de Datos

Predecesoras: 3.5 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

19

Especificación de Tarea

Número: 4.4

Nombre: Implementar Interfaces de usuario

Descripción: Se implementan los prototipos de interfaces

Personas: Analista Programador 3

Esfuerzo Estimado: 4 Día/Hombre

Duración: 4 días

Entregables: Interfaces del Sistema

Predecesoras: 3.5 (FC), 3.2 (FC)

Especificación de Tarea

Número: 4.5

Nombre: Implementar Interfaces de comunicación

Descripción: Se implementa la comunicación del sistema con los sistemas ya existentes

Personas: Analista Programador 3

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Interfaces de Comunicación

Predecesoras: 3.4 (FC)

Especificación de Tarea

Número: 5.1.1

Nombre: Prueba Unitaria Base de Datos

Descripción: Se prueba el rendimiento de la base de datos

Personas: Analista Programador 3

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: Documento de Pruebas Unitarias

Predecesoras: 4.3 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

20

Especificación de Tarea

Número: 5.1.2

Nombre: Prueba Unitaria Interfaces de Usuario

Descripción: Se evalúan la facilidad de uso de las interfaces

Personas: Analista Programador 2

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: Documento de Pruebas Unitarias

Predecesoras: 4.4 (FC)

Especificación de Tarea

Número: 5.1.3

Nombre: Prueba Unitaria Interfaces de Comunicación

Descripción: Se prueba la comunicación con los sistemas existentes

Personas: Analista Programador 2

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: Documento de Pruebas Unitarias

Predecesoras: 4.5 (FC)

Especificación de Tarea

Número: 5.2

Nombre: Corrección de errores

Descripción: Se corrigen los errores detectados en las pruebas unitarias

Personas: Analista Programador 2

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables:

Predecesoras: 5.1 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

21

Especificación de Tarea

Número: 5.3

Nombre: Pruebas de Integración

Descripción: Se prueba la integración de los componentes del sistema

Personas: Analista Programador 2

Esfuerzo Estimado: 2 Día/Hombre

Duración: 2 días

Entregables: Documento de Pruebas del Sistema

Predecesoras: 5.2 (FC)

Especificación de Tarea

Número: 5.4

Nombre: Pruebas del Sistema

Descripción: Se prueba el sistema completo

Personas: Analista Programador 2

Esfuerzo Estimado: 5 Día/Hombre

Duración: 5 días

Entregables: Documento de Pruebas del Sistema

Predecesoras: 5.3 (FC)

Especificación de Tarea

Número: 6.1.1

Nombre: Evaluación Tiempo de Respuesta

Descripción: Se evalúa el tiempo de respuesta del sistema para la generación de horarios

Personas: Analista Programador 3

Esfuerzo Estimado: 0,5 Día/Hombre

Duración: 0,5 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 4.2 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

22

Especificación de Tarea

Número: 6.1.2

Nombre: Evaluación Calidad de la Solución

Descripción: Se evalúa la calidad de la solución optima generada

Personas: Analista Programador 3

Esfuerzo Estimado: 0,5 Día/Hombre

Duración: 0,5 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 4.2 (FC)

Especificación de Tarea

Número: 6.1.3

Nombre: Análisis de Resultados

Descripción: Se analizan los resultados obtenidos en cuanto a tiempo de respuesta y calidad

Personas: Analista Programador 3

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.1.1 (FC), 6.1.2 (FC)

Especificación de Tarea

Número: 6.1.4

Nombre: Ajuste de Parámetros y Función Objetivo

Descripción: Se ajustan los parámetros del algoritmo de asignación y/o se modifica la función

objetivo

Personas: Analista Programador 1

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.1.3 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

23

Especificación de Tarea

Número: 6.2.1

Nombre: Evaluación Tiempo de Respuesta

Descripción: Se evalúa el tiempo de respuesta del sistema para la generación de horarios

Personas: Analista Programador 3

Esfuerzo Estimado: 0,5 Día/Hombre

Duración: 0,5 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.1.4 (FC)

Especificación de Tarea

Número: 6.2.2

Nombre: Evaluación Calidad de la Solución

Descripción: Se evalúa la calidad de la solución optima generada

Personas: Analista Programador 3

Esfuerzo Estimado: 0,5 Día/Hombre

Duración: 0,5 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.1.4 (FC)

Especificación de Tarea

Número: 6.2.3

Nombre: Análisis de Resultados

Descripción: Se analizan los resultados obtenidos en cuanto a tiempo de respuesta y calidad

Personas: Analista Programador 3

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.2.1 (FC), 6.2.2 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

24

Especificación de Tarea

Número: 6.2.4

Nombre: Ajuste de Parámetros y Función Objetivo

Descripción: Se ajustan los parámetros del algoritmo de asignación y/o se modifica la función

objetivo

Personas: Analista Programador 1

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.2.3 (FC)

Especificación de Tarea

Número: 6.3.1

Nombre: Evaluación Tiempo de Respuesta

Descripción: Se evalúa el tiempo de respuesta del sistema para la generación de horarios

Personas: Analista Programador 3

Esfuerzo Estimado: 0,5 Día/Hombre

Duración: 0,5 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.2.4 (FC)

Especificación de Tarea

Número: 6.3.2

Nombre: Evaluación Calidad de la Solución

Descripción: Se evalúa la calidad de la solución optima generada

Personas: Analista Programador 3

Esfuerzo Estimado: 0,5 Día/Hombre

Duración: 0,5 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.2.4 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

25

Especificación de Tarea

Número: 6.3.3

Nombre: Análisis de Resultados

Descripción: Se analizan los resultados obtenidos en cuanto a tiempo de respuesta y calidad

Personas: Analista Programador 3

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: 6.3.1 (FC), 6.3.2 (FC)

Predecesoras:

Especificación de Tarea

Número: 6.3.4

Nombre: Ajuste de Parámetros y Función Objetivo

Descripción: Se ajustan los parámetros del algoritmo de asignación y/o se modifica la función

objetivo

Personas: Analista Programador 1

Esfuerzo Estimado: 1 Día/Hombre

Duración: 1 día

Entregables: Documento de Evaluación y Ajustes

Predecesoras: 6.3.3 (FC)

Especificación de Tarea

Número: 7.1

Nombre: Elaboración Manual de usuario

Descripción: Se desarrolla el documento “manual de uso del sistema”

Personas: Analista Programador 2

Esfuerzo Estimado: 3 Día/Hombre

Duración: 3 días

Entregables: Manual de Usuario

Predecesoras: 5 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

26

Especificación de Tarea

Número: 7.2

Nombre: Capacitación de usuarios

Descripción: Se capacita a los usuarios del sistema para el uso de este

Personas: Encargado de Proyecto

Esfuerzo Estimado: 5 Día/Hombre

Duración: 5 días

Entregables:

Predecesoras: 7.1 (FC)

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

27

4. Plan de Riesgos

4.1 Lista de Riesgos Ranking Descripción P I E*

1 Esfuerzo de desarrollo e implementación de los algoritmos de resolución subestimado.

3 3 9

2 Las técnicas de resolución no son comprendidas por todo el equipo.

3 2 6

3 El personal académico de UDLA no entrega la información requerida a tiempo.

3 2 6

4 Las restricciones necesarias para modelar el problema se tornan inestables.

2 3 6

5 Esfuerzo de integración con los sistemas actuales subestimado.

3 2 6

6 El sistema ofrece un pobre rendimiento en calidad y tiempo de respuesta de las soluciones.

2 3 6

7 Se incorporan requerimientos adicionales.

3 2 6

8 La dirección de UDLA no entrega toda la información requerida para el modelamiento.

2 2 4

9 El proceso de generación de horarios no está bien definido.

2 2 4

10 Problemas de comunicación del lenguaje de programación con las bases de datos de UDLA.

1 3 4

11 Las técnicas de resolución escogidas no son las mejores para el problema en cuestión.

2 2 4

12 Dificultades de comunicación con el experto UDLA.

1 3 3

13 El sistema ofrece un nivel bajo de usabilidad.

2 1 2

* E=Exposición al Riesgo = P (Probabilidad del Riesgo) × I (Impacto o Severidad del Riesgo)

4.2 Gestión de Riesgos Descripción Mitigación Contingencia Responsable Esfuerzo de desarrollo e implementación de los algoritmos de resolución subestimado.

Se deberá capacitar al personal de programación en las técnicas a utilizar para el proyecto.

Se contratará personal adicional con experiencia en las técnicas de programación empleadas.

José Rubio

Las técnicas de resolución no son comprendidas por todo el equipo.

Se dictarán charlas y se entregará material de estudio acerca de las técnicas a todo el equipo del proyecto.

Se contratará un asesor experto en las técnicas de resolución empleadas.

José Rubio

El personal académico de

Se debe comprometer e informar al personal académico acerca de la

Se emplea información recopilada de semestres anteriores

Felipe Leighton

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

28

UDLA no entrega la información requerida a tiempo.

realización del proyecto. proporcionada por el auspiciador del proyecto.

Las restricciones necesarias para modelar el problema se tornan inestables.

Se debe comprometer al auspiciador corporativo y al auspiciador del proyecto en la definición de restricciones.

Se emplean restricciones empleadas en semestres anteriores proporcionadas por el auspiciador del proyecto

José Rubio

Esfuerzo de integración con los sistemas actuales subestimado.

Se debe realizar un análisis detallado de los sistemas existentes.

Se debe redefinir el alcance del proyecto.

José Maurerira

El sistema ofrece un pobre rendimiento en calidad y tiempo de respuesta de las soluciones.

Se debe realizar un análisis detallado de las técnicas de optimización disponibles.

Se vuelve a iterar sobre la fase de construcción y pruebas del algoritmo de optimización para obtener mejores resultados.

José Maureira

Se incorporan requerimientos adicionales.

El alcance del proyecto se establece en conjunto con el auspiciador del proyecto y el auspiciador corporativo.

Se modifica el alcance del proyecto y se estima el esfuerzo requerido para incluir los nuevos requerimientos.

José Rubio

La dirección de UDLA no entrega toda la información requerida para el modelamiento.

Se debe comprometer al auspiciador corporativo del proyecto con la entrega de la información requerida.

No Aplica Felipe Leighton

El proceso de generación de horarios no está bien definido.

Se debe analizar el sistema actual de generación de horarios.

No Aplica José Rubio

Problemas de comunicación del lenguaje de programación con las bases de datos de UDLA.

Se estudia la compatibilidad de las bases de datos de UDLA con las herramientas de desarrollo a utilizar en el proyecto.

No Aplica José Maureira

Las técnicas de resolución escogidas no son las mejores para el problema

Se debe realizar un análisis previo detallado del problema y de las técnicas de resolución disponibles.

No Aplica José Rubio

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

29

en cuestión. Dificultades de comunicación con el experto UDLA.

El auspiciador del proyecto y el encargado del proyecto establecen lazos fuertes de comunicación y confianza antes del comienzo del mismo.

No aplica José Rubio

El sistema ofrece un nivel bajo de usabilidad.

Se calendarizan pruebas de usabilidad para las interfaces de usuario.

No aplica José Maureira

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

30

5. Programación

5.1 Carta Gantt

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

31

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

32

5.2 Diagrama de Precedencias

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

33

5.3 Diagrama de Cálculo de Fechas y Camino Crítico

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

34

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

35

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

36

5.4 Diagramas de Uso de Recursos

• Encargado de Proyecto

• Analista Programador 1

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

37

• Analista Programador 2

• Analista Programador 3 •

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

38

6. Estimación

6.1 Puntos de Función Entradas Externas: Cantidad de Alumnos Preinscritos, Profesores, Salas, Horarios, Mallas curriculares.

Salidas Externas: Asignación de Horarios.

Consultas: No Aplica.

Archivos Lógicos Internos: Profesores, Profesor-Asignatura, Asignatura-Salas, Asignatura-Horario.

Archivos de Interfaz Externos: Navegador Académico.

Simple Media Compleja

Cantidad *Peso Cantidad *Peso Cantidad *Peso

Total

(PFSA)

Entradas 1 *3 3 *4 1 *6 21

Salidas 0 *4 0 *5 1 *7 7

Consultas 0 *3 0 *4 0 *6 0

Arch.Lógicos 1 *7 3 *10 0 *15 37

Arch.Interfaz 0 *5 1 *7 0 *10 7

72

Valores de ajuste de Complejidad Escala de

Complejidad

1 Comunicación de datos 3

2 Procesamiento Distribuido 3

3 Rendimiento 5

4 Conf. Operacional Compartida 0

5 Tasa de Transacciones 0

6 Entrada de datos en línea 5

7 Facilidad de uso de la aplicación 3

8 Actualizaciones en línea 0

9 Complejidad de procesamiento 5

10 Reusabilidad del código 3

11 Contempla la Conversión e Instalación 0

12 Facilidades Operacionales 0

13 Instalaciones Múltiples 1

14 Facilidad de cambio 3

Valor de ajuste de Complejidad (FC) 31

Tabla 1.Calculo de Puntos de Función sin Ajustar y Factores de Complejidad

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

39

PFA = PFSA × (0,65 + (0,01 × FC) = 72 × (0,65 + (0,01 × 31) = 72 × (0,65 + 0,31) = 72 × 0,96 = 69,12

LCOT (Líneas de Código Totales) = PFA × Promedio Líneas (Lenguaje C++) = 69,12 × 53 = 3663,36

KDSI (Miles de Líneas de Código) = 4

6.2 Cocomo El tipo de COCOMO utilizado para esta estimación fue el del tipo básico Orgánico.

Proyecto de Software a b c D

Orgánico 2,4 1,05 2,5 0,38

Tabla 2.Parámetros para Cocomo según Proyecto Orgánico

KDSI = Obtenido en el Punto de función = 4

E (Esfuerzo) = a × (KDSI ^ b) = 2,4 × (4 ^ 1,05)= 10,28 (personas * mes)

T (Tiempo) = c × (E ^ d) = 2,5 × (10,28 ^ 0,38) = 6 (meses)

P (Cantidad de Personas) = E/T =10,28 / 6 = 1,71 = 2

Administración de proyectos Informáticos

Sistema de Generación de Horarios para Cursos Universitarios

40

7. Conclusión La experiencia señala que la administración de Proyectos definitivamente es una ventaja competitiva para las

empresas que la utilicen formalmente, considerando ésta como la aplicación de conocimientos, habilidades,

herramientas y técnicas, orientados a un conjunto de actividades necesarias para cumplir con los

requerimientos de un proyecto específico.

Ventaja competitiva, debido a que permite a las organizaciones incrementar su nivel de eficacia y eficiencia

(productividad), maximizando el uso de sus recursos financieros, materiales y de capital humano, dentro de

los tiempos establecidos para el desarrollo del producto o servicio, sobre todo en el ámbito de los proyectos de

innovación tecnológica.

Universidad de las Américas está gradualmente reconociendo la necesidad de especialización y está valorando

cada vez más el colocar gerentes de proyecto profesionales al frente de sus proyectos de innovación. Sin

embargo, la realización y administración de proyectos requiere una visión integral que vincule los factores

que determinan el éxito o fracaso del mismo. Dichos factores son varios y su incidencia en los proyectos varía

de un proyecto a otro.

A pesar de todos los esfuerzos por estandarizar y aplicar técnicas de gestión de proyectos, la probabilidad de

que finalicen con éxito sigue siendo muy baja. La implantación de un Sistema de Calidad, que efectivamente

se aplique, se mantenga y se revise periódicamente, ayudará a prevenir y controlar los problemas y los riesgos

habituales de los proyectos informáticos, aunque no será una garantía del éxito de los mismos. Una clave

importante sigue siendo hoy en día el recurso humano y muy especialmente la experiencia del líder de

proyectos.

Es un hecho que aún necesitamos seguir preguntándonos, a pesar de todo el trabajo realizado, acerca de ¿será

exitoso este proyecto informático? y hasta que no se haya concluido el proyecto, se debe seguir ajustando esta

planificación, seguir investigando y corrigiendo los errores posibles, registrando las verdaderas causas que

propiciaron dichos errores con el objeto de que no se produzcan en el futuro y en otros proyectos de esta

naturaleza.