03 noviembre 2014

Estimación del esfuerzo software

Según López y Dolado, en el artículo publicado el año 2008 titulado “Estimación del esfuerzo software: Factores vinculados a la aplicación a desarrollar”, los principales métodos de estimación para el estudio de los factores de estimación del esfuerzo software se encuentran clasificados en dos grupos: Los métodos de estimación no algorítmicos y los métodos de estimación algorítmicos. Los métodos de estimación no algorítmicos, son aquellos que no se basan en modelos matemáticos, estos incluyen la estimación experta y el uso de analogías entre otros. El método de estimación experta es el método más extendido. Se encuentra fundamentado en la experiencia del experto y su conocimiento de las normas dominantes de la industria como base para la estimación del costo software. En el criterio de Stein y Magne, en el artículo publicado el año 2007 titulado “Inconsistencia estimada basada en al juicio experto del esfuerzo para el desarrollo software”, se puede considerar como experto a quien cuenta con experiencia como supervisor o gestor, o tiene experiencia realizando estimaciones. Los expertos suelen hacer sus estimaciones basándose en su experiencia y en analogías de proyectos anteriores. Las estimaciones basadas en el juicio experto no están libres de problemas, ya que este enfoque no es ni repetible ni explicito. Además de que contar con un experto experimentado para cualquier nuevo proyecto es bastante complicado, las estimaciones del mismo están sujetas a un alto grado de inconsistencia.

Según el estudio realizado por Stein y Magne, en el artículo citado previamente, dos estimaciones de un experto sobre el mismo proyecto pueden variar con una media de hasta un setenta y uno por ciento, con una mediana del cincuenta por ciento. Un intento de minimizar la inconsistencia de las estimaciones de los expertos consiste en consultar a varios expertos. Leung y Fan, en el artículo mencionado en párrafos anteriores, mencionan que como ejemplos de técnicas de consenso entre expertos se encuentran Delphi y PERT. Por otro lado, los gestores de los proyectos software intentan maximizar la productividad y minimizar el costo, y así hacer coincidir las estimaciones con el objetivo fijado con el cliente. Por tanto, los expertos basan sus estimaciones en este manejo del presupuesto asociado a los proyectos anteriores de la compañía, con lo que su experiencia queda en entredicho. Los factores que manejan los expertos a la hora de realizar sus estimaciones no son muy conocidos. Por su parte el otro método consiste en el uso de analogías; la utilización de analogías a la hora de estimar el costo de desarrollo del software, consiste en comparar el nuevo proyecto a estimar con el costo real de los proyectos anteriores de la compañía. La comparación entre proyectos se puede hacer comparando el proyecto en su totalidad o por partes. Comparar los proyectos basándose en su descomposición tiene la ventaja de ser un proceso más detallado que si se comparan proyectos en su totalidad. Por el contrario, comparar los proyectos en su totalidad lleva implícita la ventaja de incluir todos los componentes relativos al costo, incluso los componentes de los que no se tiene constancia. La ventaja de este método radica en que las estimaciones se hacen con base en el costo real de los proyectos de la compañía. Esto implica que la compañía debe disponer de una cantidad suficiente de datos de proyectos anteriores. Aun así, no queda muy claro que proyectos anteriores sean representativos de los nuevos proyectos.

López y Dolado continúan mencionando que, por su parte los métodos de estimación algorítmicos realizan sus estimaciones de costo en función de un conjunto de variables y parámetros. Estas variables están consideradas como los principales factores de costo. Los diferentes métodos de estimación algorítmicos se diferencian tanto por los factores que emplean en su modelo, como por la forma de la función que utilizan. Dependiendo del tipo de fórmula matemática que utiliza un modelo, se puede clasificar en modelos lineales, multiplicativos o con función de rendimiento. Los métodos algorítmicos se dividen en dos grupos: analíticos y empíricos. Los métodos de estimación empíricos se basan en la experiencia a la hora de realizar una formulación matemática que modele el esfuerzo de desarrollo software. De manera especifica el método “Modelo de costo constructivo”, constituye un método de estimación algorítmico empírico. Este método fue ideado por Barry Boehm a principios de la década de los años ochenta del siglo veinte, en el libro titulado “Economía de la ingeniería del software”, este método se encuentra basado en el método de Walston y Felix, reportado en el artículo publicado el año 1977 con el título “Un método de medida de programación y estimación”.

El modelo de costo constructivo es un método de estimación basado en una función de rendimiento que contiene como elementos fundamentales el tamaño del código fuente medido en miles de líneas código, dos coeficientes dependientes de la complejidad del software y un multiplicador dependiente de quince factores. Los factores de costo se dividen en cuatro grupos: (1) Factores de producto, entre los cuales se cuentan la fiabilidad requerida, el tamaño de la base de datos y la complejidad del producto. (2) Factores de computación, entre los cuales resaltan las restricciones de tiempo de ejecución, restricciones de tiempo de almacenamiento, inestabilidad de la maquina virtual y tiempo de respuesta del equipo. (3) Factores de la plantilla, entre los que figuran la capacidad del analista, capacidad del programador, experiencia con la aplicación a desarrollar, con el lenguaje de desarrollo y la maquina virtual. (4) Factores del proyecto, entre los que figuran el plan de desarrollo requerido, las herramientas de desarrollo y el uso de prácticas modernas de programación.

No hay comentarios:

Publicar un comentario