SciELO - Scientific Electronic Library Online

 
vol.9 suppl.1Técnicas para el tratamiento de restricciones en el problema de conformación de equipos de proyectos de software índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Cubana de Ciencias Informáticas

versión On-line ISSN 2227-1899

Rev cuba cienc informat vol.9  supl.1 La Habana  2015

 

ARTÍCULO ORIGINAL

 

Solución al problema de conformación de equipos de proyectos de software utilizando la biblioteca de clases BICIAM

 

Solution to the problem of forming teams software projects using BICIAM library

 

 

Ana Lilian Infante Abreu 1*, Rosalí Díaz Hernández 1, Margarita André Ampuero 1 , Alejandro Rosete Suárez 1, Jenny Fajardo Calderín 1, Katerine Escalera Fariñas 1

1 Instituto Superior Politécnico José Antonio Echeverría (CUJAE), Calle 114, # 11901, e/  Ciclovía y Rotonda, Marianao, La Habana, Cuba.

  

*Autor para correspondencia: ainfante@ceis.cujae.edu.cu

 

 


RESUMEN

El reto de conformar equipos de proyectos de software apropiados, resulta de gran importancia para las empresas de desarrollo de software, dado que el equipo juega un papel importante en el éxito o fracaso de un proyecto. Este trabajo hace referencia  a un modelo formal para la conformación de equipos de proyectos de software. El modelo responde a un problema de optimización combinatorio multiobjetivo planteando cuatro funciones objetivos y doce tipo de restricciones. Para dar solución al problema se implementaron algoritmos metaheurísticos y para tratar las restricciones que incluye el modelo se implementó la estrategia de rechazo. Esta estrategia en el problema planteado presenta inconvenientes, ya que un porciento considerable de las soluciones generadas es no factible. Existen diferentes técnicas para el manejo de las restricciones, en este trabajo se presenta un análisis de las diferentes técnicas que pueden ser aplicadas al problema de conformación de equipos de proyectos de software.

Palabras clave: conformación de equipos de software, algoritmos metaheurísticos, técnicas para tratamiento de restricciones


ABSTRACT

The challenge of forming appropriate teams of software projects is of great importance for software development companies, as the team plays an important role in the success or failure of a project. This paper refers to a formal model for forming software project teams. The model responds to a multiobjective combinatorial optimization problem putting four goals and twelve functions restrictions. To solve the problem metaheuristic algorithms were implemented and to address the constraints that includes model rejection strategy was implemented. This strategy has the problem posed problems because a significant percentage of the generated solutions are not feasible. There are different techniques for handling constraints, this paper analyzes different techniques that can be applied to the problem of forming teams of software projects is presented.

Keywords: conformation teams of software, metaheuristics algorithms, techniques for handling constraints


 

 

INTRODUCCIÓN

La conformación de un equipo de proyecto de software responde a un problema multiobjetivo ya que implica tomar en cuenta diferentes factores, no solo aquellos que contribuyan a la asignación del personal adecuado a cada uno de los roles, las competencias y la carga de trabajo, sino aspectos vinculados a la conformación del equipo como un todo, como las relaciones entre los miembros.

La cantidad de combinaciones de asignaciones posibles, en dimensiones relativamente significativas de roles a cubrir y empleados disponibles, provoca que el proceso de conformación del equipo sea prácticamente imposible de abordar sin la ayuda de herramientas de soporte a la decisión que se basen en algoritmos de solución de modelos matemáticos, que representen el problema a resolver lo más objetivamente posible.

Este trabajo toma como base un modelo para la conformación de equipos de proyectos de software (André, 2009; André, Baldoquín et al., 2011) que propone optimizar cuatro funciones objetivo: maximizar las competencias de los trabajadores, minimizar las incompatibilidades entre los miembros del equipo, balancear la carga de trabajo y minimizar el costo del desarrollo a distancia (para aquellas organizaciones que incluyan este modelo de trabajo), e incluye doce tipos de restricciones.

Existen diferentes técnicas para el manejo de las restricciones entre las que se encuentran: estrategia de penalización, rechazo, reparación, entre otras. Para tratar las restricciones que incluye el modelo, solo está implementada la estrategia de rechazo. Sin embargo, esta estrategia en el problema planteado presenta inconvenientes ya que el porciento de soluciones no factibles generadas es elevado.

Este trabajo tiene como objetivo realizar un estudio de las diferentes estrategias para tratar las restricciones que pueden ser aplicadas al problema de conformación de equipos de proyectos de software.

 

MATERIALES Y MÉTODOS

El problema de conformación de equipos de proyectos implica la asignación de n personas a m roles,  donde una persona puede desempeñar más de un rol y un rol puede ser desempeñado por más de una persona.

Este trabajo toma como referencia el modelo propuesto en (André, 2009) que representa el problema de conformación de equipos de software. El modelo propone cuatro funciones objetivos: maximizar las competencias de los trabajadores, minimizar las incompatibilidades entre los trabajadores de un equipo de proyecto, balancear la carga del personal del equipo y minimizar el costo de trabajar a distancia. El último objetivo no está incluido en el modelo por defecto, sino en una versión ampliada, ya que solo es aplicable a organizaciones que enfrentan esta variante de desarrollo.

El modelo toma en cuenta un conjunto de restricciones que garantizan la asignación individual de personas a roles:

  • Los roles deben ser cubiertos en función de la cantidad necesaria de personas a desempeñarlo.
  • Una persona no puede desempeñar al mismo tiempo roles que se consideren incompatibles entre sí.
  • Restringir el número máximo de roles que puede desempeñar cualquier trabajador en el proyecto.
  • Para que una persona desempeñe un rol, debe cumplir los requisitos mínimos de nivel de competencia para desempeñar dicho rol.
  • La carga de trabajo total asignada a un empleado no debe ser mayor que un valor máximo.

Existen otro conjunto de restricciones asociadas a la relación que existe entre los roles de Belbin, los tipos psicológicos de Myers Briggs y los roles a desempeñar en un equipo de proyecto de software (André, Baldoquín et al., 2008; Rodríguez, 2008; André, 2009; André, Baldoquín et al., 2011):

  • Un conjunto de restricciones garantizan que en el equipo de desarrollo se representen las tres categorías de roles propuestas por Belbin (roles de acción, roles mentales y roles sociales).
  • En el equipo de trabajo la preferencia de desempeñar roles de acción debe sobrepasar la preferencia por desempeñar los roles mentales.
  • En el equipo de trabajo la preferencia de desempeñar roles mentales deben sobrepasar la preferencia por desempeñar los roles sociales.
  • La persona que desarrolla el rol de Jefe de Proyecto debe tener como preferido los roles de Belbin: Impulsor o Coordinador.
  • En el equipo, al menos una persona debe tener como preferido el rol Cerebro.
  • La persona que desarrolla el rol Jefe de Proyecto debe ser extrovertida y planificada (subtipo E_ _J) según el test de Myers-Briggs.

Metaheurísticas
Dado que el modelo de conformación de equipos de software corresponde a un problema combinatorio, se utilizaron algoritmos metaheurísticos para su solución.

Los algoritmos metaheurísticos son algoritmos aproximados de propósito general. Ofrecen en un tiempo de ejecución razonable una buena solución al problema planteado pero no garantizan obtener una solución óptima.

Entre los algoritmos implementados se encuentran Escalador de Colinas de Mejor Ascenso con Reinicio (Juels and Watenberg, 1994; Jones, 1995), Recocido Simulado (Kirkpatrick, Gelatt et al., 1983), Búsqueda Tabú (Glover, 1986),  Híbridos de GRASP (Resende and Ribeiro, 2003) como: GRASP y Escalador de Colinas de Mejor Ascenso, GRASP y Recocido Simulado, GRASP con Tabú, Escalador de Colinas Estocástico Multiobjetivo (Díaz, 2001), Escalador de Colinas Estocástico Multiobjetivo con Reinicio (Díaz, 2001), Escalador de Colinas Estocástico Multiobjetivo por mayor distancia (Díaz, 2001), Búsqueda Tabú Multiobjetivo (Baykasoglu, Ozbaku et al., 2002), Recocido Simulado Multiobjetivo Multicaso (Haidine and Lehnert, 2008) y Recocido Simulado Multiobjetivo de Ulungu (Ulungu and Teghem, 1994).

Representación del problema
Representación del problema
Para el problema planteado, la representación de una solución se muestra en la figura 1. Dado que el problema consiste en asignar trabajadores a los roles definidos en un equipo de proyecto y que se puede necesitar que se asignen varios trabajadores a un mismo rol, se define como solución, una lista de elementos, donde cada elemento está compuesto por un rol y la lista de trabajadores que juegan ese rol.

f01

El problema planteado tiene una particularidad, asociada al hecho de que se puede querer buscar una solución fijando uno o varios trabajadores en uno o más roles.

Los operadores utilizados son sustitución y permutación. El operador sustitución, escoge uno de los roles de la solución y sustituye uno de los trabajadores que juegan ese rol por otro del espacio de soluciones. El operador permutación escoge dos roles de la solución aleatoriamente, selecciona un trabajador de cada rol y los intercambia.

Tamaño del espacio de solución
El tamaño del espacio de soluciones se calcula a través de las r-permutaciones (Johnsonbaugh, 2004) como n!/(n-m)!, donde n es la cantidad de trabajadores y m la cantidad de roles. Poner ejemplo para una instancia de 60  trabajadores y 6 roles, suponiendo que un trabajador solo puede desempeñar un rol y que el rol Jefe de Proyecto se asigna al inicio y permanece fijo durante la asignación, el espacio de soluciones es 6 x 108.

Funciones objetivo
Siendo n la cantidad de trabajadores y m la cantidad de roles a cubrir para formar un equipo de proyecto, el modelo referido propone optimizar las siguientes funciones objetivo (André, 2009):

  • Maximizar las competencias de los trabajadores

Siendo   si el empleado i es asignado al rol j y 0 en caso contrario, y  la competencia neta del empleado i para desempeñar el rol j.
Para determinar la competencia neta, es necesario tener en cuenta los índices de competencia del trabajador i en las competencias necesarias para desempeñar el rol j, así como la experiencia del trabajador en el desempeño de dicho rol.
El índice de competencias tiene en cuenta los niveles de competencia que tiene el trabajador i en las competencias genéricas y técnicas necesarias para el desempeño del rol j y el peso que tiene cada competencia en el rol en función de su importancia.
La experiencia se determina a partir de la cantidad de proyectos en los que el trabajador i ha desempeñado el rol j, así como la evaluación recibida en su desempeño.

Técnicas para el tratamiento de restricciones

Mucho de los problemas de optimización están sujetos a restricciones. Estas pueden ser de cualquier  tipo: lineal o no lineal, de igualdad o desigualdad.

Existen diferentes técnicas para el manejo de las restricciones que actúan principalmente en la representación de la solución o de la función objetivo. Estas técnicas se pueden clasificar como: estrategias de rechazo, estrategias de penalización, estrategias de reparación, entre otras (Talbi, 1965). A continuación se explica en qué consisten cada una de estas técnicas.

Estrategia de rechazo: consiste en aceptar durante la búsqueda solo soluciones factibles, descartando las soluciones no factibles que son generadas. Este tipo de estrategia generalmente es usada cuando la porción de soluciones no factibles del espacio de búsqueda es pequeño (Talbi, 1965).

En algunos problemas las regiones factibles del espacio de soluciones puede ser discontinuo, por lo que un camino entre dos soluciones factible solo puede existir si se aceptan soluciones no factibles (Talbi, 1965).

Estrategia de penalización: esta estrategia considera en la búsqueda soluciones no factibles pero estas son penalizadas. Existen diferentes alternativas para definir las sanciones, entre las que se encuentran (Talbi, 1965):
Restricciones violadas: consiste en contar el número de restricciones que se incumplen y agregar a la función objetivo una función de penalización.

 

RESULTADOS Y DISCUCIÓN

Técnicas para el tratamiento de restricciones en el problema de conformación de equipos
Una vez estudiadas las diferentes técnicas para el tratamiento de restricciones y las particularidades del problema de conformación de equipos, se hace un análisis de las técnicas que pueden ser utilizadas en este problema para tratar las restricciones del mismo.

  • La estrategia de rechazo solo considera soluciones factibles, las soluciones que incumplen alguna de las restricciones son consideradas soluciones no factibles, y por tanto no se toman en cuenta durante la búsqueda de una solución. En pruebas realizadas teniendo en cuenta esta técnica aproximadamente el 67% de las soluciones generadas son no factibles, por lo que gran parte del tiempo de búsqueda se emplea en construir soluciones que no serán aceptadas debido a que son soluciones no factibles.
  • Teniendo en cuenta la complejidad del problema y la representación utilizada, no se ha encontrado un operador que garantice la factibilidad de las soluciones generadas.
  • Uno de los operadores utilizados en la solución del problema es el operador de sustitución. Este operador escoge uno de los roles de la solución y sustituye uno de los trabajadores que juegan ese rol por otro del espacio de soluciones. En este caso se pudiera tener organizado el espacio de soluciones en función del cumplimiento de cada una de las restricciones individuales, lo que garantizaría asignar en un rol a las personas que cumplan con las restricciones. Sin embargo, las restricciones de equipo solo se pueden chequear una vez conformado el equipo y por tanto son más difíciles de garantizar en el momento de conformar la solución. Aunque esta variante no garantiza obtener siempre soluciones factibles, al menos disminuye el número de restricciones a chequear.

  • Una alternativa viable es aplicar la estrategia de modificación de operadores explicada anteriormente y  la estrategia de penalización para las restricciones de equipo.

  • Otro elemento a considerar es partir de una solución que cumpla con todas las restricciones, es decir una solución factible y a partir de esta emplear cualquiera de las estrategias analizadas.

Teniendo en cuenta esto, para tratar las restricciones en el problema de conformación de equipos pueden utilizarse las estrategias de rechazo, penalización, puede modificarse el operar utilizado y la combinación de estas.

 

CONCLUSIONES

A partir del estudio realizado se arriban a las siguientes conclusiones:

  • Para el manejo de las restricciones existen diferentes técnicas: estrategias de rechazo, penalización, reparación, tratamiento de las restricciones como objetivos, entre otras.
  • Entre las técnicas para el manejo de restricciones más utilizadas se encuentran las estrategias de penalización.
  • Con la técnica de rechazo gran parte del tiempo se emplea en generar soluciones no factibles y puede no estarse explorando espacios de soluciones factibles.
  • Con la técnica de penalización, puede obtenerse como resultado de la búsqueda una solución no factible.
  • Los operadores utilizados en la solución del problema no garantizan obtener una solución factible.
  • Para tratar las restricciones en el problema de conformación de equipos pueden utilizarse las estrategias de rechazo, penalización, puede modificarse el operar utilizado y la combinación de estas.

 

REFERENCIAS BIBLIOGRÁFICAS

Ashenden, Peter J. The VHDL Cookbook. Departamento de Ciencias de la Computación, Universidad de Adelaide, Australia. Julio, 1990.

Batard Lorenzo, David & Martínez Hernando, Víctor J. “Simulación de NEP en Java”, Evento UCIENCIA 2012, La Habana, Cuba, 2012.

Implementación sobre FPGA de una Red de Procesadores Evolutivos (NEP) para solucionar el Problema de los Tres Colores. I Convención Internacional de Ciencias Técnicas y VII

Conferencia Internacional de Ingeniería Eléctrica, Universidad de Oriente, Santiago de Cuba, Cuba, junio 2014. ISBN: 978-959-207-529-0

Implementación en Hardware Reconfigurable de una Red de Procesadores Evolutivos para la Solución a un Problema NP-Completo. I Conferencia Internacional UCIENCIA, Universidad de las Ciencias Informáticas, La Habana, Cuba, abril 2014. ISBN 978-959-286-026-1

Díaz Martínez, Miguel Ángel. “Redes de Procesadores Evolutivos con Filtros en las Conexiones”. Tesis Doctoral, Universidad Politécnica de Madrid, España, 2008.

Digilent. Información obtenida en fecha 26 de junio de 2014. Información en http://www.digilentinc.com/Products/ATLYS.

Freire Rubio, Miguel Ángel. “Manual de Introducción al lenguaje VHDL”. Universidad Politécnica de Madrid, España. Año 2011.

Martínez Hernando, Víctor. “Desarrollo de Sistemas Físicos para Implantar Modelos de Computación con Membranas”. Tesis Doctoral, Universidad Politécnica de Madrid, España (2008).

Păun, Gh., Rozenberg, G., & Salomaa, A., “DNA Computing. New Computing Paradigms”, Berlin, Springer, 1998.

Ramírez Despaine, Maikel. “Controlador Lógico Programable basado en Hardware Reconfigurable”. Tesis de Maestría, CUJAE, La Habana, Cuba, 2011.

Xilinx. Información obtenida en //www.Xilinx.com. Información Publicada el 20 de febrero de 2013, consultada el 15 de mayo de 2015.

 

 

Recibido: 05/01/2015
Aceptado: 20/02/2015

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons