Monografias.com > Computación > Software
Descargar Imprimir Comentar Ver trabajos relacionados

Proyectos Software. Estimación del Coste



    1. Resumen
    2. Descripción del
      Problema
    3. Aproximación
      histórica al problema
    4. Técnicas y
      Metodología
    5. Método de
      Modelado
    6. Conclusiones
    7. Referencias

    Resumen

    La estimación de plazos en proyectos es
    una tarea crítica, que puede conducir al fracaso
    del proyecto,
    debido al alargamiento de la duración o a una mala
    estimación del esfuerzo necesario para ejecutarlo. Es
    necesario disponer de una herramienta que nos ayude a tener
    más conocimiento
    sobre el proyecto para seleccionar las variables
    influyentes sobre las desviaciones del proyecto y que
    proporcione unas estimaciones más ajustadas.
    En este artículo se analizan la viabilidad y las
    ventajas del desarrollo
    de un sistema basado
    en técnicas
    de inteligencia
    artificial capaz de seleccionar las variables que afectan a
    la duración del proyecto y al esfuerzo necesario para
    realizarlo a partir de un conjunto de datos
    históricos, frente a las técnicas actuales.
    Para ello, se propone un método
    para el análisis de los datos existentes, y su
    preprocesamiento para conseguir un modelo que
    se ajuste a las necesidades del gerente de
    proyectos.

    Palabras clave: Estimación de Plazos y
    Esfuerzo, Gestión de Proyectos, Minería
    de Datos, Calidad,
    Planificación.

    1. Una de las fases en la gestión del proyecto
      es la estimación del esfuerzo y plazo de cada una de
      las actividades de las que constará, por lo tanto, es
      necesario disponer de buena información sobre la duración y
      el esfuerzo en personas-mes necesarias para realizar cada
      tarea.

      Disponer de esa información facilitará
      la gestión del proyecto tanto a nivel de costes como
      de plazos, facilitando la distribución de recursos y
      disminuyendo los riesgos o
      zonas criticas.

      La información histórica, procedente
      del cierre [9] de proyectos anteriores, proporcionará
      la base de conocimiento sobre la que se podrán aplicar
      las técnicas para extrapolar este conocimiento a
      futuros proyectos.

      El control
      del coste y su precisión a lo largo de la vida del
      proyecto, y la recopilación de los datos
      característicos de cada proyecto al finalizar
      éste, producen un efecto de corrección continua
      que permite fijar modelos
      específicos que facilitarán la
      planificación de los nuevos proyectos en todos los
      aspectos: costes, plazos y recursos.

      Es necesario disponer de una herramienta que nos
      ayude a tener más conocimiento del problema y permita
      seleccionar las variables influyentes sobre las desviaciones
      del proyecto y que proporcione unas estimaciones más
      ajustadas.

      En este artículo se analiza el desarrollo de
      un sistema basado en técnicas de inteligencia artificial capaz de seleccionar
      las variables que afectan a la duración del proyecto y
      al esfuerzo necesario para realizarlo a partir de un conjunto
      de datos históricos.

      Para el desarrollo del sistema se utilizó un
      conjunto de datos pertenecientes al International Software
      Benchmarking
      Standards Group,[1] recopilados a partir de la
      información extraída de la ejecución de
      más de 2000 proyectos. Estos datos contienen valores
      numéricos y categóricos, existiendo un gran
      porcentaje de valores perdidos. Por este motivo, los datos
      fueron sometidos a un exhaustivo preprocesamiento y se
      seleccionaron las técnicas de inteligencia artificial
      que mejor se ajustaran a la condición de los
      datos.

      Para desarrollar este articulo se comenzará
      describiendo cual es el alcance del problema que se pretende
      buscar solución. A continuación se
      enumerará un resumen de las técnicas utilizadas
      actualmente. Dado que se parte de un conjunto de datos
      históricos de proyectos anteriores, se aplicará
      una metodología de minería de datos.
      Se describe la metodología CRISP DM [8] que es la que
      se ha utilizado para este problema.

      Por ultimo se describe del método de modelado
      y las conclusiones a las que se han llegado para solucionar
      el problema planteado.

    2. Introducción

      La estimación del coste de un proyecto en
      sistemas de
      información, consiste en la aplicación de
      una serie de técnicas y procedimientos que una organización utiliza para conocer con
      adelanto el coste que conlleva el análisis,
      desarrollo, implantación y pruebas
      del sistema. La estimación precisa de los recursos y
      tiempo
      necesarios para el desarrollo de un proyecto, lo cual es
      esencial para el perfecto desarrollo de cualquier proyecto,
      pero más si cabe, en el sector informático, en
      el que los presupuestos y plazos se superan con creces de
      forma habitual, provocando en muchos casos el fracaso del
      proyecto.

      La predicción lo más exacta posible de
      los costes de un proyecto de sistema de
      información es una actividad crítica a la
      hora de tomar decisiones de gestión y determinar con
      detalle el esfuerzo y la dedicación que el jefe de
      proyecto, los analistas y programadores que se deberán
      aplicar. Sin una capacidad razonable de estimación de
      costes, los jefes de proyecto no podrán determinar
      cuanto tiempo y recursos requiere el proyecto, lo cual
      significa que éste está fuera de control desde
      el principio. Los analistas no podrán hacer
      análisis acertados durante las etapas de diseño, el personal del
      proyecto no podrá decir a sus jefes y clientes
      que sus plazos y presupuestos son irreales. Esto puede
      conducir a falsos optimismos y los inevitables retrasos y
      desviaciones.

      A pesar de que estamos hablando del término
      "estimación de coste", en proyectos de sistemas
      de información los
      valores obtenidos no se suelen medir directamente en
      unidades monetarias. Las estimaciones suelen ser
      valoraciones, con un cierto error, del esfuerzo esperado para
      el desarrollo del proyecto y de los plazos de tiempo
      requeridos para completarlo.

      Este es un producto
      sin existencia física propia y
      cuyo coste principal reside en su desarrollo o diseño
      (no en su fabricación o replicación a partir de
      la primera copia), es lógico que se asuma que el coste
      de su producción está dominado por los
      gastos de
      personal, midiéndose en personas-mes o
      personas-año.

      La estimación en los proyectos de sistemas de
      información presenta dificultades particulares ya que
      los productos
      que generan no se producen una y otra vez, al contrario, es
      habitual desarrollar un nuevo producto cada vez, empleando
      distintas técnicas y herramientas. La estimación en el
      software es, por ello, más inexacta, aunque no
      imposible. De hecho, otros sectores sufren problemas
      graves de estimación de costes cuando se enfrentan a
      nuevos productos o hay que emplear nuevas
      técnicas.

      Existen además, otras razones que dificultan
      la estimación de proyectos, entre ellas las presiones
      en la empresa
      (para disminuir el coste o los plazos necesarios) y el hecho
      de que existe una carencia generalizada de datos sobre
      proyectos terminados (tamaño del software, costes,
      productividad, etc.) que podrían guiar
      a los profesionales a la hora de realizar
      estimaciones.

      Todos los métodos actuales dependen de la
      cantidad de información disponible. A medida que se
      avanza en el proyecto, se obtiene una mayor cantidad de
      detalles y de información más fiable, por lo
      que la precisión de la estimación mejora
      progresivamente. Por ello, la estimación siempre debe
      ser un proceso
      continuo, con constantes refinamientos y mejoras, más
      que una actividad puntual.

    3. Descripción del
      Problema
    4. Aproximación
      histórica al problema

    Para realizar la recolección de los datos
    necesarios para solucionar el problema planteado, se procede al
    estudio de otros métodos utilizados en la actualidad para
    conocer cuales son los atributos que influyen y ayudan a definir
    el problema.

    El coste del desarrollo software es función
    básicamente del personal necesario y este se deriva de
    diversos factores relativos al proyecto, al equipo humano, las
    condiciones de desarrollo y el producto. La identificación
    del producto se realiza mediante métricas que caractericen
    su tamaño que es el factor primario en todos los modelos
    de coste.

    Existen dos formas habituales de medir el tamaño
    de un proyecto de sistemas de información que son,
    líneas de código
    y puntos de función.

    El Análisis de Puntos de Función [5] es
    una métrica que cuantifica la funcionalidad que hay que
    entregar al usuario al construir una aplicación. La
    propuesta inicial de los puntos de función fue realizada
    por A. J. Allbrecht y, desde entonces, ha sufrido diversos
    refinamientos y han aparecido diferentes versiones de la misma.
    Todas las variedades de puntos de función se apoyan en
    datos que implican la existencia de una especificación
    más o menos formalizada.

    La originalidad de este método está en que
    permite medir el tamaño de los proyectos de sistema de
    información, a partir de la visión que tienen los
    usuarios finales de las funciones que
    requiere la aplicación, sin preocuparse de la tecnología,
    herramientas o lenguajes de
    programación que serán utilizados.

    Los puntos de función clasifican estas vistas en
    cinco tipos de funcionalidades:

    • Entradas, en esta categoría se encuentra todo
      el aporte de comunicación de los usuarios al programa.
    • Salidas, todos los aportes de comunicación del
      programa con el usuario.
    • Ficheros lógicos internos, principales
      ficheros lógicos desde el punto de vista del
      usuario.
    • Ficheros de interfaz, ficheros para interactuar con
      otros programas.
    • Consultas, todas las entradas que han de provocar una
      salida inmediata.

    Una vez ponderados estos factores en función de
    la complejidad se consiguen los puntos de función no
    ajustados.

    Pero para conocer el efecto real de las funciones es
    necesario incorporar otros datos que introduzcan el efecto de
    aquellos factores que afecten globalmente a la aplicación.
    Estos factores de ajuste tienen en cuenta circunstancias como
    factores humanos o tecnológicos.

    Otro método es MARK II, este método es una
    evolución del modelo de Allan J. Albrecht,
    siendo su principal característica que contempla el
    sistema como una colección de transacciones lógicas
    compuestas por componentes de entrada, de proceso y de
    salida.

    Una vez ajustados los Puntos de Función, para
    realizar el cálculo de
    la duración del proyecto bastará con multiplicar el
    valor
    calculado por los días en que se valore cada Punto de
    Función. En cada organización se asigna un valor en
    días, diferente para el Punto de
    Función.

    También existen métodos que cuantifican
    las funcionalidades con métricas orientados a
    objetos.

    Otros métodos que se pueden utilizar para estimar
    el coste de un proyecto de sistemas de información es la
    "Opinión de expertos", que consiste en la consulta
    a personas experimentadas en la materia de que
    se trate.

    Otra técnica utilizada es la estimación
    por analogía, el cual consiste en una variante
    más formal de la opinión de expertos en la que se
    compara el proyecto que se va a desarrollar con uno o más
    proyectos terminados de los que se dispone de datos. En
    función de las similitudes y diferencias con dichos
    proyectos se deduce el coste del nuevo desarrollo.

    Otro conjunto de métodos son los que se denominan
    "ecuaciones, modelos de estimación". En general,
    son fórmulas matemáticas que relacionan los diversos
    parámetros del proyecto (tamaño del software que se
    debe construir, condiciones de entorno del proyecto, etc.) con el
    coste o esfuerzo requerido. Entre estos se encuentra SLIM y
    COCOMO.

    COCOMO [6] es un método de estimación
    empírica y está basado en datos obtenidos de la
    experiencia. Consiste en estimar el esfuerzo en personas-mes
    tomando como base el tamaño medido en líneas de
    código y la duración del proyecto basándose
    en el esfuerzo. También utiliza unos parámetros de
    ajuste según el tipo o modo de desarrollo del proyecto,
    que puede ser "organic", "semidetached" y "embedded".

    A partir de estas ecuaciones
    básicas, COCOMO distingue tres modelos distintos que se
    corresponden con las diferentes cantidades de información
    disponible en las distintas etapas del ciclo de vida,
    que será básico, intermedio o avanzado.

    Para el cálculo final del esfuerzo necesario,
    además de las fórmulas, se ha de aplicar un factor
    de ajuste del esfuerzo que incluyen atributos del producto,
    hardware, del
    personal y del proyecto.

    Posteriormente surge una nueva evolución, COCOMO
    II [6] que se dirige a las siguientes tres fases del ciclo de
    vida en espiral que son: desarrollo de aplicaciones,
    diseño anticipado y Post-Arquitectura.
    También se han cambiado los tres modos del exponente, se
    han reemplazado por cinco factores de escala.

    1. Dado que se parte de un conjunto de datos
      históricos, se plantea utilizar una metodología
      orientada a la minería de datos, ya que se pretende
      conseguir mediante técnicas y herramientas extraer un
      conocimiento implícito, que actualmente no conocemos y
      se encuentra almacenado en el conjunto de datos. Utilizar
      esta metodología tiene como objetivo
      predecir de forma automatizada tendencias y comportamientos o
      construir un modelo desconocido.

      La metodología CRISP-DM [8] estructura
      el ciclo de vida de un proyecto de minería de datos en
      seis fases, que interactúan entre ellas de forma
      iterativa durante el desarrollo del proyecto.

      Fases del proceso de modelado
      metodología CRISP-DM.

      La primera fase, análisis del problema,
      incluye la comprensión de los objetivos
      y requerimientos del proyecto desde una perspectiva
      empresarial, con el fin de convertirlos en objetivos
      técnicos y en una planificación.

      La segunda fase de análisis de datos
      comprende la recolección inicial de datos, en orden a
      que sea posible establecer un primer contacto con el
      problema, identificando la calidad de los datos y
      estableciendo las relaciones más evidentes que
      permitan establecer las primeras hipótesis.

      Una vez, realizado el análisis de datos, la
      metodología establece que se proceda a la
      preparación de los datos, de tal forma que puedan ser
      tratados
      por las técnicas de modelado. La preparación de
      datos incluye las tareas generales de selección de datos a los que se va a
      aplicar la técnica de modelado (variables y muestras),
      limpieza de los datos, generación de variables
      adicionales, integración de diferentes
      orígenes de datos y cambios de formato.

      La fase de preparación de los datos, se
      encuentra muy relacionada con la fase de modelado, puesto que
      en función de la técnica de modelado que vaya a
      ser utilizada los datos necesitan ser procesados en
      diferentes formas. Por lo tanto las fases de
      preparación y modelado interactúan de forma
      sistemática.

      En la fase de modelado se seleccionan las
      técnicas de modelado más apropiadas para el
      proyecto de minería de datos específico. Antes
      de proceder al modelado de los datos se debe de establecer un
      diseño del método de evaluación de los modelos, que permita
      establecer el grado de bondad de los modelos. Una vez
      realizadas estas tareas genéricas se procede a la
      generación y evaluación del modelo. Los
      parámetros utilizados en la generación del
      modelo dependen de las características de los
      datos.

      En la fase de evaluación, se evalúa el
      modelo, no desde el punto de vista de los datos, sino del
      cumplimiento de los criterios de éxito del problema. Se debe revisar el
      proceso seguido, teniendo en cuenta los resultados obtenidos,
      para poder
      repetir algún paso en el que, a la vista del
      desarrollo posterior del proceso, se hayan podido cometer
      errores. Si el modelo generado es válido en
      función de los criterios de éxito establecidos
      en la primera fase, se procede a la explotación del
      modelo.

      Normalmente los proyectos de minería de datos
      no terminan en la implantación del modelo sino que se
      debe documentar y presentar los resultados de manera
      comprensible en orden a lograr un incremento del
      conocimiento. Además, en la fase de explotación
      se debe asegurar el mantenimiento de la aplicación y la
      posible difusión de los resultados [3].

    2. Técnicas y
      Metodología

      Siguiendo los pasos marcados por la
      metodología, se realiza la adquisición de los
      datos para su posterior preparación y generar el
      modelo.

      Para comenzar el análisis del conjunto de
      datos, se ha partido de la base de
      datos histórica que ha proporcionado ISBSG
      (Intenational Software Benchmarking Standards Group), [1] el
      cual dispone de un repositorio de más de 2000
      proyectos. Los datos con los que se trabaja nos aportan
      información sobre el tipo de proyecto, tipo de
      producto, desarrollo, tamaño, tipo de equipo, puntos
      de función y esfuerzos.

      A continuación se procede a realizar una
      exploración de los datos y una verificación de
      la calidad.

      Para lo cual se realizan técnicas estadísticas básicas, para
      encontrar las propiedades de los datos. Dada la gran cantidad
      de variables categóricas se procede a realizar
      histogramas con las frecuencias de ocurrencia.

      En este punto se procede a realizar la fase de
      preparación de los datos. Esta fase ha sido muy
      costosa debido a la gran cantidad de valores ausentes, sobre
      los que se han analizado la utilización de diversas
      técnicas para predecir o eliminar ese hueco en la
      información.

      Porcentaje de variables que con
      valores ausentes.

      Se han realizado estudios para comprobar si esa
      ausencia de información tiene algún tipo de
      influencia en el esfuerzo necesario para realizar el
      proyecto, que es la variable que se ha identificado como
      salida del modelo.

      Otro de los problemas encontrados es la gran
      presencia de variables categóricas de difícil
      procesamiento por ciertos métodos de
      modelado.

      Se han considerado diferentes técnicas para
      el tratamiento y preprocesado de estas variables. Cuando el
      número de clases existente era reducido (inferior a
      seis), el tratamiento dado a los datos ha consistido en crear
      tantas variables como clases. Así por ejemplo, si la
      variable categórica "plataforma de desarrollo",
      contenía los valores MR , MF y PC, se han creado 3
      variables codificadas como (1,0,0) si el valor de la variable
      es MR, (0,1,0) si es MF y (0,0,1) si es PC.

      Cuando el número de clases de una variable
      era muy alto (superior a seis) se ha optado por transformar
      el valor de la categoría directamente a un valor
      numérico.

      Para el tratamiento de los datos perdidos se ha
      optado por seleccionar una técnica robusta que permita
      el manejo de este tipo de datos, tal como redes SOM, MARS [2] y
      MART [4].

      Para el proceso de evaluación de los
      resultados los datos han sido divididos en tres conjuntos
      separados de forma aleatoria: uno de ellos que contiene el
      75% de los datos ha sido destinado a la construcción del modelo, un 10% para la
      prueba del modelo y selección del mejor modelo. Los
      resultados se han validado con el 15% de datos
      restantes.

      Una vez generado el modelo se puede observar que la
      variable que más información aporta a la
      estimación del esfuerzo, para este modelo, es el
      tamaño máximo del equipo. También se
      puede considerar importante la estimación de los
      puntos de función y el valor del factor de
      ajuste.

      Otro factor importante es la plataforma de
      desarrollo utilizada y el tipo de lenguaje
      que se utiliza en la programación, se ha de destacar que la
      ausencia de información en estas dos variables tiene
      una gran importancia relativa para la estimación del
      esfuerzo.

      También se ha introducido en el modelo un
      parámetro informativo respecto a la calidad de la
      información, en este caso se han dividido en cuatro
      categorías que son: convincente, correcto, no probado
      y poca credibilidad.

      El modelo también tiene en cuenta si se ha
      realizado una adaptación del código, si se ha
      utilizado planificación, así como otras
      variables relacionadas con la métrica utilizada y la
      implicación de los recursos.

    3. Método de
      Modelado
    4. Conclusiones

    Todas las normas o
    metodologías de gestión de proyectos que existen
    actualmente hacen hincapié en la importancia de la
    gestión de plazos y costes dentro de cualquier tipo de
    proyecto y mucho más en los proyectos de sistemas de
    información debido a las peculiaridades
    propias.

    El sistema elegido para realizar las estimaciones ha de
    tener la confianza del director de proyectos y permitir adaptarse
    a las necesidades cambiantes de la producción de los
    nuevos sistemas de información.

    La recopilación de datos históricos en el
    cierre del proyecto es imprescindible para actualizar la base de
    datos de proyectos y para que el sistema pueda ajustar sus
    parámetros a las condiciones cambiantes de los sistemas de
    información.

    Referencias

    1. ISBSG. International Software Benchmarking Standards
      Group. http://www.isbsg.org/
    2. Friedman, Jerome H. Multivariate Adaptive Regression
      Splines. The annals of statistics. Volumen:19,
      Nº 1, pag. 1-141, 1991.
    3. Rodríguez M. T., Ortega F., Rendueles J. L.,
      Menendez C. Convination of Multivariate Adaptive Techniques and
      neural networks prediction and control of internal cleanliness
      in Steel Strips. Procedeeings of EUNITE 2003. Oulu
      2003
    4. Friedman, Jerome H. Greedy function approximation: a
      gradient boosting machine. Technical report, department of
      Statistics, Stanford university 1999
      .
    5. IFPUG, International Function Point Users’
      Group. http://www.ifpug.org/
    6. COCOMO, Constructive Cost Model. http://sunset.usc.edu/research/COCOMOII/
    7. Chapman, P, Clinton, J. Khabaza, T. Reinartz, T.
      Rüdiger, W. The CRISP-DM Process Modelo, CRISP-DM
      Discusión Paper, 1999
    8. CRISP DM, CRoss-Industry Standard Process for Data
      Mining. http://www.crisp-dm.org/
    9. ISO 10006. Guía de gestión
      de calidad. Calidad en Gestión de
      Proyectos.

    Carlos Alba
    González-Fanjul1

    Gemma Marta Martínez
    Huerta

    Joaquín Villanueva
    Balsera

    Valeriano Álvarez Cabal

    1Area de Proyectos de Ingeniería, Universidad de
    Oviedo. Escuela de Minas,
    C/Independencia
    4, 3004, Oviedo

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter