Cf Campothesis Cv

download Cf Campothesis Cv

of 74

Transcript of Cf Campothesis Cv

  • 7/24/2019 Cf Campothesis Cv

    1/74

    UNIVERSIDAD DE CHILEFACULTAD DE CIENCIAS FSICAS Y MATEMTICASDEPARTAMENTO DE CIENCIAS DE LA COMPUTACIN

    DISEO E IMPLEMENTACION DE UN

    SISTEMA DE PLANIFICACION DE PERSONALMEMORIA PARA OPTAR AL TTULO DE INGENIERO CIVIL EN COMPUTACIN

    CSAR MAURICIO CAMPOS VALENZUELA

    PROFESOR GUA:

    SERGIO OCHOA DELORENZI

    MIEMBROS DE LA COMISIN:

    CRISTIAN CORTS CARRILLO

    CECILIA BASTARRICA PIEYRO

    SANTIAGO DE CHILE

    2013

  • 7/24/2019 Cf Campothesis Cv

    2/74

    ii

    RESUMEN DE LA MEMORIA PARA OPTAR AL

    TITULO DE: Ingeniero Civil en Computacin

    Por: Csar Mauricio Campos Valenzuela

    Fecha: 03-09-2013

    Profesor Gua: Sergio Ochoa Delorenzi

    DISEO E IMPLEMENTACIN DE UN SISTEMA DE PLANIFICACIN DE PERSONAL

    Organizar los turnos de los empleados en regmenes de trabajo rotativos, es uno de los

    grandes temas a resolver para las empresas que mantienen tal modalidad de trabajo, debido a

    que esto requiere experiencia tanto para predecir las necesidades de personal a cierta hora,

    como para asignar turnos que cumplan con las restricciones necesarias. Dichas restricciones,

    que pueden ser legales, sindicales o provenir de necesidades especficas de cada empleado o

    tarea, deben ser satisfechas completamente. A medida que crece el grupo humano al que se

    desea organizar, se vuelve cada vez ms complicado poder cumplir con tales requerimientos a

    cabalidad, especialmente si dicha labor se realiza mediante un proceso manual. Actualmente, laempresa Andes Airport Services se encuentra en el punto en que sus procedimientos de

    asignacin de turnos estn comenzando a mostrar problemas. El tiempo de bsqueda de una

    solucin alcanza las tres semanas, y no cumple con todas de las restricciones pertinentes.

    Este problema surge cuando el tamao o la complejidad de la entrega de turnos supera la

    capacidad manual de asignacin. Para solucionar lo anterior existen tanto modelos matemticos

    especficos, como software especializado. Sin embargo estas soluciones son o bien costosas o

    bien necesitan de especialistas capaces de ingresar y leer los resultados obtenidos. Es por esto

    que la empresa busc desarrollar una solucin tecnolgica hecha a la medida de susnecesidades.

    La solucin presentada en esta memoria corresponde a un sistema que permite realizar las

    asignaciones de personal considerando turnos, cargos y restricciones legales, sindicales y de

    RRHH. Adems, el sistema es capaz de entregar la asignacin completa de cada trabajador para

    un mes dado, en tiempos de ejecucin razonables. El resultado de esta asignacin es editable y

    se acopla al proceso actual de entrega de turnos para los empleados de la empresa. Cabe hacer

    notar que la asignacin de turnos propiamente tal, es realizada por un modelo matemtico

    ajeno al alcance de la memoria.

    Para lograr esta solucin, se desarroll una aplicacin Web utilizando las tecnologas

    provistas por Oracle ADF y estructuras de datos para el manejo de la informacin. Como

    resultado del uso de este sistema se redujo el tiempo de generacin de los turnos y su tiempo

    de edicin, sin descuidar la calidad de vida de los trabajadores.

  • 7/24/2019 Cf Campothesis Cv

    3/74

    iii

    A todos los que me apoyaron durante

    el tiempo que me tomo terminar mi

    carrera: mi familia, mis amigos, los que

    estn y los que se fueron, y a mi pareja.

    Muchas gracias, si no fuera por su

    ayuda, jams hubiese llegado a esto.

  • 7/24/2019 Cf Campothesis Cv

    4/74

    iv

    Tabla de Contenido

    1.

    Introduccin .................................................................................................... 1

    1.1.

    Justificacin .......................................................................................................................... 2

    1.2. Objetivos Generales ............................................................................................................. 3

    2.

    Antecedentes .................................................................................................. 4

    2.1.

    Definiciones .......................................................................................................................... 4

    2.1.1. Rostering ....................................................................................................................... 4

    2.1.2.

    Indicadores del roster .................................................................................................... 5

    2.1.3. Framework a utilizar ..................................................................................................... 6

    2.1.4. Condiciones del proyecto ............................................................................................... 6

    2.2. Sistema Actual ...................................................................................................................... 7

    2.3.

    Restricciones ......................................................................................................................... 8

    2.4.

    Software en el Mercado ..................................................................................................... 10

    2.5.

    Solver Existentes ................................................................................................................. 11

    2.6. Modelo de Optimizacin Utilizado ..................................................................................... 11

    3.

    Concepcin de la Solucin .......................................................................... 13

    3.1.

    Principales Requerimientos de la Solucin ........................................................................ 13

    3.2.

    Diagrama de Flujo de la Solucin ....................................................................................... 14

    3.3. Arquitectura del Sistema .................................................................................................... 16

    3.4. Arquitectura Lgica ............................................................................................................ 17

    3.5.

    Diagrama de Despliegue ..................................................................................................... 18

    3.6.

    Modelo de Datos ................................................................................................................ 19

    4.

    Diseo Detallado de la Solucin ................................................................. 22

    4.1. Diseo Detallado de Mdulos ............................................................................................ 22

    4.1.1. MD001: Importar Datos .............................................................................................. 22

    4.1.2. MD002: Edicin de Datos ............................................................................................ 22

    4.1.3. MD003: Reportera ...................................................................................................... 23

    4.1.4. MD004: Exportar Datos ............................................................................................... 24

    4.1.5. MD005: Generar Rol .................................................................................................... 24

    4.1.6. MD006: Editar Rol ....................................................................................................... 25

    4.2.

    Diseo Detallado de Navegacin ........................................................................................ 26

    5.

    Implementacin de la Solucin ................................................................... 29

    5.1.

    Configuracin Inicial ........................................................................................................... 29

    5.2. Proceso de generacin de roster ........................................................................................ 29

    6.

    Evaluacin Preliminar de la Solucin ......................................................... 34

    7.

    Conclusiones y Trabajo a futuro ................................................................. 38

  • 7/24/2019 Cf Campothesis Cv

    5/74

    v

    8.

    Bibliografa y Referencias ............................................................................ 40

    Anexos: ................................................................................................................ 41

    A. Casos de Uso. ......................................................................................................................... 41

    B.

    Interfaces de Usuario ............................................................................................................. 45

    C.

    Diccionario de Datos .............................................................................................................. 53

    D.

    Diagrama Base de Datos ........................................................................................................ 63

    E. Formato de los archivos de entrada de datos ....................................................................... 64

    Informacin de lgica de negocios de Andes. ............................................................................ 64

    Archivos de entrada de datos mensuales .................................................................................. 65

  • 7/24/2019 Cf Campothesis Cv

    6/74

    1

    1. Introduccin

    El problema de organizar los turnos es una de las dificultades que deben enfrentar todas

    aquellas organizaciones que trabajan con personas en turnos rotativos. Junto con cumplir las

    demandas de entrega de servicio, de calidad y prontitud, en el diseo de los turnos debe

    tenerse en consideracin tambin las restricciones legales, sindicales, de capacidad de trabajo

    de la organizacin as como tambin la calidad de la jornada laboral de los empleados. El trabajo

    de generar estos turnos (o roles como se les conoce) es conocido como rostering1.

    Andes Airport Services2es la mayor empresa encargada de las operaciones en tierra (Ground

    Handling) del aeropuerto Arturo Merino Bentez de Santiago, representando aproximadamente

    el 80% de las operaciones del terminal; adems, esta empresa est a cargo de las operaciones

    en tierra de LAN Airlines en los aeropuertos de Guayaquil y Quito en Ecuador. Estas actividades

    consideran el manejo de maletas, monitoreo de vuelos y el movimiento de pasajeros y aviones

    en tierra. En una empresa de este tamao, con aproximadamente unos 800 empleados slo enel aeropuerto de Santiago, la generacin de turnos 24/7 es de suma importancia y criticidad.

    Actualmente el proceso de rostering para los 800 empleados de Andes en el aeropuerto de

    Santiago es realizado por una persona. Esta persona usa gran parte de su tiempo diario y del

    mes en generar los turnos para cada uno de los cargos, realizando las asignaciones de manera

    manual usando una planilla Excel. Luego, junto con el rea de manejo de personal comparan el

    roster propuesto, contra la capacidad necesaria para llevar a cabo las operaciones diarias.

    Finalmente se entregan los turnos a los empleados.

    El objetivo de Andes para hacer esta labor ms eficiente consiste en investigar y desarrollaruna herramienta tecnolgica que les permita generar estos rosters de manera automtica,

    optimizando sus recursos humanos. La complejidad de este problema radica en que su solucin

    consiste en resolver un problema de programacin lineal entera. La Programacin Lineal es un

    procedimiento de modelamiento matemtico, mediante el cual se busca el ptimo de una

    funcin (llamada objetivo) dentro de un espacio acotado por un sistema de ecuaciones y

    desigualdades (restricciones). En este caso, las variables de decisin deben tomas valores

    enteros, lo que hace este problema mucho ms difcil de resolver.

    Actualmente existe software, llamados comnmente solvers

    3

    , capaces de resolver estosproblemas de programacin matemtica en forma eficiente. Sin embargo, estos requieren

    conocimientos avanzados de programacin y modelamiento matemtico, la entrada de datos

    1Del Ingls: roster planilla

    2http://www.andesairportservices.com/es/

    3 Ejemplos de estos productos son: CPLEX, Gurobi, MOSEK, CBC (COIN-OR Branch and Cut), Microsoft Solver

    Foundation.

  • 7/24/2019 Cf Campothesis Cv

    7/74

    2

    utilizada es poco conveniente y sus resultados no son evidentes para aquellos que no tienen

    conocimientos en su utilizacin, lo que los vuelve poco apropiados para una empresa. Es por

    esto que se requiere un sistema capaz de interactuar tanto con el usuario final como con el

    solver, manejando el flujo de datos y entregando herramientas para la edicin de roles y su

    gestin.

    Existen tambin, software comerciales diseados para la generacin de roles. Sin embargo,

    por la cantidad de restricciones as como por los resultados esperados del modelo, es

    fundamental y parte central de este proyecto de Rostering, la creacin de un sistema

    computacional capaz de manejar tanto la informacin (data) que ingresa as como los resultados

    finales.

    1.1. Justificacin

    El proceso completo de rostering para Andes toma aproximadamente 20 das, depende en

    gran medida de las disponibilidades horarias de cada una de las personas involucradas, y no

    admite ningn tipo de administracin o gestin de los roles generados. Adems esta solucin no

    permite la obtencin de reportes peridicos de eficacia, de cantidad de das libres utilizados o

    de sobre/baja utilizacin de la fuerza laboral disponible.

    El sistema que se desarroll en esta memoria consiste en una interfaz de captura de datos a

    la que se le ingresa informacin desde el rea de RRHH de Andes y los requerimientos de

    personal activo cada hora, permitiendo su edicin y manejo para que, finalmente, sea generado

    un roster mensual completo optimizando un problema de programacin lineal entera. Este

    problema tiene como restricciones las capacitaciones del personal y normativas

    legales/sindicales y busca optimizar la cantidad de horas trabajadas, el cumplimiento de dichasnormativas y una mejora en la calidad de vida del personal.

    El sistema propuesto afecta a un grupo importante de personas, involucra a un equipo de

    trabajo multidisciplinario, y aborda un problema real y concreto. El rea de la computacin ms

    involucrada en este proyecto ser la ingeniera de software, pues ste es bsicamente un

    proyecto de anlisis, diseo y construccin de software. El modelamiento y optimizacin de

    procesos ser generado por especialistas, y ser considerado un mdulo cerrado para el

    proceso de desarrollo del sistema. Tambin se deber trabajar con el personal de Andes para

    lograr identificar todos los requerimientos y condiciones de aceptacin.

    Se espera que el sistema provea tanto una mejora de la calidad de vida de los trabajadores,

    as como tambin un aumento en la eficiencia de la reparticin de turnos de la empresa. En el

    desarrollo y ejecucin del sistema, existieron varios desafos tcnicos y conceptuales

    relacionados:

    Investigar los problemas de programacin lineal-entera y su modelacin.

  • 7/24/2019 Cf Campothesis Cv

    8/74

    3

    Comprender el uso de los solvers actuales.

    Estudiar el desarrollo de interfaces para asegurar una buen usabilidad del software final.

    Disear e implementar los mecanismos de interaccin entre un sistema orientado a

    objetos y un solver de problemas lineales-enteros.

    Buscar formas eficientes de procesar la informacin proporcionada.

    Solucionar problemas de compatibilidad con bases de datos existentes

    El manejo de un capital de trabajo humano representado por ayuda externa contratada

    para la programacin.

    Preparacin de documentos para cumplir con estndares LAN para proyectos de

    software.

    1.2. Objetivos Generales

    Disear e implementar un sistema que permita manejar la informacin necesaria para elproceso de rostering de una empresa con turnos rotativos. Los objetivos especficos que se

    desprenden del objetivo general son los siguientes:

    Implementar herramientas que permitan la comunicacin entre las estructuras de datos

    generadas y el modelo matemtico para la obtencin de resultados.

    Disear e implementar estructuras para manejar la informacin necesaria para generar

    el rostering.

    Disear y generar interfaces de usuario que permitan realizar de manera cmoda las

    tareas asociadas al proceso de rostering, tales como: edicin de datos, modificacin deturnos y asignaciones de capacitaciones y/o vacaciones.

    Realizar pruebas de concepto en escenarios controlados, para validar el funcionamiento

    del sistema desarrollado.

  • 7/24/2019 Cf Campothesis Cv

    9/74

    4

    2. Antecedentes

    Como preparacin a la creacin de arquitecturas e interfaces preliminares para un futuro

    sistema, se inici un estudio del estado del arte de los procesos y aplicaciones para rostering, as

    como tambin una investigacin del proceso actual de generacin de roles dentro de Andes y

    del funcionamiento de solvers. Los resultados de dichas indagaciones se presentan acontinuacin.

    2.1. Definiciones

    Para entender de mejor manera el trabajo realizado es necesario entender, en primer lugar,

    en qu consiste el rostering, las herramientas que se utilizaran y las condiciones en las que se

    trabaj.

    2.1.1. Rostering

    El problema de calendarizar los turnos para un grupo de personas es conocido en la literatura

    como Personnel Schedullingo Personnel Rostering, dependiendo del horizonte de planificacin

    que se aplique. En el contexto de esta memoria, se utilizar el trmino rosteringpara referirse al

    proceso de asignar a cada persona un esquema de turnos que debe cumplir durante un mes,

    mientras que roster o rolse referir al resultado de dicho proceso.

    Este problema, que a primera vista puede parecer simple, rpidamente gana complejidad en

    la medida que aumenta la cantidad de personas a planificar y con ellas las combinaciones

    posibles de soluciones. Otro factor que hace crecer la complejidad es la inclusin de

    restricciones y/o obligaciones especficas que se deban cumplir, como por ejemplo cuando

    existen habilidades especiales que pueden ser cubiertas por slo una fraccin del personal [1][2] [3].

    El tema de rostering es un problema sumamente estudiado por el rea de gestin de

    operaciones, pues corresponde a un importante tem al momento de buscar donde mejorar la

    eficiencia de una empresa. En las soluciones actuales se utilizan tanto software especializado

    como herramientas generales para manejar la generacin de roles. Un enfoque tpico para

    resolver problemas de este tipo es el uso de modelos de optimizacin matemtica, que

    corresponden a la representacin del problema a travs de relaciones matemticas, de acuerdo

    a una funcin objetivo que dependen de un grupo de variables que deben determinarse y cuya

    solucin corresponde a la configuracin ptima de turnos. Estos modelos en general son

    conocidos como problemas de programacin matemtica, y debido a su complejidad son

    resueltos por herramientas tecnolgicas llamadas solvers. Sin embargo, la solucin que entrega

    un solver a la funcin objetivo es, por defecto, un nmero real y el resultado del modelo es la

    configuracin ptima de turnos. Sin embargo, debido a la naturaleza del problema a resolver,

    slo nos interesan configuraciones donde las variables toman valores enteros. Sin esta

    restriccin, puede incluso ocurrir que se asignen fracciones de persona a fracciones de turnos, y

  • 7/24/2019 Cf Campothesis Cv

    10/74

    5

    es por este motivo que el modelo que se busca resolver es en verdad un problema de

    programacin lineal entera.

    2.1.2. Indicadores del roster

    Para identificar la calidad de una asignacin y si es o no aceptable, se utilizan una serie de

    indicadores o KPI (Key Performance Indicators). Estos indicadores son detallados en las

    siguientes tablas.

    Indicadores por persona Descripcin

    N de aperturas N Turnos de Apertura por persona

    N de tardes N Turnos de Tarde por persona

    N de noches N Turnos de Noche por persona

    N de libres N de Das libres por persona

    N de salientes N de Das Salientes por persona

    N de Domingos N de domingos Libres por persona

    N de Libres consecutivos. N de veces que la persona tiene al menos dos libres

    consecutivos

    Quiebres N de cambios de turnos sin anteponer Libre por persona

    N de das libres por semana N de libres en cada semana

    Equilibrio Desviacin respecto distribucin equilibrada de turnos

    Apertura/Tardes/Noche.

    Vacaciones N de Das de Vacaciones

    Capacitaciones N de das con cursos o capacitaciones.

    Indicadores por cargo Descripcin

    Subdotacin N de personas por debajo del personal requerido

    Sobredotacin N de personas por sobre el requerimiento de personal

    Cobertura % del requerimiento total que se satisface

    N Libres Promedio de das libres

    Equilibrio Nmero de personas en el cargo con asignacin equilibrada.

    Distribucin secuencias de

    libres

    Cantidad de personas que tiene 1,2,3,4 semanas con das

    libres seguidos

  • 7/24/2019 Cf Campothesis Cv

    11/74

    6

    Estadsticos por tipo de turno Mximo/mnimo y promedio para turnos tipo Apertura, Tarde

    y Noche

    2.1.3. Framework a utilizar

    Para la realizacin del sistema se utiliz el Oracle Application Development Framework

    (Oracle ADF) [4] [5] para facilitar el trabajo tanto con base de datos Oracle como con las pginas

    dinmicas y tablas editables necesarias para los usuarios, esto pues este framework permite la

    generacin de vistas y controladores para la obtencin de datos de manera rpida gracias al IDE

    integrado de Oracle: JDeveloper.

    Oracle ADF es un framework comercial basado en el lenguaje Java para la creacin de

    aplicaciones empresariales. Basado principalmente en un enfoque visual y declarativo para la

    construccin de las aplicaciones, utiliza el patrn MVC y soporta integracin con diversas

    tecnologas, tales como EJB, Web Services, JavaBeans, ADF Business Component, JavaServer

    Faces y Struts. Provee componentes integrados con AJAX para obtener una experiencia de uso

    fluida y libre de refrescos en pgina. Est orientado a componentes y muy ligado a JavaServerFaces, permitiendo la generacin simple de pginas con consultas y filtros.

    Se escogi este framework por una serie de razones. La ms importante de ellas corresponde

    a que LAN, pese a no seguir ningn estndar respecto a frameworks externos, posee licencias

    para servidores y bases de datos Oracle, adems de entregar Documentos con Estndares para

    ellos. Esto permite que el grueso de la estructura a generar (JavaBeans, tablas y conectores) se

    apegue a los requerimientos de LAN para los desarrolladores externos. Otra de las razones es

    que gracias al enfoque declarativo del framework y su nfasis en el patrn MVC, los constantes

    cambios que los clientes exigan tanto en manejo de datos como de interfaces se podan

    generar de manera rpida y eficiente.

    2.1.4. Condiciones del proyecto

    Andes Airport Services corresponde a una empresa filial de LAN por lo que cualquier

    herramienta tecnolgica que se desee implementar debe, en primer lugar, obedecer los

    alineamientos y estndares que LAN requiere para sus proyectos de software. Sin embargo,

    debido a la naturaleza de este producto, el cual engloba a una herramienta de investigacin y

    desarrollo matemtico y modelacin, se decidi que la solucin a desarrollar obedecera al

    trmino prueba de concepto al interior de LAN, una figura creada para comprobar la

    factibilidad de un proyecto sin entrar al flujo normal de desarrollo. Este trmino se traduce enuna mayor libertad al momento de planear y desarrollar la aplicacin pues no se deben

    presentar papeles o documentacin a LAN en ningn momento, teniendo la capacidad de

    modificar objetivos y entregas, mientras se tiene el acceso a las mquinas y a las arquitecturas

    de desarrollo al interior de LAN. Sin embargo, por no tratarse de un desarrollo que siga las vas

    normales, el software no puede tener ningn tipo de conexin directa con los sistemas legados

    en Andes, incluyendo sus bases de datos. Se debe aclarar, sin embargo, que la solucin aqu

  • 7/24/2019 Cf Campothesis Cv

    12/74

    7

    presentada obedece a las convenciones existentes de LAN para sus proyectos de software y que

    la documentacin, pese a no ser requerida, fue entregada satisfactoriamente.

    2.2. Sistema Actual

    Actualmente el proceso es realizado por un administrativo utilizando el software Microsoft

    Office: Excel, quin demora hasta veinte das en realizar la planificacin de todo el personal. Elproceso se describe en la siguiente figura.

    Figura 1: Proceso actual de Rostering

    1.

    El administrativo mantiene la informacin necesaria sobre el personal en sus sistemas

    (planillas Excel) y la va actualizando en la medida que Recursos Humanos le enve nueva

    informacin va correo electrnico respecto de:

    a.

    Dotacin Vigente.

    b.

    Capacitaciones, licencias mdicas y habilitaciones vigentes.

    c.

    Vacaciones programadas.d. Grupos de trabajo pre-formado.

    2. Para cada cargo, un funcionario a la vez, se procede a hacer su planificacin mensual,

    intentando asegurar que se cumpla:

    a.

    El requerimiento de personal (por hora) presupuestado para el mes.

    b.

    Normativas legales.

    c. Acuerdos sindicales.

  • 7/24/2019 Cf Campothesis Cv

    13/74

    8

    d. Requisitos de turnos especiales de algn operario.

    El algoritmo que sigue el planificador para cada operario es el siguiente:

    a. Fijar vacaciones y capacitaciones

    b. Llenar para cada da de acuerdo a las preferencias de turnos especiales.

    c. Modificar las asignaciones realizadas hasta alcanzar una solucin que cumpla

    adecuadamente con el presupuesto y demanda de personal de cada turno.

    3.

    Mientras se est realizando la planificacin, llegan nuevos requerimientos desde RR.HH.

    (va correo electrnico), los cuales implican revisar las asignaciones ya realizadas.

    4. Una vez terminada la planificacin, el administrativo y el personal del rea de

    Operaciones proceden a revisarla, tomando en consideracin los ajustes sobre la

    demanda de personal en servicio. Este proceso suele modificar considerablemente el

    roster planificado anteriormente.

    5.

    Finalmente se confeccionan las pautas diarias y se imprime el rol de cada funcionario.

    Figura 2: Ejemplo de planilla del rol para un cargo. Cada fila corresponde a un operario, cada columna a un da.

    2.3. Restricciones

    El objetivo del proceso de rostering es cubrir a cabalidad la demanda de personal que serequiere en cada turno. Sin embargo, los roles que se deben generar deben estar sujetos a una

    serie de restricciones. Estas condiciones, que son impuestas por distintas fuentes, tienen cierta

    flexibilidad para ser cumplidas: algunas deben ser observadas a cabalidad mientas que otras

    quedan a discrecin del planificador. Se detallan a continuacin estas restricciones, detallando

    la flexibilidad asociada a cada una de ellas.

  • 7/24/2019 Cf Campothesis Cv

    14/74

    9

    Cdigo del trabajo:

    Las condiciones que impone el cdigo del trabajo al proceso de rostering deben ser

    cumplidas, en su mayora, a cabalidad. La nica en la que existe cierta flexibilidad es la que hace

    referencia a la cantidad mnima de domingos al mes (la norma corresponde a 2 domingos libres

    al mes), pues debido a un acuerdo con el sindicato de trabajadores es posible solamente 1

    domingo legal.Descripcin Flexibilidad

    Cantidad de domingos libres por mes Media

    Descanso mnimo entre turnos de trabajo Ninguna

    Mximos das seguidos que se puede trabajar Ninguna

    Mximo de horas extras diarias Ninguna

    Distribucin de la jornada de trabajo Ninguna

    Vacaciones legales Ninguna

    Ausentismo Legal Ninguna

    Fines de semana libres por mes Ninguna

    Nmero de das que puede trabajar en una semana Ninguna

    Nmero de das que puede descansar en una semana Ninguna

    Mximo de horas de trabajo legales Ninguna

    Segn contrato:

    El cargo en el cual se asigna a un trabajador puede variar. Esto ocurre para los cargos que

    comparten capacitaciones y aunque ocurre rara vez, es uno de los factores libres con los que

    puede trabajar el planificador.

    Descripcin Flexibilidad

    Cargo al que pertenece el empleado Alta

    Sindicales:

    Las normas sindicales, al igual que las normas legales, son restricciones que deben sercumplidas a cabalidad.

    Descripcin Flexibilidad

    Libres asignados al Comit paritario Ninguna

    Mxima cantidad de noches seguidas trabajables Ninguna

  • 7/24/2019 Cf Campothesis Cv

    15/74

    10

    Turnos asignados despus de trabajar el mx. de noches Ninguna

    Hora de ingreso despus de trabajar el mx. de noches Ninguna

    Recursos Humanos:

    Las restricciones impuestas por el rea de Recursos Humanos de la empresa son las

    condiciones ms flexibles que se le imponen al proceso de rostering y algunos corresponden, almismo tiempo, a ciertos indicadores para identificar la calidad subjetiva de un roster.

    Descripcin Nivel de accin Flexibilidad

    Ausentismo programable Planificado especficamente por empleado Media

    Preferencia por turnos y das Planificado especficamente por empleado Alta

    2 libres continuos al mes Comn a todos los empleados Baja

    Calidad de vida Comn a todos los empleados Media

    2.4. Software en el Mercado

    Existen 2 tipos de soluciones de software que buscan resolver el problema de rostering. Por

    un lado existen las soluciones que slo buscan entregar herramientas para la asignacin de

    turnos realizada por personas. En su mayora, stos ofrecen una interfaz que permite visualizar

    las posibles asignaciones, y entregan la capacidad al usuario de utilizarlas para su personal. Estas

    soluciones son efectivas para problemas simples, como asignacin de turnos de garzones o de

    guardias. El segundo tipo de soluciones corresponden a aquellas que buscan generar por medios

    propios y sin la interaccin directa con un usuario, la asignacin para la planilla de empleados.

    Es este tipo de aproximacin lo que se busca en este trabajo.

    El problema de rostering para el personal de aeropuerto, ha sido estudiado

    mayoritariamente para cargos especficos y, en pocos casos, para un conjunto grande de cargos;

    los enfoques ms usuales para resolver los problemas de rostering son la programacin entera,

    la programacin por restricciones y heursticas especficas que son realizados, en algunos casos

    por consultoras externas o reas especficas de las empresas utilizando software a medida.

    Muchas de las actuales soluciones de software para manejo de personal en turnos rotativos se

    venden en el formato de Suite. Algunas de las empresas que entregan estos servicios y sus

    respectivos productos son: Sabre, Sabre AirCentre, Navitaire, Planning Optimization Suite oJeppesen, Jeppesen Crew Rostering. Sin embargo, la informacin acerca de sus capacidades e

    interfaces no es de dominio pblico, por lo que no se pudo llevar a cabo una investigacin

    detallada de ellos.

    Debido a la condicin de prueba de conceptodel proyecto, se decidi utilizar un sistema a

    medida, un modelo de optimizacin especifico y un solver capaz de solucionarlo. Esto con el fin

  • 7/24/2019 Cf Campothesis Cv

    16/74

    11

    de evitar los altos costos de las soluciones actuales y para generar una solucin que se adaptara

    perfectamente a las necesidades especficas de Andes, tanto de plataformas y sistemas legados

    como de restricciones para el modelo. As se evitan tambin, los costos de capacitacin y

    mantencin, quedando estos a cargo de LAN una vez que el proyecto termine.

    2.5. Solver Existentes

    Un solver es un software escrito en un lenguaje de programacin (por ejemplo, C, C++, Java o

    incluso Python) que toma un problema matemtico modelado en un lenguaje particular, como

    por ejemplo: AIMMS (Advanced Interactive Multidimensional Modeling System), OPL

    (Optimization Programming Language), GAMS (General Algebraic Modeling System) o AMPL (A

    Mathematical Programming Language), y lo resuelve.

    Dentro de los posibles solvers a utilizar se estudiaron una serie de ellos, en sus versiones

    acadmicas que sern detallados a continuacin:

    IBM ILOG CPlex. Desarrollado por IBM es una opcin pagada desarrollada originalmente

    en C. Actualmente tiene libreras e interfaces que permiten su uso desde C++, C# eincluso Python. Su licencia comercial se eleva a los US$20.000 por unidad.

    COIN-OR: CBC. Desarrollado por el proyecto COIN-OR (Computational Infrastructure for

    Operations Research) es una solucin de cdigo libre y, en su mayor parte, consta de

    libreras y plug-ins desarrollados para C++.

    Gurubi:Desarrollado por el mismo equipo que elabor CPlex, es una opcin pagada. Sus

    libreras y plug-ins estn desarrollados en su mayor parte en el lenguaje Java aunque

    tiene interfaces y libreras para C++ y C#. Es, de entre todos los presentes, el que tiene

    mejor resultados en benchmarking [6]. Su licencia comercial se eleva a US$12.000.Para estudiar la factibilidad tcnica y la calidad de las soluciones se realizaron pruebas

    utilizando COIN-CBC, estos son los resultados que se entregan en la presente memoria. Se

    seleccion este solver por ser una solucin de cdigo libre, que nos permita entregar soluciones

    a una empresa privada y cuyos tiempos de resolucin eran satisfactorios.

    Para la implementacin final en los servidores de LAN, sin embargo, se utiliz Gurubi, debido

    a su bajo precio, mejores tiempos de resolucin y conocimientos de su uso por parte del equipo

    desarrollador.

    2.6. Modelo de Optimizacin Utilizado

    El modelo de optimizacin, como ya fue comentado, queda fuera de los alcances de esta

    memoria. Sin embargo, al corresponder a una parte fundamental del sistema a construir es

    necesario explicar su comportamiento esperado y los lmites de su utilidad.

    El modelo de optimizacin cumple el deber de generar, a partir de informacin recopilada,

    una planificacin mensual de turnos para cada empleado por cargo. Esto se logra optimizando

  • 7/24/2019 Cf Campothesis Cv

    17/74

    12

    su funcin objetivo y respetando las restricciones que acotan el problema a solucionar. La

    informacin ingresada deben estar en formatos preestablecidos y tanto la funcin objetivo

    como sus restricciones se encuentran escritas en un lenguaje propio de programacin

    matemtica. Es importante notar que debido a la complejidad inherente del modelo propuesto,

    se decidi acotar las instancias a un nico cargo a la vez.

    La funcin objetivo del modelo busca encontrar la mejor cobertura posible para las

    necesidades de la operacin. Esto se logra minimizando la subdotacin y la sobredotacin de

    personal para cada turno, respetando todas las restricciones detalladas en la seccin 2.3:

    Restricciones.Este enfoque mostr en las pruebas los mejores resultados, tanto en el tiempo

    necesario para encontrar una solucin aceptable, como de cantidad de cambios necesarios para

    su implementacin.

    La informacin necesaria para que el solver resuelva el modelo corresponde a: los

    requerimientos de personal para cada turno, las vacaciones, las capacitaciones, las habilidades

    individuales de cada empleado, as como tambin turnos prohibidos o turnos pedidos para cadaempleado. Esta informacin, que es ingresada por medio de archivos de texto, obedece a

    formatos predefinidos y no son de fcil lectura para usuario promedio.

    El resultado que se obtiene finalmente, a partir de los datos ingresados, corresponde a una

    configuracin de turnos para cada empleado en un cargo particular. Esta configuracin, sin

    embargo, no es necesariamente la ptima. En efecto, debido a la complejidad del modelo, el

    tiempo necesario para encontrar la solucin ptima puede resultar demasiado largo,

    considerando las necesidades de la operacin, por lo que se debe acotar el tiempo destinado a

    encontrar el ptimo. Es entonces posible que dentro de la ventana de tiempo asignada, no se

    alcance la configuracin ptima y por lo tanto, la solucin obtenida deba ser editaba. Sin

    embargo, y como podr ser visto en el captulo6, los resultados que se obtienen del modelo

    matemtico cumplen de mejor manera y en menos tiempo las necesidades requeridas por la

    empresa.

  • 7/24/2019 Cf Campothesis Cv

    18/74

    13

    3. Concepcin de la Solucin

    Para una planificacin correcta fue necesario un levantamiento completo de las necesidades

    existentes en la empresa para la identificacin apropiada de los requerimientos de usuario y

    software para su posterior diseo e implementacin. De la misma manera, fue necesario el

    mismo proceso para los datos necesarios que utilizara el modelo y para la forma de entregar losdatos desde Andes al sistema de software finalizado. A continuacin se presentan los resultados

    obtenidos de todo el proceso de identificacin de requerimientos para la solucin de software.

    3.1. Principales Requerimientos de la Solucin

    Los siguientes requerimientos se recabaron luego de mltiples reuniones con el cliente y

    hacen referencia tanto a requerimientos propios de la solucin de software como a necesidades

    referentes a la construccin del modelo matemtico. Ambos tipos fueron estudiados y

    compilados al mismo momento, pues ambos deberan encontrarse en la solucin final: las

    funcionalidades requeridas en el sistema de software y la capacidad del sistema paraproporcionar el ambiente necesario para que el modelo realice clculo y entregue los resultados

    requeridos.

    Id Requerimientos de

    usuario

    Descripcin Prioridad

    1 Generacin de roles

    mensual

    Generar un rol para cada operario, segn cargo, considerando los

    requerimientos de cada turno y las restricciones legales y sindicales. El rol

    debe ser posible de generar de forma independiente por cada cargo o de

    forma agregada para algunos operarios simultneamente. Debe considerar

    los resultados de meses anteriores.

    Alta

    2 Roles editables Cargar un rol ya generado y realizar cambios en forma manual. El sistema

    debe evaluar la calidad del rol.

    Alta

    3 Incorporar Indicadores de

    calidad de Vida

    Utilizar los indicadores de calidad de vida (equilibrio de turnos en las

    asignaciones, libres al mes) como uno de los objetivos a considerar en el

    momento de generar roles.

    Media

    4 Evaluar la calidad de rol Tener una forma "sencilla" de medir la calidad de un rol, que considere (al

    menos): cobertura de la operacin, uso de horas extras, uso eficiente de

    recursos (HH), calidad de vida.

    Alta

    5 Parametrizacin de

    inputs

    Asignarles peso/importancia a indicadores por definir al momento de

    generar roles.

    Media

    6 Gestionar roles

    generados

    Poder monitorear el desempeo de los roles a lo largo del mes. Que pueda

    modificar las asignaciones futuras para responder a imprevistos,

    modificando el rol general lo menos posible.

    Alta

    7 Interfaz para la operacin La interfaz para generar y modificar roles debe cumplir con los estndares de

    usabilidad para alguien con conocimientos computacionales a nivel usuario.

    Alta

  • 7/24/2019 Cf Campothesis Cv

    19/74

    14

    8 Generar archivo de salida Se generar un archivo de salida, que indica en cada cargo los operarios que

    cumplirn cada labor, horas de ingresos y salidas.

    Baja

    9 Reportes parametrizables Las soluciones deben quedar guardadas de forma que permita la

    parametrizacin de nuevas consultas para generar reportes, y que ests

    queden guardadas.

    Media

    10 Estudiar rosters pasados

    o futuros

    Se debe permitir poder estudiar un mes pasado o futuro, generando el

    roster a partir de cambios particulares (modificar la dotacin de personal, los

    requerimientos, las habilidades, esquemas de operacin, cumplimiento de

    los indicadores).

    Alta

    11 Extraccin de

    informacin de bases de

    datos.

    El sistema debe ser capaz de obtener la informacin necesaria para

    gestionar y generar un rol a partir de una base de datos no necesariamente

    conectada al sistema.

    Alta

    Utilizando estos datos, se detallaron los casos de uso esperados, que han sido adjuntados en

    el Anexo A: Casos de Uso.

    3.2. Diagrama de Flujo de la Solucin

    A partir de los requerimientos antes descritos y de las reuniones realizadas con el equipo de

    Andes, se extrae el siguiente flujo de procesos para el caso de uso principal, el cual se

    representa grficamente en la figura 3. A continuacin se describen tambin las principales

    actividades de este proceso.

    Figura 3: Proceso Rostering de Andes (BPMN)

    1.

    Al momento de iniciar la generacin de roles, se ingresan los datos al sistema. Estos

    datos consisten en la informacin de dotacin, grupos de habilidades, cargos, licencias,

    etc. (ver figura 4) y son ingresados al sistema mediante la importacin de archivos. La

    informacin as ingresada debe ser revisada y puede ser modificada por el usuario. El

  • 7/24/2019 Cf Campothesis Cv

    20/74

    15

    proceso puede continuar slo si el usuario se encuentra satisfecho con la informacin

    entregada al sistema.

    Figura 4: Detalle de los distintos datos que necesita el sistema

    2.

    Con los datos correctamente ingresados en el sistema, comienza el proceso degeneracin de rol. Este comienza con la seleccin del cargo sobre el cual se ejecutar el

    solver y el tiempo posterior de espera para que se encuentre una solucin. Una vez

    generado el archivo de salida para el software, se extrae la informacin para un rol y se

    calculan los diversos indicadores que Andes requerir para medir la calidad del rol.

    Figura 5: Detalle del proceso de optimizacin de rol

    3. Si el usuario, al revisar los indicadores e inspeccionar el rol lo considera adecuado,

    entonces se termina el proceso y es impreso y entregado a los operarios. En caso

    contrario, modifica manualmente el rol para casos en que las diferencias sean mnimas opasa a editar los datos de entrada al solver, en cuyo caso el software es nuevamente

    llamado con nuevos datos.

    4. Uno de los requerimientos con alta importancia para Andes corresponde a la capacidad

    de revisar y volver a generar, con datos diferentes, roles para meses pasados o futuros.

    En este caso, el flujo sera similar al principal.

  • 7/24/2019 Cf Campothesis Cv

    21/74

    16

    Con estos requerimientos e informacin, se conceptualiz una solucin capaz de resolver las

    necesidades de Andes recin expuestas. Esta solucin es la que representa en el siguiente

    esquema (figura 6), donde cada objeto representa una funcionalidad requerida o la necesidad

    de una estructura.

    Figura 6: Esquema de la solucin

    3.3. Arquitectura del Sistema

    En una primera instancia se plane trabajar con una arquitectura cliente-servidor, con un

    cliente que contuviera parte de la lgica del sistema y un servidor que manejara las consultas y

    contuviera el solver de optimizacin. Sin embargo, esta aproximacin tiene el problema de

    hacer difcil la mantencin. Es por esto que en un segundo enfoque se decidi por una

    aplicacin web y una arquitectura de sistema de n-capas. Este tipo de arquitecturas tiene la

    ventaja de entregar modularidad al sistema y permitir una mantencin mucho ms simple.

    Finalmente, se lleg a una arquitectura del sistema como se muestra a continuacin.

  • 7/24/2019 Cf Campothesis Cv

    22/74

    17

    Figura 7: Arquitectura fsica de 4-capas

    Capa Cliente: La capa de cliente es la encargada de entregar la interfaz con la que el usuario

    estar en contacto con el resto del sistema.

    Capa Presentacin: Se tom la decisin de trabajar con un contenedor web cuyas licencias ya

    existan al interior de LAN, por lo que esta capa corresponde a un servidor WebLogic.

    Capa Lgica: Esta capa consta de 2 funcionalidades claramente definidas:

    El Sistema de Gestin de Roles corresponde al grueso del sistema, y es el encargado de

    manejar la informacin que entra y sale de la capa de recursos. ste se encarga tambin

    de formatear la informacin de la base de datos, y pasarla a archivos para que sean

    ledos por el solver y de transformar la salida datos.

    El solver es un software que toma datos desde archivos y utilizando metodologas de

    resolucin de problemas de programacin lineal-entera, entrega resultados que cumplen

    con restricciones previamente definidas. Estos resultados sern entregados como

    archivos de texto que tendrn que ser parseados por el Sistema de Gestin antes de ser

    entregados al usuario.

    Capa de Recursos: Esta capa consiste en una base de datos con informacin detallada del

    personal en la que se mantiene la informacin persistente del sistema, como datos histricos

    y de restricciones del modelo (estructura de leyes laborales y de manejo de turnos, normas

    sindicales, etc.). Debido a las necesidades de mantener la informacin para cada mes, es

    necesaria la temporalizacin de la mayora de las tablas.

    3.4. Arquitectura Lgica

    A continuacin se presenta una vista de la estructura lgica del sistema:

  • 7/24/2019 Cf Campothesis Cv

    23/74

    18

    Figura 8: Arquitectura Lgica

    Un usuario cualquiera que quiera interactuar con el sistema debe hacerlo a travs de las

    vistas que existirn para manejar sus consultas, que pueden ir desde la generacin de un roster,

    a la edicin del mismo y de todos los datos que se necesitan para su generacin.

    3.5. Diagrama de Despliegue

    El diagrama mostrado en la figura 9 corresponde a la configuracin fsica sobre las que se

    pondr en produccin el sistema. Por un lado, estn los sistemas existentes de Andes queincluyen sus bases de datos legadas y el browser con el cual el usuario entrar al sistema. Por

    otro lado, se contemplan los 2 servidores entregados por el rea de TI de LAN, en los que se

    encontrar el sistema: elservidor para aplicaciones weby el servidor de bases de datos.

  • 7/24/2019 Cf Campothesis Cv

    24/74

    19

    Figura 9: Diagrama de Despliegue

    3.6. Modelo de Datos

    El modelo de datos se formul pensando en los 3 aspectos fundamentales que debe cumplirel sistema. Por un lado debe contener toda la informacin utilizada en el proceso de rostering

    (requerimientos de personal e informacin de R.R.H.H.); debe adems entregar una interfaz que

    provea las herramientas para la carga y edicin de esos datos. Finalmente, muchos de los datos

    que son necesarios para la generacin de un rol son dependientes del mes, lo que significa que

    para poseer la capacidad de editarlos y explorar posibles soluciones, el modelo debe tener algn

    mecanismo o lgica que permita mantener varias versiones de la informacin para un mismo

    mes.

    Es por lo anterior que se pueden reconocer 3 agrupaciones de tablas dentro de la estructura

    de datos: Los datos correspondientes a la lgica de negocio de Andes, los cuales en caso decambiar deben reproducirse a travs del tiempo; la informacin de R.R.H.H del personal, la cual

    vara mes a mes; y la informacin de los requerimientos de personal los cuales tambin son

    mutables. Para ver el detalle de las tablas, referirse al diccionario de datos ubicado en el Anexo

    C: Diccionario de Datos.

  • 7/24/2019 Cf Campothesis Cv

    25/74

    20

    Los siguientes diagramas muestran las tablas y las relaciones existentes entre ellas para las 3

    agrupaciones de tablas que se comentaron anteriormente dentro de la estructura general: los

    requerimientos de personal, la informacin de la empresay la informacin de los empleados.

    Figura 10: Detalle Base de Datos: Informacin de los requerimientos de personal

    Estas 3 tablas contienen la informacin acerca de la cantidad de personal que se necesita en

    cada turno u hora dentro del mes y de las necesidades especficas por algn tipo de

    capacitacin en particular. Estas tablas no tienen relacin directa entre s, aunque s se

    relacionan con las tablas que contienen los permanentes de estructura de negocios de Andes:

    en el caso de las tablas Capacity_Hora y Capacity_Turno, corresponde a la tabla Cargos de la

    empresa, mientras que en el caso de Demanda_Skillcorresponde a Skills.

    Figura 11: Detalle Base de Datos: Informacin del personal

    La Figura 11 representa la seccin de la base de datos que contiene el mayor nmero de

    relaciones de todas las secciones, mantiene la informacin respecto a cada empleado y la

    empalma con su rol mensual. Esta informacin es de vital importancia que sea identificada por

  • 7/24/2019 Cf Campothesis Cv

    26/74

    21

    el periodo en el que es vlida, as como su nmero de versin, pues sta vara mes a mes, y los

    datos pueden ser modificados tanto para el mismo mes en curso, como para experimentos en

    distintos escenarios futuros.

    Figura 12: Detalle Base de datos: Informacin de Andes

    Esta seccin de las tablas de la Base de Datos contiene informacin referente a temas

    histricos de Andes. Regmenes de trabajo, definiciones turnos y cargos, grupos creados e

    identificadores de skills. Esta informacin es referenciada por las otras tablas y su contenido no

    admite versionamiento. Lo contenido en estas tablas refleja el modelo de negocio y las

    definiciones de largo plazo de la empresa por lo que su edicin est restringida.

  • 7/24/2019 Cf Campothesis Cv

    27/74

    22

    4. Diseo Detallado de la Solucin

    En el captulo anterior se present la arquitectura general del software implementado. En

    este captulo se analizar en primer lugar de forma detallada los mdulos a programar y cmo

    se relacionan con las estructuras de datos ideadas. A continuacin se describir el flujo

    proyectado a travs del sitio.

    4.1. Diseo Detallado de Mdulos

    A continuacin se presentan los mdulos que forman parte de la arquitectura lgica

    presentada en la Figura 8, detallando la funcin que deben cumplir y los procesos que los

    constituyen.

    4.1.1. MD001: Importar Datos

    Funcin: Permite agregar la informacin necesaria al sistema a partir de archivos extrados

    de las distintas fuentes de datos (figura 13).

    1.1

    Seleccin de archivos o fuentes: El usuario escoge qu archivos desea cargar en el

    sistema.

    1.2Validacin de los archivos: Al seleccionarlos e intentar subirlos, se realiza una validacin

    para confirmar que el(los) archivo(s) cumplen con el formato requerido.

    1.3Subida de archivos al sistema: Habiendo sido validados, los archivos pasan a ser

    cargados a la base de datos.

    Figura 13: Importar Datos

    4.1.2. MD002: Edicin de Datos

    Funcin: Permite al usuario editar y agregar datos en la base de datos.

    2.1Captura de consulta: Se capturan las consultas sobra las tablas que el usuario desea

    revisar.

  • 7/24/2019 Cf Campothesis Cv

    28/74

    23

    2.2Construccin de consultas: Se construyen las consultas capaces de realizar las

    necesidades del usuario. stas incluyen inserciones, eliminaciones y actualizaciones a

    los datos contenidos en la base de datos, con datos entregados en el momento por el

    usuario.

    2.3Formato de la respuesta: La informacin antes de ser entregada al usuario se procesa

    para mantenerla en un formato usable por el usuario.2.4Edicin de Celdas: El usuario edita las celdas de las tablas mostradas en la vista de

    edicin. Las modificaciones deben ser entregadas al mdulo 2.2 para que se generen

    cambios en tiempo real en la base de datos.

    Figura 14: Edicin de Datos

    4.1.3. MD003: ReporteraFuncin: Diagrama y formatea la informacin de manera que el usuario pueda obtener

    indicadores claves para el manejo del negocio de manera entendible a partir de la

    informacin contenida en el rol.

    3.1Captura del requerimiento de reporte: El usuario realiza la seleccin de qu reporte

    desea generar y se captura ese requerimiento.

    3.2Construccin del reporte: Se realizan las consultas a la(s) tabla(s) para obtener los datos

    bsicos y se calculan los indicadores requeridos.

    3.3Visualizacin de los KPI: Se cargan los datos e indicadores calculados y se diagraman en

    la manera que es necesario para el reporte.

  • 7/24/2019 Cf Campothesis Cv

    29/74

    24

    Figura 15: Reportera

    4.1.4. MD004: Exportar Datos

    Funcin: Entrega la capacidad de extraer los datos brutos desde el sistema y poder

    observarlos en los sistemas legados existentes en Andes.

    4.1Capturar Archivos a exportar: El usuario realiza previamente la seleccin de que

    archivos particulares desea obtener.

    4.2Obtener Datos: Mdulo encargado de generar las consultas necesarias para la

    generacin de los archivos.

    4.3Generar Archivos: A partir de los datos obtenidos por el MD004.2 se pasa a generar los

    archivos en el formato y extensin requeridos.

    Figura 16: Exporta Datos

    4.1.5. MD005: Generar Rol

    Funcin: Funcionalidad principal del sistema, a partir de los datos que se encuentran en la

    base de datos y utilizando la exportacin de datos se le entrega la informacin del mes al

    software solver para obtener un roster ptimo. Una vez que se tiene el resultado, este es

    importando a la base de datos, donde puede ser editado, exportado y se le puede calcular

    sus indicadores.

  • 7/24/2019 Cf Campothesis Cv

    30/74

    25

    5.1Captura de cargos a generar: Captura los cargos a los que el usuario desea generar

    roles.

    5.2Validar informacin existente: Habiendo recibido los cargos, se consulta si existen datos

    suficientes en la base de datos para generarlos.

    5.3Exportar archivos: Confirmado que existen los datos mnimos necesarios, se procede a

    generar los archivos que necesita el modelo en el formato que los necesita.5.4Comunicacin con el solver: Teniendo los archivos generados, se procede a llamar al

    solver de modelos, dndole como parmetros el modelo de optimizacin y los datos

    tomados desde la base de datos. Este mdulo adems debe quedar a la espera de los

    resultados y manejar posibles timeouts.

    5.5Ingreso de archivos al sistema: El solver entrega como respuesta un archivo, que debe

    ser ledo y cargado al sistema antes de poder continuar.

    5.6Despliegue del Rol: Por medio de consultas a la base de datos y habiendo obtenido

    respuesta positiva del MD005.4 se procede a generar la vista de visualizacin de rol.

    Figura 17: Generar Rol

    4.1.6. MD006: Editar Rol

    Funcin: El usuario debe tener la capacidad de generar modificaciones a un rol previamente

    generado y que exista en el sistema. Estas modificaciones puede ser: cambios en los turnos,

    agregar o quitar empleados, crear vacaciones y capacitaciones, etc. Estas modificaciones no

    deben ser replicadas en la base de datos, tanto porque en algunos casos corresponden sloa pruebas de concepto de nuevos patrones de rol, como porque no es parte de las

    atribuciones del rea de Planning.

    6.1Captura de cambios: Se capturan los cambios que se desean realizar. Sean estos nuevos

    datos o modificaciones a campos existentes.

    6.2Validacin de cambios: Mdulo que valida que los cambios son realizables.

    6.3Modificaciones en la base de datos: Mdulo que ejecuta los cambios en la base de datos

  • 7/24/2019 Cf Campothesis Cv

    31/74

    26

    6.4Presentacin de los cambios: Mdulo que presenta los cambios al usuario.

    Figura 18: Edicin de rol

    4.2. Diseo Detallado de Navegacin

    Junto con la descripcin detallada a nivel de mdulos de programacin que se identificaron y

    se requieren para el funcionamiento del sistema completo, se debe describir tambin, el flujo

    de pginas en las que estas funcionalidades sern utilizables por el usuario final y como ellas se

    relacionan. Este flujo se muestra a continuacin:

  • 7/24/2019 Cf Campothesis Cv

    32/74

    27

    Figura 19: Diseo detallado de Navegacin

    Uno de las necesidades de Andes es que el proceso sea secuencial; esto es, que no se pueda

    avanzar hasta que el paso anterior est confirmado. De esta manera, el flujo se vuelve

    restrictivo en cuanto a la secuencia que se debe seguir y a los pasos finales del proceso quedan

    sujetos a que se hayan realizado los pasos intermedios al menos una vez con anterioridad para

    la instancia/mes que se est ejecutando.

    1. Login: La primera vista a la que entra un usuario es la de identificacin. Uno de los

    requerimientos de Andes de diferenciacin de usuarios y seguridad hacen necesario que

    aquellos que desean utilizar el sistema deben tener estar certificados.

    2. Men Inicial:La vista que se abre una vez ingresado el usuario es la de men inicial. En

    sta se seleccionar el mes en el que se desea trabajar. A este nivel tiene que haber

    visibilidad acerca de que actividades se pueden realizar: Si el mes ya tiene datos cargados

    o un roster generado, se debe poder ir a trabajar directamente sobre ellos, saltndose los

    pasos de carga y edicin de datos.

    3. Cargar Datos: Por necesidades del ambiente en produccin del cliente, la informacin

    necesaria para la construccin de un roster debe ser subida mes a mes y cargada desde

    sus propias bases de datos como archivos de texto. Esto producto de que los servidores

  • 7/24/2019 Cf Campothesis Cv

    33/74

    28

    donde finalmente estar desplegada la aplicacin web no tienen conexin con las bases

    de datos internas que manejan al interior de la empresa y, al mismo tiempo, el

    mantenimiento de las bases de datos proyectadas para cumplir con las exigencias de

    temporalidad que requiere Andes hacen poco recomendable la copia de informacin ya

    contenida en las tablas para nuevos meses.

    4.

    Edicin de Datos: Una vez que existan datos para el mes en que se trabaja, se puedeproceder a modificarlos. Para evitar anomalas en la base datos, en la vista de edicin de

    datos, un usuario slo se podr editar datos mensuales de la informacin. Los datos

    existentes que hagan referencia a informacin interna de Andes slo podrn ser

    modificados por un administrador del sistema.

    5. Seleccin de Cargos:Una vez que el usuario se encuentre satisfecho con la informacin

    que existe en el sistema para el mes en cuestin, se puede proceder a seleccionar el o los

    cargo(s) que se desea generar. Es en esta vista que se revisa si existen la cantidad mnima

    de datos requeridas para la generacin de un roster.

    6. Generacin de Roster:Esta detencin en el proceso de generacin de roster es la pgina

    de espera a que el solver resuelva el modelo matemtico. Al interior del sistema, al

    desplegarse esta pantalla, se estn exportando los datos de la base de datos al modelo,

    corriendo el script de solver y quedando a la espera de un resultado o timeout.

    7. Resultados del modelo: El resultado final del modelo matemtico corresponde a un roster

    para los cargos que fueron seleccionados con anterioridad. Este resultado debe ser

    editable. Cuando el usuario est satisfecho con el roster generado o modificado y el

    trabajo realizado corresponde al roster del mes siguiente, este puede ser enviado a los

    empleados de la empresa desde donde pasan a ser sus turnos para el mes.

    Las interfaces que se generaron para cumplir con el flujo presentado se encuentran

    detalladas en el Anexo B: Interfaces de Usuario.

  • 7/24/2019 Cf Campothesis Cv

    34/74

    29

    5. Implementacin de la Solucin

    En la siguiente seccin se presentan los pasos previos que se deben tomar para configurar de

    manera correcta el sistema y una breve descripcin de las vistas y funciones implementadas.

    5.1. Configuracin Inicial

    Como primer paso se deben cargar al sistema las tablas que estn diseadas para contener la

    informacin organizacional de Andes: Cargos, Turnos, Regmenes de trabajo y lista de Skills.

    Para ingresar estos datos se agreg a la vista de administrador en la Cargar Datos la opcin de

    incluir estos archivos. Los archivos a subir mantienen un formato estndar que se encuentra

    detallado en el Anexo E:Informacin de lgica de negocios de Andes.

    5.2. Proceso de generacin de roster

    El proceso de generacin de un roster, descrito en la seccin anterior, se lleva a cabo a travs

    de diversas vistas, funciones y revisiones que se producen dentro del sitio. Los pasos necesariosy los distintos requerimientos de cada uno son detallados a continuacin.

    Si no existe un roster para una instancia de mes en particular, el flujo dentro del sitio es

    lineal: se debe avanzar en cada paso y slo se podr avanzar al siguiente o retroceder al paso

    inmediatamente anterior. Este flujo fue decidido por el cliente para mantener la lgica actual

    del proceso de rostering. Sin embargo, si existe algn roster cargado para ese mes, ste es

    visible y se puede pasar directamente a su revisin.

    1. Login: Se hace una revisin de certificaciones del usuario al momento de ingresar para

    manejar los permisos de edicin sobre informacin crtica.

    Figura 20: Interfaz de Login

    2. Men Inicial:Una vez ingresado en el sitio, se puede seleccionar el mes en el que se desea

    trabajar. Al seleccionarlo se carga el detalle de la informacin existente para aquel mes:

    archivos subidos y cargos con roles creados.

  • 7/24/2019 Cf Campothesis Cv

    35/74

    30

    Figura 21: Men inicial

    Una vez que se selecciona el mes, este se mantiene disponible para el resto de las vistas.

    Este punto es relevante pues las funcionalidades del sistema toman en consideracin la

    fecha en la que se est trabajando en el sistema, se puede pasar al resto del sitio. Si no

    existen roles generados para ese mes se continua con la secuencia aqu detallada, en caso

    contrario, se puede pasar a cualquiera de los pasos posteriores.

    3. Cargar Datos:Para poder generar un roster, se requiere de una cantidad definida de datos

    que corresponden a la informacin de requerimientos y restricciones varias. Estos datos son

    ingresados al sistema por medio de esta pgina, separados por archivos de entrada de

    extensin CSV y que respetan un formato previamente establecido e informado, detallado

    en el AnexoE: Formato de los archivos de entrada de datos

  • 7/24/2019 Cf Campothesis Cv

    36/74

    31

    Figura 22: Carga de datos

    Al momento de subir archivos se comprueba que los datos ingresados se adhieran al

    formato establecido y que los datos correspondan a la informacin que debe ser ingresada

    por medio de ese archivo. Sin embargo, no es posible hacer una comprobacin exhaustiva

    de la lgica detrs de los datos ingresados: esta debe haber sido correctamente ingresada alos sistemas de Andes.

    4. Edicin de Datos:Esta vista, que permite la edicin de los datos contenidos consiste en una

    lista desplegable con todos los datos disponibles a modificar para el usuario. Una vez que se

    selecciona un elemento, se despliega toda la informacin de esa tabla.

    Figura 23: Seleccin de tabla a editar

  • 7/24/2019 Cf Campothesis Cv

    37/74

    32

    Figura 24: Edicin de tabla

    Una vez que la informacin se despliega en pantalla, se aprecian 2 secciones. La primera,contiene una tabla con toda la informacin contenida en el sistema para el mes del sistema

    y otra que permite la edicin de los campos. La tabla puede ser ordenada segn cualquiera

    de sus columnas, y se puede filtrar casos particulares utilizando fragmentos o secciones

    completas de informacin. Una vez que el usuario est satisfecho con los datos contenidos,

    se puede continuar al siguiente paso.

    5. Seleccin de Cargos:Se revisa qu datos cargados existen en el sistema, y de existir cundo

    fue la ltima generacin de rol. Slo se puede pasar a la siguiente vista con aquellos cargos

    con los que se cuenta la informacin necesaria para que el solver pueda obtener un

    resultado.

  • 7/24/2019 Cf Campothesis Cv

    38/74

    33

    Figura 25: Seleccin y revisin de datos

    6.

    Edicin de roster: Una vez que se obtiene un roster desde el solver, se puede revisar en la

    vista de edicin. Esta consiste de una seccin donde se puede apreciar toda la informacin

    del roster, con la capacidad de filtrar tanto por cargo, como por datos de empleado. Al

    seleccionar una fila, se despliega toda la informacin de esa persona en una segunda zona,

    en la que se puede editar los turnos asignados al empleado.

    Figura 26: Edicin y revisin de roster

  • 7/24/2019 Cf Campothesis Cv

    39/74

    34

    6. Evaluacin Preliminar de la Solucin

    El objetivo de la presenta solucin constaba en la reduccin del tiempo del proceso de

    rostering. Este proceso, como ha sido explicado, consta de 3 fases: La captura de datos, la

    asignacin de turnos y la edicin de la solucin.

    En primer lugar, se debe comprobar que el sistema produce roles con la misma o mejor

    calidad que el proceso manual. Para esto se pueden revisar los resultados y evaluarlos segn los

    indicadores con los que la empresa trabajaba. El de mayor importancia corresponde a la

    medicin de cobertura para los turnos. Este registro es calculado de manera sencilla

    comparando la cantidad de personal planificado para cada turno/hora contra la cantidad

    requerida de personal. Si este indicador lo tomamos a nivel de cargo y luego lo ponderamos por

    la cantidad de personal que trabaja en dicho cargo obtenemos otro indicador relevante, el

    porcentaje cubierto de turnos.

    A continuacin se puede revisar una comparacin entre un roster generado utilizando elnuevo sistema de planificacin de personal y sistema manual anterior. Se comparan los niveles

    porcentuales de cobertura por cargo, la capacidad para cumplir con las obligaciones sindicales o

    de preferencia de turnos del personal y la ponderacin cobertura/personal.

    Tabla 1: Comparacin del porcentaje de cobertura

    Apertura Tarde Noches

    Cargo Dotacin Andes U. Chile Andes U. Chile Andes U. Chile

    Cargoloaderista 21 97% 87% 60% 87% 100% 100%

    Conductor Carrusel 8 100% 88% 77% 90% 100% 100%

    Coordinador Equipaje 20 100% 99% 100% 100% 100% 100%

    Jefe Turno Rampa 9 100% 100% 100% 100% 100% 100%

    Monitor de Vuelo 55 89% 85% 85% 86% 88% 100%

    Monitor Opco 21 98% 85% 75% 75% 73% 100%

    Operario Equipaje 135 100% 100% 100% 100% 100% 100%

    Towing 24 80% 83% 80% 100% 100% 100%

    Tractorista PEQ 34 100% 98% 100% 100% 100% 100%

    Operario Rampa 145 86% 90% 96% 90% 68% 85%

    Ponderacin de Cobertura 93% 93% 93% 93% 88% 95%

    Tabla 2: Comparacin de obligaciones cumplidas

    Restricciones cumplidas

    Cargo Andes U. Chile Dif.

    Cargoloaderista 191 231 +18%

    Conductor Carrusel 69 126 +45%

    Coordinador Equipaje 324 324 0%

    Jefe Turno Rampa 224 271 +18%

  • 7/24/2019 Cf Campothesis Cv

    40/74

    35

    Monitor de Vuelo 384 465 +18%

    Monitor Opco 0 286 +100%

    Operario Equipaje 704 747 +6%

    Towing 264 300 +12%

    Tractorista PEQ 791 791 +0%

    Operario Rampa 302 311 +3%

    Se puede observar que la cantidad de requerimientos que se cumplen es mayor utilizando el

    nuevo sistema y la ponderacin de coberturas se mantiene estable tanto para los turnos de

    maana y tarde mientras mejora en el caso de los turnos nocturnos. Esto corresponde a un

    proceder deseable pues los turnos de noche son, en la prctica, los que acumulan mayor

    cantidad de licencias mdicas e inasistencias por lo que a nivel de planificacin se deben

    mantener completamente dotados. Se debe notar tambin, que los cargos en los que se ve

    menor cobertura para ciertos turnos, en general, son tambin los cargos en que existen las

    mayores diferencias en restricciones cumplidas entre el antiguo sistema y el nuevo.

    El segundo de los indicadores que Andes utiliza al momento de evaluar la calidad de un

    roster corresponde a la calidad de vida de sus operarios. Se decidi, junto al rea de RRHH de la

    empresa, que una vez que se cumplen todas las normas sindicales y legales solamente queda

    asegurar la existencia de al menos 2 ocurrencias de das libres consecutivos al mes, para que la

    planificacin cumpla con sus requerimientos. A continuacin se presentan los resultados de esta

    medicin donde se puede apreciar el incremento de la asignacin deseada utilizando el nuevo

    sistema.

    Tabla 3: Comparacin de libres consecutivos mensuales.

    Andes U. Chile

    Personal Porcentaje Personal Porcentaje

    2 Libres consecutivos al mes >= 2 419 52% 468 58%

    Habiendo comprobado que la solucin entrega resultados aceptables por la empresa,

    podemos enfocarnos en la reduccin efectiva de tiempo de trabajo. Se buscaba reducir el

    tiempo consumido por este proceso, que inicialmente tomaba 3 semanas hbiles.

    Una vez que el roster era completado en el sistema antiguo, se comenzaba el proceso deedicin y revisin que se prolongaba hasta 5 das antes del comienzo del mes. Esta revisin era

    de gran importancia pues, al tratarse de un proceso manual en el que participaban varios

    actores (RRHH, rea de Planning, rea de Capacities), la existencia de errores de transcripcin,

    informacin desactualizada y/o errnea eran comunes.

    Utilizando el nuevo sistema de planificacin desarrollado en esta memoria, la cantidad de

    errores producto de transcripciones se redujo enormemente. Esto debido a que el proceso

  • 7/24/2019 Cf Campothesis Cv

    41/74

    36

    completo de asignacin de turnos ocurre de manera automtica y la informacin debe seguir

    nuevos estndares de formato y tiempos para ser aceptada. La cantidad de horas necesaria para

    que el modelo tome la informacin generada y obtenga una asignacin aceptable vara

    dependiendo de la cantidad de restricciones, de la cantidad de empleados y de la diferencia

    entre esta dotacin y los requerimientos de personal. La estimacin de tiempos de la asignacin

    para cada cargo puede ser vista en la siguiente tabla.

    Tabla 4: Tiempos de generacin de roster para cada cargo

    CargoTiempo (minutos)

    Validacin Ejecucin Sistema Revisin Total Total (horas)

    Camin de servicio 30 90 30 150 2,5

    Cargoloaderista 60 120 60 240 4

    Carrusel 30 90 30 150 2,5

    Conveyor 90 270 60 420 7Coordinador PEQ 30 90 30 150 2,5

    Coordinador SAT 30 90 30 150 2,5

    Diecing 30 90 30 150 2,5

    Jefe de Turno OPCO 30 90 30 150 2,5

    Jefe de Turno Rampa 30 90 30 150 2,5

    Monitor Cinta 30 90 30 150 2,5

    Monitor Counter 30 90 30 150 2,5

    Monitor de Vuelo 60 390 60 510 8,5

    Monitor OPCO 30 90 30 150 2,5

    Operario bomba de combustible 30 90 30 150 2,5Operario Counter 30 90 30 150 2,5

    Operario PEQ 60 270 90 420 7

    Operario Rampa 60 270 90 420 7

    Supervisor PEQ 30 90 30 150 2,5

    Taller 30 90 30 150 2,5

    Towing 30 90 60 180 3

    Tractorista Carga 30 90 60 180 3

    Tractorista Carguero 30 90 60 180 3

    Tractorista PEQ 30 90 60 180 3

    Tractorista Rampa 30 90 60 180 3

    Tractorista ULD 30 90 60 180 3

    Total 930 3120 1140 5190 86,5

    Estos resultados muestran que utilizando el nuevo sistema, se reduce el tiempo de

    asignacin de 2 semanas, a menos de 4 das.

  • 7/24/2019 Cf Campothesis Cv

    42/74

    37

    Los resultados obtenidos son producidos, directamente, por un modelo de optimizacin cuya

    escritura, parametrizacin y lectura requieren de conocimientos avanzados de Optimizacin y

    modelamiento matemtico. Sin embargo, gracias al presente sistema, el usuario final no

    requiere de ningn tipo de conocimiento adicional. La carga de datos es transparente, sigue los

    mismos estndares de manejo de datos que existe actualmente en la empresa y los resultados

    corresponden a los estndares con los que se trabaja. El sistema queda a cargo de darle formatoa la informacin, de entregar al solver la informacin que el modelo de optimizacin requiere y,

    una vez que se tiene la respuesta, de tomarla y darle un formato legible por un humano.

  • 7/24/2019 Cf Campothesis Cv

    43/74

    38

    7. Conclusiones y Trabajo a futuro

    Durante el desarrollo de este proyecto se trabaj en el diseo y la posterior implementacin

    de un sistema de planificacin de personal. Este sistema maneja la informacin de

    requerimientos de personal y de capacitaciones, licencias, vacaciones y requerimientos

    especiales de los empleados de una empresa con los cuales se les genera una asignacinmensual de turnos.

    Este trabajo fue documentado y se mantuvo dentro de los estndares de programacin y

    nomenclatura especificados por la empresa y se llev a cabo a travs de constantes reuniones

    con el personal de Andes en las que se detallaban los usos y necesidades que se requeran de la

    solucin tecnolgica a desarrollar, en el subsiguiente trabajo en comprender y simplificar el

    proceso completo, en idear las arquitecturas y estructuras de datos capaces de soportar dicha

    informacin y, finalmente, desarrollar, probar y validar la solucin.

    El sistema desarrollado entrega como input a un solver toda la informacin que requiere en

    los formatos necesarios y obtiene como resultado un archivo que es ledo y cargado dentro de

    la base de datos para su posterior gestin, entregando a un usuario las herramientas necesarias

    para su revisin, medicin y, en caso de ser necesario, edicin a travs de las interfaces de

    usuario que proporciona el sitio web.

    Previa a la puesta en marcha en Andes, el sistema fue ampliamente probado, tanto por el

    equipo de desarrollo del sistema computacional como por el equipo de modelamiento, para

    comprobar que el sistema entregara los resultados esperados cuando finalmente se desplegara

    en la empresa.

    El desarrollo de la aplicacin present una serie de dificultades. En primer lugar el equipo de

    trabajo no tena experiencia en el framework utilizado, pese a cumplir con las necesidades por

    las que fue escogido. Esto llev a problemas en el aprendizaje y un leve retraso en el avance del

    proyecto, aunque finalmente se logr manejar de manera adecuada la herramienta y obtener

    los resultados que se esperaban, esto es, un menor tiempo de respuesta para producir los

    cambios que requera el usuario.

    En segundo lugar existieron problemas de comunicacin con la empresa. Al momento de

    iniciar el proyecto ninguna de las personas con las que entablaron reuniones tena un

    conocimiento completo y acabado del proceso real de rostering. Esto llev a muchos cambios

    en los requerimientos iniciales, tanto del sistema de manejo de datos como para el modelo de

    optimizacin que terminaron prolongando el proyecto por ms tiempo del propuesto

    inicialmente y forzando al equipo a estar constantemente modificando los avances obtenidos.

  • 7/24/2019 Cf Campothesis Cv

    44/74

    39

    A pesar de estas dificultades, sin embargo, se logr entregar un producto que cumple con las

    necesidades requeridas y que fue validado tanto por el equipo especializado en el rea

    matemtica, como por la propia empresa.

    Producto de las nuevas herramientas que se le entregaron al rea de Planificacin, surgieron

    nuevas ideas de parte de Andes. Teniendo en cuenta estas nuevas necesidades, en un futuro se

    podra extender la herramienta para obtener todas o algunas de las siguientes opciones:

    1. Mejores vistas de reportes: Segn lo requerido por Andes se procedi a generar una

    serie de reportes simples (tablas) para manejar estadsticas del roster actual. Sinembargo ya que la informacin histrica de rosters pasados existe en la base de datosesta informacin podra ser mostrada de maneras visuales como grficos o de manerams segmentada haciendo cruces entre meses o incluso aos.

    2. Paso a Desarrollo/Produccin: Actualmente el desarrollo de la aplicacin corresponde a

    una prueba de concepto, una figura creada para comprobar la factibilidad de

    proyectos de software sin la necesidad de entrar al flujo normal de certificacin de

    proyectos de LAN. Sin embargo estaba contemplado la generacin de todos losdocumentos necesarios para iniciar el debido proceso de un proyecto en LAN.

    3. Conexin con base de datos de RRHH: Actualmente, debido a la separacin existenteentre los servicios en ejecucin en Andes y los servidores de desarrollo de LAN, lacomunicacin entre las bases de RRHH y las necesarias por el sistema se encuentranseparadas. En un futuro, la base de datos del sistema podra ser homologada a su smilen Andes reduciendo la posibilidad de errores en el manejo de informacin.

    4. Agregar el flujo del proceso extendido a la herramienta: La herramienta maneja distintostipos de usuario, pero esto slo filtra las capacidades de edicin a ciertas tablas. Como

    una futura mejora al sistema se podra agregar el flujo que corresponde a la creacin delroster a nivel organizacional: Que el ciclo completo de captura de datos (rea RRHH),requerimientos (rea Capacity) construccin del roster (rea Planning) y revisin(Gerencia) est contenido en el sistema.

    5.

    Sistema para el manejo de turnos da a da: El sistema propuesto en la memoria cumplecon las funciones crticas: El manejo de datos para lograr generar una asignacinmensual, dicha generacin, y la edicin del resultado. Sin embargo, queda la opcin afuturo de expandir el Sistema para no slo planificar el mes, sino tambin para hacersecargo de las contingencias diarias.

  • 7/24/2019 Cf Campothesis Cv

    45/74

    40

    8. Bibliografa y Referencias

    [1] P. Brucker, R. Qu and E. Burke, Personnel scheduling: Models and complexity, European

    Journal of Operational Research, no. 210, pp. 467-473, 2011.

    [2] A. T. Ernst, H. Jiang, M. Krishnamoorthy and D. Sier, Staff scheduling and rostering: A reviewof applications, methods and models, European Journal of Operational Research, no. 153,

    pp. 3-27, 2004.

    [3] H. Hoogeveen and E. Penninkx, Finding Near-Optimal Rosters Using Column Generation,

    Technical Report UU-CS-2007-002, 22 December 2006.

    [4] O. Enterprise, Oracle Application Development FrameWork (ADF) Data Sheet, 2013.

    [5] S. OBrien y S. Shmeltzer, Oracle Application Development Framework Overview, 2011.

    [6] H. Mittelmann, Benchmarks for Optimization Software, 8 8 2012. [En lnea]. Available:

    http://plato.asu.edu/bench.html. [ltimo acceso: 20 11 2012].

    [7] B. Stroustrup, C++ Programming Language, 8 ed., 1998.

    [8] M. Bazargan, Airline Operations and Scheduling, Segunda ed., Ashgate Publishing, 2010.

    [9] R. S. Pressman, Ingeniera del Software: Un enfoque prctico, sexta ed., Mc Graham Hill,

    2004.

  • 7/24/2019 Cf Campothesis Cv

    46/74

    41

    Anexos:

    A continuacin se presenta en detalle informacin del proyecto que, por ser demasiada

    extensiva o especfica, no fue incorporada en el cuerpo principal de este documento. La

    informacin corresponde a:

    Casos de Uso.:El detalle de los Casos de Uso del sistema.

    Interfaces de Usuario: Las interfaces diseadas para todas las vistas que conforman el

    sitio web.

    Diccionario de Datos: La descripcin detallada de las distintas tablas que componen la

    base de datos del sistema.

    Diagrama Base de Datos:Un diagrama completo de la base de datos implementada.

    Formato de los archivos de entrada de datos: El formato de los archivos de datos que

    deben ser importados al sistema para su funcionamiento.

    A. Casos de Uso.

    Caso de Uso: 1

    Descripcin: El usuario desea generar un nuevo roster par el mes en planificacin

    Precondiciones :

    El mes que se desea generar es el mes que se est planeando (el mes siguienteal actual)

    Flujo normal

    El usuario ingresa al sistema por medio de un Login

    Selecciona el mes que va a generar

    Selecciona y sube al sistema los archivos necesarios para la generacin de un

    rolSi los datos no son los adecuados pues necesitan algn tipo de correccin, sepasa a editarlos en una vista de edicin

    En el momento que los datos sean satisfactorios, se guardan y se pasa a lasiguiente etapa.

    Se seleccionan los cargos para los cuales se usara el modelo de optimizacin.Estos cargos tienen que tener datos en el sistema para el mes en curso

    Se da inicio al proceso de generacin de roster para los cargos seleccionados

    En la vista de resultados se puede editar a mano el rol, mostrando en tiemporeal los KPI

    En caso que se deban generar cambios puntuales a los datos se debe abrir unpop-up que maneje la peticin

    En caso de que los cambios a realizar sean masivos, se puede regresar a lavista de carga de datos sin necesidad de volver a lanzar el roster

    Una vez satisfecho, se debe guardar el rol

    Previa revisin del Rol con las otras reas relevantes se pasa a liberar el rolpara su impresin y envi a los empleados

    Post-condiciones

  • 7/24/2019 Cf Campothesis Cv

    47/74

    42

    La nica informacin vlida para la generacin automtica del Roster es lacontenida en las bases de datos que alimentan al modelo, no as lainformacin del resultado

    Caso de Uso: 2

    Descripcin:El usuario desea modificar el roster para el mes en planificacin

    Precondiciones :Deben existir datos ya en el sistema y el mes a seleccionar debe ser el que seest planificando actualmente

    Flujo normal

    El usuario ingresa al sistema y selecciona el mes que se encuentra enplanificacin

    Si existe el Rol se puede pasar a editar. En caso de que no exista, se debeproceder a crearlo a partir de datos en el sistema. Si no existen datos en elsistema para ese cargo, entonces se debe proceder a subirlos en primer lugar

    Se realizan las modificaciones que se estimen necesarias

    Si los cambios a realizar son numerosos o existi un cambio importante en losdatos del sistema, se puede pasar a editar los datos y volver a hacer funcionarel solver para generar un nuevo rol

    Una vez satisfecho, se debe guardar el rol

    Previa revisin del Rol con las otras reas relevantes se pasa a liberar el rolpara su impresin y envi a los empleados

    Post-condiciones

    La nica informacin vlida para la generacin automtica del Roster es lacontenida en las bases de datos que alimentan al modelo, no as lainformacin del resultado

    Caso de Uso: 3

    Descripcin: El usuario desea modificar un rol generado para un mes en curso

    Precondiciones : Debe existir un rol ya generado y el mes debe ser el actual

    Flujo normal

    El usuario ingresa al sistema y selecciona el mes que se encuentra en curso

    Si existe el Rol se puede pasar a editar. En caso de que no exista, se debeproceder a crearlo a partir de datos en el sistema. Si no existen datos en elsistema para ese cargo, entonces se debe proceder a subirlos en primer lugar

    Se realizan las modificaciones que se estimen necesarias

    Se selecciona personas o das que estarn fijos y que no sern modificados al

    momento de lanzar nuevamente el solverSi los cambios a realizar son numerosos o existi un cambio importante en losdatos del sistema, se puede pasar a editar los datos y volver a hacer funcionarel solver para generar un nuevo rol.

    Una vez satisfecho, se debe guardar el rol

    Previa revisin del Rol con las otras reas relevantes se pasa a liberar el rolpara su impresin y envi a los empleados

    Post-condiciones

  • 7/24/2019 Cf Campothesis Cv

    48/74

    43

    La nica informacin vlida para la generacin automtica del Roster es lacontenida en las bases de datos que alimentan al modelo, no as lainformacin del resultado

    Al terminar un rol, se debe seguir un protocolo por establecer para lacomunicacin de este con el resto de los interesados (ya sea por envo demails o impresin de los roles individuales)

    Caso de Uso: 4

    Descripcin: El usuario desea consultar o editar roles de meses anteriores

    Precondiciones : Deben existir en el sistema los meses que se desean revisar

    Flujo normal

    El usuario ingresa al sistema y selecciona el mes

    Se pasa a revisar el rol, realizndose las modificaciones que se estimenconvenientes

    Al terminar la edicin, se puede guardar la informacin del roster

    Post-condiciones

    La nica informacin vlida para la generacin automtica del Roster es lacontenida en las bases de datos que alimentan al modelo, no as lainformacin del resultado

    En caso de que se realicen cambios y se deseen guardar, estos son versionesdel mes correspondiente (mesXversion2), quedando siempre en el sistema elmes original inmutable.

    Caso de Uso: 5

    Descripcin: El usuario desea crear un rol para un mes futuro

    Precondiciones :

    El mes a seleccionar no debe ser un mes pasado, o el mes en curso o enplanificacin.

    Flujo normal

    El usuario ingresa al sistema por medio de un Login

    Selecciona el mes que va a generar

    Selecciona y sube al sistema los archivos necesarios para la generacin de unrol, si lo desea puede usar los datos de un mes en particular

    Si los datos no son los adecuados pues necesitan algn tipo de correccin, sepasa a editarlos en una vista de edicin

    En el momento que los datos sean satisfactorios, se guardan y se pasa a lasiguiente etapa

    Se seleccionan los cargos para los cuales se usara el modelo de optimizacin.Estos cargos tienen que tener datos en el sistema para el mes en curso

    Se da inicio al proceso de generacin de roster para los cargos seleccionados

    En la vista de resultados se puede editar a mano el rol, mostrando en tiemporeal los KPI

    En caso que se deban generar cambios puntuales a los datos se debe abrir unpop-up que maneje la peticin

  • 7/24/2019 Cf Campothesis Cv

    49/74

    44

    En caso de que los cambios a realizar sean masivos, se puede regresar a lavista de carga de datos sin necesidad de volver a lanzar el roster

    Una vez satisfecho, se puede guardar el rol

    Post-condiciones

    Todos los datos generados se guardan como versiones, ninguno corresponde acambios histricos o reales

    La nica informacin vlida para la generacin automtica del Roster es lacontenida en las bases de datos que alimentan al modelo, no as lainformacin del resultado

    Caso de Uso: 6

    Descripcin: El usuario desea generar reportes sobre un roster

    Precondiciones : Debe existir