PROYECTOS DE SOFTWARE


ESTIMACIÓN DEL COSTE



INTRODUCCIÓN:


Con la siguiente página se da a conocer las fases por la que un proyecto debe pasar antes de dar su costo a conocer, teniendo en cuenta el tiempo de producción, el personal utilizado en este proyecto, los materiales que el software alberga, entre otros.

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.

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 blog se analizará 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 el esfuerzo necesario para realizarlo a partir de un conjunto de datos históricos.


DESARROLLO DEL TEMA:


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.

Antes de comenzar la estimación del proyecto actual es apropiado tener información de las actividades a realizar o ya realizadas (teniendo en cuenta proyectos precedentes).

En este desarrollo es esencial conocer el esfuerzo con que el personal o uno mismo ha llevado a cabo durante el proceso, también conocer la duración que lleva el designio, tanto el diseño como después de tenerlo mientras el software es conocido en su totalidad.

Poseer la información histórica de proyectos precedentes, es una gran ayuda, ya que dicha información proporcionará la base de conocimiento sobre la que se podrán aplicar las técnicas para mejorar a futuros proyectos.

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; por lo tanto si la persona no posee una capacidad razonable, el proyecto se puede atrasar y sus presupuestos pueden variar razonablemente, dejando así el proyecto negado.

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.


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 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.

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.


MODELOS DE ESTIMACIÓN EMPÍRICA:


Un modelo de estimación para el software por computadora utiliza fórmulas derivadas empíricamente para predecir los datos.

Los datos empíricos que soportan la mayoría de los modelos se obtienen de una muestra limitada de proyectos. Tomando en cuenta los recursos se tienen los modelos recursos y consisten en una o más ecuaciones obtenidas empíricamente que predicen el esfuerzo (personas-mes), la duración del proyecto (meses cronológicos) u otros datos pertinentes al proyecto.


MODELO COCOMO:


Barry Boehm en su libro "economía de la ingeniería de software" detalla un modelo amplio de estimación de costos llamado COCOMO (Constructive Cost Model). La palabra "constructive" se refiere a el hecho que el modelo ayuda a un estimador a comprender mejor la complejidad del software; este modelo es un ejemplo de variable simple estático y es usado por miles de administradores de proyecto de software.

COCOMO ayuda a estimar el esfuerzo, tiempo, gente y costos (ya sea estos de desarrollo, equipamiento y mantenimiento).

El modelo provee tres "niveles" de aplicación: básico, intermedio y avanzado, basados en los factores considerados por el modelo.

Básico, es un modelo estático simplemente evaluado que calcula el esfuerzo (y costo) del desarrollo del software como función del programa expresado en líneas de código (LDC estimados).

Intermedio, calcula el esfuerzo del desarrollo del software como función del tamaño del programa y un conjunto de "guías de costo" que incluye una evaluación subjetiva del producto, hardware, personal y de los atributos del proyecto.

Avanzado, incorpora todas las características de la versión intermedia con una evaluación del impacto de las vías de costo en cada fase (análisis, diseño, etc.) del proceso de la ingeniería de software.

El modelo básico se extiende para considerar un conjunto de atributos de guías de costo que pueden agruparse en cuatro categorías principales:

Producto (ejemplo: Requerimientos de software, confiabilidad, tamaño de la base de datos, y complejidad del producto).

Computadora (ejemplo: Restricciones en el tiempo de ejecución y almacenamiento).

Personal (ejemplo: Capacidad de análisis, experiencia en aplicaciones tanto en lenguajes de programación y capacidad del programador)

Proyecto (ejemplo: Uso de prácticas modernas de programación, uso de herramientas de software y requerimiento de un plan de desarrollo).

En cada nivel de aplicación están definidos para tres tipos de proyectos de software:

Modo orgánico, proyectos de software relativamente pequeños y sencillos en los que pequeños equipos con buena experiencia en la aplicación trabajan en un conjunto de requerimientos poco rígidos.

Modo semi-acoplado (semi-detached), un proyecto de software intermedio en tamaño y complejidad en el cual equipos con distintos niveles de experiencia debe satisfacer requerimientos poco y medio rígidos

Modo acoplado (detached), un proyecto de software que debe ser desarrollado dentro un conjunto estricto de hardware, software y de restricciones operativas.



CONCLUSIONES:



La recopilación de datos históricos de proyectos previos, es una herramienta principal para la creación de proyectos futuros tales como los proyectos COCOMO.

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.

Si la persona no posee un buen razonamiento, el proyecto puede estar en peligro de durar mas o de valores no exactos.

Es apropiado tener consigo la información del tiempo en gestión, esfuerzo, personal por mes, para que asi el coste sea mas fácil.

La estimación siempre debe ser un proceso contínuo, con constantes refinamientos y mejoras, más que una actividad puntual ya que los datos evolucionan al igual que muchos materiales.


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:


ISBSG. International Software Benchmarking Standards Group. http://www.isbsg.org/

Friedman, Jerome H. Multivariate Adaptive Regression Splines. The annals of statistics. Volumen:19, Nº 1, pag. 1-141, 1991.

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

Friedman, Jerome H. Greedy function approximation: a gradient boosting machine. Technical report, department of Statistics, Stanford university 1999.

IFPUG, International Function Point Users’ Group. http://www.ifpug.org/

COCOMO, Constructive Cost Model. http://sunset.usc.edu/research/COCOMOII/

Chapman, P, Clinton, J. Khabaza, T. Reinartz, T. Rüdiger, W. The CRISP-DM Process Modelo, CRISP-DM Discusión Paper, 1999





GLOSARIO


PROYECTOS SOFTWARE: El software de administración de proyectos es un concepto que describe varios tipos de software, incluyendo programación, asignación de recursos, software de colaboración, comunicación y sistemas de documentación, utilizados para ayudar a organizar un proyecto complejo en diferentes tareas y en un tiempo determinado.

GESTIÓN: La gestión de proyectos es la disciplina de organizar y administrar recursos de manera tal que se pueda culminar todo el trabajo requerido en el proyecto dentro del alcance, el tiempo, y coste definidos. Un proyecto es un esfuerzo temporal, único y progresivo, emprendido para crear un producto o un servicio también único.

COSTE: Se denomina 'coste' o costo al montante económico que representa la fabricación de cualquier componente o producto, o la prestación de cualquier servicio. Conociendo el coste de un producto o servicio se puede determinar el precio de venta al público de dicho producto o servicio.

ESTIMACIÓN: En inferencia estadística se llama estimación al conjunto de técnicas que permiten dar un valor aproximado de un parámetro de una población a partir de los datos proporcionados por una muestra. Por ejemplo, una estimación de la media de una determinada característica de una población de tamaño N podría ser la media de esa misma característica para una muestra de tamaño.

COCOMO: Es un modelo matemático de base empírica utilizado para estimación de costes de software. Incluye tres submodelos, cada uno ofrece un nivel de detalle y aproximación, cada vez mayor, a medida que avanza el proceso de desarrollo del software: básico, intermedio y detallado.






EVALUACIÓN:


1. 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. (F) ó (V)

(F) ó (V)

2. Una de las fases en la gestión del proyecto es la estimación del esfuerzo y plazo de cada una de las actividades.

(F) ó (V)

3. La metodología CRISP-DM [8] estructura el ciclo de vida de un proyecto de minería de datos en seis fases. ¿Cuáles son?

A. Análisis del problema, análisis de los datos, preparación de los datos, modelado, evaluación y explotación.

B. Análisis del problema, análisis de los datos, preparación de los datos, modelado.

C. Estimación de plazos y esfuerzos, gestión de proyectos, minería de datos, calidad planificación.

D. Ninguna de las anteriores

4. 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.

(F) ó (V)

5. 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.

(F) ó (V)

6. ¿Qué se evalúa en la fase de evaluación?

A. Análisis

B. Preparación

C. Modelo

D. Método

7. En la fase de modelado no se seleccionan las técnicas de modelado más apropiadas para el proyecto de minería de datos específico.

(F) ó (V)

8. El método COCOMO ayuda a estimar el esfuerzo, tiempo, gente y costos (ya sea estos de desarrollo, equipamiento y mantenimiento).

(F) ó (V)

9. ¿Qué significa la sigla COCOMO?

A. Cost Constructive Model

B. Constructive Cost Model

C. Commerce Cost

D. Ninguna de las anteriores

10. ¿Cuáles son los niveles del método COCOMO?

A. Modo orgánico- Modo semi-acoplado- Modo acoplado

B. Modo semi-orgánico- Modo acoplado

C. Modo avanzado- Modo básico

D. Ninguna de las anteriores




SOPA DE LETRAS.swf