Está en la página 1de 60

Estimación Estimación

de costes de de costes de
un proyecto un proyecto
informático informático
Métricas de productividad y modelos Métricas de productividad y modelos
de estimación de costes de estimación de costes
Miquel Barceló García Miquel Barceló García
P03/75069/02142 P03/75069/02142
 FUOC • P03/75069/02142 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 Estimación de costes de un proyecto informático
 FUOC • P03/75069/02142 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 Estimación de costes de un proyecto informático

Índice Índice

Introducción .............................................................................................. 5 Introducción .............................................................................................. 5

Objetivos ..................................................................................................... 7 Objetivos ..................................................................................................... 7

1. Métricas del software .......................................................................... 9 1. Métricas del software .......................................................................... 9


1.1. Métricas del producto y del proceso ................................................. 10 1.1. Métricas del producto y del proceso ................................................. 10
1.2. Métricas de calidad y de productividad ............................................ 11 1.2. Métricas de calidad y de productividad ............................................ 11
1.3. El esfuerzo y la medida de la productividad .................................... 13 1.3. El esfuerzo y la medida de la productividad .................................... 13
1.3.1. Los problemas terminológicos del hombre-mes ................... 13 1.3.1. Los problemas terminológicos del hombre-mes ................... 13
1.3.2. El mito del hombre-mes ........................................................ 14 1.3.2. El mito del hombre-mes ........................................................ 14
1.4. Métricas orientadas al tamaño y a la función .................................. 15 1.4. Métricas orientadas al tamaño y a la función .................................. 15
1.4.1. Las líneas de código .............................................................. 16 1.4.1. Las líneas de código .............................................................. 16
1.4.2. Los puntos de función .......................................................... 21 1.4.2. Los puntos de función .......................................................... 21
1.4.3. Relación entre puntos de función y líneas de código ........... 26 1.4.3. Relación entre puntos de función y líneas de código ........... 26
1.4.4. Una perplejidad final ............................................................ 28 1.4.4. Una perplejidad final ............................................................ 28

2. Estimación de costes de un proyecto informático ..................... 29 2. Estimación de costes de un proyecto informático ..................... 29
2.1. Momento de la estimación y grado de exactitud ............................. 30 2.1. Momento de la estimación y grado de exactitud ............................. 30
2.2. Los métodos de estimación posibles según Barry W. Boehm .......... 31 2.2. Los métodos de estimación posibles según Barry W. Boehm .......... 31
2.3. Modelos de estimación ..................................................................... 33 2.3. Modelos de estimación ..................................................................... 33
2.3.1. Modelos históricos ................................................................ 35 2.3.1. Modelos históricos ................................................................ 35
2.3.2. Modelos empíricos o estadísticos .......................................... 36 2.3.2. Modelos empíricos o estadísticos .......................................... 36
2.3.3. Modelos teóricos: el modelo de Putman ............................... 38 2.3.3. Modelos teóricos: el modelo de Putman ............................... 38
2.3.4. Modelos compuestos: los modelos COCOMO 2.3.4. Modelos compuestos: los modelos COCOMO
de Barry W. Boehm ............................................................... 40 de Barry W. Boehm ............................................................... 40
2.3.5. El uso de estándares de productividad .................................. 44 2.3.5. El uso de estándares de productividad .................................. 44
2.4. Práctica real de la estimación ........................................................... 47 2.4. Práctica real de la estimación ........................................................... 47
2.4.1. Un ejemplo: contabilidad sencilla en un PC ........................ 49 2.4.1. Un ejemplo: contabilidad sencilla en un PC ........................ 49

Resumen ...................................................................................................... 53 Resumen ...................................................................................................... 53

Actividades ................................................................................................. 55 Actividades ................................................................................................. 55

Ejercicios de autoevaluación ................................................................. 55 Ejercicios de autoevaluación ................................................................. 55

Solucionario ............................................................................................... 56 Solucionario ............................................................................................... 56

Glosario ....................................................................................................... 56 Glosario ....................................................................................................... 56

Bibliografía ................................................................................................ 58 Bibliografía ................................................................................................ 58


 FUOC • P03/75069/02142 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 Estimación de costes de un proyecto informático
 FUOC • P03/75069/02142 5 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 5 Estimación de costes de un proyecto informático

Introducción Introducción

Cuando se inicia un proyecto informático se conocen muy pocas de las funcio- Cuando se inicia un proyecto informático se conocen muy pocas de las funcio-
nalidades que se deben implementar. A pesar de todo, a veces debe realizarse nalidades que se deben implementar. A pesar de todo, a veces debe realizarse
una estimación de los costes necesarios para construir un software de aplicación, una estimación de los costes necesarios para construir un software de aplicación,
del cual, al empezar, no se conoce ni siquiera el alcance que pueda llegar a tener. del cual, al empezar, no se conoce ni siquiera el alcance que pueda llegar a tener.

De hecho, un software se especifica a medida que se construye (o, dicho de otra De hecho, un software se especifica a medida que se construye (o, dicho de otra
manera, la especificación o el análisis es una de las primeras etapas de las que manera, la especificación o el análisis es una de las primeras etapas de las que
consta el complejo proceso de construcción de software de aplicación en la in- consta el complejo proceso de construcción de software de aplicación en la in-
formática de gestión). Sin embargo, aunque esto sea así, a menudo antes de formática de gestión). Sin embargo, aunque esto sea así, a menudo antes de
empezar se debe llevar a cabo una primera estimación de costes que, simple- empezar se debe llevar a cabo una primera estimación de costes que, simple-
mente, sea objetiva y que tenga unas mínimas posibilidades de convertirse en mente, sea objetiva y que tenga unas mínimas posibilidades de convertirse en
realidad. realidad.

Por tanto, debemos disponer, en primer lugar, de diferentes unidades de medida Por tanto, debemos disponer, en primer lugar, de diferentes unidades de medida
que nos puedan ser útiles para caracterizar y medir varias funcionalidades del que nos puedan ser útiles para caracterizar y medir varias funcionalidades del
software que se quiere implentar: el tamaño del proyecto, la evaluación de la ca- software que se quiere implentar: el tamaño del proyecto, la evaluación de la ca-
lidad y la fiabilidad, etc. Y, además, necesitamos unidades de medida que nos lidad y la fiabilidad, etc. Y, además, necesitamos unidades de medida que nos
permitan asociar estas funcionalidades con el esfuerzo que cuesta implementar- permitan asociar estas funcionalidades con el esfuerzo que cuesta implementar-
las; es decir, debemos tener referencias sobre la productividad en la construc- las; es decir, debemos tener referencias sobre la productividad en la construc-
ción de software. ción de software.

En este módulo didáctico analizamos algunas de las muchas métricas del En este módulo didáctico analizamos algunas de las muchas métricas del
software, con atención especial a las métricas de tamaño (LOC), funcionali- software, con atención especial a las métricas de tamaño (LOC), funcionali-
dades (puntos de función) y productividad (esfuerzo), que son las más ade- dades (puntos de función) y productividad (esfuerzo), que son las más ade-
cuadas para llevar a cabo una buena estimación de los costes de construcción cuadas para llevar a cabo una buena estimación de los costes de construcción
de un software de aplicación determinado. de un software de aplicación determinado.

En la construcción de software interviene un conjunto de costes muy variado, En la construcción de software interviene un conjunto de costes muy variado,
sin embargo, tal como se menciona en el módulo “El proyecto informático de sin embargo, tal como se menciona en el módulo “El proyecto informático de
construcción de software”, dominan los costes del personal técnico que inter- construcción de software”, dominan los costes del personal técnico que inter-
viene en la construcción del software, a menudo caracterizados como jefes de viene en la construcción del software, a menudo caracterizados como jefes de
proyecto, analistas y programadores. Por tanto, estimar el trabajo de los dife- proyecto, analistas y programadores. Por tanto, estimar el trabajo de los dife-
rentes profesionales involucrados en un proyecto en horas o días es la manera rentes profesionales involucrados en un proyecto en horas o días es la manera
habitual de considerar los costes más relevantes en el proceso de construcción habitual de considerar los costes más relevantes en el proceso de construcción
de software de aplicación. de software de aplicación.

Sin embargo, el hecho de disponer de unidades de medida no es suficiente. Es Sin embargo, el hecho de disponer de unidades de medida no es suficiente. Es
necesario también conocer los diferentes modelos que, desde hace unos trein- necesario también conocer los diferentes modelos que, desde hace unos trein-
ta años, se utilizan para estimar los costes de un proyecto informático. ta años, se utilizan para estimar los costes de un proyecto informático.

Cabe mencionar que algunos de estos modelos están prácticamente obsoletos Cabe mencionar que algunos de estos modelos están prácticamente obsoletos
y no son nada adecuados para la informática de nuestros días. De hecho, du- y no son nada adecuados para la informática de nuestros días. De hecho, du-
 FUOC • P03/75069/02142 6 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 6 Estimación de costes de un proyecto informático

rante la última década, los cambios en la construcción del software han sido rante la última década, los cambios en la construcción del software han sido
tantos y tan rápidos que, a menudo, los modelos de estimación disponibles no tantos y tan rápidos que, a menudo, los modelos de estimación disponibles no
parecen los más adecuados para la compleja y difícil tarea de estimar los cos- parecen los más adecuados para la compleja y difícil tarea de estimar los cos-
tes. Es cierto que se revisan los modelos más importantes, pero la falta de datos tes. Es cierto que se revisan los modelos más importantes, pero la falta de datos
concretos y generalizables provoca que todavía no se hayan sustituido del concretos y generalizables provoca que todavía no se hayan sustituido del
todo los modelos tradicionales. todo los modelos tradicionales.

En este módulo, además de exponer las métricas o las unidades de medida más En este módulo, además de exponer las métricas o las unidades de medida más
habituales, presentamos de manera crítica los diferentes modelos de estima- habituales, presentamos de manera crítica los diferentes modelos de estima-
ción que existen y que forman el ámbito de conocimiento que debe tener un ción que existen y que forman el ámbito de conocimiento que debe tener un
buen jefe de proyecto sobre el tema de la estimación de costes. buen jefe de proyecto sobre el tema de la estimación de costes.

El módulo termina con un ejemplo práctico y concreto sobre el proyecto de El módulo termina con un ejemplo práctico y concreto sobre el proyecto de
construir una pequeña aplicación de contabilidad. construir una pequeña aplicación de contabilidad.
 FUOC • P03/75069/02142 7 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 7 Estimación de costes de un proyecto informático

Objetivos Objetivos

En este módulo presentamos la primera de las etapas de la gestión de un pro- En este módulo presentamos la primera de las etapas de la gestión de un pro-
yecto informático: la estimación previa de los posibles costes en la construc- yecto informático: la estimación previa de los posibles costes en la construc-
ción de software de aplicación en la informática de gestión. Con el estudio de ción de software de aplicación en la informática de gestión. Con el estudio de
los materiales asociados a este módulo didáctico, el estudiante debe poder al- los materiales asociados a este módulo didáctico, el estudiante debe poder al-
canzar los siguientes objetivos: canzar los siguientes objetivos:

1. Conocer el problema de las métricas de software, sobre todo las que sirven 1. Conocer el problema de las métricas de software, sobre todo las que sirven
para medir el tamaño de un proyecto, las funcionalidades que se quieren para medir el tamaño de un proyecto, las funcionalidades que se quieren
implementar y, especialmente, la productividad que se puede alcanzar. implementar y, especialmente, la productividad que se puede alcanzar.

2. Comprender lo que se denomina el mito del hombre-mes, es decir, las difi- 2. Comprender lo que se denomina el mito del hombre-mes, es decir, las difi-
cultades asociadas a la unidad más habitual utilizada para medir el esfuerzo cultades asociadas a la unidad más habitual utilizada para medir el esfuerzo
humano en la construcción de software (por ejemplo, la persona-mes). humano en la construcción de software (por ejemplo, la persona-mes).
Aunque se trata del producto de personas por meses, es necesario saber que Aunque se trata del producto de personas por meses, es necesario saber que
no son factores intercambiables, ya que no se pueden efectuar todo tipo de no son factores intercambiables, ya que no se pueden efectuar todo tipo de
combinaciones y debe darse un reparto concreto y específico del esfuerzo combinaciones y debe darse un reparto concreto y específico del esfuerzo
a lo largo de los meses del proyecto. a lo largo de los meses del proyecto.

3. Conocer las características, las ventajas y los inconvenientes de las métricas 3. Conocer las características, las ventajas y los inconvenientes de las métricas
de tamaño (líneas de código) y funcionalidad (puntos de función) y su po- de tamaño (líneas de código) y funcionalidad (puntos de función) y su po-
sible interrelación. sible interrelación.

4. Conocer la orden de magnitud de las ratios habituales de productividad en 4. Conocer la orden de magnitud de las ratios habituales de productividad en
la construcción de software de aplicación en la informática de gestión. la construcción de software de aplicación en la informática de gestión.

5. Comprender que el grado de incertidumbre en la estimación de costes de 5. Comprender que el grado de incertidumbre en la estimación de costes de
un proyecto informático es francamente elevado cuando empieza el pro- un proyecto informático es francamente elevado cuando empieza el pro-
yecto, pero a medida que éste avanza se puede reducir del todo. yecto, pero a medida que éste avanza se puede reducir del todo.

6. Conocer de manera crítica los diferentes modelos de estimación de costes 6. Conocer de manera crítica los diferentes modelos de estimación de costes
en la construcción de software que se han utilizado en los últimos años, las en la construcción de software que se han utilizado en los últimos años, las
características y los puntos fuertes y débiles que tienen. características y los puntos fuertes y débiles que tienen.

7. Entender un posible proceso práctico de estimación de costes con un siste- 7. Entender un posible proceso práctico de estimación de costes con un siste-
ma ascendente (bottom-up) a partir de una descomposición del proyecto en ma ascendente (bottom-up) a partir de una descomposición del proyecto en
varias tareas y la estimación directa de cada tarea por separado. varias tareas y la estimación directa de cada tarea por separado.
 FUOC • P03/75069/02142 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 Estimación de costes de un proyecto informático
 FUOC • P03/75069/02142 9 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 9 Estimación de costes de un proyecto informático

1. Métricas del software 1. Métricas del software

Para efectuar una estimación correcta de los costes de un proyecto informático Para efectuar una estimación correcta de los costes de un proyecto informático
de construcción de software, se debe disponer de unidades de medida que nos de construcción de software, se debe disponer de unidades de medida que nos
permitan relacionar las diferentes actividades de la construcción del software permitan relacionar las diferentes actividades de la construcción del software
con el esfuerzo en horas de trabajo o con el coste monetario que representa con el esfuerzo en horas de trabajo o con el coste monetario que representa
tener su construcción. Ésta es una cuestión que se intenta resolver a partir de tener su construcción. Ésta es una cuestión que se intenta resolver a partir de
las diferentes métricas de productividad o, si se quiere, de las diversas unidades las diferentes métricas de productividad o, si se quiere, de las diversas unidades
con las que se puede medir la construcción del software. con las que se puede medir la construcción del software.

De hecho, medir el software no es en absoluto una actividad sencilla. Se puede De hecho, medir el software no es en absoluto una actividad sencilla. Se puede
decir que toda magnitud física se puede medir, pero el software es, sobre todo, decir que toda magnitud física se puede medir, pero el software es, sobre todo,
el resultado de una actividad básicamente intelectual, tanto en el origen como el resultado de una actividad básicamente intelectual, tanto en el origen como
en el resultado final. De hecho, la dificultad de medir el software ha provocado en el resultado final. De hecho, la dificultad de medir el software ha provocado
el nacimiento de varias métricas o unidades de medida que intentan cuantifi- el nacimiento de varias métricas o unidades de medida que intentan cuantifi-
car diferentes aspectos que pueden ser relevantes en el software. car diferentes aspectos que pueden ser relevantes en el software.

Una métrica es, pues, una asignación de valor a un atributo de una en- Una métrica es, pues, una asignación de valor a un atributo de una en-
tidad propia del software, ya sea un producto o un proceso. tidad propia del software, ya sea un producto o un proceso.

En esta definición de métrica se incluyen tres conceptos que conviene especi- En esta definición de métrica se incluyen tres conceptos que conviene especi-
ficar de manera diferenciada: ficar de manera diferenciada:

• Cuando hablamos de un atributo nos referimos a una determinada carac- • Cuando hablamos de un atributo nos referimos a una determinada carac-
* Como podrían ser el esfuerzo, * Como podrían ser el esfuerzo,
terística que pretendemos medir y cuantificar*. la fiabilidad, la mantenibilidad, terística que pretendemos medir y cuantificar*. la fiabilidad, la mantenibilidad,
la calidad o el tamaño. la calidad o el tamaño.

• Cuando hablamos de un producto nos referimos, por ejemplo, a un códi- • Cuando hablamos de un producto nos referimos, por ejemplo, a un códi-
go, un diseño, una especificación, etc. go, un diseño, una especificación, etc.

• Cuando se habla de un proceso se hace referencia a una etapa de la cons- • Cuando se habla de un proceso se hace referencia a una etapa de la cons-
trucción del software y a la manera de llevarlo a cabo: un diseño, unas prue- trucción del software y a la manera de llevarlo a cabo: un diseño, unas prue-
bas, etc. bas, etc.

Reproducimos a continuación una definición estricta de lo que es una métrica de Reproducimos a continuación una definición estricta de lo que es una métrica de
software y que podéis encontrar en el Standard Glossary of Software Engineering Terms software y que podéis encontrar en el Standard Glossary of Software Engineering Terms
del IEEE. del IEEE.

Una métrica de software es una medida cuantitativa del grado en el Una métrica de software es una medida cuantitativa del grado en el
que un sistema, un componente o un proceso posee un determinado que un sistema, un componente o un proceso posee un determinado
atributo. atributo.
 FUOC • P03/75069/02142 10 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 10 Estimación de costes de un proyecto informático

Existe una variedad impresionante de métricas de software y, de hecho, mu- Existe una variedad impresionante de métricas de software y, de hecho, mu-
chos autores han ido sugiriendo diferentes unidades de medida para evaluar y chos autores han ido sugiriendo diferentes unidades de medida para evaluar y
cuantificar diversos aspectos considerados importantes en el software. cuantificar diversos aspectos considerados importantes en el software.

En general, se puede decir que las diferentes métricas intentan evaluar En general, se puede decir que las diferentes métricas intentan evaluar
tres grandes magnitudes generales: la calidad y el tamaño (a menudo tres grandes magnitudes generales: la calidad y el tamaño (a menudo
del producto) y la productividad (frecuentemente del proceso de cons- del producto) y la productividad (frecuentemente del proceso de cons-
trucción del producto), aunque lo hacen desde muchos puntos de vista trucción del producto), aunque lo hacen desde muchos puntos de vista
diferentes. diferentes.

A menudo las métricas se utilizan para evaluar un determinado aspecto del A menudo las métricas se utilizan para evaluar un determinado aspecto del
software que ya existe, pero también para estimar a priori determinadas magni- software que ya existe, pero también para estimar a priori determinadas magni-
tudes de un software que aún está por elaborar. Cabe decir, de entrada, que no tudes de un software que aún está por elaborar. Cabe decir, de entrada, que no
se puede llevar a cabo una estimación posible de proyectos informáticos futu- se puede llevar a cabo una estimación posible de proyectos informáticos futu-
ros si no se dispone, desde el inicio, de los datos obtenidos en la evaluación de ros si no se dispone, desde el inicio, de los datos obtenidos en la evaluación de
proyectos anteriores. proyectos anteriores.

En el momento de realizar la estimación de costes, las métricas de productivi- Podéis ver diferentes modelos de En el momento de realizar la estimación de costes, las métricas de productivi- Podéis ver diferentes modelos de
estimación de costes en el apartado estimación de costes en el apartado
dad son las que tienen más relevancia en la calificación de un proyecto infor- 2 de este módulo didáctico. dad son las que tienen más relevancia en la calificación de un proyecto infor- 2 de este módulo didáctico.

mático.Por ello, aquí nos centraremos muy especialmente en dichas métricas. mático.Por ello, aquí nos centraremos muy especialmente en dichas métricas.
Como veremos, se dan diversos modelos para efectuar esta estimación, pero, Como veremos, se dan diversos modelos para efectuar esta estimación, pero,
evidentemente, todos se basan, de una manera o de otra, en los datos obteni- evidentemente, todos se basan, de una manera o de otra, en los datos obteni-
dos en la evaluación de proyectos anteriores. La elección de una métrica en dos en la evaluación de proyectos anteriores. La elección de una métrica en
concreto suele ser un aspecto primordial en los diferentes modelos de estima- concreto suele ser un aspecto primordial en los diferentes modelos de estima-
ción. ción.

Cabe mencionar que, a pesar de disponer de métricas bien escogidas e incorpora- Cabe mencionar que, a pesar de disponer de métricas bien escogidas e incorpora-
La falibilidad La falibilidad
das a un proceso de construcción de software, continúa habiendo problemas. de las métricas das a un proceso de construcción de software, continúa habiendo problemas. de las métricas

La aceptación, que es muy fre- La aceptación, que es muy fre-


cuente, de las líneas de código cuente, de las líneas de código
En definitiva, se debe tener un criterio para adoptar y utilizar una métrica como unidad de medida del En definitiva, se debe tener un criterio para adoptar y utilizar una métrica como unidad de medida del
tamaño de un proyecto infor- tamaño de un proyecto infor-
de software. Como siempre que se mide, el hecho de disponer de unidades mático no evita errores de de software. Como siempre que se mide, el hecho de disponer de unidades mático no evita errores de
de medida e, incluso, de estándares, no aleja, más bien al contrario, la in- apreciación (considerar o no de medida e, incluso, de estándares, no aleja, más bien al contrario, la in- apreciación (considerar o no
los comentarios o las líneas en los comentarios o las líneas en
evitable necesidad de pensar. Disponer de métricas puede ser una ayuda, blanco), de recuento (cada vez evitable necesidad de pensar. Disponer de métricas puede ser una ayuda, blanco), de recuento (cada vez
hay más líneas de código ge- hay más líneas de código ge-
pero no lo es todo. neradas de manera automática pero no lo es todo. neradas de manera automática
por las herramientas de desa- por las herramientas de desa-
rrollo), de generalización (para rrollo), de generalización (para
un mismo tratamiento, se ne- un mismo tratamiento, se ne-
cesita un número diferente de cesita un número diferente de
1.1. Métricas del producto y del proceso líneas de código en función del 1.1. Métricas del producto y del proceso líneas de código en función del
lenguaje de programación uti- lenguaje de programación uti-
lizado), etc. lizado), etc.
Una primera subdivisión de las muchas métricas que existen las clasifica en los Una primera subdivisión de las muchas métricas que existen las clasifica en los
dos tipos siguientes: dos tipos siguientes:

1) Las métricas del producto, que miden diferentes aspectos del software ob- 1) Las métricas del producto, que miden diferentes aspectos del software ob-
* Lenguajes de programación, * Lenguajes de programación,
de diseño, de especificación, etc. de diseño, de especificación, etc.
tenido, a menudo a partir de código fuente expresado en un lenguaje informá- tenido, a menudo a partir de código fuente expresado en un lenguaje informá-
tico determinado*. tico determinado*.
 FUOC • P03/75069/02142 11 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 11 Estimación de costes de un proyecto informático

2) Las métricas del proceso, que intentan medir determinados atributos que 2) Las métricas del proceso, que intentan medir determinados atributos que
hacen referencia al entorno de desarrollo del software y tienen en cuenta la hacen referencia al entorno de desarrollo del software y tienen en cuenta la
manera de construirlo. manera de construirlo.

A menudo, las métricas se pueden utilizar solas o combinadas, es decir, como A menudo, las métricas se pueden utilizar solas o combinadas, es decir, como
Como indicador Como indicador
indicadores que permiten proporcionar una visión resumida del producto de de producto... indicadores que permiten proporcionar una visión resumida del producto de de producto...
software o del proceso de su construcción: ... se puede utilizar, por ejem- software o del proceso de su construcción: ... se puede utilizar, por ejem-
plo, el número de errores de plo, el número de errores de
un software, aunque es tam- un software, aunque es tam-
1) Los indicadores de producto referidos, evidentemente, al software obteni- bién un indicador claro de la 1) Los indicadores de producto referidos, evidentemente, al software obteni- bién un indicador claro de la
calidad del proceso de cons- calidad del proceso de cons-
do pueden servir para evaluar la calidad del proceso de construcción de soft- trucción utilizado para obtener do pueden servir para evaluar la calidad del proceso de construcción de soft- trucción utilizado para obtener
este software. este software.
ware, siempre de manera comparativa con estándares de mercado o con ware, siempre de manera comparativa con estándares de mercado o con
niveles alcanzados en otros productos. niveles alcanzados en otros productos.

Cabe mencionar que los indicadores de producto a menudo no están realmen- Cabe mencionar que los indicadores de producto a menudo no están realmen-
Como indicador Como indicador
te disponibles hasta que no lo está el producto en sí, es decir, a posteriori, cuan- de proceso... te disponibles hasta que no lo está el producto en sí, es decir, a posteriori, cuan- de proceso...
do el software de aplicación ya se encuentra en disposición de entrar en la ... si se utiliza, por ejemplo, el do el software de aplicación ya se encuentra en disposición de entrar en la ... si se utiliza, por ejemplo, el
número de líneas de código número de líneas de código
etapa de explotación. etapa de explotación.
por persona y mes, como la ci- por persona y mes, como la ci-
fra más o menos estándar pu- fra más o menos estándar pu-
blicada en los años noventa blicada en los años noventa
2) Los indicadores de proceso han de permitir conocer la eficacia de una ins- sería de 350 líneas de código 2) Los indicadores de proceso han de permitir conocer la eficacia de una ins- sería de 350 líneas de código
por persona y mes en un pro- por persona y mes en un pro-
talación simplemente por comparación con los indicadores que es capaz de yecto medio, una instalación talación simplemente por comparación con los indicadores que es capaz de yecto medio, una instalación
conseguir respecto de los que la literatura técnica publica. que sólo consiguiera 200 sa- conseguir respecto de los que la literatura técnica publica. que sólo consiguiera 200 sa-
bría que está todavía lejos de lo bría que está todavía lejos de lo
que debería ser factible en el que debería ser factible en el
estado actual del arte. estado actual del arte.
En la última década se ha puesto de moda crear, en el marco de lo que se deno- En la última década se ha puesto de moda crear, en el marco de lo que se deno-
mina la madurez del proceso del software*, al menos en las grandes instalaciones, el mina la madurez del proceso del software*, al menos en las grandes instalaciones, el
programa de métricas de software**, que, una vez decididas unas determinadas uni- * En inglés, Software Process programa de métricas de software**, que, una vez decididas unas determinadas uni- * En inglés, Software Process
Maturity. Maturity.
dades de medida, intenta introducir en el proceso de desarrollo y construcción de ** En inglés, Software Metrics dades de medida, intenta introducir en el proceso de desarrollo y construcción de ** En inglés, Software Metrics
Program. Program.
software la buena práctica de medir diferentes aspectos y cuantificar al máximo software la buena práctica de medir diferentes aspectos y cuantificar al máximo
posible buena parte de los aspectos de la gestión de la construcción de software de posible buena parte de los aspectos de la gestión de la construcción de software de
aplicación. El hecho de disponer de estas informaciones objetivas es de gran ayu- aplicación. El hecho de disponer de estas informaciones objetivas es de gran ayu-
da en la calificación de proyectos informáticos futuros. da en la calificación de proyectos informáticos futuros.

1.2. Métricas de calidad y de productividad 1.2. Métricas de calidad y de productividad

Las diferentes unidades de medida para cuantificar el software intentan deter- Las diferentes unidades de medida para cuantificar el software intentan deter-
minar sus características, que se pueden resumir en calidad del producto y pro- minar sus características, que se pueden resumir en calidad del producto y pro-
ductividad del proceso. ductividad del proceso.

La calidad de un producto, según la definición del estándar ISO 8402, La calidad de un producto, según la definición del estándar ISO 8402,
es el conjunto de funcionalidades y características de un producto o ser- es el conjunto de funcionalidades y características de un producto o ser-
vicio que se centran en su capacidad de satisfacer las necesidades, ya sea vicio que se centran en su capacidad de satisfacer las necesidades, ya sea
implícitas o bien explicitadas claramente, de un cliente o usuario. implícitas o bien explicitadas claramente, de un cliente o usuario.

En el caso de la informática de gestión, a menudo estas necesidades provienen En el caso de la informática de gestión, a menudo estas necesidades provienen
de un contrato entre el cliente y el proveedor de software, aunque, como se de un contrato entre el cliente y el proveedor de software, aunque, como se
 FUOC • P03/75069/02142 12 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 12 Estimación de costes de un proyecto informático

dice en otro módulo, es muy difícil que todas las necesidades queden explici- dice en otro módulo, es muy difícil que todas las necesidades queden explici-
tadas convenientemente en los requerimientos. tadas convenientemente en los requerimientos.

Las métricas de calidad se asocian a unos determinados atributos Las métricas de calidad se asocian a unos determinados atributos
medibles, no siempre evidentes, para reconocer la presencia o ausen- medibles, no siempre evidentes, para reconocer la presencia o ausen-
cia de calidad. cia de calidad.

A menudo, las métricas de calidad forman parte de lo que se denominan medi- A menudo, las métricas de calidad forman parte de lo que se denominan medi-
das indirectas del producto, junto con las métricas de funcionalidad, complejidad, das indirectas del producto, junto con las métricas de funcionalidad, complejidad,
eficiencia, fiabilidad, facilidad de mantenimiento y tantas otras capacidades en eficiencia, fiabilidad, facilidad de mantenimiento y tantas otras capacidades en
cierta manera difíciles de medir objetivamente. cierta manera difíciles de medir objetivamente.

Las métricas de productividad recogen la eficiencia del proceso de Las métricas de productividad recogen la eficiencia del proceso de
producción de software y relacionan el software que se ha construido con producción de software y relacionan el software que se ha construido con
el esfuerzo que ha costado elaborarlo. el esfuerzo que ha costado elaborarlo.

En el caso de la productividad, es mucho más fácil encontrar medidas directas, En el caso de la productividad, es mucho más fácil encontrar medidas directas,
Algunas medidas Algunas medidas
como las diferentes maneras de determinar el tamaño del producto obtenido directas... como las diferentes maneras de determinar el tamaño del producto obtenido directas...

(las líneas de código o los puntos de función, por ejemplo) relacionándolo con ... serían las líneas de código, el (las líneas de código o los puntos de función, por ejemplo) relacionándolo con ... serían las líneas de código, el
coste, el esfuerzo, el número coste, el esfuerzo, el número
el tiempo y/o el esfuerzo que ha costado obtenerlo. de errores, la velocidad de eje- el tiempo y/o el esfuerzo que ha costado obtenerlo. de errores, la velocidad de eje-
cución, la memoria ocupada cución, la memoria ocupada
Las unidades de medida como indicadores por un programa, los puntos Las unidades de medida como indicadores por un programa, los puntos
de función de Albrecht, etc. de función de Albrecht, etc.
A menudo las diferentes unidades de medida se combinan en indicadores resumidos, A menudo las diferentes unidades de medida se combinan en indicadores resumidos,
como ejemplos podemos encontrar, entre otros, los siguientes: como ejemplos podemos encontrar, entre otros, los siguientes:

• Líneas de código por persona y día (indicador de productividad). • Líneas de código por persona y día (indicador de productividad).
• Horas para implementar un punto de función (indicador de productividad). • Horas para implementar un punto de función (indicador de productividad).
• Número de errores por cada mil líneas de código (indicador de calidad). • Número de errores por cada mil líneas de código (indicador de calidad).
• Pesetas por cada millar de líneas de código (indicador de coste). • Pesetas por cada millar de líneas de código (indicador de coste).
• Páginas de documentación por cada mil líneas de código (indicador de documentación). • Páginas de documentación por cada mil líneas de código (indicador de documentación).

En la terminología del estándar de métricas de productividad de software del En la terminología del estándar de métricas de productividad de software del
Instituto de Ingenieros Eléctricos y Electrónicos (IEEE Standard for Software Pro- Instituto de Ingenieros Eléctricos y Electrónicos (IEEE Standard for Software Pro-
ductivity Metrics) de 1993, se habla de primitiva para hacer referencia al nivel ductivity Metrics) de 1993, se habla de primitiva para hacer referencia al nivel
más bajo en el que se recogen los datos. Evidentemente, podemos encontrar más bajo en el que se recogen los datos. Evidentemente, podemos encontrar
primitivas de dos tipos: primitivas de dos tipos:
* En inglés, output primitives. * En inglés, output primitives.
** En inglés, input primitives. ** En inglés, input primitives.
• De salida*, que recogen las características finales del software. • De salida*, que recogen las características finales del software.

• De entrada**, que miden lo que ha sido necesario tener y utilizar para • De entrada**, que miden lo que ha sido necesario tener y utilizar para
Primitivas de entrada Primitivas de entrada
construir el software. y de salida construir el software. y de salida

Algunos ejemplos de primiti- Algunos ejemplos de primiti-


vas de salida son las líneas de vas de salida son las líneas de
Una ratio de productividad es una relación que se suele establecer para código, el número de errores, Una ratio de productividad es una relación que se suele establecer para código, el número de errores,
los puntos de función, el nú- los puntos de función, el nú-
tener en cuenta la productividad entre las primitivas de salida, es decir, mero de páginas de docu-
tener en cuenta la productividad entre las primitivas de salida, es decir, mero de páginas de docu-
las unidades que miden la salida del proceso de construcción de software mentación, etc. las unidades que miden la salida del proceso de construcción de software mentación, etc.
Por otra parte, ejemplos de pri- Por otra parte, ejemplos de pri-
y las primitivas de entrada, que miden las entradas en el proceso de mitivas de entrada son el esfuer- y las primitivas de entrada, que miden las entradas en el proceso de mitivas de entrada son el esfuer-
construcción de software. zo en horas de trabajo de una construcción de software. zo en horas de trabajo de una
persona, el coste en pesetas, etc. persona, el coste en pesetas, etc.
 FUOC • P03/75069/02142 13 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 13 Estimación de costes de un proyecto informático

1.3. El esfuerzo y la medida de la productividad 1.3. El esfuerzo y la medida de la productividad

Con vistas a tratar la productividad en el proceso de construcción de software Podéis ver las líneas de código y los Con vistas a tratar la productividad en el proceso de construcción de software Podéis ver las líneas de código y los
puntos de función en el subapartado puntos de función en el subapartado
de aplicación, independientemente de cuáles sean las primitivas de salida uti- 1.4 de este módulo didáctico. de aplicación, independientemente de cuáles sean las primitivas de salida uti- 1.4 de este módulo didáctico.

lizadas (generalmente, las líneas de código o los puntos de función que estu- lizadas (generalmente, las líneas de código o los puntos de función que estu-
diaremos más adelante), las primitivas de entrada intentan a menudo medir diaremos más adelante), las primitivas de entrada intentan a menudo medir
el esfuerzo o el coste que representa el hecho de construirlo. La productividad el esfuerzo o el coste que representa el hecho de construirlo. La productividad
se expresa finalmente en una ratio que relaciona las primitivas de entrada y de se expresa finalmente en una ratio que relaciona las primitivas de entrada y de
salida. salida.

Como se explica en otro módulo, casi siempre el coste se asocia o es propor- Podéis ver los recursos de un Como se explica en otro módulo, casi siempre el coste se asocia o es propor- Podéis ver los recursos de un
proyecto informático en el proyecto informático en el
cional al esfuerzo que supone el trabajo, ya que los recursos humanos que in- subapartado 1.4 del módulo “El cional al esfuerzo que supone el trabajo, ya que los recursos humanos que in- subapartado 1.4 del módulo “El
proyecto informático de construcción de proyecto informático de construcción de
software” de esta asignatura. software” de esta asignatura.
tervienen en un proyecto informático son, hoy en día, los más importantes. tervienen en un proyecto informático son, hoy en día, los más importantes.
Aunque conviene no olvidar que pueden darse otros costes para el hardware, Aunque conviene no olvidar que pueden darse otros costes para el hardware,
el software de desarrollo, etc., a menudo se hace la simplificación de asociar el software de desarrollo, etc., a menudo se hace la simplificación de asociar
coste y esfuerzo en un proyecto informático, aunque se expresen en unidades coste y esfuerzo en un proyecto informático, aunque se expresen en unidades
diferentes. diferentes.

La medida habitual del coste es, evidentemente, la cantidad de dinero La medida habitual del coste es, evidentemente, la cantidad de dinero
que cuesta producir un software determinado; mientras que las medidas que cuesta producir un software determinado; mientras que las medidas
habituales del esfuerzo se reducen siempre al trabajo que lleva a cabo habituales del esfuerzo se reducen siempre al trabajo que lleva a cabo
un profesional en una determinada unidad de tiempo: un día (persona- un profesional en una determinada unidad de tiempo: un día (persona-
día), un mes (persona-mes) o un año (persona-año). día), un mes (persona-mes) o un año (persona-año).

Cabe mencionar que, como siempre que se efectúan generalizaciones de Cabe mencionar que, como siempre que se efectúan generalizaciones de
este tipo, se piensa en un profesional de cualificación media, con una bue- este tipo, se piensa en un profesional de cualificación media, con una bue-
na formación o una experiencia adecuada para la tarea que debe realizar y na formación o una experiencia adecuada para la tarea que debe realizar y
una capacidad de trabajo media. Es evidente que en un equipo de proyecto una capacidad de trabajo media. Es evidente que en un equipo de proyecto
intervienen todo tipo de profesionales, algunos más eficientes o más moti- intervienen todo tipo de profesionales, algunos más eficientes o más moti-
vados que otros. El jefe de proyecto ha de tener muy en cuenta estas parti- vados que otros. El jefe de proyecto ha de tener muy en cuenta estas parti-
cularidades concretas, sobre todo a la hora de repartir las tareas que se cularidades concretas, sobre todo a la hora de repartir las tareas que se
deben llevar a cabo. Sin embargo, en el tratamiento general de las métricas deben llevar a cabo. Sin embargo, en el tratamiento general de las métricas
de productividad se piensa en un profesional genérico con capacidades, de productividad se piensa en un profesional genérico con capacidades,
motivación y dedicación medias. motivación y dedicación medias.

1.3.1. Los problemas terminológicos del hombre-mes 1.3.1. Los problemas terminológicos del hombre-mes
La denominación La denominación
hombre-mes... hombre-mes...
En los proyectos informáticos se han utilizado diferentes denominaciones de En los proyectos informáticos se han utilizado diferentes denominaciones de
la unidad de esfuerzo, como las siguientes: ... se utiliza en libros del todo la unidad de esfuerzo, como las siguientes: ... se utiliza en libros del todo
clásicos, como el de Brooks clásicos, como el de Brooks
(The Mythical Man-Month), a (The Mythical Man-Month), a
partir de la experiencia de uno partir de la experiencia de uno
1) En primer lugar, se habló de hombre-mes como la tarea que llevaba a cabo de los primeros grandes pro- 1) En primer lugar, se habló de hombre-mes como la tarea que llevaba a cabo de los primeros grandes pro-
yectos informáticos de cons- yectos informáticos de cons-
un hombre durante un mes de trabajo. Ésta es la denominación habitual, que trucción de software: el sistema
un hombre durante un mes de trabajo. Ésta es la denominación habitual, que trucción de software: el sistema
se puede encontrar a menudo abreviada con la sigla MM, proveniente de la de- operativo 360 de IBM en los se puede encontrar a menudo abreviada con la sigla MM, proveniente de la de- operativo 360 de IBM en los
años sesenta. años sesenta.
nominación inglesa man-month. nominación inglesa man-month.
 FUOC • P03/75069/02142 14 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 14 Estimación de costes de un proyecto informático

2) Más adelante, pareció que la denominación era claramente sexista y se bus- 2) Más adelante, pareció que la denominación era claramente sexista y se bus-
caron otros nombres como éstos: caron otros nombres como éstos:

• Persona-mes: un mes de trabajo de una persona del equipo con indepen- • Persona-mes: un mes de trabajo de una persona del equipo con indepen-
dencia del género. dencia del género.

• Staff-month: un mes de trabajo de una persona del equipo de proyecto*. • Staff-month: un mes de trabajo de una persona del equipo de proyecto*.
* En inglés, staff. * En inglés, staff.

• Engineering-month: un mes de trabajo en la actividad de ingeniería del • Engineering-month: un mes de trabajo en la actividad de ingeniería del
software, que incluye, como ya sabemos, el análisis, el diseño, la programa- software, que incluye, como ya sabemos, el análisis, el diseño, la programa-
Podéis ver las etapas de la actividad Podéis ver las etapas de la actividad
ción y las pruebas para producir una determinada aplicación o un sistema de ingeniería de software en el ción y las pruebas para producir una determinada aplicación o un sistema de ingeniería de software en el
subapartado 1.8 del módulo “El proyecto subapartado 1.8 del módulo “El proyecto
informático de construcción de software”. informático de construcción de software”.
de información. de información.

Desgraciadamente, la tradición se mantiene y es muy habitual oír hablar todavía Desgraciadamente, la tradición se mantiene y es muy habitual oír hablar todavía
de un proyecto informático de, por ejemplo, 50 hombres-mes, término que la de un proyecto informático de, por ejemplo, 50 hombres-mes, término que la
práctica profesional parece haber estabilizado en nuestro entorno. En este texto, práctica profesional parece haber estabilizado en nuestro entorno. En este texto,
hechas estas aclaraciones previas, seremos más bien eclécticos en la denomina- hechas estas aclaraciones previas, seremos más bien eclécticos en la denomina-
ción de esta unidad de medida del esfuerzo en un proyecto informático. ción de esta unidad de medida del esfuerzo en un proyecto informático.

1.3.2. El mito del hombre-mes 1.3.2. El mito del hombre-mes

Los problemas que plantea la unidad persona-mes no proceden sólo de querer Los problemas que plantea la unidad persona-mes no proceden sólo de querer
usar un lenguaje políticamente correcto. Inconscientemente, una unidad que usar un lenguaje políticamente correcto. Inconscientemente, una unidad que
es el producto de dos (número de personas y meses) sugiere que debe ser po- es el producto de dos (número de personas y meses) sugiere que debe ser po-
sible intercambiar personas y meses. Esto no es cierto, y no saberlo es uno de sible intercambiar personas y meses. Esto no es cierto, y no saberlo es uno de
los errores en los que puede incurrir el jefe de un proyecto informático. los errores en los que puede incurrir el jefe de un proyecto informático.

Por ejemplo, la figura anterior muestra diferentes maneras de imaginar un es- Por ejemplo, la figura anterior muestra diferentes maneras de imaginar un es-
fuerzo de 15 hombres-mes. Este esfuerzo se puede alcanzar tanto con una per- fuerzo de 15 hombres-mes. Este esfuerzo se puede alcanzar tanto con una per-
 FUOC • P03/75069/02142 15 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 15 Estimación de costes de un proyecto informático

sona que trabaje durante quince meses, como con quince personas que trabajen sona que trabaje durante quince meses, como con quince personas que trabajen
conjuntamente durante un mes. O, también, por ejemplo, con tres personas conjuntamente durante un mes. O, también, por ejemplo, con tres personas
que trabajen durante cinco meses. que trabajen durante cinco meses.

Matemáticamente es cierto y, en los tres casos, el producto es el mismo: Matemáticamente es cierto y, en los tres casos, el producto es el mismo:

1 · 15 = 15 · 1 = 3 · 5 = 15. 1 · 15 = 15 · 1 = 3 · 5 = 15.

Pero en la práctica de la construcción de software este intercambio no es Pero en la práctica de la construcción de software este intercambio no es
cierto. Posiblemente la tercera opción está más próxima a la realidad que cierto. Posiblemente la tercera opción está más próxima a la realidad que
las otras dos. las otras dos.

Éste es el posible error de interpretación que quiere ayudar a corregir el artícu- Éste es el posible error de interpretación que quiere ayudar a corregir el artícu-
Lectura recomendada Lectura recomendada
lo más importante de los que Brooks recoge en la obra ya histórica The Mythi- lo más importante de los que Brooks recoge en la obra ya histórica The Mythi-
Podéis consultar el trabajo Podéis consultar el trabajo
cal Man-Month. de Brooks sobre el mito del cal Man-Month. de Brooks sobre el mito del
hombre-mes en la obra hombre-mes en la obra
siguiente: siguiente:
En determinados trabajos se da una distribución del esfuerzo a lo largo del F. Brooks (1975). The En determinados trabajos se da una distribución del esfuerzo a lo largo del F. Brooks (1975). The
Mythical Man-Month. Mythical Man-Month.
tiempo que les es, en cierta manera, característica. Esto ocurre en la construc- Reading (Massachusetts): tiempo que les es, en cierta manera, característica. Esto ocurre en la construc- Reading (Massachusetts):
Addison-Wesley. Addison-Wesley.
ción de software y es necesario saberlo. ción de software y es necesario saberlo.

Ejemplo de distribución característica del esfuerzo a lo largo del tiempo Ejemplo de distribución característica del esfuerzo a lo largo del tiempo

La distribución del esfuerzo de construcción de software se puede comparar con la tarea La distribución del esfuerzo de construcción de software se puede comparar con la tarea
de traer a un ser humano al mundo, proceso que, habitualmente, requiere el esfuerzo de de traer a un ser humano al mundo, proceso que, habitualmente, requiere el esfuerzo de
9 meses- mujer y admite sólo una distribución temporal muy clara: una mujer con un 9 meses- mujer y admite sólo una distribución temporal muy clara: una mujer con un
embarazo de nueve meses. No se concibe que alguna vez se haya dado a luz a un ser hu- embarazo de nueve meses. No se concibe que alguna vez se haya dado a luz a un ser hu-
mano a partir del esfuerzo conjunto de nueve mujeres durante un mes, o de tres mujeres mano a partir del esfuerzo conjunto de nueve mujeres durante un mes, o de tres mujeres
durante tres meses, a pesar de que el producto final parece, matemáticamente, el mismo: durante tres meses, a pesar de que el producto final parece, matemáticamente, el mismo:

9 · 1 = 1 · 9 = 3 · 3 = 9 meses-mujer. 9 · 1 = 1 · 9 = 3 · 3 = 9 meses-mujer.

Cabe decir que, en este ejemplo tan claro, no se tienen en cuenta excepciones como los Cabe decir que, en este ejemplo tan claro, no se tienen en cuenta excepciones como los
sietemesinos (7 meses-mujer de esfuerzo), o los gemelos (4,5 meses-mujer de esfuerzo). sietemesinos (7 meses-mujer de esfuerzo), o los gemelos (4,5 meses-mujer de esfuerzo).

En resumidas cuentas, llegamos a la conclusión de que los meses y los En resumidas cuentas, llegamos a la conclusión de que los meses y los
hombres (o las mujeres) no son intercambiables. hombres (o las mujeres) no son intercambiables.

En el caso del esfuerzo para construir software, aunque puedan darse pequeñas Podéis ver la figura “Ciclo de vida en En el caso del esfuerzo para construir software, aunque puedan darse pequeñas Podéis ver la figura “Ciclo de vida en
cascada” del subapartado 1.8 del cascada” del subapartado 1.8 del
desviaciones, también se tiene un tipo característico de distribución del esfuer- módulo “El proyecto informático de
construcción de software” de esta
desviaciones, también se tiene un tipo característico de distribución del esfuer- módulo “El proyecto informático de
construcción de software” de esta
asignatura. asignatura.
zo a lo largo del tiempo que ya se muestra en otro módulo. zo a lo largo del tiempo que ya se muestra en otro módulo.

1.4. Métricas orientadas al tamaño y a la función 1.4. Métricas orientadas al tamaño y a la función

Con el objetivo de medir la productividad del proceso de construcción de soft- Con el objetivo de medir la productividad del proceso de construcción de soft-
ware de aplicación, debe darse la posibilidad de determinar primitivas de sali- ware de aplicación, debe darse la posibilidad de determinar primitivas de sali-
da que sean útiles para relacionarlas después con el volumen del trabajo o el da que sean útiles para relacionarlas después con el volumen del trabajo o el
esfuerzo (primitiva de entrada) que representa desarrollar un producto de soft- esfuerzo (primitiva de entrada) que representa desarrollar un producto de soft-
ware determinado.Y eso es francamente difícil. ware determinado.Y eso es francamente difícil.
 FUOC • P03/75069/02142 16 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 16 Estimación de costes de un proyecto informático

El tamaño del software, construido a partir de las líneas de código que éste El tamaño del software, construido a partir de las líneas de código que éste
incluye, es una medida tradicional para evaluar el volumen de trabajo. incluye, es una medida tradicional para evaluar el volumen de trabajo.

Pero debe conocerse, de entrada, que el tamaño es una medida que, a veces, Pero debe conocerse, de entrada, que el tamaño es una medida que, a veces,
no es lo suficientemente indicativa de lo que realmente cuesta construir un no es lo suficientemente indicativa de lo que realmente cuesta construir un
software. software.

Las líneas de código no siempre son una medida indicativa del esfuerzo Las líneas de código no siempre son una medida indicativa del esfuerzo

A veces, algoritmos laboriosos y difíciles de encontrar se concretan en muy pocas líneas A veces, algoritmos laboriosos y difíciles de encontrar se concretan en muy pocas líneas
de código (pongamos treinta o cuarenta líneas), que provocan la imposibilidad de hacer- de código (pongamos treinta o cuarenta líneas), que provocan la imposibilidad de hacer-
se una idea del volumen de trabajo que representa pensar, diseñar y disponer finalmente se una idea del volumen de trabajo que representa pensar, diseñar y disponer finalmente
de un algoritmo determinado a partir del disminuido resultado final. En este caso, recu- de un algoritmo determinado a partir del disminuido resultado final. En este caso, recu-
rrir a una medida del tamaño como las líneas de código puede ser poco correcto. rrir a una medida del tamaño como las líneas de código puede ser poco correcto.

Por ello se han propuesto también otras unidades de medida que, en lugar del Por ello se han propuesto también otras unidades de medida que, en lugar del
tamaño, intentan tener en cuenta la dificultad intrínseca de construir un soft- tamaño, intentan tener en cuenta la dificultad intrínseca de construir un soft-
ware determinado; es decir, métricas que se refieren no al tamaño del producto ware determinado; es decir, métricas que se refieren no al tamaño del producto
final obtenido, sino a las funcionalidades que éste incorpora. Un ejemplo su- final obtenido, sino a las funcionalidades que éste incorpora. Un ejemplo su-
ficientemente conocido es el de los puntos de función de Albrecht que des- ficientemente conocido es el de los puntos de función de Albrecht que des-
pués estudiaremos con detalle. pués estudiaremos con detalle.

Es necesario decir, sin embargo, que el problema de optar por una mé- Es necesario decir, sin embargo, que el problema de optar por una mé-
trica orientada al tamaño o a la función no es tan grave si se tiene en trica orientada al tamaño o a la función no es tan grave si se tiene en
cuenta que, al menos en el caso de la informática de gestión, se da una cuenta que, al menos en el caso de la informática de gestión, se da una
especie de “estándar de complejidad sencilla” que no hace muy difíciles especie de “estándar de complejidad sencilla” que no hace muy difíciles
los algoritmos y que, en cierta manera, permite relacionar métricas los algoritmos y que, en cierta manera, permite relacionar métricas
orientadas al tamaño, como las líneas de código, con métricas orienta- orientadas al tamaño, como las líneas de código, con métricas orienta-
das a la función, como los puntos de función, como veremos también das a la función, como los puntos de función, como veremos también
más adelante. Podéis ver los puntos de función de más adelante. Podéis ver los puntos de función de
Albrecht en el subapartado 1.4.2 Albrecht en el subapartado 1.4.2
de este módulo didáctico. de este módulo didáctico.

En la práctica, a pesar de los problemas y defectos que estudiaremos a conti- En la práctica, a pesar de los problemas y defectos que estudiaremos a conti-
nuación, la medida de líneas de código y/o de puntos de función es la más ha- nuación, la medida de líneas de código y/o de puntos de función es la más ha-
bitual para determinar el volumen de un proyecto informático, es decir, son bitual para determinar el volumen de un proyecto informático, es decir, son
las principales primitivas de salida que se utilizan para calcular ratios de pro- las principales primitivas de salida que se utilizan para calcular ratios de pro-
ductividad. ductividad.

1.4.1. Las líneas de código 1.4.1. Las líneas de código

La medida más utilizada para determinar el tamaño de un proyecto informá- La medida más utilizada para determinar el tamaño de un proyecto informá-
tico ha sido, durante mucho tiempo, la de las líneas de código del software fi- tico ha sido, durante mucho tiempo, la de las líneas de código del software fi-
nal obtenido. A menudo, en la literatura especializada se utilizan diversas nal obtenido. A menudo, en la literatura especializada se utilizan diversas
denominaciones según las interpretaciones de cada uno respecto de la defini- denominaciones según las interpretaciones de cada uno respecto de la defini-
ción de éstas. A continuación presentamos algunas de éstas: ción de éstas. A continuación presentamos algunas de éstas:
LOC es la sigla de la expresión LOC es la sigla de la expresión
inglesa Lines of Code. inglesa Lines of Code.
a) LOC: líneas de código. Es la más habitual y antigua. a) LOC: líneas de código. Es la más habitual y antigua.
 FUOC • P03/75069/02142 17 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 17 Estimación de costes de un proyecto informático

b) KLOC: miles de líneas de código. Es la unidad de medida que adoptan la b) KLOC: miles de líneas de código. Es la unidad de medida que adoptan la
mayoría de modelos clásicos de estimación de costes en la calificación de un mayoría de modelos clásicos de estimación de costes en la calificación de un
proyecto informático. proyecto informático.

c) DSI: instrucciones de código fuente realmente entregadas, y su múltiplo c) DSI: instrucciones de código fuente realmente entregadas, y su múltiplo
DSI es la sigla de la expresión DSI es la sigla de la expresión
KDSI, que surgieron para que se tuviera en cuenta que, en los nuevos entornos inglesa Delivered Source Instructions. KDSI, que surgieron para que se tuviera en cuenta que, en los nuevos entornos inglesa Delivered Source Instructions.

de desarrollo y construcción de software, buena parte de las líneas de código de desarrollo y construcción de software, buena parte de las líneas de código
no siempre las ha escrito el equipo del proyecto, sino que las han generado las no siempre las ha escrito el equipo del proyecto, sino que las han generado las
herramientas de productividad del entorno de programación. herramientas de productividad del entorno de programación.

d) NCSS: líneas de código fuente sin tener en cuenta los comentarios, y su d) NCSS: líneas de código fuente sin tener en cuenta los comentarios, y su
NCSS es la sigla de la expresión NCSS es la sigla de la expresión
múltiplo KNCSS, por el hecho de considerar que en un buen proceso de cons- inglesa Non Comment Source múltiplo KNCSS, por el hecho de considerar que en un buen proceso de cons- inglesa Non Comment Source
Statements. Statements.
trucción los programas incluyen líneas de comentario o que una línea de tra- trucción los programas incluyen líneas de comentario o que una línea de tra-
tamiento se puede escribir en diferentes líneas de código para aumentar la tamiento se puede escribir en diferentes líneas de código para aumentar la
legibilidad y mejorar la mantenibilidad del software. legibilidad y mejorar la mantenibilidad del software.

e) NSLOC: nuevas líneas de código fuente, tal como se realiza en el modelo e) NSLOC: nuevas líneas de código fuente, tal como se realiza en el modelo
NSLOC es la sigla NSLOC es la sigla
COCOMO 2 para que se tenga en cuenta que sólo deben contarse las líneas de de la expresión inglesa New COCOMO 2 para que se tenga en cuenta que sólo deben contarse las líneas de de la expresión inglesa New
Source Lines of Code. Source Lines of Code.
código nuevas sin contar las que incorpore automáticamente el entorno de código nuevas sin contar las que incorpore automáticamente el entorno de
programación, o, lo más importante en este caso, el hecho de que parte del có- programación, o, lo más importante en este caso, el hecho de que parte del có-
digo final puede proceder de la reutilización de rutinas u objetos ya disponi- digo final puede proceder de la reutilización de rutinas u objetos ya disponi-
bles que no se han de volver a escribir, pero que se incorporan al proyecto bles que no se han de volver a escribir, pero que se incorporan al proyecto
informático en curso. informático en curso.

Las diferentes denominaciones de la medida de las líneas de código Las diferentes denominaciones de la medida de las líneas de código

Las diferentes denominaciones que existen cuando se habla de las líneas de código reco- Las diferentes denominaciones que existen cuando se habla de las líneas de código reco-
gen el hecho de que tenemos bastantes dificultades y dudas a la hora de medirlas. Éstos gen el hecho de que tenemos bastantes dificultades y dudas a la hora de medirlas. Éstos
son algunos de los planteamientos que hacen difícil la valoración: son algunos de los planteamientos que hacen difícil la valoración:

• ¿Debemos contar o no las líneas de comentario? • ¿Debemos contar o no las líneas de comentario?

• ¿Qué ocurre cuando una única instrucción se escribe, por legibilidad, en dos o más lí- • ¿Qué ocurre cuando una única instrucción se escribe, por legibilidad, en dos o más lí-
neas de código fuente? neas de código fuente?

• ¿Se deben tener en cuenta las líneas que haya generado automáticamente el entorno • ¿Se deben tener en cuenta las líneas que haya generado automáticamente el entorno
de programación (formateador de pantallas, gestor de formularios de pantalla, gestor de programación (formateador de pantallas, gestor de formularios de pantalla, gestor
de acceso a la base de datos, etc.)? de acceso a la base de datos, etc.)?

• ¿Se deben tener en cuenta las líneas de código de rutinas o los objetos reutilizados pro- • ¿Se deben tener en cuenta las líneas de código de rutinas o los objetos reutilizados pro-
cedentes de otras aplicaciones? cedentes de otras aplicaciones?

• ¿Es la medida basada en las líneas de código indiferente al lenguaje de programación • ¿Es la medida basada en las líneas de código indiferente al lenguaje de programación
utilizado? utilizado?

• ¿Qué pasa con las ratios de productividad establecidas cuando cambian los lenguajes • ¿Qué pasa con las ratios de productividad establecidas cuando cambian los lenguajes
de programación utilizados? de programación utilizados?

Cada modelo de estimación o cada programa de métricas de software elige cuál Cada modelo de estimación o cada programa de métricas de software elige cuál
de las muchas interpretaciones posibles se debe tener en cuenta. de las muchas interpretaciones posibles se debe tener en cuenta.

De manera simplificada, aquí consideraremos que las LOC (que a menudo se De manera simplificada, aquí consideraremos que las LOC (que a menudo se
cuentan de mil en mil, en KLOC) son las nuevas líneas de código fuente –que cuentan de mil en mil, en KLOC) son las nuevas líneas de código fuente –que
* Por ejemplo, las COPY del COBOL. * Por ejemplo, las COPY del COBOL.
incluyen las directivas de compilación*, las declaraciones de las estructuras de incluyen las directivas de compilación*, las declaraciones de las estructuras de
 FUOC • P03/75069/02142 18 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 18 Estimación de costes de un proyecto informático

datos y el código ejecutable– excluyendo los comentarios y las líneas genera- datos y el código ejecutable– excluyendo los comentarios y las líneas genera-
** Como en el caso del COPY ** Como en el caso del COPY
das automáticamente por el entorno de programación o fruto de reutilización. del COBOL. das automáticamente por el entorno de programación o fruto de reutilización. del COBOL.

Cada línea física de código se cuenta una sola vez y cada fichero incluido au- Cada línea física de código se cuenta una sola vez y cada fichero incluido au-
tomáticamente** se cuenta también una sola vez. tomáticamente** se cuenta también una sola vez.

Líneas de código, productividad y lenguajes de programación Líneas de código, productividad y lenguajes de programación

Las líneas de código se empezaron a utilizar como unidad de medida durante Podéis ver las ratios de Las líneas de código se empezaron a utilizar como unidad de medida durante Podéis ver las ratios de
productividad en el subapartado productividad en el subapartado
los años setenta y ochenta. A menudo se asocian a ratios de productividad re- 2.1.2 del módulo “El proyecto los años setenta y ochenta. A menudo se asocian a ratios de productividad re- 2.1.2 del módulo “El proyecto
informático de construcción de software” informático de construcción de software”
y en el subapartado 1.2 de este y en el subapartado 1.2 de este
lacionándolas con el esfuerzo medido casi siempre como el trabajo que realiza módulo didáctico. lacionándolas con el esfuerzo medido casi siempre como el trabajo que realiza módulo didáctico.

un profesional en una unidad de tiempo determinada: un día (persona-día), un profesional en una unidad de tiempo determinada: un día (persona-día),
un mes (persona-mes) o un año (persona-año). un mes (persona-mes) o un año (persona-año).

Las ratios de productividad también proceden de los años setenta y Las ratios de productividad también proceden de los años setenta y
ochenta (de la informática y de los lenguajes que existían entonces). Es- ochenta (de la informática y de los lenguajes que existían entonces). Es-
tas ratios, que actúan como estándares de la profesión y que han sido tas ratios, que actúan como estándares de la profesión y que han sido
mencionadas de paso, son las siguientes: mencionadas de paso, son las siguientes:

a) 10 LOC por día y persona ocupada en el proyecto, según Barry W. a) 10 LOC por día y persona ocupada en el proyecto, según Barry W.
Boehm a principios de los años ochenta. Boehm a principios de los años ochenta.

b) 350 NCSS por persona y mes, según datos de comienzos de los años b) 350 NCSS por persona y mes, según datos de comienzos de los años
noventa en los proyectos de la empresa Hewlett Packard recogidos por noventa en los proyectos de la empresa Hewlett Packard recogidos por
Robert O. Grady. Robert O. Grady.

El problema principal de las líneas de código con vistas al estudio de la pro- El problema principal de las líneas de código con vistas al estudio de la pro-
ductividad es que los lenguajes de programación han ido cambiando con el ductividad es que los lenguajes de programación han ido cambiando con el
tiempo y que, evidentemente, el número de líneas de código que es necesario tiempo y que, evidentemente, el número de líneas de código que es necesario
para implementar una misma funcionalidad depende del lenguaje de progra- para implementar una misma funcionalidad depende del lenguaje de progra-
mación utilizado. mación utilizado.

En su libro de 1986, el especialista Caper T. Jones ofrecía datos que ilustran varios En su libro de 1986, el especialista Caper T. Jones ofrecía datos que ilustran varios
Lectura complementaria Lectura complementaria
aspectos de la productividad asociada a los diferentes lenguajes de programación: aspectos de la productividad asociada a los diferentes lenguajes de programación:
Encontraréis datos sobre la Encontraréis datos sobre la
productividad asociada productividad asociada
Esfuerzo para desarrollar la misma cantidad de líneas de código a los diferentes lenguajes Esfuerzo para desarrollar la misma cantidad de líneas de código a los diferentes lenguajes
en diferentes lenguajes de programación en la obra en diferentes lenguajes de programación en la obra
siguiente: siguiente:
Lenguajes Tamaño (LOC) Esfuerzo (persona-mes) LOC por persona-año C. T. Jones (1986). Lenguajes Tamaño (LOC) Esfuerzo (persona-mes) LOC por persona-año C. T. Jones (1986).
Programming Productivity. Programming Productivity.
Ensamblador 10.000 40 3.000 Nueva York: McGraw-Hill. Ensamblador 10.000 40 3.000 Nueva York: McGraw-Hill.

Macroensamblador 10.000 42 2.857 Macroensamblador 10.000 42 2.857

C 10.000 44 2.727 C 10.000 44 2.727

COBOL 10.000 48 2.500 COBOL 10.000 48 2.500

Pascal 10.000 51 2.354 Pascal 10.000 51 2.354

Ada 10.000 52 2.308 Ada 10.000 52 2.308

BASIC 10.000 53 2.264 BASIC 10.000 53 2.264

Fuente: C.T. Jones, 1986. Fuente: C.T. Jones, 1986.


 FUOC • P03/75069/02142 19 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 19 Estimación de costes de un proyecto informático

Está claro que con lenguajes de alto nivel habrá que escribir menos para obte- Está claro que con lenguajes de alto nivel habrá que escribir menos para obte-
ner la misma funcionalidad y, por tanto, la superior “productividad aparente” ner la misma funcionalidad y, por tanto, la superior “productividad aparente”
(más LOC por persona-año) de los lenguajes de bajo nivel desaparece. (más LOC por persona-año) de los lenguajes de bajo nivel desaparece.

Por tanto, posiblemente es más adecuada la tabla siguiente, también extraída Por tanto, posiblemente es más adecuada la tabla siguiente, también extraída
del libro de Jones, que ofrece resultados parecidos, pero que parte del esfuerzo del libro de Jones, que ofrece resultados parecidos, pero que parte del esfuerzo
que es necesario para desarrollar, en diferentes lenguajes, unos programas que que es necesario para desarrollar, en diferentes lenguajes, unos programas que
implementen una misma funcionalidad. implementen una misma funcionalidad.

Esfuerzo y líneas de código para desarrollar la misma funcionalidad Esfuerzo y líneas de código para desarrollar la misma funcionalidad
en diferentes lenguajes en diferentes lenguajes

Lenguajes Tamaño (LOC) Esfuerzo (persona-mes) LOC por persona-año Lenguajes Tamaño (LOC) Esfuerzo (persona-mes) LOC por persona-año

Ensamblador 10.000 40 3.000 Ensamblador 10.000 40 3.000

Macroensamblador 6.666 28 2.856 Macroensamblador 6.666 28 2.856

C 5.000 22 2.727 C 5.000 22 2.727

COBOL 3.333 26 2.500 COBOL 3.333 26 2.500

Pascal 2.500 13 2.307 Pascal 2.500 13 2.307

Ada 2.222 12 2.222 Ada 2.222 12 2.222

BASIC 2.000 11 2.181 BASIC 2.000 11 2.181

Fuente: C.T. Jones, 1986. Fuente: C.T. Jones, 1986.

Los datos de Jones son suficientemente compatibles con los otros estándares Los datos de Jones son suficientemente compatibles con los otros estándares
de productividad que hemos ido mencionando. Si tenemos en cuenta el CO- de productividad que hemos ido mencionando. Si tenemos en cuenta el CO-
BOL, e imaginamos unos 225 días de trabajo al año exceptuando las fiestas, las BOL, e imaginamos unos 225 días de trabajo al año exceptuando las fiestas, las
El COBOL es con mucho el lenguaje El COBOL es con mucho el lenguaje
vacaciones y los fines de semana (365 − 14 − 22 − 52 · 2 = 225), la productividad más usado en las aplicaciones vacaciones y los fines de semana (365 − 14 − 22 − 52 · 2 = 225), la productividad más usado en las aplicaciones
de gestión. de gestión.
de la que habla Jones es de 11,11 LOC por persona-día, que está próximo a las de la que habla Jones es de 11,11 LOC por persona-día, que está próximo a las
10 que decía Boehm en la misma época y es un poco inferior a las casi 16 LOC 10 que decía Boehm en la misma época y es un poco inferior a las casi 16 LOC
por persona-día que representan las 350 NCSS de Grady establecidas unos por persona-día que representan las 350 NCSS de Grady establecidas unos
cuantos años después. cuantos años después.

Por tanto, la idea de una productividad media entre 10 y 16 LOC por Por tanto, la idea de una productividad media entre 10 y 16 LOC por
persona-día con lenguajes como, por ejemplo, el COBOL es la conclu- persona-día con lenguajes como, por ejemplo, el COBOL es la conclu-
sión final que se puede extraer de los datos disponibles a mitad de los sión final que se puede extraer de los datos disponibles a mitad de los
años ochenta. años ochenta.

Cabe mencionar que estos datos provienen, como ya hemos dicho, de los años Cabe mencionar que estos datos provienen, como ya hemos dicho, de los años
setenta y ochenta y no recogen lo que se puede conseguir con lenguajes de setenta y ochenta y no recogen lo que se puede conseguir con lenguajes de
programación de productividad más elevada o con las facilidades de los nue- Ejemplos de programas programación de productividad más elevada o con las facilidades de los nue- Ejemplos de programas
vos entornos de programación y sus ayudas. con interfaz visual vos entornos de programación y sus ayudas. con interfaz visual

Entre los muchos ejemplos dis- Entre los muchos ejemplos dis-
ponibles de programas bajo el ponibles de programas bajo el
En los últimos años han aparecido una serie de lenguajes muy fáciles de utili- paradigma WIMP, debemos En los últimos años han aparecido una serie de lenguajes muy fáciles de utili- paradigma WIMP, debemos
destacar PowerBuilder, Visual destacar PowerBuilder, Visual
zar que unen, poco a poco, las ventajas de la orientación a objetos con los de Basic o Delphi, que son –posi-
zar que unen, poco a poco, las ventajas de la orientación a objetos con los de Basic o Delphi, que son –posi-
la llamada programación visual. Nacidos en el mundo de la microinformática blemente– los más utilizados la llamada programación visual. Nacidos en el mundo de la microinformática blemente– los más utilizados
actualmente. actualmente.
para ayudar a la realización de programas con interfaz visual bajo el paradigma para ayudar a la realización de programas con interfaz visual bajo el paradigma
 FUOC • P03/75069/02142 20 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 20 Estimación de costes de un proyecto informático

WIMP (windows, icons, mouse y pop-up menu; es decir, ventanas, iconos, ratón WIMP (windows, icons, mouse y pop-up menu; es decir, ventanas, iconos, ratón
y menús desplegables), constituyen la manera más moderna y más evolucio- y menús desplegables), constituyen la manera más moderna y más evolucio-
nada de lo que se ha llamado RAD (rapid application development, es decir, el nada de lo que se ha llamado RAD (rapid application development, es decir, el
desarrollo rápido de aplicaciones). desarrollo rápido de aplicaciones).

El problema es que todavía no existen datos suficientes para tener en cuenta El problema es que todavía no existen datos suficientes para tener en cuenta
estos nuevos lenguajes, que, eso sí, parecen haber aumentado mucho la pro- estos nuevos lenguajes, que, eso sí, parecen haber aumentado mucho la pro-
ductividad en la construcción de software de aplicación. ductividad en la construcción de software de aplicación.

Líneas de código y el conjunto del proyecto informático Líneas de código y el conjunto del proyecto informático

En cualquier caso, incluso pensando en lenguajes clásicos en la informática de En cualquier caso, incluso pensando en lenguajes clásicos en la informática de
gestión como el COBOL, es evidente que si nos hablan de un programador que gestión como el COBOL, es evidente que si nos hablan de un programador que
es capaz de codificar sólo entre 10 y 16 LOC en un día (es decir, en ocho horas es capaz de codificar sólo entre 10 y 16 LOC en un día (es decir, en ocho horas
de trabajo), la primera idea es que se trata de un profesional poco eficiente. de trabajo), la primera idea es que se trata de un profesional poco eficiente.
Ahora bien, cuando se habla de las líneas de código como métrica de tamaño Ahora bien, cuando se habla de las líneas de código como métrica de tamaño
de un proyecto informático, no se piensa únicamente en la actividad de codi- de un proyecto informático, no se piensa únicamente en la actividad de codi-
ficación que lleva a cabo el programador. ficación que lleva a cabo el programador.

Las LOC de las que se habla aquí, además de coincidir físicamente con Las LOC de las que se habla aquí, además de coincidir físicamente con
las líneas de código fuente de los programas construidos, incorporan, a las líneas de código fuente de los programas construidos, incorporan, a
los efectos de la medida de la productividad, todos los otros trabajos que los efectos de la medida de la productividad, todos los otros trabajos que
ha sido necesario realizar para llegar a la codificación. ha sido necesario realizar para llegar a la codificación.

Otra vez son los datos que ofrece Caper T. Jones en uno de sus libros (1986) Otra vez son los datos que ofrece Caper T. Jones en uno de sus libros (1986)
los que nos pueden ayudar a aclarar el significado de las LOC. Jones habla de los que nos pueden ayudar a aclarar el significado de las LOC. Jones habla de
la productividad aparente de una persona a partir de las LOC que se pueden im- la productividad aparente de una persona a partir de las LOC que se pueden im-
plementar por persona y año. Pero debemos saber cuál es el trabajo que incor- plementar por persona y año. Pero debemos saber cuál es el trabajo que incor-
pora cada una de las medidas o estándares. pora cada una de las medidas o estándares.

La productividad aparente del COBOL La productividad aparente del COBOL

En el caso concreto del COBOL o en el de un lenguaje parecido, la productividad aparen- En el caso concreto del COBOL o en el de un lenguaje parecido, la productividad aparen-
te varía mucho en función de las actividades que tengamos en cuenta, como vemos a te varía mucho en función de las actividades que tengamos en cuenta, como vemos a
continuación: continuación:

• Si sólo se tiene en cuenta la codificación y, además, medida en sólo un día de trabajo • Si sólo se tiene en cuenta la codificación y, además, medida en sólo un día de trabajo
(y convenientemente pasada a su equivalente anual), se obtienen 25.000 LOC por per- (y convenientemente pasada a su equivalente anual), se obtienen 25.000 LOC por per-
sona-año. sona-año.

• Si se tienen en cuenta el diseño, la codificación y las pruebas de sólo un módulo o ru- • Si se tienen en cuenta el diseño, la codificación y las pruebas de sólo un módulo o ru-
tina y se realiza la medida durante un mes (y después, como antes, se pasa a su equi- tina y se realiza la medida durante un mes (y después, como antes, se pasa a su equi-
valente anual), se obtiene una medida de 12.000 LOC por persona-año. valente anual), se obtiene una medida de 12.000 LOC por persona-año.

• Si se trata del diseño, la codificación y las pruebas de un programa completo que consta • Si se trata del diseño, la codificación y las pruebas de un programa completo que consta
de diferentes módulos o rutinas, se obtienen 6.000 LOC por persona-año. de diferentes módulos o rutinas, se obtienen 6.000 LOC por persona-año.

• Cuando se tiene en cuenta la actividad de un programador durante todo un año en la • Cuando se tiene en cuenta la actividad de un programador durante todo un año en la
cual, evidentemente, se incluyen las interrupciones entre proyectos y, también, otras cual, evidentemente, se incluyen las interrupciones entre proyectos y, también, otras
actividades no directamente relacionadas con la programación, se obtienen 4.000 LOC actividades no directamente relacionadas con la programación, se obtienen 4.000 LOC
por persona-año. por persona-año.
 FUOC • P03/75069/02142 21 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 21 Estimación de costes de un proyecto informático

• Si se incluyen también todas las actividades previas a la programación y las pruebas (el • Si se incluyen también todas las actividades previas a la programación y las pruebas (el
estudio de oportunidades, el análisis de requerimientos, el diseño, la codificación, la estudio de oportunidades, el análisis de requerimientos, el diseño, la codificación, la
integración, todo tipo de pruebas, las actividades de control y gestión de la calidad, la integración, todo tipo de pruebas, las actividades de control y gestión de la calidad, la
documentación externa e interna y el mantenimiento de un proyecto), se obtiene una documentación externa e interna y el mantenimiento de un proyecto), se obtiene una
medida de 2.500 LOC por persona-año. medida de 2.500 LOC por persona-año.

• Si a las actividades anteriores se añade también el apoyo para un centenar de usuarios • Si a las actividades anteriores se añade también el apoyo para un centenar de usuarios
y su formación, la medida que se obtiene es de 750 LOC por persona-año. y su formación, la medida que se obtiene es de 750 LOC por persona-año.

• Finalmente, cuando se tiene en cuenta el esfuerzo total en software de una organiza- • Finalmente, cuando se tiene en cuenta el esfuerzo total en software de una organiza-
ción o empresa durante todo un año, incluyendo los proyectos cancelados o fracasa- ción o empresa durante todo un año, incluyendo los proyectos cancelados o fracasa-
dos, los desarrollos nuevos y el mantenimiento y las ampliaciones de sistemas viejos dos, los desarrollos nuevos y el mantenimiento y las ampliaciones de sistemas viejos
de información, se obtienen 250 LOC por persona-año. de información, se obtienen 250 LOC por persona-año.

Destacamos, entre éstas, la medida de las 2.500 LOC por persona-año, que es la más ade- Destacamos, entre éstas, la medida de las 2.500 LOC por persona-año, que es la más ade-
cuada porque tiene en cuenta todas las actividades que corresponden al proyecto de cuada porque tiene en cuenta todas las actividades que corresponden al proyecto de
construcción de software de aplicación que nos ocupa. El dato coincide, en orden de mag- construcción de software de aplicación que nos ocupa. El dato coincide, en orden de mag-
nitud, con el intervalo entre 10 y 16 LOC por persona-día que la informática tradicional nitud, con el intervalo entre 10 y 16 LOC por persona-día que la informática tradicional
considera el estándar de productividad habitual en grandes proyectos de informática de considera el estándar de productividad habitual en grandes proyectos de informática de
gestión con lenguajes tradicionales como el COBOL. gestión con lenguajes tradicionales como el COBOL.

1.4.2. Los puntos de función 1.4.2. Los puntos de función

Como veremos, existen diferentes modelos de estimación de las cargas de un Podéis ver diferentes modelos de Como veremos, existen diferentes modelos de estimación de las cargas de un Podéis ver diferentes modelos de
estimación de costes en el estimación de costes en el
proyecto informático. La mayoría utilizan como medida de las primitivas de sa- subapartado 2.3 y las diferentes proyecto informático. La mayoría utilizan como medida de las primitivas de sa- subapartado 2.3 y las diferentes
versiones de medidas de líneas de código versiones de medidas de líneas de código
en el subapartado 1.4.1 de este módulo en el subapartado 1.4.1 de este módulo
lida las líneas de código en cualquiera de las versiones posibles. Otra alternativa, didáctico. lida las líneas de código en cualquiera de las versiones posibles. Otra alternativa, didáctico.

cada día más utilizada, es la medida de los puntos de función que definió Albrecht cada día más utilizada, es la medida de los puntos de función que definió Albrecht
en un primer artículo del año 1979 y que fue revisado (y relacionado también con Lectura complementaria en un primer artículo del año 1979 y que fue revisado (y relacionado también con Lectura complementaria

la métrica de las líneas de código) en el año 1983 por el mismo Albrecht, ayudado Podéis consultar la obra la métrica de las líneas de código) en el año 1983 por el mismo Albrecht, ayudado Podéis consultar la obra
siguiente: siguiente:
por Gaffney. A.J. Albrecht; J.E.
por Gaffney. A.J. Albrecht; J.E.
Gaffney Jr. (1983). “Software Gaffney Jr. (1983). “Software
Function, Source Lines Function, Source Lines
El recuento de los puntos de función, como veremos, deja algunos aspectos a of Code, and Development El recuento de los puntos de función, como veremos, deja algunos aspectos a of Code, and Development
Effort Prediction: A Software Effort Prediction: A Software
la interpretación de quien lleva a cabo la medida y ello ha generado diferentes Science Validation”. la interpretación de quien lleva a cabo la medida y ello ha generado diferentes Science Validation”.
artículos y trabajos que, manteniendo la idea central de Albrecht, intentan IEEE Transactions on Software artículos y trabajos que, manteniendo la idea central de Albrecht, intentan IEEE Transactions on Software
Engineering (vol. SE-9, Engineering (vol. SE-9,
ayudar a adaptar el recuento de puntos de función a la realidad cambiando la núm. 6, noviembre, ayudar a adaptar el recuento de puntos de función a la realidad cambiando la núm. 6, noviembre,
pág. 639-648). pág. 639-648).
informática de gestión: bases de datos relacionales, nuevos lenguajes y entor- informática de gestión: bases de datos relacionales, nuevos lenguajes y entor-
nos de programación, nuevas herramientas de programación visual, orienta- nos de programación, nuevas herramientas de programación visual, orienta-
ción a objetos, etc. ción a objetos, etc.

Desde el año 1984, el denominado grupo internacional de usuarios de los puntos Desde el año 1984, el denominado grupo internacional de usuarios de los puntos
de función, IFPUG (de la denominación inglesa International Function Points de función, IFPUG (de la denominación inglesa International Function Points
User Group) publica periódicamente la manera correcta de evaluar los diferen- User Group) publica periódicamente la manera correcta de evaluar los diferen-
tes aspectos discrecionales del recuento de puntos de función de Albrecht. La tes aspectos discrecionales del recuento de puntos de función de Albrecht. La
versión 3.0, fechada en el año 1990, y la 4.0, que es de 1994, son las más uti- versión 3.0, fechada en el año 1990, y la 4.0, que es de 1994, son las más uti-
lizadas hoy y la diversa literatura técnica actual sobre puntos de función hace lizadas hoy y la diversa literatura técnica actual sobre puntos de función hace
referencia a ellas a menudo. referencia a ellas a menudo.

Actualmente, la mayoría de especialistas estarían de acuerdo en afirmar que la En la dirección electrónica Actualmente, la mayoría de especialistas estarían de acuerdo en afirmar que la En la dirección electrónica
www.ifpug.org podéis www.ifpug.org podéis
encontrar información de la encontrar información de la
métrica de los puntos de función es la más utilizada. El trabajo del IFPUG la versión más actual del IFPUG en Internet, métrica de los puntos de función es la más utilizada. El trabajo del IFPUG la versión más actual del IFPUG en Internet,
aunque para obtener determinados aunque para obtener determinados
pone en cierta manera al día, mientras que las métricas basadas en las líneas datos o manuales se ha de ser socio. pone en cierta manera al día, mientras que las métricas basadas en las líneas datos o manuales se ha de ser socio.

de código no siempre se han adaptado bien a los nuevos lenguajes de progra- de código no siempre se han adaptado bien a los nuevos lenguajes de progra-
mación o a las herramientas RAD. mación o a las herramientas RAD.
 FUOC • P03/75069/02142 22 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 22 Estimación de costes de un proyecto informático

A pesar de todo, continúa vivo el problema de que la métrica fue pensada du- A pesar de todo, continúa vivo el problema de que la métrica fue pensada du-
rante los años setenta, cuando la informática era bastante diferente de lo que rante los años setenta, cuando la informática era bastante diferente de lo que
es hoy en lenguajes, tipo de aplicaciones, importancia de las bases de datos, es hoy en lenguajes, tipo de aplicaciones, importancia de las bases de datos,
en el papel decisivo de las comunicaciones y de la distribución de sistemas, en el papel decisivo de las comunicaciones y de la distribución de sistemas,
etc. EL IFPUG ha decidido mantener inalterada la estructura de la métrica, lo etc. EL IFPUG ha decidido mantener inalterada la estructura de la métrica, lo
que no facilita su utilización actual. En concreto, el IFPUG recomienda, si- que no facilita su utilización actual. En concreto, el IFPUG recomienda, si-
guiendo las directrices que establece, construir procedimientos normalizados guiendo las directrices que establece, construir procedimientos normalizados
y uniformes en cada instalación para proceder al recuento de los puntos de y uniformes en cada instalación para proceder al recuento de los puntos de
función siempre de una misma manera homogénea. función siempre de una misma manera homogénea.

Como veremos, también será necesario establecer para cada instalación cuál Como veremos, también será necesario establecer para cada instalación cuál
es la ratio de productividad (puntos de función por persona-mes o por hora de es la ratio de productividad (puntos de función por persona-mes o por hora de
trabajo) que son imprescindibles para una estimación y calificación correctas trabajo) que son imprescindibles para una estimación y calificación correctas
de proyectos informáticos futuros. de proyectos informáticos futuros.

Determinación de los puntos de función Determinación de los puntos de función

El recuento de los puntos de función se elabora a partir de determinadas ca- El recuento de los puntos de función se elabora a partir de determinadas ca-
racterísticas funcionales, que pueden ser de datos o de transacción: racterísticas funcionales, que pueden ser de datos o de transacción:

1) Las características funcionales de datos son las que presentamos a 1) Las características funcionales de datos son las que presentamos a
continuación: continuación:

a) Ficheros lógicos internos (LIF): grupo de datos interrelacionados lógicamen- a) Ficheros lógicos internos (LIF): grupo de datos interrelacionados lógicamen-
LIF es la sigla de la expresión LIF es la sigla de la expresión
te y que pueden ser identificados claramente incluso por los usuarios, o a veces inglesa Logical Internal File. te y que pueden ser identificados claramente incluso por los usuarios, o a veces inglesa Logical Internal File.

información de control pero que, en cualquier caso, siempre se mantienen dentro información de control pero que, en cualquier caso, siempre se mantienen dentro
de los límites de la aplicación, es decir, son internos y propios de la aplicación. de los límites de la aplicación, es decir, son internos y propios de la aplicación.
Son los ficheros de la aplicación (o, si se quiere, las tablas de la base de datos). Son los ficheros de la aplicación (o, si se quiere, las tablas de la base de datos).

b) Ficheros de interfaces externas (EIF): grupo de datos interrelacionados ló- b) Ficheros de interfaces externas (EIF): grupo de datos interrelacionados ló-
EIF es la sigla de la expresión EIF es la sigla de la expresión
gicamente y que pueden ser identificados por los usuarios, o a veces informa- inglesa External Interface File. gicamente y que pueden ser identificados por los usuarios, o a veces informa- inglesa External Interface File.

ción de control pero, en este caso, proceden de fuera de los límites de la ción de control pero, en este caso, proceden de fuera de los límites de la
aplicación y se mantienen al margen de ésta. Representan los ficheros o las ta- aplicación y se mantienen al margen de ésta. Representan los ficheros o las ta-
blas que la aplicación utiliza pero que no crea ni mantiene. blas que la aplicación utiliza pero que no crea ni mantiene.

2) Las características funcionales de transacción son las siguientes: 2) Las características funcionales de transacción son las siguientes:

a) Entradas externas (EI): hacen referencia a los tratamientos que procesan a) Entradas externas (EI): hacen referencia a los tratamientos que procesan
EI es la sigla de la expresión inglesa EI es la sigla de la expresión inglesa
datos o información de control introducidos en la aplicación desde fuera de External Input. datos o información de control introducidos en la aplicación desde fuera de External Input.

sus límites. Son, evidentemente, las entradas a la aplicación. sus límites. Son, evidentemente, las entradas a la aplicación.

b) Salidas externas (EO): cualquier proceso elemental que genere datos o in- b) Salidas externas (EO): cualquier proceso elemental que genere datos o in-
EO es la sigla de la expresión EO es la sigla de la expresión
formación de control que salga de los límites de la aplicación. Equivale a las inglesa External Output. formación de control que salga de los límites de la aplicación. Equivale a las inglesa External Output.

salidas que genera la aplicación. salidas que genera la aplicación.

c) Consultas externas (EQ): proceso elemental formado por una combina- EQ es la sigla de la expresión c) Consultas externas (EQ): proceso elemental formado por una combina- EQ es la sigla de la expresión
inglesa External Query. inglesa External Query.
ción de entrada y salida que permite la recuperación de datos. La salida no ción de entrada y salida que permite la recuperación de datos. La salida no
 FUOC • P03/75069/02142 23 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 23 Estimación de costes de un proyecto informático

debe contener datos derivados y se pueden utilizar los ficheros lógicos inter- debe contener datos derivados y se pueden utilizar los ficheros lógicos inter-
nos. Son las consultas internas de la aplicación, que a menudo se resuelven nos. Son las consultas internas de la aplicación, que a menudo se resuelven
con consultas en los ficheros o tablas propias. con consultas en los ficheros o tablas propias.

Siguiendo una serie de directrices más o menos objetivas que hoy elabora y man- Siguiendo una serie de directrices más o menos objetivas que hoy elabora y man-
tiene el IFPUG, cada una de estas características funcionales queda definida como tiene el IFPUG, cada una de estas características funcionales queda definida como
si fuera de complejidad simple, media o compleja. En la tabla siguiente se muestra si fuera de complejidad simple, media o compleja. En la tabla siguiente se muestra
la ponderación de cada característica funcional y la disposición de los cálculos la ponderación de cada característica funcional y la disposición de los cálculos
TUFP es la sigla de la expresión TUFP es la sigla de la expresión
para obtener, gracias a pesos de ponderación fijados por Albrecht a finales de los inglesa Total Unadjusted para obtener, gracias a pesos de ponderación fijados por Albrecht a finales de los inglesa Total Unadjusted
Function Points. Function Points.
años setenta, lo que se denomina total de puntos de función sin ajustar (TUFP): años setenta, lo que se denomina total de puntos de función sin ajustar (TUFP):

Puntos de función sin ajustar (TUFP) Puntos de función sin ajustar (TUFP)
Los pesos de ponderación Los pesos de ponderación
Complejidad Complejidad
Tipo Descripción Total La ponderación de las caracte- Tipo Descripción Total La ponderación de las caracte-
Simple Media Compleja rísticas funcionales de la tabla Simple Media Compleja rísticas funcionales de la tabla
refleja claramente las preocu- refleja claramente las preocu-
EI Entradas externas ×3 ----- × 4 ----- × 6 ----- paciones de finales de los años EI Entradas externas ×3 ----- × 4 ----- × 6 ----- paciones de finales de los años
setenta, cuando, por ejemplo, setenta, cuando, por ejemplo,
EO Salidas externas ×4 ----- × 5 ----- × 7 ----- se pensaba que el tratamiento EO Salidas externas ×4 ----- × 5 ----- × 7 ----- se pensaba que el tratamiento
de un fichero complejo daba de un fichero complejo daba
LIF Ficheros lógicos internos ×7 ----- × 10 ----- × 15 ----- prácticamente cinco veces más LIF Ficheros lógicos internos ×7 ----- × 10 ----- × 15 ----- prácticamente cinco veces más
trabajo que resolver el trata- trabajo que resolver el trata-
EIF Interfaces lógicas externas ×5 ----- × 7 ----- × 10 ----- miento de una entrada sencilla EIF Interfaces lógicas externas ×5 ----- × 7 ----- × 10 ----- miento de una entrada sencilla
(eso es lo que, de hecho, quie- (eso es lo que, de hecho, quie-
EQ Consultas externas ×3 ----- × 4 ----- × 6 ----- ren decir, comparativamente, EQ Consultas externas ×3 ----- × 4 ----- × 6 ----- ren decir, comparativamente,
los factores 15 para el LIF com- los factores 15 para el LIF com-
Total de puntos de función sin ajustar (TUFP) ----- plejo y 3 para la EI sencilla). Total de puntos de función sin ajustar (TUFP) ----- plejo y 3 para la EI sencilla).

El mismo Albrecht ya pensó que las características funcionales indicadas no El mismo Albrecht ya pensó que las características funcionales indicadas no
agotaban todas las posibilidades de definir funcionalmente un software de agotaban todas las posibilidades de definir funcionalmente un software de
aplicación. Por ello, añadió que se debían considerar también las característi- aplicación. Por ello, añadió que se debían considerar también las característi-
cas generales del sistema. En la formulación establecida en el año 1979 (y cas generales del sistema. En la formulación establecida en el año 1979 (y
mantenida todavía por el IFPUG sin modificaciones) se dan catorce caracterís- mantenida todavía por el IFPUG sin modificaciones) se dan catorce caracterís-
ticas funcionales y se evalúa cada una de 0 a 5 (el valor medio es, pues, 2,5). ticas funcionales y se evalúa cada una de 0 a 5 (el valor medio es, pues, 2,5).

La tabla siguiente detalla las características generales del sistema y una dispo- La tabla siguiente detalla las características generales del sistema y una dispo-
sición adecuada a su cálculo: sición adecuada a su cálculo:

Características generales del sistema: grado total de influencia (TDI) Características generales del sistema: grado total de influencia (TDI)

ID Característica del sistema Total ID Característica del sistema Total

C1 Comunicación de datos ----- C1 Comunicación de datos -----

C2 Funciones distribuidas ----- C2 Funciones distribuidas -----

C3 Rendimiento ----- C3 Rendimiento -----

C4 Configuración muy utilizada ----- C4 Configuración muy utilizada -----

C5 Frecuencia de transacciones ----- C5 Frecuencia de transacciones -----

C6 Entrada on-line de datos ----- C6 Entrada on-line de datos -----

C7 Eficiencia de usuario final ----- C7 Eficiencia de usuario final -----

C8 Actualización on-line ----- C8 Actualización on-line -----

C9 Procesos complejos ----- C9 Procesos complejos -----

C10 Reusabilidad ----- C10 Reusabilidad -----


 FUOC • P03/75069/02142 24 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 24 Estimación de costes de un proyecto informático

Características generales del sistema: grado total de influencia (TDI) Características generales del sistema: grado total de influencia (TDI)

ID Característica del sistema Total ID Característica del sistema Total

C11 Facilidad de instalación ----- C11 Facilidad de instalación -----

C12 Facilidad de operación ----- C12 Facilidad de operación -----

C13 Instalación múltiple ----- C13 Instalación múltiple -----

C14 Facilidad de cambios ----- C14 Facilidad de cambios -----

Grado total de influencia (TDI) ----- Grado total de influencia (TDI) -----

Estas características generales afectan al resultado de los puntos de función de Estas características generales afectan al resultado de los puntos de función de
TDI es la sigla de la expresión TDI es la sigla de la expresión
manera que la suma de los valores de éstas (que se encuentra siempre entre 0 inglesa Total Degree of Influence. manera que la suma de los valores de éstas (que se encuentra siempre entre 0 inglesa Total Degree of Influence.

y 70) se denomina grado total de influencia (TDI). y 70) se denomina grado total de influencia (TDI).

Con el valor del grado total de influencia se determina el ajuste por la com- Con el valor del grado total de influencia se determina el ajuste por la com-
PCA es la sigla de la expresión PCA es la sigla de la expresión
plejidad del proceso (PCA) según la fórmula siguiente: inglesa Processing Complexity plejidad del proceso (PCA) según la fórmula siguiente: inglesa Processing Complexity
Adjustement. Adjustement.

PCA = 0,65 + (0,01 · TDI). PCA = 0,65 + (0,01 · TDI).

Finalmente, los puntos de función (FP) se obtienen ajustados y definitivos se- Finalmente, los puntos de función (FP) se obtienen ajustados y definitivos se-
FP es la sigla de la expresión inglesa FP es la sigla de la expresión inglesa
gún el cálculo siguiente: Function Points. gún el cálculo siguiente: Function Points.

FP = TUFP · PCA, FP = TUFP · PCA,

donde PCA es el valor de la expresión anterior. donde PCA es el valor de la expresión anterior.

Continúa vigente un debate general sobre la idoneidad tanto de las caracterís- Continúa vigente un debate general sobre la idoneidad tanto de las caracterís-
ticas funcionales (EI, EO, EQ, LIF, EIF), como de las características generales, ticas funcionales (EI, EO, EQ, LIF, EIF), como de las características generales,
que, de hecho, se establecieron a finales de los años setenta y, muy posible- que, de hecho, se establecieron a finales de los años setenta y, muy posible-
mente, podrían no ser las más adecuadas para reflejar las funcionalidades de mente, podrían no ser las más adecuadas para reflejar las funcionalidades de
las aplicaciones de hoy día. las aplicaciones de hoy día.

Aunque el IFPUG ha decidido mantener las mismas características y pondera- Aunque el IFPUG ha decidido mantener las mismas características y pondera-
ciones que escogió Albrecht sin modificar los pesos de ponderación, periódi- ciones que escogió Albrecht sin modificar los pesos de ponderación, periódi-
camente va publicando guías para ayudar a la determinación de los valores de camente va publicando guías para ayudar a la determinación de los valores de
las características generales y, también, del grado de complejidad de las carac- las características generales y, también, del grado de complejidad de las carac-
terísticas funcionales. terísticas funcionales.

Por falta de espacio, no podemos incluir aquí las recomendaciones completas Por falta de espacio, no podemos incluir aquí las recomendaciones completas
del IFPUG, pero sí indicaremos algunas a modo de ejemplo, extraídas de la ver- del IFPUG, pero sí indicaremos algunas a modo de ejemplo, extraídas de la ver-
sión 4.0 (1994) del manual del IFPUG: sión 4.0 (1994) del manual del IFPUG:

1) La complejidad funcional sobre los ficheros (tanto los LIF como los EIF) 1) La complejidad funcional sobre los ficheros (tanto los LIF como los EIF)
se determina a partir de dos conceptos: se determina a partir de dos conceptos:

• El número de elementos, o campos de datos, de un fichero (DET). DET es la sigla de la expresión • El número de elementos, o campos de datos, de un fichero (DET). DET es la sigla de la expresión
inglesa Data Element Type. inglesa Data Element Type.
RET es la sigla de la expresión RET es la sigla de la expresión
inglesa Record Element Type. inglesa Record Element Type.
• El número de registros elementales diferentes (RET). • El número de registros elementales diferentes (RET).
 FUOC • P03/75069/02142 25 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 25 Estimación de costes de un proyecto informático

La complejidad de las características funcionales sale, en este caso, de una La complejidad de las características funcionales sale, en este caso, de una
tabla como la que presentamos a continuación: tabla como la que presentamos a continuación:

Medida de la complejidad de los LIF y los EIF Medida de la complejidad de los LIF y los EIF

1 a 19 DET 20 a 50 DET 51 DET o más 1 a 19 DET 20 a 50 DET 51 DET o más

1 RET Baja Baja Media 1 RET Baja Baja Media

2 a 5 RET Baja Media Alta 2 a 5 RET Baja Media Alta

6 RET o más Media Alta Alta 6 RET o más Media Alta Alta

2) De manera similar, la complejidad de las características generales se 2) De manera similar, la complejidad de las características generales se
puede evaluar a partir de las guías que publica el IFPUG. Por ejemplo, en la puede evaluar a partir de las guías que publica el IFPUG. Por ejemplo, en la
versión 4.0, la primera característica funcional (comunicación de datos) se versión 4.0, la primera característica funcional (comunicación de datos) se
determina con los valores siguientes: determina con los valores siguientes:

Característica funcional: comunicación de datos Característica funcional: comunicación de datos

0 La aplicación es puramente batch o se ejecuta en un único PC 0 La aplicación es puramente batch o se ejecuta en un único PC

1 La aplicación es batch, pero tiene entrada de datos o impresión remota 1 La aplicación es batch, pero tiene entrada de datos o impresión remota

2 La aplicación es batch, pero tiene entrada de datos e impresión remotas 2 La aplicación es batch, pero tiene entrada de datos e impresión remotas

La aplicación incluye entrada de datos on-line o TP (teleproceso) front-end La aplicación incluye entrada de datos on-line o TP (teleproceso) front-end
3 3
para un proceso batch o un sistema de consulta para un proceso batch o un sistema de consulta

La aplicación es más que un front-end, sin embargo, soporta sólo un tipo La aplicación es más que un front-end, sin embargo, soporta sólo un tipo
4 4
de protocolo de comunicaciones de TP de protocolo de comunicaciones de TP

La aplicación es más que un front-end y soporta más de un tipo de protocolo La aplicación es más que un front-end y soporta más de un tipo de protocolo
5 5
de comunicaciones de TP de comunicaciones de TP

Los puntos de función y la productividad Los puntos de función y la productividad

Para tener datos de la productividad a partir de los puntos de función, se Para tener datos de la productividad a partir de los puntos de función, se
suele utilizar una ratio de productividad que indica el número de horas de suele utilizar una ratio de productividad que indica el número de horas de
trabajo (siempre de un profesional medio) necesarias para implementar un trabajo (siempre de un profesional medio) necesarias para implementar un
punto de función. punto de función.

Evidentemente, como ya hemos dicho antes en el caso de las líneas de có- Evidentemente, como ya hemos dicho antes en el caso de las líneas de có-
digo, en este trabajo se reflejan todas las tareas necesarias, desde el estudio digo, en este trabajo se reflejan todas las tareas necesarias, desde el estudio
de oportunidad hasta la puesta en marcha, pasando por el análisis de los de oportunidad hasta la puesta en marcha, pasando por el análisis de los
requerimientos, el diseño de la solución técnica, la programación y las requerimientos, el diseño de la solución técnica, la programación y las
pruebas. Lectura recomendada pruebas. Lectura recomendada

Encontraréis los datos que Encontraréis los datos que


ofrece Jones sobre su empresa ofrece Jones sobre su empresa
Aunque siempre se deben tener los datos de productividad habituales en en la obra siguiente: Aunque siempre se deben tener los datos de productividad habituales en en la obra siguiente:
C.T. Jones (1996). “Software C.T. Jones (1996). “Software
una determinada instalación, Jones nos ofrece como patrón de referencia Estimating Rules of Thumb”.
una determinada instalación, Jones nos ofrece como patrón de referencia Estimating Rules of Thumb”.
los resultados en su empresa Software Productivity Research (SPR), donde IEEE computer (marzo, los resultados en su empresa Software Productivity Research (SPR), donde IEEE computer (marzo,
pág. 116-118). pág. 116-118).
se descompone un proyecto informático en diferentes actividades (hasta se descompone un proyecto informático en diferentes actividades (hasta
 FUOC • P03/75069/02142 26 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 26 Estimación de costes de un proyecto informático

un máximo de 25 para todo tipo de proyectos). Los datos se resumen en la un máximo de 25 para todo tipo de proyectos). Los datos se resumen en la
tabla que presentamos a continuación: tabla que presentamos a continuación:

Productividad en horas por punto de función Productividad en horas por punto de función

Actividad Descripción Horas/FP Ponderación (%) Total horas/FP Actividad Descripción Horas/FP Ponderación (%) Total horas/FP

01 Requerimientos 0,75 5 3,75 01 Requerimientos 0,75 5 3,75

04 Plan del proyecto 0,26 2 0,52 04 Plan del proyecto 0,26 2 0,52

05 Diseño inicial 0,75 8 6,00 05 Diseño inicial 0,75 8 6,00

06 Diseño detallado 0,88 10 8,80 06 Diseño detallado 0,88 10 8,80

08 Codificación 2,64 40 105,60 08 Codificación 2,64 40 105,60

Documentación de Documentación de
15 1,89 10 18,90 15 1,89 10 18,90
usuario usuario

16 Prueba unitaria 0,88 10 8,80 16 Prueba unitaria 0,88 10 8,80

17 Prueba funcional 0,88 4 3,52 17 Prueba funcional 0,88 4 3,52

18 Prueba de integración 0,75 4 3,00 18 Prueba de integración 0,75 4 3,00

19 Prueba del sistema 0,66 4 2,64 19 Prueba del sistema 0,66 4 2,64

25 Gestión del proyecto 1,32 3 3,96 25 Gestión del proyecto 1,32 3 3,96

Media 1,6549 Media 1,6549

Fuente: C.T. Jones, 1996. Fuente: C.T. Jones, 1996.

Teniendo en cuenta sólo las actividades típicas de los proyectos informáticos Teniendo en cuenta sólo las actividades típicas de los proyectos informáticos
en la informática de gestión, las horas por punto de función que marcan la en la informática de gestión, las horas por punto de función que marcan la
productividad en cada caso y una ponderación de su importancia final en el productividad en cada caso y una ponderación de su importancia final en el
conjunto del proyecto, Jones obtiene una media de 1,65 horas por punto de conjunto del proyecto, Jones obtiene una media de 1,65 horas por punto de
función, hecho que no deja de ser un valor muy optimista, conseguido por función, hecho que no deja de ser un valor muy optimista, conseguido por
una empresa que hace mucho tiempo que observa con detalle todos los pro- una empresa que hace mucho tiempo que observa con detalle todos los pro-
cesos de mejora de la productividad. cesos de mejora de la productividad.

A todos los efectos, una productividad que tenga entre dos o tres horas por A todos los efectos, una productividad que tenga entre dos o tres horas por
punto de función podría ser la más habitual en la mayoría de las instala- punto de función podría ser la más habitual en la mayoría de las instala-
ciones modernas. ciones modernas.

1.4.3. Relación entre puntos de función y líneas de código 1.4.3. Relación entre puntos de función y líneas de código

Aunque los puntos de función y las líneas de código sean diferentes, es posible Aunque los puntos de función y las líneas de código sean diferentes, es posible
encontrar una especie de equivalencia entre los unos y las otras. De hecho, ya encontrar una especie de equivalencia entre los unos y las otras. De hecho, ya
existen miles de proyectos informáticos que se han medido utilizando puntos existen miles de proyectos informáticos que se han medido utilizando puntos
de función y, también, líneas de código, hecho que ha permitido obtener ra- de función y, también, líneas de código, hecho que ha permitido obtener ra-
tios de conversión de una unidad a la otra. tios de conversión de una unidad a la otra.
 FUOC • P03/75069/02142 27 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 27 Estimación de costes de un proyecto informático

Se han publicado diferentes equivalencias entre FP y LOC; la que proponía Se han publicado diferentes equivalencias entre FP y LOC; la que proponía
Caper T. Jones es la siguiente: Caper T. Jones es la siguiente:

LOC por punto de función LOC por punto de función

Lenguaje LOC/FP Lenguaje LOC/FP

Ensamblador 320 Ensamblador 320

Macroensamblador 213 Macroensamblador 213

C 150 C 150

COBOL 106 COBOL 106

Fortran 106 Fortran 106

Pascal 91 Pascal 91

RPG 80 RPG 80

PL/I 80 PL/I 80

Ada 71 Ada 71

BASIC 64 BASIC 64

Fuente: C.T. Jones, 1986. Fuente: C.T. Jones, 1986.

Otros autores pretenden incluso encontrar fórmulas de equivalencia, como Otros autores pretenden incluso encontrar fórmulas de equivalencia, como
Lectura complementaria Lectura complementaria
hace Bernard Londeix, que en el caso concreto del lenguaje COBOL propone hace Bernard Londeix, que en el caso concreto del lenguaje COBOL propone
Podéis consultar la obra Podéis consultar la obra
la fórmula de conversión siguiente: siguiente: la fórmula de conversión siguiente: siguiente:
B. Londeix (1987). Cost B. Londeix (1987). Cost
estimation for software estimation for software
LOC = 118,7 · FP − 6,490. development. Reading LOC = 118,7 · FP − 6,490. development. Reading
(Massachusetts): (Massachusetts):
Addison- Wesley. Addison- Wesley.
Sin embargo, a pesar del interés por la exactitud, cabe mencionar que las im- Sin embargo, a pesar del interés por la exactitud, cabe mencionar que las im-
precisiones en la determinación de las LOC y, sobre todo, de los FP (a pesar de precisiones en la determinación de las LOC y, sobre todo, de los FP (a pesar de
Conversión de LOC en FP Conversión de LOC en FP
los estándares y las recomendaciones del IFPUG), convierten en muy razona- los estándares y las recomendaciones del IFPUG), convierten en muy razona-
ble la propuesta del mismo Caper T. Jones. • Para lenguajes de procedi- ble la propuesta del mismo Caper T. Jones. • Para lenguajes de procedi-
miento, como C, COBOL, miento, como C, COBOL,
Fortran o Pascal: 100 LOC Fortran o Pascal: 100 LOC
por FP. por FP.
La propuesta de Caper T. Jones en su columna mensual en la revista IEEE Computer, en el La propuesta de Caper T. Jones en su columna mensual en la revista IEEE Computer, en el
• Para lenguajes orientados a • Para lenguajes orientados a
año 1996, concretamente en el mes de marzo, establecía la equivalencia siguiente: objeto y generadores de año 1996, concretamente en el mes de marzo, establecía la equivalencia siguiente: objeto y generadores de
aplicaciones: 20 LOC aplicaciones: 20 LOC
“Regla 1: un punto de función = 100 sentencias de código fuente lógico.” por FP. “Regla 1: un punto de función = 100 sentencias de código fuente lógico.” por FP.

En aquel mismo artículo, este experto justificaba la equivalencia de esta manera: En aquel mismo artículo, este experto justificaba la equivalencia de esta manera:

“El ratio entre sentencias de código fuente lógico sin comentarios al punto de función va “El ratio entre sentencias de código fuente lógico sin comentarios al punto de función va
desde más de 300 sentencias por punto de función para los lenguajes básicos de ensam- desde más de 300 sentencias por punto de función para los lenguajes básicos de ensam-
blador, hasta menos de 20 para los lenguajes orientados a objetos y la mayoría de los ge- blador, hasta menos de 20 para los lenguajes orientados a objetos y la mayoría de los ge-
neradores de programas. Como los lenguajes de procedimientos (procedural) como C, neradores de programas. Como los lenguajes de procedimientos (procedural) como C,
COBOL, Fortran y Pascal están próximos a una relación de 100 en 1, este valor puede ser- COBOL, Fortran y Pascal están próximos a una relación de 100 en 1, este valor puede ser-
vir como factor de conversión basto.” vir como factor de conversión basto.”

“Esta regla tiene un gran margen de error y son necesarias correcciones significativas “Esta regla tiene un gran margen de error y son necesarias correcciones significativas
cuando se trata de lenguajes de programación orientados a objetos, generadores de cuando se trata de lenguajes de programación orientados a objetos, generadores de
aplicaciones o aplicaciones donde se utilice una cantidad significativa como código aplicaciones o aplicaciones donde se utilice una cantidad significativa como código
reutilizado.” reutilizado.”

C.T. Jones (1996, pág. 116). C.T. Jones (1996, pág. 116).

Cabe mencionar que, en este contexto, Jones considera más bien las líneas de Cabe mencionar que, en este contexto, Jones considera más bien las líneas de
código lógicas que las físicas (que dependen del estilo de cada programador) código lógicas que las físicas (que dependen del estilo de cada programador)
 FUOC • P03/75069/02142 28 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 28 Estimación de costes de un proyecto informático

y, sobre todo, que los puntos de función hacen referencia a la versión 3.0 del y, sobre todo, que los puntos de función hacen referencia a la versión 3.0 del
recuento de puntos de función según el IFPUG. recuento de puntos de función según el IFPUG.

1.4.4. Una perplejidad final 1.4.4. Una perplejidad final

Aunque parezca mentira, no existe un acuerdo total entre los datos que Jones Podéis ver los datos de Boehm y Aunque parezca mentira, no existe un acuerdo total entre los datos que Jones Podéis ver los datos de Boehm y
Grady con relación a las líneas de Grady con relación a las líneas de
ofrece y los otros disponibles que hemos comentado, procedentes de Boehm código en el subapartado 1.4.1 ofrece y los otros disponibles que hemos comentado, procedentes de Boehm código en el subapartado 1.4.1
de este módulo didáctico. de este módulo didáctico.
y Grady. Es más, la diferencia es muy acusada. y Grady. Es más, la diferencia es muy acusada.

Si, de manera general, un punto de función son 100 LOC de COBOL y, según Podéis ver la relación que se da Si, de manera general, un punto de función son 100 LOC de COBOL y, según Podéis ver la relación que se da
entre los puntos de función y la entre los puntos de función y la
hemos visto, hoy en día se implementa en dos o tres horas, en una jornada de productividad en el subapartado 1.4.2 hemos visto, hoy en día se implementa en dos o tres horas, en una jornada de productividad en el subapartado 1.4.2
de este módulo didáctico. de este módulo didáctico.
trabajo de ocho horas se deberían implementar entre 260 y 400 LOC, cantidad trabajo de ocho horas se deberían implementar entre 260 y 400 LOC, cantidad
que se encuentra muy por encima de lo que dicen Boehm y Grady (entre 10 y que se encuentra muy por encima de lo que dicen Boehm y Grady (entre 10 y
15 LOC por persona-día). 15 LOC por persona-día).

En cualquier caso, no hay nada que hacer. Este tipo de contradicciones sobre En cualquier caso, no hay nada que hacer. Este tipo de contradicciones sobre
los datos de productividad son habituales en las métricas de productividad del los datos de productividad son habituales en las métricas de productividad del
software, que, evidentemente, acusan el paso de los años y, sobre todo, las ca- software, que, evidentemente, acusan el paso de los años y, sobre todo, las ca-
racterísticas propias (no siempre iguales) de las instalaciones y los proyectos racterísticas propias (no siempre iguales) de las instalaciones y los proyectos
informáticos de donde se han tomado los datos. informáticos de donde se han tomado los datos.

Como ya se ha dicho, la única manera segura de poder tener unos estándares Como ya se ha dicho, la única manera segura de poder tener unos estándares
de productividad buenos y dignos de ser utilizados es no depender de lo que de productividad buenos y dignos de ser utilizados es no depender de lo que
dicen libros y artículos (con datos obtenidos en condiciones a menudo bien dicen libros y artículos (con datos obtenidos en condiciones a menudo bien
* A partir de KLOC o de los puntos * A partir de KLOC o de los puntos
diferentes) y disponer de los datos de productividad propios*, datos que pue- de función. diferentes) y disponer de los datos de productividad propios*, datos que pue- de función.

den haber sido obtenidos en proyectos anteriores del mismo tipo (en cuanto den haber sido obtenidos en proyectos anteriores del mismo tipo (en cuanto
a aplicación y tecnología) y con equipos de desarrollo de calificaciones y ca- a aplicación y tecnología) y con equipos de desarrollo de calificaciones y ca-
racterísticas personales conocidos. Por este motivo, como ya se ha dicho en racterísticas personales conocidos. Por este motivo, como ya se ha dicho en
Podéis ver el subapartado 1.6 del Podéis ver el subapartado 1.6 del
otro módulo, es tan importante disponer de la documentación de gestión y de módulo “El proyecto informático de otro módulo, es tan importante disponer de la documentación de gestión y de módulo “El proyecto informático de
construcción de software” de esta construcción de software” de esta
asignatura. asignatura.
los datos de proyectos informáticos anteriores. los datos de proyectos informáticos anteriores.
 FUOC • P03/75069/02142 29 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 29 Estimación de costes de un proyecto informático

2. Estimación de costes de un proyecto informático 2. Estimación de costes de un proyecto informático

Ya sabéis que la gestión de un proyecto informático de gestión empieza con la Podéis ver las etapas de un proyecto Ya sabéis que la gestión de un proyecto informático de gestión empieza con la Podéis ver las etapas de un proyecto
informático en el subapartado 1.2 informático en el subapartado 1.2
calificación del proyecto, que pretende, en primer lugar, obtener una idea del del módulo “El proyecto informático de
construcción de software” de esta
calificación del proyecto, que pretende, en primer lugar, obtener una idea del del módulo “El proyecto informático de
construcción de software” de esta
asignatura. asignatura.
volumen de trabajo que costará construir la aplicación (estimación) y, en se- volumen de trabajo que costará construir la aplicación (estimación) y, en se-
gundo lugar, planificar en el tiempo las diferentes actividades que es necesario gundo lugar, planificar en el tiempo las diferentes actividades que es necesario
llevar a cabo (planificación). llevar a cabo (planificación).

La primera de estas etapas se conoce también con el nombre de estimación de La primera de estas etapas se conoce también con el nombre de estimación de
costes de un proyecto informático, ya que a partir del esfuerzo de trabajo esti- costes de un proyecto informático, ya que a partir del esfuerzo de trabajo esti-
mado se obtendrá el presupuesto. Del mismo modo, después de la planificación mado se obtendrá el presupuesto. Del mismo modo, después de la planificación
y el reparto en el calendario de las tareas que se deben a realizar, se obtienen los y el reparto en el calendario de las tareas que se deben a realizar, se obtienen los
plazos, etapa que también se conoce con el nombre de tiempo de desarrollo del plazos, etapa que también se conoce con el nombre de tiempo de desarrollo del
proyecto. Y es necesario recordar que las funcionalidades, los plazos y el presu- proyecto. Y es necesario recordar que las funcionalidades, los plazos y el presu-
puesto definen un proyecto informático de construcción de software. puesto definen un proyecto informático de construcción de software.

Como ya conocéis de otro módulo, los costes que intervienen en un proyecto Podéis ver el apartado 1 del módulo Como ya conocéis de otro módulo, los costes que intervienen en un proyecto Podéis ver el apartado 1 del módulo
“El proyecto informático de “El proyecto informático de
informático son variados y complejos, pero la tendencia a la disminución del construcción de software” de esta
asignatura.
informático son variados y complejos, pero la tendencia a la disminución del construcción de software” de esta
asignatura.
coste del hardware y al aumento del coste del software provoca que aquí nos coste del hardware y al aumento del coste del software provoca que aquí nos
podamos centrar en los costes de personal para la construcción del software de podamos centrar en los costes de personal para la construcción del software de
aplicación. La mayor parte del coste del software se encuentra hoy en el coste aplicación. La mayor parte del coste del software se encuentra hoy en el coste
de las horas de análisis, diseño, programación y prueba que se deben utilizar de las horas de análisis, diseño, programación y prueba que se deben utilizar
para obtenerlo. Por ello, cuando aquí se habla de estimación de costes se hace para obtenerlo. Por ello, cuando aquí se habla de estimación de costes se hace
referencia, exclusivamente, al esfuerzo humano que ha sido necesario, es de- referencia, exclusivamente, al esfuerzo humano que ha sido necesario, es de-
cir, a las horas de trabajo requeridas para construir el software. cir, a las horas de trabajo requeridas para construir el software.

De las dos etapas de la calificación, la de la estimación de costes y determina- De las dos etapas de la calificación, la de la estimación de costes y determina-
ción del volumen de trabajo que se debe llevar a cabo es claramente la más di- ción del volumen de trabajo que se debe llevar a cabo es claramente la más di-
fícil y compleja. Existe mucha bibliografía sobre el tema, pero, en cierta fícil y compleja. Existe mucha bibliografía sobre el tema, pero, en cierta
manera, sirve de poco. Cuando el jefe de proyecto se plantea por primera vez manera, sirve de poco. Cuando el jefe de proyecto se plantea por primera vez
evaluar el trabajo necesario para construir un software determinado sólo dis- evaluar el trabajo necesario para construir un software determinado sólo dis-
pone de unos pocos datos de lo que ha de ser la aplicación futura y la realidad pone de unos pocos datos de lo que ha de ser la aplicación futura y la realidad
es que no sabe en absoluto lo suficiente como para llegar a una estimación co- es que no sabe en absoluto lo suficiente como para llegar a una estimación co-
rrecta. Y este problema, simplemente, no tiene solución. rrecta. Y este problema, simplemente, no tiene solución.

Ya hace muchos años que Tom de Marco dejó claro este punto. En un libro Ya hace muchos años que Tom de Marco dejó claro este punto. En un libro
Lectura recomendada Lectura recomendada
lleno de disquisiciones interesantes y con mucho sentido común, de Marco lleno de disquisiciones interesantes y con mucho sentido común, de Marco
Os recomendamos que leáis Os recomendamos que leáis
considera que el hecho de esperar obtener de la bibliografía técnica datos lo el capítulo “El dilema de la considera que el hecho de esperar obtener de la bibliografía técnica datos lo el capítulo “El dilema de la
estimación” de la obra estimación” de la obra
bastante fiables como para llevar a cabo una buena estimación es una actitud siguiente: bastante fiables como para llevar a cabo una buena estimación es una actitud siguiente:
comparable a la que toman los personajes de la obra de teatro Esperando a Go- T. de Marco (1982). comparable a la que toman los personajes de la obra de teatro Esperando a Go- T. de Marco (1982).
Controlling Software Projects Controlling Software Projects
dot del premio Nobel Samuel Beckett. En la obra, un clásico del teatro moder- (vol. 2, pág. 9-17). dot del premio Nobel Samuel Beckett. En la obra, un clásico del teatro moder- (vol. 2, pág. 9-17).
Englewood Cliffs: Yourdon Englewood Cliffs: Yourdon
no, dos personajes pasan todo el tiempo esperando a alguien, un tal Godot, Press (Prentice Hall).
no, dos personajes pasan todo el tiempo esperando a alguien, un tal Godot, Press (Prentice Hall).
que, simplemente, no llega nunca. que, simplemente, no llega nunca.
 FUOC • P03/75069/02142 30 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 30 Estimación de costes de un proyecto informático

En palabras de de Marco: En palabras de de Marco:

“No hay modelos de coste transportables. Si esperas que alguien en otro lugar desarrolle “No hay modelos de coste transportables. Si esperas que alguien en otro lugar desarrolle
un conjunto de fórmulas que puedas utilizar para prever el coste en tu propia instalación, un conjunto de fórmulas que puedas utilizar para prever el coste en tu propia instalación,
probablemente tendrás que esperar para siempre.” probablemente tendrás que esperar para siempre.”

T. de Marco (1982, pág. 155). T. de Marco (1982, pág. 155).

Como ya se ha dicho sobradamente, es imprescindible disponer de datos con- Como ya se ha dicho sobradamente, es imprescindible disponer de datos con-
cretos sobre proyectos anteriores realizados en una instalación determinada. cretos sobre proyectos anteriores realizados en una instalación determinada.
Si no se tienen estos datos, se deben utilizar los de la bibliografía técnica*, aun- Si no se tienen estos datos, se deben utilizar los de la bibliografía técnica*, aun-
* Por ejemplo, la productividad * Por ejemplo, la productividad
que no es siempre razonable fiarse demasiado. Quizá por ello, el propio de de 10 a 16 LOC por persona-día que no es siempre razonable fiarse demasiado. Quizá por ello, el propio de de 10 a 16 LOC por persona-día
o 2 horas para implementar o 2 horas para implementar
un punto de función. un punto de función.
Marco propone las dos definiciones sucesivas muy realistas de lo que es una Marco propone las dos definiciones sucesivas muy realistas de lo que es una
estimación, aunque parezcan más bien cínicas: estimación, aunque parezcan más bien cínicas:

1) Definición implícita de estimación: una estimación es la predicción más 1) Definición implícita de estimación: una estimación es la predicción más
Lectura recomendada Lectura recomendada
optimista que tiene una probabilidad no nula de llegar a ser cierta. optimista que tiene una probabilidad no nula de llegar a ser cierta.
Encontraréis las definiciones Encontraréis las definiciones
de estimación propuestas por de estimación propuestas por
de Marco en la obra de Marco en la obra
2) Definición propuesta por de Marco: una estimación es una predicción siguiente: 2) Definición propuesta por de Marco: una estimación es una predicción siguiente:
T. de Marco (1982). T. de Marco (1982).
que tiene la misma probabilidad de estar por encima que de estar por debajo que tiene la misma probabilidad de estar por encima que de estar por debajo
Controlling Software Projects Controlling Software Projects
del resultado real. (pág. 14). Englewood del resultado real. (pág. 14). Englewood
Cliffs: Yourdon Press Cliffs: Yourdon Press
(Prentice- Hall). (Prentice- Hall).

En resumidas cuentas, estimar la carga de trabajo que es necesario llevar En resumidas cuentas, estimar la carga de trabajo que es necesario llevar
a cabo para la construcción de software de aplicación es una tarea que a cabo para la construcción de software de aplicación es una tarea que
normalmente debe fracasar. normalmente debe fracasar.

A pesar de todo, para empezar, se debe realizar una estimación y, dejando A pesar de todo, para empezar, se debe realizar una estimación y, dejando
En cuanto En cuanto
bien claro que en estos aspectos vale más la experiencia que las fórmulas, a la experiencia... bien claro que en estos aspectos vale más la experiencia que las fórmulas, a la experiencia...

aquí intentaremos comentar cómo se puede estimar a priori el trabajo ne- ... el jefe de proyecto debería aquí intentaremos comentar cómo se puede estimar a priori el trabajo ne- ... el jefe de proyecto debería
ser como el demonio, de quien ser como el demonio, de quien
cesario para construir un software de aplicación determinado en la informá- se dice que sabe más por viejo
cesario para construir un software de aplicación determinado en la informá- se dice que sabe más por viejo
tica de gestión. que por demonio. tica de gestión. que por demonio.

2.1. Momento de la estimación y grado de exactitud 2.1. Momento de la estimación y grado de exactitud

El problema, evidentemente, es que cuando se ha de llevar a cabo la primera es- El problema, evidentemente, es que cuando se ha de llevar a cabo la primera es-
timación todavía no se dispone de las especificaciones completas de la aplica- timación todavía no se dispone de las especificaciones completas de la aplica-
ción que es necesario construir. Se ignora la mayor parte del detalle de las ción que es necesario construir. Se ignora la mayor parte del detalle de las
funcionalidades que caracterizan el proyecto. Precisamente, es en la etapa de funcionalidades que caracterizan el proyecto. Precisamente, es en la etapa de
análisis y diseño cuando estas especificaciones quedarán totalmente determina- análisis y diseño cuando estas especificaciones quedarán totalmente determina-
das y se podrá conocer el alcance real del proyecto informático. das y se podrá conocer el alcance real del proyecto informático.

Se ha intentado calcular cuál es la desviación que se presenta entre la esti- Se ha intentado calcular cuál es la desviación que se presenta entre la esti-
mación del volumen de trabajo que se debe realizar y el volumen que se mación del volumen de trabajo que se debe realizar y el volumen que se
debe llevar a cabo realmente al final. El gráfico de la página siguiente mues- debe llevar a cabo realmente al final. El gráfico de la página siguiente mues-
 FUOC • P03/75069/02142 31 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 31 Estimación de costes de un proyecto informático

tra cómo, a medida que avanza el proyecto informático y se conocen con tra cómo, a medida que avanza el proyecto informático y se conocen con
más detalle las especificaciones, el margen de error va disminuyendo: más detalle las especificaciones, el margen de error va disminuyendo:

Fuente: Gráfico adaptado de Cost Models for Future Life Cycle Process: COCOMO 2.0 de B.W. Boehm y otros (1995). Fuente: Gráfico adaptado de Cost Models for Future Life Cycle Process: COCOMO 2.0 de B.W. Boehm y otros (1995).

Cabe destacar (visible en la escala de ordenadas de la izquierda) cómo la pri- Cabe destacar (visible en la escala de ordenadas de la izquierda) cómo la pri-
mera estimación, realizada en el momento de la definición inicial del produc- mera estimación, realizada en el momento de la definición inicial del produc-
to, puede tener errores de estimación hasta cuatro veces por encima o por to, puede tener errores de estimación hasta cuatro veces por encima o por
debajo de lo que después será la carga real de trabajo. debajo de lo que después será la carga real de trabajo.

De manera similar, tal como se ve en la escala de ordenadas de la derecha, la De manera similar, tal como se ve en la escala de ordenadas de la derecha, la
duración estimada del proyecto (es decir, el tiempo de desarrollo que marca duración estimada del proyecto (es decir, el tiempo de desarrollo que marca
los plazos que caracterizan al proyecto) tiene un margen de error que va entre los plazos que caracterizan al proyecto) tiene un margen de error que va entre
el 160% y el 60% de la duración real, siempre comparando la realidad final el 160% y el 60% de la duración real, siempre comparando la realidad final
con esta primera estimación tan precaria realizada sólo a partir de la definición con esta primera estimación tan precaria realizada sólo a partir de la definición
inicial del producto. inicial del producto.

2.2. Los métodos de estimación posibles según Barry W. Boehm 2.2. Los métodos de estimación posibles según Barry W. Boehm

En el libro de Barry W. Boehm (1981), que se ha convertido en un clásico sobre En el libro de Barry W. Boehm (1981), que se ha convertido en un clásico sobre
el tema, se exponen siete maneras diferentes de proceder a la estimación ini- el tema, se exponen siete maneras diferentes de proceder a la estimación ini-
cial de costes de un proyecto informático. Algunas pueden parecer extrañas e cial de costes de un proyecto informático. Algunas pueden parecer extrañas e
incluso poco serias, sin embargo, si se tiene en cuenta la realidad de mercado incluso poco serias, sin embargo, si se tiene en cuenta la realidad de mercado
y la práctica real, los siete procedimientos que menciona Boehm (evidente- y la práctica real, los siete procedimientos que menciona Boehm (evidente-
mente, no todos recomendables) son bastante esclarecedores. mente, no todos recomendables) son bastante esclarecedores.
 FUOC • P03/75069/02142 32 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 32 Estimación de costes de un proyecto informático

A continuación se exponen los siete métodos que menciona Boehm, con co- A continuación se exponen los siete métodos que menciona Boehm, con co-
mentarios complementarios, tal vez ajenos a la voluntad inicial del autor: mentarios complementarios, tal vez ajenos a la voluntad inicial del autor:

1) Utilización de modelos: Boehm los denomina modelos algorítmicos y 1) Utilización de modelos: Boehm los denomina modelos algorítmicos y
proporcionan uno o más algoritmos que dan una estimación del coste del soft- proporcionan uno o más algoritmos que dan una estimación del coste del soft-
ware como función de un número de variables determinado que se consideran ware como función de un número de variables determinado que se consideran
influyentes en este coste. Estos modelos, como veremos, pueden ser también influyentes en este coste. Estos modelos, como veremos, pueden ser también
de base estadística, teórica o compuestos. de base estadística, teórica o compuestos.

2) Juicio de expertos en el tipo de proyecto: método que supone basarse 2) Juicio de expertos en el tipo de proyecto: método que supone basarse
fundamentalmente en la experiencia de uno o más profesionales expertos que fundamentalmente en la experiencia de uno o más profesionales expertos que
ya hayan actuado en diferentes ocasiones como jefes en proyectos bastante ya hayan actuado en diferentes ocasiones como jefes en proyectos bastante
parecidos al que nos preocupa. parecidos al que nos preocupa.

3) Analogía con otro proyecto parecido: estrategia que pretende ampararse 3) Analogía con otro proyecto parecido: estrategia que pretende ampararse
en los datos disponibles obtenidos en otro proyecto de construcción de soft- en los datos disponibles obtenidos en otro proyecto de construcción de soft-
ware que sea en cierta manera análogo al que nos ocupa en aspectos clave ware que sea en cierta manera análogo al que nos ocupa en aspectos clave
como la tecnología, el tipo de aplicación, el personal que interviene, etc. como la tecnología, el tipo de aplicación, el personal que interviene, etc.

4) Utilizar todos los recursos disponibles: caso habitual que se da cuando 4) Utilizar todos los recursos disponibles: caso habitual que se da cuando
Lectura recomendada Lectura recomendada
no se gestiona un proyecto informático y se destinan los recursos que pa- no se gestiona un proyecto informático y se destinan los recursos que pa-
La idea de que el trabajo, La idea de que el trabajo,
recen necesarios en cada momento del desarrollo. Con respecto a este pun- si no se controla, ocupa recen necesarios en cada momento del desarrollo. Con respecto a este pun- si no se controla, ocupa
siempre todos los recursos siempre todos los recursos
to, Boehm hace una referencia explícita a lo que se conoce como la ley de disponibles, se expone de to, Boehm hace una referencia explícita a lo que se conoce como la ley de disponibles, se expone de
Parkinson, según la cual el trabajo siempre se expande hasta ocupar todos manera muy divertida en la Parkinson, según la cual el trabajo siempre se expande hasta ocupar todos manera muy divertida en la
obra siguiente: obra siguiente:
los recursos disponibles. Esta ley es fruto de la observación y el ingenio de Cyril Northcote Parkinson los recursos disponibles. Esta ley es fruto de la observación y el ingenio de Cyril Northcote Parkinson
(1962). Al patrimonio por el (1962). Al patrimonio por el
Cyril Northcote Parkinson. matrimonio (tercera ley de Cyril Northcote Parkinson. matrimonio (tercera ley de
Parkinson). Bilbao: Deusto. Parkinson). Bilbao: Deusto.

5) Precio ganador: estrategia que propone simplemente una estimación de 5) Precio ganador: estrategia que propone simplemente una estimación de
cargas (esfuerzo, coste y/o tiempo de desarrollo) que provoque que la oferta cargas (esfuerzo, coste y/o tiempo de desarrollo) que provoque que la oferta
sea irresistible, con independencia de si después se puede cumplir o no. O se sea irresistible, con independencia de si después se puede cumplir o no. O se
iguala automáticamente el coste al valor más bajo para conseguir un contrato, iguala automáticamente el coste al valor más bajo para conseguir un contrato,
o se escoge automáticamente un tiempo de desarrollo y unos plazos que, con o se escoge automáticamente un tiempo de desarrollo y unos plazos que, con
independencia del trabajo se deba llevar a cabo, permitan al producto ser el independencia del trabajo se deba llevar a cabo, permitan al producto ser el
primero en llegar al mercado. primero en llegar al mercado.

Una estrategia habitual Una estrategia habitual

Desgraciadamente, la estrategia del precio ganador es en demasiadas ocasiones la reali- Desgraciadamente, la estrategia del precio ganador es en demasiadas ocasiones la reali-
dad del mundo mercantilizado en el que nos movemos: si dos o tres empresas proveedo- dad del mundo mercantilizado en el que nos movemos: si dos o tres empresas proveedo-
ras deben realizar una oferta de lo que puede costar (en tiempo y dinero) construir una ras deben realizar una oferta de lo que puede costar (en tiempo y dinero) construir una
aplicación informática determinada, es casi seguro que se llevará el contrato la que reali- aplicación informática determinada, es casi seguro que se llevará el contrato la que reali-
ce una oferta más barata o la que ofrezca un tiempo de desarrollo inferior. El hecho de ce una oferta más barata o la que ofrezca un tiempo de desarrollo inferior. El hecho de
que después puedan surgir problemas para cumplir lo que se ha prometido es, simple- que después puedan surgir problemas para cumplir lo que se ha prometido es, simple-
mente, consecuencia de la estrategia con la que se ha conseguido el contrato. mente, consecuencia de la estrategia con la que se ha conseguido el contrato.

6) Estimación global descendente*: método que intenta obtener un dato 6) Estimación global descendente*: método que intenta obtener un dato
* En inglés, top-down. * En inglés, top-down.
único y global para todo el proyecto informático a partir de diferentes propie- único y global para todo el proyecto informático a partir de diferentes propie-
dades globales del producto final (tamaño, complejidad, dificultad técnica, ni- dades globales del producto final (tamaño, complejidad, dificultad técnica, ni-
vel de calidad y fiabilidad, etc.) que, después, se va descomponiendo. vel de calidad y fiabilidad, etc.) que, después, se va descomponiendo.
 FUOC • P03/75069/02142 33 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 33 Estimación de costes de un proyecto informático

7) Descomposición en actividades (WBS) y estimación ascendente*: méto- 7) Descomposición en actividades (WBS) y estimación ascendente*: méto-
* En inglés, bottom-up. * En inglés, bottom-up.
do que descompone el conjunto del proyecto en diferentes actividades** y, ** En inglés, Work Breakdown do que descompone el conjunto del proyecto en diferentes actividades** y, ** En inglés, Work Breakdown
Structure. Structure.
una vez estimado el esfuerzo para cada una de éstas, obtiene por agregación el una vez estimado el esfuerzo para cada una de éstas, obtiene por agregación el
esfuerzo total del proyecto. esfuerzo total del proyecto.

Cabe destacar que, al margen del realismo de algunos de los métodos mencio- Podéis ver la operatividad del Cabe destacar que, al margen del realismo de algunos de los métodos mencio- Podéis ver la operatividad del
método de descomposición en método de descomposición en
nados por Boehm, los seis primeros representan métodos estratégicos y tácti- actividades y estimación ascendente nados por Boehm, los seis primeros representan métodos estratégicos y tácti- actividades y estimación ascendente
en el subapartado 2.4 de este módulo en el subapartado 2.4 de este módulo
didáctico. Podéis ver también la didáctico. Podéis ver también la
cos que, a menudo, dan lugar a una estimación única de la totalidad del planificación, el seguimiento y el control cos que, a menudo, dan lugar a una estimación única de la totalidad del planificación, el seguimiento y el control
en el módulo “La gestión de un proyecto en el módulo “La gestión de un proyecto
proyecto. Como veremos más adelante, el método más operativo es el sépti- informático” de esta asignatura. proyecto. Como veremos más adelante, el método más operativo es el sépti- informático” de esta asignatura.

mo, que permite, además, obtener un desglose del proyecto informático en ac- mo, que permite, además, obtener un desglose del proyecto informático en ac-
tividades, hecho que nos será muy útil tanto en la planificación, como en el tividades, hecho que nos será muy útil tanto en la planificación, como en el
seguimiento y control del proyecto. seguimiento y control del proyecto.

A pesar de todo, la mayoría de los métodos que recogen los libros (y éste no Podéis ver los modelos de A pesar de todo, la mayoría de los métodos que recogen los libros (y éste no Podéis ver los modelos de
estimación en el subapartado 2.3 de estimación en el subapartado 2.3 de
será en absoluto una excepción) tratan la estimación de costes por métodos y este módulo didáctico. será en absoluto una excepción) tratan la estimación de costes por métodos y este módulo didáctico.

modelos algorítmicos o con base estadística. En este caso, como veremos en- modelos algorítmicos o con base estadística. En este caso, como veremos en-
seguida, se ofrecen fórmulas que suelen ofrecer como resultado de la estima- seguida, se ofrecen fórmulas que suelen ofrecer como resultado de la estima-
ción una única cifra global para todo el proyecto informático. ción una única cifra global para todo el proyecto informático.

2.3. Modelos de estimación 2.3. Modelos de estimación

La idea de los modelos de estimación es la de proporcionar sistemas y La idea de los modelos de estimación es la de proporcionar sistemas y
métodos generales para proceder a realizar la estimación de costes en la métodos generales para proceder a realizar la estimación de costes en la
construcción de software de aplicación. construcción de software de aplicación.

Antes de disponer de modelos, lo que se hacía era recurrir a la apreciación per- Antes de disponer de modelos, lo que se hacía era recurrir a la apreciación per-
sonal del jefe de proyecto, que a menudo basaba sus estimaciones en una ex- sonal del jefe de proyecto, que a menudo basaba sus estimaciones en una ex-
periencia propia no siempre objetiva o reflejada en datos concretos. periencia propia no siempre objetiva o reflejada en datos concretos.

A medida que se introducen los programas de métricas de software,se empieza a Podéis ver los programas de A medida que se introducen los programas de métricas de software,se empieza a Podéis ver los programas de
métricas de software en el métricas de software en el
disponer de datos reales de proyectos ya elaborados. Ello permite escapar de la subapartado 1.1 de este módulo disponer de datos reales de proyectos ya elaborados. Ello permite escapar de la subapartado 1.1 de este módulo
didáctico. didáctico.
subjetividad personal e intentar expresar en modelos y fórmulas todo aquello subjetividad personal e intentar expresar en modelos y fórmulas todo aquello
que el estudio estadístico o teórico de los datos disponibles nos permite deducir que el estudio estadístico o teórico de los datos disponibles nos permite deducir
con respecto a la productividad en la construcción de software de aplicación. con respecto a la productividad en la construcción de software de aplicación.

Los diferentes modelos de estimación de costes y/o esfuerzos en la cons- Los diferentes modelos de estimación de costes y/o esfuerzos en la cons-
* En la denominación inglesa, * En la denominación inglesa,
trucción de software* se pueden dividir en cinco grandes grupos principales: Cost Estimating Models. trucción de software* se pueden dividir en cinco grandes grupos principales: Cost Estimating Models.

modelos con base histórica, con base estadística, teóricos, compuestos y basa- modelos con base histórica, con base estadística, teóricos, compuestos y basa-
dos en estándares. A continuación los presentamos brevemente: dos en estándares. A continuación los presentamos brevemente:

1) Los modelos de base histórica son los más antiguos y, en cierta manera, 1) Los modelos de base histórica son los más antiguos y, en cierta manera,
primitivos. A menudo se basan en la analogía con otros proyectos parecidos y primitivos. A menudo se basan en la analogía con otros proyectos parecidos y
se fundamentan casi exclusivamente en la experiencia profesional (la “histo- se fundamentan casi exclusivamente en la experiencia profesional (la “histo-
ria”) de los que efectúan la estimación. ria”) de los que efectúan la estimación.
 FUOC • P03/75069/02142 34 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 34 Estimación de costes de un proyecto informático

2) Los modelos de base estadística intentan superar la experiencia histórica 2) Los modelos de base estadística intentan superar la experiencia histórica
concreta de unos cuantos profesionales y, a partir del estudio estadístico de los concreta de unos cuantos profesionales y, a partir del estudio estadístico de los
datos reales disponibles tomados de un conjunto más o menos numeroso de datos reales disponibles tomados de un conjunto más o menos numeroso de
proyectos ya acabados, obtienen fórmulas que relacionan las diferentes unida- proyectos ya acabados, obtienen fórmulas que relacionan las diferentes unida-
des de medida del software, a menudo las líneas de código (LOC) y el esfuerzo des de medida del software, a menudo las líneas de código (LOC) y el esfuerzo
(generalmente medido en hombre-mes). (generalmente medido en hombre-mes).

3) Los modelos de base teórica proporcionan otro enfoque. Estos modelos, 3) Los modelos de base teórica proporcionan otro enfoque. Estos modelos,
más que basarse en datos estadísticos disponibles no siempre suficientemente más que basarse en datos estadísticos disponibles no siempre suficientemente
abundantes y/o generalizables, lo que hacen es partir de una serie de ideas ge- abundantes y/o generalizables, lo que hacen es partir de una serie de ideas ge-
nerales sobre el proceso de construcción de software y, sobre esta teoría, elabo- nerales sobre el proceso de construcción de software y, sobre esta teoría, elabo-
ran fórmulas que relacionan diferentes métricas de software. ran fórmulas que relacionan diferentes métricas de software.

4) Los modelos compuestos han arraigado a partir de los trabajos de Barry 4) Los modelos compuestos han arraigado a partir de los trabajos de Barry
W. Boehm. Estos modelos intentan obtener las ventajas de los dos sistemas W. Boehm. Estos modelos intentan obtener las ventajas de los dos sistemas
anteriores: estadísticos y teóricos. Es decir, se parte de una serie de plantea- anteriores: estadísticos y teóricos. Es decir, se parte de una serie de plantea-
mientos teóricos y se complementan o corrigen con datos estadísticos obteni- mientos teóricos y se complementan o corrigen con datos estadísticos obteni-
dos de proyectos reales ya acabados. dos de proyectos reales ya acabados.

Dado que a menudo los modelos mencionados anteriormente son poco fia- Dado que a menudo los modelos mencionados anteriormente son poco fia-
bles y ofrecen un grado de error nada despreciable, la práctica profesional ha bles y ofrecen un grado de error nada despreciable, la práctica profesional ha
provocado que muchas instalaciones* hayan adoptado un sistema más simple provocado que muchas instalaciones* hayan adoptado un sistema más simple
* Generalmente, las instalaciones * Generalmente, las instalaciones
y menos complicado: la elaboración de estándares de productividad obte- mayores y con más experiencia. y menos complicado: la elaboración de estándares de productividad obte- mayores y con más experiencia.

nidos en proyectos anteriores de la misma instalación. Para llevar a cabo la es- nidos en proyectos anteriores de la misma instalación. Para llevar a cabo la es-
timación de nuevos proyectos se parte de estos estándares. timación de nuevos proyectos se parte de estos estándares.

También al margen de los estándares propios de cada instalación, en la biblio- También al margen de los estándares propios de cada instalación, en la biblio-
grafía técnica se encuentran las que podríamos denominar recomendaciones grafía técnica se encuentran las que podríamos denominar recomendaciones
prácticas a primera vista*, que han sido elaboradas por especialistas prestigiosos prácticas a primera vista*, que han sido elaboradas por especialistas prestigiosos
* Rules of thumb, * Rules of thumb,
y que pueden actuar como referencia general futura para los estándares pro- en la denominación inglesa. y que pueden actuar como referencia general futura para los estándares pro- en la denominación inglesa.

pios de una instalación que empieza a desarrollarse. pios de una instalación que empieza a desarrollarse.

Cabe señalar que la mayoría de los modelos disponibles se han elaborado du- Cabe señalar que la mayoría de los modelos disponibles se han elaborado du-
rante los años setenta y ochenta y, evidentemente, responden a una informática rante los años setenta y ochenta y, evidentemente, responden a una informática
bastante diferente de la que se lleva a cabo en la actualidad, que ha mejorado bastante diferente de la que se lleva a cabo en la actualidad, que ha mejorado
bastante la productividad por medio de nuevos entornos de programación, nue- bastante la productividad por medio de nuevos entornos de programación, nue-
vos lenguajes visuales y orientados a objetos, nuevas herramientas de ayuda, vos lenguajes visuales y orientados a objetos, nuevas herramientas de ayuda,
etc. Pero, en cualquier caso, los resultados que ofrecen los modelos de estima- etc. Pero, en cualquier caso, los resultados que ofrecen los modelos de estima-
ción más algorítmicos pueden actuar siempre como hito superior de la estima- ción más algorítmicos pueden actuar siempre como hito superior de la estima-
ción que se quiere realizar. ción que se quiere realizar.

También cabe mencionar que la mayoría de modelos disponibles suelen También cabe mencionar que la mayoría de modelos disponibles suelen
utilizar las líneas de código (LOC) como base para obtener otras medidas: utilizar las líneas de código (LOC) como base para obtener otras medidas:
el esfuerzo medido en personas-mes, los meses de construcción del proyec- Podéis ver las LOC con relación al el esfuerzo medido en personas-mes, los meses de construcción del proyec- Podéis ver las LOC con relación al
lenguaje de programación utilizado lenguaje de programación utilizado
en el subapartado 1.4.3 de este módulo en el subapartado 1.4.3 de este módulo
to, el número de profesionales que deberían estar involucrados, el número didáctico. Podéis ver también las to, el número de profesionales que deberían estar involucrados, el número didáctico. Podéis ver también las
herramientas RAD en el subapartado herramientas RAD en el subapartado
de errores que se puede esperar tener, el número de páginas de documen- 1.4.1 de este módulo didáctico. de errores que se puede esperar tener, el número de páginas de documen- 1.4.1 de este módulo didáctico.
 FUOC • P03/75069/02142 35 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 35 Estimación de costes de un proyecto informático

tación que es necesario realizar, etc. En la mayoría de modelos todo parte tación que es necesario realizar, etc. En la mayoría de modelos todo parte
de las LOC, que, como ya hemos visto, son una métrica que depende de- de las LOC, que, como ya hemos visto, son una métrica que depende de-
masiado de los lenguajes de programación (y éstos han cambiado mucho masiado de los lenguajes de programación (y éstos han cambiado mucho
en los últimos años) y que hoy en día a menudo son difíciles de medir, so- en los últimos años) y que hoy en día a menudo son difíciles de medir, so-
bre todo con las actuales herramientas RAD, que generan gran parte de lí- bre todo con las actuales herramientas RAD, que generan gran parte de lí-
neas del código final. neas del código final.

2.3.1. Modelos históricos 2.3.1. Modelos históricos

Tal vez el método más utilizado todavía para realizar la estimación de costes Tal vez el método más utilizado todavía para realizar la estimación de costes
es el que se basa en la experiencia personal de quien la lleva a cabo (por ejem- es el que se basa en la experiencia personal de quien la lleva a cabo (por ejem-
plo, el jefe de proyecto). Como podéis suponer, se trata de un método marca- plo, el jefe de proyecto). Como podéis suponer, se trata de un método marca-
damente subjetivo y muy propenso a errores. Puede ocurrir que quien realice damente subjetivo y muy propenso a errores. Puede ocurrir que quien realice
la estimación no tenga en cuenta de manera adecuada todos los aspectos que la estimación no tenga en cuenta de manera adecuada todos los aspectos que
pueden intervenir en el proyecto y también puede suceder que la experiencia pueden intervenir en el proyecto y también puede suceder que la experiencia
disponible no se corresponda en absoluto con el tipo de proyecto o de aplica- disponible no se corresponda en absoluto con el tipo de proyecto o de aplica-
ción que se debe efectuar. ción que se debe efectuar.

Este sistema se puede aplicar tanto a métodos descendentes, como a métodos Este sistema se puede aplicar tanto a métodos descendentes, como a métodos
ascendentes. En el segundo caso, se realizan estimaciones independientes de ascendentes. En el segundo caso, se realizan estimaciones independientes de
cada uno de los subproyectos o de las fases (e incluso de las actividades con- cada uno de los subproyectos o de las fases (e incluso de las actividades con-
cretas, si ya se tiene claro cuáles serán) para obtener la estimación del proyecto cretas, si ya se tiene claro cuáles serán) para obtener la estimación del proyecto
completo sumando las estimaciones de las diferentes partes. completo sumando las estimaciones de las diferentes partes.

Combinación de estimaciones individuales Combinación de estimaciones individuales

Puede ocurrir que, cuando el proyecto tiene una cierta envergadura, se pida la Puede ocurrir que, cuando el proyecto tiene una cierta envergadura, se pida la
opinión de más de un experto y se tenga que combinar dos o tres estimaciones. opinión de más de un experto y se tenga que combinar dos o tres estimaciones.
En este caso, existen diferentes técnicas para intentar encontrar una combina- En este caso, existen diferentes técnicas para intentar encontrar una combina-
ción adecuada, sobre todo para evitar que, en reuniones conjuntas, el estimador ción adecuada, sobre todo para evitar que, en reuniones conjuntas, el estimador
con más personalidad imponga su criterio sobre el resto. A continuación men- con más personalidad imponga su criterio sobre el resto. A continuación men-
cionamos tres de estas técnicas: cionamos tres de estas técnicas:

a) Media. La manera más sencilla de llegar a una combinación adecuada es, a) Media. La manera más sencilla de llegar a una combinación adecuada es,
simplemente, calcular la media entre las diferentes estimaciones obtenidas simplemente, calcular la media entre las diferentes estimaciones obtenidas
por separado. por separado.

b) Media ponderada. Otro procedimiento consiste en tener en cuenta que b) Media ponderada. Otro procedimiento consiste en tener en cuenta que
pueden darse estimaciones pesimistas y optimistas y que se deben tener en pueden darse estimaciones pesimistas y optimistas y que se deben tener en
cuenta de una manera diferente a otras estimaciones intermedias. Lo que cuenta de una manera diferente a otras estimaciones intermedias. Lo que
se hace, pues, en lugar de calcular la media habitual, es establecer una me- se hace, pues, en lugar de calcular la media habitual, es establecer una me-
dia ponderada, que podría ser, por ejemplo, en el caso de tres estimaciones, dia ponderada, que podría ser, por ejemplo, en el caso de tres estimaciones,
 FUOC • P03/75069/02142 36 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 36 Estimación de costes de un proyecto informático

la que recomendaba Pressman en las primeras ediciones de su libro Ingenie- la que recomendaba Pressman en las primeras ediciones de su libro Ingenie-
ría del Software: ría del Software:

e = (o + 4n + p)/6, e = (o + 4n + p)/6,

donde e es la estimación final, o es la estimación más optimista, p la más pesi- donde e es la estimación final, o es la estimación más optimista, p la más pesi-
mista y n la que ha quedado en el medio. mista y n la que ha quedado en el medio.

c) Técnicas de Delphi. Éste es el procedimiento más serio y complejo. Fue c) Técnicas de Delphi. Éste es el procedimiento más serio y complejo. Fue
elaborado por la Rand Corporation en 1948 para evitar las reuniones de grupo elaborado por la Rand Corporation en 1948 para evitar las reuniones de grupo
entre estimadores, debido a la peligrosa dinámica que tenían. La idea es que entre estimadores, debido a la peligrosa dinámica que tenían. La idea es que
diferentes estimadores den por separado su estimación después de haber estu- diferentes estimadores den por separado su estimación después de haber estu-
diado el proyecto. Estos resultados se trasladan anónimamente a los otros es- diado el proyecto. Estos resultados se trasladan anónimamente a los otros es-
timadores, que, de esta manera, pueden matizar y rehacer la propia estimación timadores, que, de esta manera, pueden matizar y rehacer la propia estimación
considerando lo que han propuesto los demás. El proceso se repite tantas veces considerando lo que han propuesto los demás. El proceso se repite tantas veces
como sea necesario hasta conseguir una cierta convergencia que sea al menos como sea necesario hasta conseguir una cierta convergencia que sea al menos
satisfactoria a los ojos del coordinador del proceso. Si así no se llega a la con- satisfactoria a los ojos del coordinador del proceso. Si así no se llega a la con-
vergencia deseada, el coordinador discute personalmente con cada estimador vergencia deseada, el coordinador discute personalmente con cada estimador
las diferencias encontradas con el fin tratar de forzar una solución aceptable las diferencias encontradas con el fin tratar de forzar una solución aceptable
para todo el mundo. para todo el mundo.

2.3.2. Modelos empíricos o estadísticos 2.3.2. Modelos empíricos o estadísticos

La idea de los modelos empíricos es aprovechar el estudio estadístico de los da- La idea de los modelos empíricos es aprovechar el estudio estadístico de los da-
tos reales disponibles medidos en un conjunto más o menos numeroso de pro- tos reales disponibles medidos en un conjunto más o menos numeroso de pro-
yectos ya acabados. Se intenta buscar fórmulas que relacionen el esfuerzo con yectos ya acabados. Se intenta buscar fórmulas que relacionen el esfuerzo con
las diferentes variables que puedan incidir en éste. las diferentes variables que puedan incidir en éste.

En primer lugar, en los años sesenta, se intentó aproximar los datos estadísti- En primer lugar, en los años sesenta, se intentó aproximar los datos estadísti-
cos disponibles con expresiones lineales del tipo siguiente: cos disponibles con expresiones lineales del tipo siguiente:

E = Co + ∑ ci ⋅ xi E = Co + ∑ ci ⋅ xi
i i

En esta expresión, E es el esfuerzo, a menudo medido en personas-mes, xi son En esta expresión, E es el esfuerzo, a menudo medido en personas-mes, xi son
las diferentes variables o los atributos que se cree que inciden en el coste, a me- las diferentes variables o los atributos que se cree que inciden en el coste, a me-
nudo denominadas CDA, mientras que ci son los coeficientes que resultan de nudo denominadas CDA, mientras que ci son los coeficientes que resultan de
CDA es la sigla de la expresión CDA es la sigla de la expresión
la aproximación estadística a partir de los datos disponibles procedentes de inglesa Cost Driver Attributs. la aproximación estadística a partir de los datos disponibles procedentes de inglesa Cost Driver Attributs.

proyectos anteriores ya acabados y bien medidos. proyectos anteriores ya acabados y bien medidos.

De hecho, bien pronto se observó que los modelos lineales no eran correctos De hecho, bien pronto se observó que los modelos lineales no eran correctos
y rápidamente se abandonó este planteamiento para intentar encontrar fór- y rápidamente se abandonó este planteamiento para intentar encontrar fór-
mulas de tipo exponencial de la manera siguiente: mulas de tipo exponencial de la manera siguiente:

E = (a + b ··Lc) · m(x), E = (a + b ··Lc) · m(x),


 FUOC • P03/75069/02142 37 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 37 Estimación de costes de un proyecto informático

donde E es el esfuerzo medido en personas-mes, L es el tamaño estimado del pro- donde E es el esfuerzo medido en personas-mes, L es el tamaño estimado del pro-
yecto en KLOC, mientras que a, b y c son los coeficientes que resultan de la aproxi- yecto en KLOC, mientras que a, b y c son los coeficientes que resultan de la aproxi-
mación estadística de los datos disponibles. mación estadística de los datos disponibles.

El término adicional m(x), que no todos los modelos utilizan, es un elemento de Podéis ver las características El término adicional m(x), que no todos los modelos utilizan, es un elemento de Podéis ver las características
funcionales y las generales de los funcionales y las generales de los
ajuste para tener en cuenta más datos que simplemente el tamaño del proyecto puntos de función de Albrecht en el ajuste para tener en cuenta más datos que simplemente el tamaño del proyecto puntos de función de Albrecht en el
subapartado 1.4.2 de este subapartado 1.4.2 de este
módulo didáctico. módulo didáctico.
expresado en KLOC. De hecho, el término m(x) es aquí el equivalente a las carac- expresado en KLOC. De hecho, el término m(x) es aquí el equivalente a las carac-
terísticas generales que completaban y permitían ajustar los puntos de función de terísticas generales que completaban y permitían ajustar los puntos de función de
Albrecht deducidos de las características funcionales. La idea básica es que el es- Albrecht deducidos de las características funcionales. La idea básica es que el es-
fuerzo tal vez no depende sólo del tamaño (las líneas de código) y que se dan otros fuerzo tal vez no depende sólo del tamaño (las líneas de código) y que se dan otros
factores que influyen en este proceso. factores que influyen en este proceso.

La mayoría de modelos empíricos se obtuvieron durante los años setenta, dato La mayoría de modelos empíricos se obtuvieron durante los años setenta, dato
que se debe tener en cuenta, ya que se utilizaban datos de proyectos que no se que se debe tener en cuenta, ya que se utilizaban datos de proyectos que no se
parecen a los proyectos de ahora. Muy a menudo los datos de esfuerzo que parecen a los proyectos de ahora. Muy a menudo los datos de esfuerzo que
ofrecen los modelos empíricos son exagerados, ya que hoy la productividad en ofrecen los modelos empíricos son exagerados, ya que hoy la productividad en
la construcción de software es bastante más alta*. Siempre se debe tener en la construcción de software es bastante más alta*. Siempre se debe tener en
* Recordemos, sin embargo, que no * Recordemos, sin embargo, que no
cuenta recordar la base de datos de gestión de los proyectos que se utilizaron llega al nivel que se ha alcanzado cuenta recordar la base de datos de gestión de los proyectos que se utilizaron llega al nivel que se ha alcanzado
en el caso del hardware. en el caso del hardware.
para establecer los coeficientes del modelo. para establecer los coeficientes del modelo.

Presentamos, a continuación, un par de ejemplos de modelos estadísticos que Presentamos, a continuación, un par de ejemplos de modelos estadísticos que
ya se han convertido en clásicos. ya se han convertido en clásicos.

1) El modelo de Walston y Felix 1) El modelo de Walston y Felix

El primer ejemplo de modelo estadístico es el estudio, publicado en el año 1977, El primer ejemplo de modelo estadístico es el estudio, publicado en el año 1977,
que Walston y Felix realizaron tomando como base sesenta proyectos acabados que Walston y Felix realizaron tomando como base sesenta proyectos acabados
entre 1973 y 1977. Se trataba, posiblemente, de los primeros proyectos disponi- entre 1973 y 1977. Se trataba, posiblemente, de los primeros proyectos disponi-
bles, no eran homogéneos (aparecían diferentes lenguajes de programación, dife- bles, no eran homogéneos (aparecían diferentes lenguajes de programación, dife-
rentes ordenadores y aplicaciones diversas) y, además, eran de varios tamaños (de rentes ordenadores y aplicaciones diversas) y, además, eran de varios tamaños (de
12 a 11.758 meses-hombre y de 460 a 467.000 LOC). Los coeficientes eran a = 0, 12 a 11.758 meses-hombre y de 460 a 467.000 LOC). Los coeficientes eran a = 0,
b = 5,2 y c = 0,91 y la fórmula en este caso es la siguiente: b = 5,2 y c = 0,91 y la fórmula en este caso es la siguiente:

E = 5,2 · L0,91. E = 5,2 · L0,91.

También se obtenían otras informaciones, como la duración en meses del También se obtenían otras informaciones, como la duración en meses del
proyecto (D), el número de personas implicadas (P) y el número de páginas proyecto (D), el número de personas implicadas (P) y el número de páginas
de documentación (DOCK), gracias a las fórmulas siguientes: de documentación (DOCK), gracias a las fórmulas siguientes:

• D = 4,1 · L0,36. • D = 4,1 · L0,36.


• P = 0,54 · E0,6. • P = 0,54 · E0,6.
• DOCK = 40 · L1,01. • DOCK = 40 · L1,01.

2) El modelo de Bailey y Basili 2) El modelo de Bailey y Basili

Otro ejemplo clásico es el de Bailey y Basili, publicado en el año 1981, reco- Otro ejemplo clásico es el de Bailey y Basili, publicado en el año 1981, reco-
giendo datos de dieciocho proyectos más homogéneos, todos del Goddard giendo datos de dieciocho proyectos más homogéneos, todos del Goddard
 FUOC • P03/75069/02142 38 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 38 Estimación de costes de un proyecto informático

Space Center de la NASA y programados en Fortran. En este caso, los coeficien- Space Center de la NASA y programados en Fortran. En este caso, los coeficien-
tes son a = 5,5, b = 0,73 y c = 1,16; es decir, se obtiene la expresión siguiente: tes son a = 5,5, b = 0,73 y c = 1,16; es decir, se obtiene la expresión siguiente:

E = 5,5 + 0,73 · L1,16. E = 5,5 + 0,73 · L1,16.

Debería sorprender el hecho de que el exponente de las KLOC sea inferior a la uni- Debería sorprender el hecho de que el exponente de las KLOC sea inferior a la uni-
dad en el caso de Walston y Felix, mientras que es claramente superior a la unidad dad en el caso de Walston y Felix, mientras que es claramente superior a la unidad
en el caso de Bailey y Basili. La razón es que, en el estudio de Walston y Felix, entre en el caso de Bailey y Basili. La razón es que, en el estudio de Walston y Felix, entre
las LOC se contaba hasta un máximo del 50% de comentarios, mientras que en las LOC se contaba hasta un máximo del 50% de comentarios, mientras que en
el estudio de Bailey y Basili, como en la gran mayoría de los modelos estadísticos, el estudio de Bailey y Basili, como en la gran mayoría de los modelos estadísticos,
no se incluyen los comentarios en el recuento de las LOC. no se incluyen los comentarios en el recuento de las LOC.

También se da una gran variedad de fórmulas obtenidas a partir de datos pro- También se da una gran variedad de fórmulas obtenidas a partir de datos pro-
El modelo de Albrecht El modelo de Albrecht
cedentes de diferentes proyectos, entre ellas algunas que relacionan el esfuerzo y Gaffney... cedentes de diferentes proyectos, entre ellas algunas que relacionan el esfuerzo y Gaffney...
con los puntos de función de Albrecht. ... es un ejemplo de modelo con los puntos de función de Albrecht. ... es un ejemplo de modelo
que relaciona el esfuerzo con que relaciona el esfuerzo con
los puntos de función de Albre- los puntos de función de Albre-
Cabe tener en cuenta que los resultados de esfuerzo que se obtienen en los dife- cht. Este modelo propone la
Cabe tener en cuenta que los resultados de esfuerzo que se obtienen en los dife- cht. Este modelo propone la
rentes modelos no tienen en absoluto por qué coincidir, ya que reflejan datos ex- fórmula siguiente: rentes modelos no tienen en absoluto por qué coincidir, ya que reflejan datos ex- fórmula siguiente:
E = −13,39 + 0,054FP. E = −13,39 + 0,054FP.
traídos de proyectos diferentes y no siempre comparables ni homogéneos. De traídos de proyectos diferentes y no siempre comparables ni homogéneos. De
hecho, los modelos estadísticos mencionados se consideran ahora obsoletos del hecho, los modelos estadísticos mencionados se consideran ahora obsoletos del
todo y proporcionan sólo un margen altísimo para una estimación razonable. Podéis ver los modelos COCOMO
de Barry W. Boehm en el
todo y proporcionan sólo un margen altísimo para una estimación razonable. Podéis ver los modelos COCOMO
de Barry W. Boehm en el
subapartado 2.3.4 de este subapartado 2.3.4 de este
Modelos posteriores, como el COCOMO de Boehm, han mejorado y han actuali- módulo didáctico. Modelos posteriores, como el COCOMO de Boehm, han mejorado y han actuali- módulo didáctico.

zado los datos y las fórmulas. zado los datos y las fórmulas.

2.3.3. Modelos teóricos: el modelo de Putman 2.3.3. Modelos teóricos: el modelo de Putman

Lectura recomendada Lectura recomendada


En un artículo de 1978, Lawrence H. Putman comenzó a plantear la necesidad En un artículo de 1978, Lawrence H. Putman comenzó a plantear la necesidad
Podéis consultar la obra Podéis consultar la obra
de modelos teóricos que, prescindiendo de la posibilidad de disponer o no de siguiente: de modelos teóricos que, prescindiendo de la posibilidad de disponer o no de siguiente:
datos de proyectos ya acabados, tuvieran en cuenta la manera de distribuir el L.H. Putman (1978). “A datos de proyectos ya acabados, tuvieran en cuenta la manera de distribuir el L.H. Putman (1978). “A
General Empirical Solution General Empirical Solution
esfuerzo en el desarrollo de un proyecto de construcción de software. to the Macro Software Sizing esfuerzo en el desarrollo de un proyecto de construcción de software. to the Macro Software Sizing
and Estimation Problem”. and Estimation Problem”.
IEEE Transactions on software IEEE Transactions on software
Putman adoptó la distribución de esfuerzos en el tiempo que marca la forma engineering (vol. SE-4, núm. 4, Putman adoptó la distribución de esfuerzos en el tiempo que marca la forma engineering (vol. SE-4, núm. 4,
julio, pág. 345-361). julio, pág. 345-361).
de la curva de Rayleigh/Norden que se muestra en la figura siguiente: de la curva de Rayleigh/Norden que se muestra en la figura siguiente:
 FUOC • P03/75069/02142 39 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 39 Estimación de costes de un proyecto informático

El estudio de la curva permite, entre otras cosas, relacionar el esfuerzo (K, en El estudio de la curva permite, entre otras cosas, relacionar el esfuerzo (K, en
personas-año), las líneas de código (L, en KLOC) y el tiempo total de desarrollo personas-año), las líneas de código (L, en KLOC) y el tiempo total de desarrollo
del proyecto (tD, en meses) según la fórmula: del proyecto (tD, en meses) según la fórmula:

L = Ck · K(1/3) · tD(4/3) L = Ck · K(1/3) · tD(4/3)

La idea es que, a partir de un esfuerzo (K) y un tiempo de desarrollo (tD), la La idea es que, a partir de un esfuerzo (K) y un tiempo de desarrollo (tD), la
fórmula indica la productividad en la construcción de software y nos da el nú- fórmula indica la productividad en la construcción de software y nos da el nú-
mero de KLOC que se obtienen. mero de KLOC que se obtienen.

La fórmula incluye una constante denominada constante tecnológica (Ck), que, La fórmula incluye una constante denominada constante tecnológica (Ck), que,
en palabras de Putman, es en cierta manera una medida del estado de la tecnolo- en palabras de Putman, es en cierta manera una medida del estado de la tecnolo-
gía que se aplica al proyecto. La constante Ck refleja el efecto en la productividad gía que se aplica al proyecto. La constante Ck refleja el efecto en la productividad
de una multitud de factores como el hardware y sus limitaciones, la complejidad de una multitud de factores como el hardware y sus limitaciones, la complejidad
de los programas, la experiencia del personal (tanto técnicos como usuarios), el de los programas, la experiencia del personal (tanto técnicos como usuarios), el
entorno de desarrollo y programación, etc. Esto es lo que provoca que el método entorno de desarrollo y programación, etc. Esto es lo que provoca que el método
teórico de Putman no se convierta nunca en obsoleto. Se trata de ir cambiando teórico de Putman no se convierta nunca en obsoleto. Se trata de ir cambiando
los valores de la constante tecnológica a medida que cambian los entornos de de- los valores de la constante tecnológica a medida que cambian los entornos de de-
sarrollo y programación. El problema es que conocer el valor correcto de Ck no es sarrollo y programación. El problema es que conocer el valor correcto de Ck no es
en absoluto sencillo. en absoluto sencillo.

Al principio, Putman indicaba una serie discreta de veinte valores de Ck que Al principio, Putman indicaba una serie discreta de veinte valores de Ck que
podían situarse entre 610 y 57.314. La Ck, pues, podía moverse desde un valor podían situarse entre 610 y 57.314. La Ck, pues, podía moverse desde un valor
bastante bajo, 610, hasta otro que es casi cien veces más alto. Es decir, el papel bastante bajo, 610, hasta otro que es casi cien veces más alto. Es decir, el papel
de esta constante es totalmente fundamental en el modelo. de esta constante es totalmente fundamental en el modelo.

En el año 1981, Putman presentaba por primera vez su modelo insertado en En el año 1981, Putman presentaba por primera vez su modelo insertado en
una herramienta automatizada denominada SLIM, que, a partir de diferentes una herramienta automatizada denominada SLIM, que, a partir de diferentes
preguntas, determina la constante tecnológica correspondiente. preguntas, determina la constante tecnológica correspondiente.

El modelo de Putman, en su última versión, identifica la fórmula anterior El modelo de Putman, en su última versión, identifica la fórmula anterior
Lectura recomendada Lectura recomendada
como la denominada ecuación del software y, además, descompone la cons- como la denominada ecuación del software y, además, descompone la cons-
Podéis consultar la obra Podéis consultar la obra
tante tecnológica Ck en dos nuevas constantes: siguiente: tante tecnológica Ck en dos nuevas constantes: siguiente:
L. Putman; W. Myers L. Putman; W. Myers
0,333 (1992). Measures for 0,333 (1992). Measures for
Ck = P/B , excellence. Englewood Cliffs: Ck = P/B , excellence. Englewood Cliffs:
Yourdon Press. Yourdon Press.

donde P es el parámetro de productividad (que sería de 28.000 en el caso de donde P es el parámetro de productividad (que sería de 28.000 en el caso de
Valores de B habituales Valores de B habituales
aplicaciones de la informática de gestión) y B es un factor especial de habili- aplicaciones de la informática de gestión) y B es un factor especial de habili-
dad que se incrementa lentamente a medida que crecen la necesidad de inte- En aplicaciones pequeñas de 5 dad que se incrementa lentamente a medida que crecen la necesidad de inte- En aplicaciones pequeñas de 5
a 15 KLOC, B = 0,16 y en apli- a 15 KLOC, B = 0,16 y en apli-
gración, las pruebas, la garantía de calidad, la documentación y otras caciones mayores, de más de gración, las pruebas, la garantía de calidad, la documentación y otras caciones mayores, de más de
70 KLOC, B = 0,39. 70 KLOC, B = 0,39.
exigencias que disminuyen la productividad. exigencias que disminuyen la productividad.

En la práctica, hoy el modelo de Putman sólo puede ser bien utilizado por aque- En la práctica, hoy el modelo de Putman sólo puede ser bien utilizado por aque-
llos que adquieren el SLIM, la herramienta informática que implementa el mode- llos que adquieren el SLIM, la herramienta informática que implementa el mode-
lo completo. Esta herramienta se actualiza constantemente con las sucesivas lo completo. Esta herramienta se actualiza constantemente con las sucesivas
adaptaciones de las nuevas tecnologías de desarrollo de software. El SLIM es capaz, adaptaciones de las nuevas tecnologías de desarrollo de software. El SLIM es capaz,
después de una larga batería de preguntas, de determinar Ck y el resto de datos que después de una larga batería de preguntas, de determinar Ck y el resto de datos que
 FUOC • P03/75069/02142 40 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 40 Estimación de costes de un proyecto informático

interesan para la estimación de un proyecto. Pero la manera de llevarlo a cabo se interesan para la estimación de un proyecto. Pero la manera de llevarlo a cabo se
encuentra en el interior de la herramienta informatizada. encuentra en el interior de la herramienta informatizada.

En cualquier caso, es bueno saber que el modelo de Putman se probó y validó con En cualquier caso, es bueno saber que el modelo de Putman se probó y validó con
una serie homogénea de proyectos del Departamento de Defensa de EE.UU. Las una serie homogénea de proyectos del Departamento de Defensa de EE.UU. Las
conclusiones a las que se llegó mostraban que el modelo es bastante correcto para conclusiones a las que se llegó mostraban que el modelo es bastante correcto para
proyectos muy grandes y que el resultado es mucho más impreciso y dudoso en proyectos muy grandes y que el resultado es mucho más impreciso y dudoso en
el caso de proyectos pequeños y medios. el caso de proyectos pequeños y medios.

Por otra parte, sin disponer de la herramienta informática SLIM, el estimador que Por otra parte, sin disponer de la herramienta informática SLIM, el estimador que
quiera utilizar el modelo de Putman ha de intentar determinar por su cuenta una quiera utilizar el modelo de Putman ha de intentar determinar por su cuenta una
constante tecnológica (Ck) de gran efecto en el resultado final: un trabajo que es constante tecnológica (Ck) de gran efecto en el resultado final: un trabajo que es
prácticamente imposible sin el SLIM. prácticamente imposible sin el SLIM.

2.3.4. Modelos compuestos: los modelos COCOMO de Barry W. 2.3.4. Modelos compuestos: los modelos COCOMO de Barry W.
Boehm Boehm

COCOMO es el modelo de construcción de costes más conocido y utilizado COCOMO es el modelo de construcción de costes más conocido y utilizado
COCOMO es un acrónimo COCOMO es un acrónimo
de los modelos algorítmicos compuestos que se basan sobre todo en datos de la expresión inglesa de los modelos algorítmicos compuestos que se basan sobre todo en datos de la expresión inglesa
Cost Constructive Model. Cost Constructive Model.
estadísticos, pero también en ecuaciones analíticas y en un ajuste fruto de estadísticos, pero también en ecuaciones analíticas y en un ajuste fruto de
la opinión de expertos. la opinión de expertos.

El modelo es obra de Barry W. Boehm y se publicó por primera vez en el libro de En las páginas web del Center El modelo es obra de Barry W. Boehm y se publicó por primera vez en el libro de En las páginas web del Center
for Software Engineering for Software Engineering
(http://sunset.usc.edu/cse/ (http://sunset.usc.edu/cse/
1981 Software Engineering Economics. Después ha tenido varias versiones, como pub/tools/) de la Universidad del Sur 1981 Software Engineering Economics. Después ha tenido varias versiones, como pub/tools/) de la Universidad del Sur
de California (USC) se pueden encontrar de California (USC) se pueden encontrar
Ada COCOMO, desarrollado a mitad de los años ochenta para proyectos progra- herramientas informatizadas que
implementan los diferentes modelos
Ada COCOMO, desarrollado a mitad de los años ochenta para proyectos progra- herramientas informatizadas que
implementan los diferentes modelos
COCOMO, tanto el de 1981 COCOMO, tanto el de 1981
mados con Ada, y, sobre todo, el actual proyecto COCOMO II, en el que Boehm como el COCOMO II. mados con Ada, y, sobre todo, el actual proyecto COCOMO II, en el que Boehm como el COCOMO II.

colabora en su desarrollo, en el Center for Software Engineering (CSE) de la Uni- colabora en su desarrollo, en el Center for Software Engineering (CSE) de la Uni-
versidad del Sur de California (University of Southern California, USC). versidad del Sur de California (University of Southern California, USC).

Cabe mencionar que las diversas versiones del software tienen objetivos diferentes Cabe mencionar que las diversas versiones del software tienen objetivos diferentes
y que la última versión (COCOMO II) no sustituye en absoluto a las anteriores y que la última versión (COCOMO II) no sustituye en absoluto a las anteriores
(COCOMO 81 y Ada COCOMO), que son válidas siempre que se utilicen los pa- (COCOMO 81 y Ada COCOMO), que son válidas siempre que se utilicen los pa-
radigmas de construcción de software y el ciclo de vida y las herramientas para los radigmas de construcción de software y el ciclo de vida y las herramientas para los
cuales se definieron. cuales se definieron.

Al ser el modelo más aceptado, famoso y utilizado, es fácil encontrar muchas im- En la página web de la empresa Al ser el modelo más aceptado, famoso y utilizado, es fácil encontrar muchas im- En la página web de la empresa
Softstar Systems (http:// Softstar Systems (http://
www.softstarsystems.com), www.softstarsystems.com),
plementaciones informatizadas como, por ejemplo, el COSTAR (Software Cost Es- además de muchos enlaces interesantes, plementaciones informatizadas como, por ejemplo, el COSTAR (Software Cost Es- además de muchos enlaces interesantes,
podéis obtener libremente versiones de podéis obtener libremente versiones de
timation Tool), una herramienta ya clásica de la empresa Softstar Systems, que, a demostración del modelo COSTAR. timation Tool), una herramienta ya clásica de la empresa Softstar Systems, que, a demostración del modelo COSTAR.

partir del COSTAR 5.0, implementa ya el COCOMO II. partir del COSTAR 5.0, implementa ya el COCOMO II.

El COCOMO clásico de 1981 El COCOMO clásico de 1981

El COCOMO clásico lo forman, en realidad, tres modelos diferentes, que tie- El COCOMO clásico lo forman, en realidad, tres modelos diferentes, que tie-
nen en cuenta diferentes grados de complejidad: nen en cuenta diferentes grados de complejidad:

1) El COCOMO básico es un modelo estático válido para obtener una estima- 1) El COCOMO básico es un modelo estático válido para obtener una estima-
ción rápida del esfuerzo (meses-hombre) en función del tamaño (KLOC) al ini- ción rápida del esfuerzo (meses-hombre) en función del tamaño (KLOC) al ini-
cio del ciclo de vida. cio del ciclo de vida.
 FUOC • P03/75069/02142 41 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 41 Estimación de costes de un proyecto informático

2) El COCOMO intermedio añade al cálculo del esfuerzo en función del tama- 2) El COCOMO intermedio añade al cálculo del esfuerzo en función del tama-
ño, el efecto de unos atributos que influyen en el coste (CDA), con los cuales se ño, el efecto de unos atributos que influyen en el coste (CDA), con los cuales se
quiere tener en cuenta el tipo de aplicación y tecnología, las calificaciones y la ex- quiere tener en cuenta el tipo de aplicación y tecnología, las calificaciones y la ex-
periencia del personal, el entorno de diseño y programación y las herramientas periencia del personal, el entorno de diseño y programación y las herramientas
de las que dispone, etc. de las que dispone, etc.

3) El COCOMO adelantado incorpora todas las características de la versión 3) El COCOMO adelantado incorpora todas las características de la versión
intermedia, pero en lugar de evaluar los CDA con un único valor para todo el intermedia, pero en lugar de evaluar los CDA con un único valor para todo el
ciclo de vida, tiene en cuenta diferentes CDA para cada fase* de la construc- ciclo de vida, tiene en cuenta diferentes CDA para cada fase* de la construc-
* El análisis, el diseño, * El análisis, el diseño,
ción del software. la programación, las pruebas, etc. ción del software. la programación, las pruebas, etc.

Las ecuaciones del modelo COCOMO tienen siempre la forma general que Las ecuaciones del modelo COCOMO tienen siempre la forma general que
mostramos a continuación: mostramos a continuación:

• E = a · Lb · CDA, • E = a · Lb · CDA,
• T=c· Ed, • T = c · Ed,

donde E es el esfuerzo (en personas-mes), L son las líneas de código (en KLOC), T donde E es el esfuerzo (en personas-mes), L son las líneas de código (en KLOC), T
es el tiempo de desarrollo del proyecto (en meses) y CDA los cost driven attributes es el tiempo de desarrollo del proyecto (en meses) y CDA los cost driven attributes
que, recordémoslo, no se utilizan en el modelo básico. Finalmente, a, b, c y d son que, recordémoslo, no se utilizan en el modelo básico. Finalmente, a, b, c y d son
coeficientes que el modelo proporciona como resultado del análisis de los datos coeficientes que el modelo proporciona como resultado del análisis de los datos
de sesenta y tres proyectos realizados entre 1965 y 1980, escritos en cinco lengua- de sesenta y tres proyectos realizados entre 1965 y 1980, escritos en cinco lengua-
jes diferentes, de tamaños que varían de 2 a 1.000 KLOC y con una productividad jes diferentes, de tamaños que varían de 2 a 1.000 KLOC y con una productividad
que se sitúa entre 28 y 250 LOC por persona-mes. que se sitúa entre 28 y 250 LOC por persona-mes.

Además de los tres modelos, COCOMO tiene en cuenta varios tipos de proyec- Además de los tres modelos, COCOMO tiene en cuenta varios tipos de proyec-
to, ya que no se obtienen los mismos datos de productividad en todos los ca- to, ya que no se obtienen los mismos datos de productividad en todos los ca-
sos. En la nomenclatura que utiliza Boehm, los tres tipos de proyecto son los sos. En la nomenclatura que utiliza Boehm, los tres tipos de proyecto son los
que presentamos a continuación: que presentamos a continuación:

a) Orgánico*. Proyectos relativamente pequeños y sencillos, con poca inno- a) Orgánico*. Proyectos relativamente pequeños y sencillos, con poca inno-
* En inglés, organic mode. * En inglés, organic mode.
vación tecnológica, donde trabaja un pequeño equipo formado por gente que vación tecnológica, donde trabaja un pequeño equipo formado por gente que
tiene suficiente experiencia en el tipo de aplicación concreto y que, además, tiene suficiente experiencia en el tipo de aplicación concreto y que, además,
debe tener requerimientos poco rígidos. debe tener requerimientos poco rígidos.

b) Semiacoplado*. Proyectos de nivel intermedio en tamaño, complejidad y b) Semiacoplado*. Proyectos de nivel intermedio en tamaño, complejidad y
* En inglés, semidetached. * En inglés, semidetached.
sofisticación técnica, donde varios equipos diferentes colaboran para cons- sofisticación técnica, donde varios equipos diferentes colaboran para cons-
truir una aplicación con requerimientos medianamente rígidos. truir una aplicación con requerimientos medianamente rígidos.

c) Encajado*. Proyectos de un tamaño y complejidad francamente elevados, c) Encajado*. Proyectos de un tamaño y complejidad francamente elevados,
* En inglés, embedded mode. * En inglés, embedded mode.
donde intervienen varios equipos diferentes y los requerimientos, tanto de donde intervienen varios equipos diferentes y los requerimientos, tanto de
hardware como de software, son muy rígidos. hardware como de software, son muy rígidos.

Se debe tener en cuenta que, en la informática de gestión, posiblemente sólo Se debe tener en cuenta que, en la informática de gestión, posiblemente sólo
tengan sentido los proyectos orgánicos o semiacoplados y que, tal como dice tengan sentido los proyectos orgánicos o semiacoplados y que, tal como dice
* Como, por ejemplo, el sistema * Como, por ejemplo, el sistema
Pressman, los proyectos encajados sugieren otro tipo de sistemas informáticos de control de navegación Pressman, los proyectos encajados sugieren otro tipo de sistemas informáticos de control de navegación
de un avión. de un avión.
con requerimientos muy rígidos*. con requerimientos muy rígidos*.
 FUOC • P03/75069/02142 42 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 42 Estimación de costes de un proyecto informático

Los coeficientes que corresponden al modelo básico, a menudo más que sufi- Los coeficientes que corresponden al modelo básico, a menudo más que sufi-
ciente para una primera estimación de pequeñas aplicaciones en la informáti- ciente para una primera estimación de pequeñas aplicaciones en la informáti-
ca de gestión, se recogen en la tabla siguiente: ca de gestión, se recogen en la tabla siguiente:

Coeficientes del modelo COCOMO básico Coeficientes del modelo COCOMO básico

Proyecto Coeficientes Proyecto Coeficientes

a b c d a b c d

Orgánico 2,4 1,05 2,5 0,38 Orgánico 2,4 1,05 2,5 0,38

Semiacoplado 3,0 1,12 2,5 0,35 Semiacoplado 3,0 1,12 2,5 0,35

Encajado 3,6 1,20 2,5 0,32 Encajado 3,6 1,20 2,5 0,32

En el modelo intermedio los coeficientes son los de esta otra tabla: En el modelo intermedio los coeficientes son los de esta otra tabla:

Coeficientes del modelo COCOMO intermedio Coeficientes del modelo COCOMO intermedio

Proyecto Coeficientes Proyecto Coeficientes

a b c d a b c d

Orgánico 3,2 1,05 2,5 0,38 Orgánico 3,2 1,05 2,5 0,38

Semiacoplado 3,0 1,12 2,5 0,35 Semiacoplado 3,0 1,12 2,5 0,35

Encajado 2,8 1,20 2,5 0,32 Encajado 2,8 1,20 2,5 0,32

En este modelo, además de no cambiar la relación entre esfuerzo y tiempo (co- En este modelo, además de no cambiar la relación entre esfuerzo y tiempo (co-
eficientes c y d, respectivamente), puede ser sorprendente la tendencia descen- eficientes c y d, respectivamente), puede ser sorprendente la tendencia descen-
dente del coeficiente a. Sería como si el esfuerzo disminuyera al ser más dente del coeficiente a. Sería como si el esfuerzo disminuyera al ser más
complejo el proyecto. Realmente no es así, ya que el modelo intermedio utili- complejo el proyecto. Realmente no es así, ya que el modelo intermedio utili-
za, además, los atributos que influyen en el coste (CDA). za, además, los atributos que influyen en el coste (CDA).

En el modelo intermedio, los atributos que influyen en el coste (CDA) son En el modelo intermedio, los atributos que influyen en el coste (CDA) son
quince parámetros que recogen características del producto que se va a reali- quince parámetros que recogen características del producto que se va a reali-
zar, del ordenador en el que se trabaja y que ejecutará la aplicación, del perso- zar, del ordenador en el que se trabaja y que ejecutará la aplicación, del perso-
nal que forma el equipo del proyecto y del proyecto mismo. Cada uno de estos nal que forma el equipo del proyecto y del proyecto mismo. Cada uno de estos
quince parámetros puede tomar diferentes valores: muy bajo, bajo, nominal, quince parámetros puede tomar diferentes valores: muy bajo, bajo, nominal,
alto, muy alto y extraalto* que varían en torno a la unidad. La tabla siguiente alto, muy alto y extraalto* que varían en torno a la unidad. La tabla siguiente
* En inglés, very low, low, nominal, * En inglés, very low, low, nominal,
muestra los valores de los CDA. high, very high, y extra high. muestra los valores de los CDA. high, very high, y extra high.

COCOMO intermedio: atributos que influyen en el coste (CDA) COCOMO intermedio: atributos que influyen en el coste (CDA)

Valores Valores

Muy bajo Bajo Nominal Alto Muy alto Extraalto Muy bajo Bajo Nominal Alto Muy alto Extraalto

Atributos del producto Atributos del producto

RELY Fiabilidad requerida 0,75 0,88 1,00 1,15 1,40 - RELY Fiabilidad requerida 0,75 0,88 1,00 1,15 1,40 -

DATA Volumen de la base de datos - 0,94 1,00 1,08 1,16 - DATA Volumen de la base de datos - 0,94 1,00 1,08 1,16 -

CPLX Complejidad 0,70 0,85 1,00 1,15 1,30 1,65 CPLX Complejidad 0,70 0,85 1,00 1,15 1,30 1,65

Atributos del ordenador Atributos del ordenador

Limitaciones de tiempo de Limitaciones de tiempo de


TIME - - 1,00 1,11 1,30 1,65 TIME - - 1,00 1,11 1,30 1,65
ejecución ejecución
 FUOC • P03/75069/02142 43 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 43 Estimación de costes de un proyecto informático

COCOMO intermedio: atributos que influyen en el coste (CDA) COCOMO intermedio: atributos que influyen en el coste (CDA)

Valores Valores

Muy bajo Bajo Nominal Alto Muy alto Extraalto Muy bajo Bajo Nominal Alto Muy alto Extraalto

Atributos del ordenador Atributos del ordenador

Limitaciones de volumen de Limitaciones de volumen de


STOR - - 1,00 1,06 1,21 - STOR - - 1,00 1,06 1,21 -
memoria memoria

Volatilidad de la máquina Volatilidad de la máquina


VIRT - 0,87 1,00 1,15 1,30 - VIRT - 0,87 1,00 1,15 1,30 -
virtual virtual

TURN Tiempo de respuesta - 0,87 1,00 1,07 1,15 1,65 TURN Tiempo de respuesta - 0,87 1,00 1,07 1,15 1,65

Atributos del personal Atributos del personal

ACAP Capacidad de análisis 1,46 1,19 1,00 0,86 0,71 1,65 ACAP Capacidad de análisis 1,46 1,19 1,00 0,86 0,71 1,65

AEXP Experiencia en la aplicación 1,29 1,13 1,00 0,91 0,82 1,56 AEXP Experiencia en la aplicación 1,29 1,13 1,00 0,91 0,82 1,56

PCAP Capacidad de programación 1,42 1,17 1,00 0,86 0,70 - PCAP Capacidad de programación 1,42 1,17 1,00 0,86 0,70 -

Experiencia en la máquina Experiencia en la máquina


VEXP 1,21 1,10 1,00 0,90 - - VEXP 1,21 1,10 1,00 0,90 - -
virtual virtual

Experiencia en los lenguajes Experiencia en los lenguajes


LEXP 1,14 1,07 1,00 0,95 - - LEXP 1,14 1,07 1,00 0,95 - -
de programación de programación

Atributos del proyecto Atributos del proyecto

MODP Uso de prácticas modernas 1,24 1,10 1,00 0,91 0,82 - MODP Uso de prácticas modernas 1,24 1,10 1,00 0,91 0,82 -

Uso de herramientas Uso de herramientas


TOOL 1,24 1,10 1,00 0,91 0,83 - TOOL 1,24 1,10 1,00 0,91 0,83 -
de software de software

SCED Exigencias de planificación 1,23 1,08 1,00 - 1,10 - SCED Exigencias de planificación 1,23 1,08 1,00 - 1,10 -

Es necesario saber también que existen varias hipótesis que están en la base Es necesario saber también que existen varias hipótesis que están en la base
del modelo COCOMO. del modelo COCOMO.

Algunas hipótesis del modelo COCOMO Algunas hipótesis del modelo COCOMO

Algunas de las hipótesis que utiliza el modelo COCOMO son, entre otras, las que men- Algunas de las hipótesis que utiliza el modelo COCOMO son, entre otras, las que men-
cionamos a continuación: cionamos a continuación:

• No se tienen en cuenta los comentarios en el recuento de las KLOC. • No se tienen en cuenta los comentarios en el recuento de las KLOC.
• Se admite la equivalencia siguiente: 1 mes-hombre son 152 horas de trabajo. • Se admite la equivalencia siguiente: 1 mes-hombre son 152 horas de trabajo.
• Se considera que los requerimientos son estables. • Se considera que los requerimientos son estables.
• Se acepta que el proyecto está bien gestionado. • Se acepta que el proyecto está bien gestionado.

En resumidas cuentas, el modelo COCOMO de Boehm es el más serio y com- En resumidas cuentas, el modelo COCOMO de Boehm es el más serio y com-
pleto de los que existen, aunque los resultados que se obtienen pueden haber pleto de los que existen, aunque los resultados que se obtienen pueden haber
quedado obsoletos por la evolución y los cambios que ha sufrido la informá- quedado obsoletos por la evolución y los cambios que ha sufrido la informá-
tica en los últimos veinte años. tica en los últimos veinte años.

El COCOMO II de los años noventa y a partir del 2000 El COCOMO II de los años noventa y a partir del 2000

El nuevo modelo COCOMO II tiene como objetivo principal desarrollar un El nuevo modelo COCOMO II tiene como objetivo principal desarrollar un
modelo de estimación de costes y planificación del software especialmente modelo de estimación de costes y planificación del software especialmente
adecuado para los ciclos de vida utilizados en los años noventa y a partir del adecuado para los ciclos de vida utilizados en los años noventa y a partir del
2000. Aquí no entraremos en la exposición de los detalles, ya que hemos op- 2000. Aquí no entraremos en la exposición de los detalles, ya que hemos op-
tado por referirnos al ciclo de vida tradicional en la construcción del software tado por referirnos al ciclo de vida tradicional en la construcción del software
y este ciclo ya está bien cubierto por el COCOMO clásico. y este ciclo ya está bien cubierto por el COCOMO clásico.
 FUOC • P03/75069/02142 44 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 44 Estimación de costes de un proyecto informático

El modelo COCOMO II todavía se encuentra en fase de elaboración y de prue- El modelo COCOMO II todavía se encuentra en fase de elaboración y de prue-
ba y, además, es muy complejo. De hecho, como ya pasaba en el COCOMO ba y, además, es muy complejo. De hecho, como ya pasaba en el COCOMO
clásico, el COCOMO II incluye tres modelos que corresponden a diferentes fa- clásico, el COCOMO II incluye tres modelos que corresponden a diferentes fa-
ses y modalidades del futuro ciclo de vida: ses y modalidades del futuro ciclo de vida:

1) Modelo de composición de aplicaciones*: incluye el uso de prototipos 1) Modelo de composición de aplicaciones*: incluye el uso de prototipos
* En inglés, Application Composition * En inglés, Application Composition
para disminuir los riesgos potenciales que surgen con las interfaces gráficas de Model. para disminuir los riesgos potenciales que surgen con las interfaces gráficas de Model.
** En inglés, Object Points. ** En inglés, Object Points.
usuario típicas de herramientas RAD y otras herramientas actuales de produc- usuario típicas de herramientas RAD y otras herramientas actuales de produc-
tividad y de la orientación a objetos. En este modelo se definen unos puntos tividad y de la orientación a objetos. En este modelo se definen unos puntos
objeto** que vendrían a ser una adaptación y modernización de los puntos de objeto** que vendrían a ser una adaptación y modernización de los puntos de
función de Albrecht ya vistos. función de Albrecht ya vistos.

2) Modelo de diseño primerizo*: intenta obtener una primera aproximación 2) Modelo de diseño primerizo*: intenta obtener una primera aproximación
* En inglés, Early Design Model. * En inglés, Early Design Model.
en las fases iniciales del ciclo de vida, cuando todavía se conocen pocas de las en las fases iniciales del ciclo de vida, cuando todavía se conocen pocas de las
características y datos definitivos del proyecto. Utiliza como primitivas de sa- características y datos definitivos del proyecto. Utiliza como primitivas de sa-
lida tanto las líneas de código como los clásicos puntos de función de Albrecht lida tanto las líneas de código como los clásicos puntos de función de Albrecht
sin ajustar (TUFP). sin ajustar (TUFP).

3) Modelo de postarquitectura*: versión más completa, corresponde a la mo- 3) Modelo de postarquitectura*: versión más completa, corresponde a la mo-
* En inglés, Post-Arquitecture Model. * En inglés, Post-Arquitecture Model.
dernización del COCOMO tradicional de 1981. Se aplica cuando se considera que dernización del COCOMO tradicional de 1981. Se aplica cuando se considera que
el proyecto dispone ya de requerimientos estables. Por otra parte, también utiliza el proyecto dispone ya de requerimientos estables. Por otra parte, también utiliza
como primitivas de salida las líneas de código y los puntos de función de Albrecht como primitivas de salida las líneas de código y los puntos de función de Albrecht
sin ajustar (TUFP) y, además, tiene en cuenta indicadores de la reutilitzación de sin ajustar (TUFP) y, además, tiene en cuenta indicadores de la reutilitzación de
software, cinco factores de escala y hasta diecisiete factores específicos diferentes. software, cinco factores de escala y hasta diecisiete factores específicos diferentes.

Es importante destacar cómo en el proyecto COCOMO II, en el modelo pos- Es importante destacar cómo en el proyecto COCOMO II, en el modelo pos-
tarquitectura, se pueden utilizar las nuevas líneas de código (NSLOC*) cuando tarquitectura, se pueden utilizar las nuevas líneas de código (NSLOC*) cuando
* NSLOC es la sigla de la expresión * NSLOC es la sigla de la expresión
se trata de estimar los costes de una aplicación nueva, o las líneas de código inglesa New Source Lines of Code. se trata de estimar los costes de una aplicación nueva, o las líneas de código inglesa New Source Lines of Code.
** ASLOC es la sigla de la expresión ** ASLOC es la sigla de la expresión
adaptadas (ASLOC**) cuando se trata de estimar una aplicación en la cual se inglesa Adapted Source Lines of Code. adaptadas (ASLOC**) cuando se trata de estimar una aplicación en la cual se inglesa Adapted Source Lines of Code.

utilizará básicamente el diseño o el código de otras aplicaciones ya disponi- utilizará básicamente el diseño o el código de otras aplicaciones ya disponi-
bles. Es decir, el COCOMO II incluye ya como aspecto central el fenómeno de bles. Es decir, el COCOMO II incluye ya como aspecto central el fenómeno de
la reutilización del software. la reutilización del software.

Por otra parte, también es necesario destacar el eclecticismo del COCOMO II al Por otra parte, también es necesario destacar el eclecticismo del COCOMO II al
utilizar como primitivas de salida tanto las tradicionales líneas de código que ya utilizar como primitivas de salida tanto las tradicionales líneas de código que ya
utilizaba el COCOMO clásico de 1981, como los puntos de función de Albrecht o utilizaba el COCOMO clásico de 1981, como los puntos de función de Albrecht o
su evolución natural en el mundo de la orientación a objetos, los puntos objeto. su evolución natural en el mundo de la orientación a objetos, los puntos objeto.

Tal vez es prematuro apuntarlo, pero, cuando esté terminado, COCOMO II se Tal vez es prematuro apuntarlo, pero, cuando esté terminado, COCOMO II se
puede convertir en el nuevo modelo de referencia, tal como lo ha sido el CO- puede convertir en el nuevo modelo de referencia, tal como lo ha sido el CO-
COMO clásico durante tantos años. COMO clásico durante tantos años.

2.3.5. El uso de estándares de productividad 2.3.5. El uso de estándares de productividad

No es fácil, en la práctica, encontrar cuál es el modelo que más se ajusta a No es fácil, en la práctica, encontrar cuál es el modelo que más se ajusta a
la realidad del proyecto informático que todavía está por empezar y que la realidad del proyecto informático que todavía está por empezar y que
 FUOC • P03/75069/02142 45 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 45 Estimación de costes de un proyecto informático

preocupa al jefe de proyecto que debe llevar a cabo la estimación de las car- preocupa al jefe de proyecto que debe llevar a cabo la estimación de las car-
gas y los costes. gas y los costes.

Como herramienta para estudiar el proceso de construcción del software, Como herramienta para estudiar el proceso de construcción del software,
los modelos que ofrecen fórmulas son interesantes, pero el gran inconve- los modelos que ofrecen fórmulas son interesantes, pero el gran inconve-
niente que tienen es que la mayoría parte de una base de datos de proyectos niente que tienen es que la mayoría parte de una base de datos de proyectos
lo suficientemente antiguos como para que sus resultados no siempre sean lo suficientemente antiguos como para que sus resultados no siempre sean
útiles. útiles.

Por esto, la práctica profesional de cada día ha provocado que muchas insta- Por esto, la práctica profesional de cada día ha provocado que muchas insta-
laciones*, a pesar de tener como referencia los datos que ofrecen los modelos, laciones*, a pesar de tener como referencia los datos que ofrecen los modelos,
* Generalmente, las instalaciones * Generalmente, las instalaciones
hayan decidido adoptar un sistema mucho más simple y menos complicado: mayores y con más experiencia. hayan decidido adoptar un sistema mucho más simple y menos complicado: mayores y con más experiencia.

elaborar estándares de productividad propios. elaborar estándares de productividad propios.

Para tener estándares de productividad propios es necesario recoger da- Para tener estándares de productividad propios es necesario recoger da-
A la hora de estimar A la hora de estimar
tos de proyectos anteriores de la misma instalación y establecer cuál es el esfuerzo... tos de proyectos anteriores de la misma instalación y establecer cuál es el esfuerzo...
el esfuerzo que corresponde a las diferentes actividades que pueden for- ... y planificar las tareas de pro- el esfuerzo que corresponde a las diferentes actividades que pueden for- ... y planificar las tareas de pro-
mar parte del proceso de construcción del software. Para realizar la esti- gramación es útil saber (ha- mar parte del proceso de construcción del software. Para realizar la esti- gramación es útil saber (ha-
ciendo la media de los datos ciendo la media de los datos
mación de proyectos nuevos se parte de estos datos convertidos en de proyectos anteriores) cuán- mación de proyectos nuevos se parte de estos datos convertidos en de proyectos anteriores) cuán-
to ha tardado en programarse to ha tardado en programarse
estándar de referencia. y probarse, por ejemplo, una estándar de referencia. y probarse, por ejemplo, una
transacción que saca tres for- transacción que saca tres for-
mularios diferentes por panta- mularios diferentes por panta-
lla y que consulta y actualiza lla y que consulta y actualiza
cinco tablas de la base de cinco tablas de la base de
La idea general es cuantificar varias unidades de medida que tengan o que pa- datos. La idea general es cuantificar varias unidades de medida que tengan o que pa- datos.
rezcan tener una cierta relación con el esfuerzo (el número de formularios de rezcan tener una cierta relación con el esfuerzo (el número de formularios de
pantalla, el número de tablas de la base de datos, el número y la complejidad pantalla, el número de tablas de la base de datos, el número y la complejidad
de los tratamientos, etc.) y/o disponer de una larga serie de actividades tipo de los tratamientos, etc.) y/o disponer de una larga serie de actividades tipo
habituales en el proceso de construcción de software, de las cuales conocemos habituales en el proceso de construcción de software, de las cuales conocemos
el coste (extraído, evidentemente, de proyectos anteriores). el coste (extraído, evidentemente, de proyectos anteriores).

En el fondo es como construir una especie de características funcionales como Podéis ver las características En el fondo es como construir una especie de características funcionales como Podéis ver las características
funcionales de los puntos de función funcionales de los puntos de función
las de los puntos de función de Albrecht, pero teniendo en cuenta las condi- de Albrecht en el subapartado 1.4.2 de las de los puntos de función de Albrecht, pero teniendo en cuenta las condi- de Albrecht en el subapartado 1.4.2 de
este módulo didáctico. este módulo didáctico.
ciones concretas de una instalación determinada y del tipo de aplicación que ciones concretas de una instalación determinada y del tipo de aplicación que
se suele construir. En lugar de cuantificar cada actividad o conjunto de estas se suele construir. En lugar de cuantificar cada actividad o conjunto de estas
características funcionales en líneas de código o puntos de función y buscar características funcionales en líneas de código o puntos de función y buscar
modelos que conviertan estas métricas en esfuerzo (meses-hombre), es sufi- modelos que conviertan estas métricas en esfuerzo (meses-hombre), es sufi-
ciente disponer directamente, para cada actividad, del esfuerzo estándar que ciente disponer directamente, para cada actividad, del esfuerzo estándar que
ha requerido en otros proyectos anteriores. ha requerido en otros proyectos anteriores.
Lectura recomendada Lectura recomendada

Uso de estándares de productividad Las recomendaciones de Uso de estándares de productividad Las recomendaciones de
Robert O. Grady del grupo de Robert O. Grady del grupo de
Es imprescindible la utilización de estándares de productividad cuando, por ejemplo, métricas de Hewlett Packard Es imprescindible la utilización de estándares de productividad cuando, por ejemplo, métricas de Hewlett Packard
se utiliza el outsourcing (‘externalización’) y se encarga la programación de una nueva se pueden encontrar en se utiliza el outsourcing (‘externalización’) y se encarga la programación de una nueva se pueden encontrar en
aplicación a una empresa externa. En este caso, es necesario tener datos claros que la obra siguiente: aplicación a una empresa externa. En este caso, es necesario tener datos claros que la obra siguiente:
permitan a las dos empresas (la que quiere el proyecto y la que va a efectuar la pro- R.O. Grady (1992). Practical permitan a las dos empresas (la que quiere el proyecto y la que va a efectuar la pro- R.O. Grady (1992). Practical
gramación) ponerse de acuerdo en el coste que se pagará por el trabajo de programa- software metrics for project gramación) ponerse de acuerdo en el coste que se pagará por el trabajo de programa- software metrics for project
management and process management and process
ción que se debe realizar. ción que se debe realizar.
improvement (vol. 2, improvement (vol. 2,
pág. 13-20). Englewood pág. 13-20). Englewood
También, al margen de los estándares propios de cada instalación, en la biblio- Cliffs: Prentice Hall (Hewlett También, al margen de los estándares propios de cada instalación, en la biblio- Cliffs: Prentice Hall (Hewlett
Packard Professional Books). Packard Professional Books).
grafía técnica se encuentran las recomendaciones prácticas a primera vista. grafía técnica se encuentran las recomendaciones prácticas a primera vista.
 FUOC • P03/75069/02142 46 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 46 Estimación de costes de un proyecto informático

Como ya hemos dicho, se trata de resúmenes del saber acumulado por espe- Como ya hemos dicho, se trata de resúmenes del saber acumulado por espe-
cialistas prestigiosos que pueden actuar como referencia general futura para cialistas prestigiosos que pueden actuar como referencia general futura para
los estándares propios de una instalación que empieza. los estándares propios de una instalación que empieza.

Tal como recuerda Caper T. Jones en un artículo, las recomendaciones prácti- Tal como recuerda Caper T. Jones en un artículo, las recomendaciones prácti-
cas a primera vista siguen siendo populares, pero nunca son exactas y no subs- cas a primera vista siguen siendo populares, pero nunca son exactas y no subs-
tituyen a los métodos formales de estimación del software. tituyen a los métodos formales de estimación del software.

En cualquier caso, es interesante saber que, según la opinión de un experto En cualquier caso, es interesante saber que, según la opinión de un experto
Lectura recomendada Lectura recomendada
como Jones, se dan las equivalencias prácticas siguientes: como Jones, se dan las equivalencias prácticas siguientes:
C.T. Jones (1996). “Software C.T. Jones (1996). “Software
Estimating Rules of Thumb”. Estimating Rules of Thumb”.
IEEE computer (marzo, pág. IEEE computer (marzo, pág.
• 1 FP = 100 LOC. • 1 FP = 100 LOC.
116-118). 116-118).

• FP elevado a 0,4 = meses de desarrollo. • FP elevado a 0,4 = meses de desarrollo.


Según estas Según estas
equivalencias... equivalencias...
• FP/150 = número de personas que son necesarias para el desarrollo. • FP/150 = número de personas que son necesarias para el desarrollo.
... una aplicación de 1.000 FP ... una aplicación de 1.000 FP
supone 16 meses de desarro- supone 16 meses de desarro-
• FP/500 = número de personas necesarias para el mantenimiento futuro. llo, 6,6 personas en el proyecto • FP/500 = número de personas necesarias para el mantenimiento futuro. llo, 6,6 personas en el proyecto
y hasta 106 meses de esfuerzo. y hasta 106 meses de esfuerzo.
(En este sentido, si estos datos (En este sentido, si estos datos
no encajan del todo con la pro- no encajan del todo con la pro-
• FP elevado a 1,15 = número de páginas de documentación. ductividad de dos horas para • FP elevado a 1,15 = número de páginas de documentación. ductividad de dos horas para
implementar un punto de implementar un punto de
función tal como el mismo función tal como el mismo
• FP elevado a 1,2 = número de casos de prueba que se realizan. Jones proponía en un artículo • FP elevado a 1,2 = número de casos de prueba que se realizan. Jones proponía en un artículo
de mayo de 1996 que hemos de mayo de 1996 que hemos
recordado en el apartado 1.4.2 recordado en el apartado 1.4.2
• FP elevado en 1,25 = potencial de errores (en proyectos nuevos). es, simplemente, un ejemplo • FP elevado en 1,25 = potencial de errores (en proyectos nuevos). es, simplemente, un ejemplo
más de las perplejidades que más de las perplejidades que
este asunto de la estimación este asunto de la estimación
de los costes del software de los costes del software
• FP elevado a 0,25 = número de años que seguirá en uso la aplicación. desencadena, tal como ya • FP elevado a 0,25 = número de años que seguirá en uso la aplicación. desencadena, tal como ya
hemos comentado en el hemos comentado en el
subapartado 1.4.4.) subapartado 1.4.4.)
Las recomendaciones prácticas a primera vista pueden ser más generales, Las recomendaciones prácticas a primera vista pueden ser más generales,
como las que, de acuerdo con Jones, os ofrecemos a continuación: como las que, de acuerdo con Jones, os ofrecemos a continuación:

• Si no se vigilan los requerimientos crecientes, los usuarios conseguirán que • Si no se vigilan los requerimientos crecientes, los usuarios conseguirán que
aumenten en un 1% cada mes de desarrollo del proyecto: en un proyecto aumenten en un 1% cada mes de desarrollo del proyecto: en un proyecto
de dos años se da, al final, un 24% más de requerimientos de los que exis- de dos años se da, al final, un 24% más de requerimientos de los que exis-
tían al principio. tían al principio.

• Cada inspección o control de errores encuentra y también corrige el 30% • Cada inspección o control de errores encuentra y también corrige el 30%
de los errores que se dan. de los errores que se dan.

• Los proyectos invierten aproximadamente un 18% de su esfuerzo total en • Los proyectos invierten aproximadamente un 18% de su esfuerzo total en
determinar los requerimientos y efectuar las especificaciones, un 19% en el determinar los requerimientos y efectuar las especificaciones, un 19% en el
diseño, un 34% en la codificación y un 29% en las pruebas. diseño, un 34% en la codificación y un 29% en las pruebas.

• Para mantener y mejorar el software, se llevan a cabo esfuerzos dos o tres • Para mantener y mejorar el software, se llevan a cabo esfuerzos dos o tres
veces superiores a los necesarios para crearlo. veces superiores a los necesarios para crearlo.

• Se da aproximadamente un defecto sin detectar por cada diez que se en- • Se da aproximadamente un defecto sin detectar por cada diez que se en-
cuentran en las pruebas antes de distribuir una versión del software. cuentran en las pruebas antes de distribuir una versión del software.
 FUOC • P03/75069/02142 47 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 47 Estimación de costes de un proyecto informático

2.4. Práctica real de la estimación 2.4. Práctica real de la estimación

En general se suelen considerar más serios y seguros los modelos que incorpo- En general se suelen considerar más serios y seguros los modelos que incorpo-
ran fórmulas, pero no debemos olvidar que, muy a menudo, eso no resuelve ran fórmulas, pero no debemos olvidar que, muy a menudo, eso no resuelve
en absoluto el problema real de la estimación. en absoluto el problema real de la estimación.

Los modelos algorítmicos nos permiten, por ejemplo, saber cuál será el esfuer- Los modelos algorítmicos nos permiten, por ejemplo, saber cuál será el esfuer-
zo necesario para obtener un determinado número de líneas de código. Tam- zo necesario para obtener un determinado número de líneas de código. Tam-
bién nos muestran los meses empleados en la construcción del proyecto, el bién nos muestran los meses empleados en la construcción del proyecto, el
número de profesionales que deberían estar involucrados, el número de erro- número de profesionales que deberían estar involucrados, el número de erro-
res que se estima obtener, el número de páginas de documentación que se de- res que se estima obtener, el número de páginas de documentación que se de-
ben llevar a cabo, etc. Sin embargo, todo parte de un determinado número ben llevar a cabo, etc. Sin embargo, todo parte de un determinado número
global de líneas de código o de la estimación del total de puntos de función global de líneas de código o de la estimación del total de puntos de función
que se deben implementar. que se deben implementar.

Si bien, lo cierto es que, aun así, los métodos algorítmicos no resuelven en Si bien, lo cierto es que, aun así, los métodos algorítmicos no resuelven en
absoluto el problema de la estimación porque nadie nos dice de dónde sale absoluto el problema de la estimación porque nadie nos dice de dónde sale
el número de LOC que utilizaremos en las fórmulas, ni la persona que lo el número de LOC que utilizaremos en las fórmulas, ni la persona que lo
determina. determina.

Por otra parte, en la práctica, disponer de una cifra de esfuerzo única no es en Por otra parte, en la práctica, disponer de una cifra de esfuerzo única no es en
absoluto el camino más fácil para las etapas posteriores en la gestión de un absoluto el camino más fácil para las etapas posteriores en la gestión de un
proyecto informático: la planificación y el seguimiento del proyecto. Saber proyecto informático: la planificación y el seguimiento del proyecto. Saber
sólo que un proyecto debe durar seis meses no nos permite conocer si, por sólo que un proyecto debe durar seis meses no nos permite conocer si, por
ejemplo, a tres meses del comienzo se van cumpliendo o no las previsiones ejemplo, a tres meses del comienzo se van cumpliendo o no las previsiones
realizadas (faltan detalles). realizadas (faltan detalles).

Si tenemos en cuenta que, posteriormente a la estimación de costes, es nece- Podéis ver el seguimiento del Si tenemos en cuenta que, posteriormente a la estimación de costes, es nece- Podéis ver el seguimiento del
proyecto informático en el apartado proyecto informático en el apartado
sario planificar en el tiempo y efectuar el seguimiento de todo el conjunto de 2 del módulo “La gestión de un proyecto
informático” de esta asignatura.
sario planificar en el tiempo y efectuar el seguimiento de todo el conjunto de 2 del módulo “La gestión de un proyecto
informático” de esta asignatura.
actividades o tareas que forman el proyecto informático, el hecho de tener una actividades o tareas que forman el proyecto informático, el hecho de tener una
estimación global única es poco útil. Es mucho más interesante un plantea- estimación global única es poco útil. Es mucho más interesante un plantea-
miento ascendente que nos permita, antes de efectuar la estimación, descom- miento ascendente que nos permita, antes de efectuar la estimación, descom-
poner el proyecto informático en diferentes actividades. Este paso previo lo poner el proyecto informático en diferentes actividades. Este paso previo lo
convierte en mucho más planificable y controlable. convierte en mucho más planificable y controlable.

Existen varias maneras de descomponer un proyecto informático y, aunque aquí Existen varias maneras de descomponer un proyecto informático y, aunque aquí
sólo nos interesa una, mencionamos a continuación los nombres más habituales: sólo nos interesa una, mencionamos a continuación los nombres más habituales:

a) WBS: descomposición estructural de los trabajos que se deben realizar, es a) WBS: descomposición estructural de los trabajos que se deben realizar, es
WBS es la sigla de la expresión WBS es la sigla de la expresión
decir, la lista estructurada de todas las actividades y tareas de un proyecto. inglesa Work Breakdown Structure. decir, la lista estructurada de todas las actividades y tareas de un proyecto. inglesa Work Breakdown Structure.

b) PBS: resultado que se espera obtener, es decir, la descomposición en partes b) PBS: resultado que se espera obtener, es decir, la descomposición en partes
PBS es la sigla de la expresión PBS es la sigla de la expresión
del producto final. En el caso del software de aplicación podrían ser tablas de inglesa Product Breakdown Structure. del producto final. En el caso del software de aplicación podrían ser tablas de inglesa Product Breakdown Structure.

la base de datos, formularios, programas, módulos, transacciones, etc. Cabe la base de datos, formularios, programas, módulos, transacciones, etc. Cabe
mencionar que la PBS es de gran interés para el diseño técnico, pero no tanto mencionar que la PBS es de gran interés para el diseño técnico, pero no tanto
para la estimación de costes y la planificación de un proyecto. para la estimación de costes y la planificación de un proyecto.
 FUOC • P03/75069/02142 48 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 48 Estimación de costes de un proyecto informático

c) OBS: descomposición de la organización para atender a todas las tareas c) OBS: descomposición de la organización para atender a todas las tareas
OBS es la sigla de la expresión OBS es la sigla de la expresión
que componen la WBS. De hecho, cada elemento terminal de la OBS (po- inglesa Organization Breakdown que componen la WBS. De hecho, cada elemento terminal de la OBS (po- inglesa Organization Breakdown
Structure. Structure.
siblemente, cada uno de los profesionales que intervienen en el proyecto) siblemente, cada uno de los profesionales que intervienen en el proyecto)
ha de quedar encargado de una o más tareas, las cuales forman los elemen- ha de quedar encargado de una o más tareas, las cuales forman los elemen-
tos finales de la WBS. tos finales de la WBS.

Aunque es muy habitual utilizar una descomposición en forma de árbol para Aunque es muy habitual utilizar una descomposición en forma de árbol para
cualquier descomposición estructural (ya sea de tareas, producto u organiza- cualquier descomposición estructural (ya sea de tareas, producto u organiza-
ción) a menudo es suficiente con una lista estructurada en forma jerárquica, ción) a menudo es suficiente con una lista estructurada en forma jerárquica,
como el ejemplo siguiente para una teórica WBS: como el ejemplo siguiente para una teórica WBS:

Grupo de tareas 1 Grupo de tareas 1

Subgrupo de tareas 1.1 Subgrupo de tareas 1.1

Tarea 1.1.1 Tarea 1.1.1

Tarea 1.1.2 Tarea 1.1.2

Tarea 1.1.3 Tarea 1.1.3

Subgrupo de tareas 1.2 Subgrupo de tareas 1.2

Tarea 1.2.1 Tarea 1.2.1

Tarea 1.2.2 Tarea 1.2.2

Grupo de tareas 2 Grupo de tareas 2

Subgrupo de tareas 2.1 Subgrupo de tareas 2.1

Tarea 2.1.1 Tarea 2.1.1

Tarea 2.1.2 Tarea 2.1.2

etc. etc.

En la práctica, la estimación de costes de un proyecto informático se En la práctica, la estimación de costes de un proyecto informático se
efectúa, pues, a partir de una descomposición del proyecto en las dife- efectúa, pues, a partir de una descomposición del proyecto en las dife-
rentes tareas o actividades que se deben realizar (WBS) y la estimación rentes tareas o actividades que se deben realizar (WBS) y la estimación
individual del esfuerzo que cuesta cada tarea concreta. individual del esfuerzo que cuesta cada tarea concreta.

Para llevar a cabo esta descomposición WBS, el jefe de proyecto utiliza su ex- Para llevar a cabo esta descomposición WBS, el jefe de proyecto utiliza su ex-
periencia y, sobre todo, la analogía con otros proyectos más o menos pareci- periencia y, sobre todo, la analogía con otros proyectos más o menos pareci-
dos, para establecer una posible lista de tareas que es necesario llevar a cabo dos, para establecer una posible lista de tareas que es necesario llevar a cabo
en el proyecto. en el proyecto.

En este caso, la tradición establece que la estimación de cada tarea se realice, Podéis ver los estándares de En este caso, la tradición establece que la estimación de cada tarea se realice, Podéis ver los estándares de
productividad y las recomendaciones productividad y las recomendaciones
no en líneas de código o puntos de función, sino directamente en unidades de prácticas a primera vista en el subapartado
2.3.5 de este módulo didáctico.
no en líneas de código o puntos de función, sino directamente en unidades de prácticas a primera vista en el subapartado
2.3.5 de este módulo didáctico.

esfuerzo, por ejemplo, personas-día. Se trata de utilizar los estándares de pro- esfuerzo, por ejemplo, personas-día. Se trata de utilizar los estándares de pro-
ductividad de los que se ha hablado o, en caso de que no existan, el sentido ductividad de los que se ha hablado o, en caso de que no existan, el sentido
común y las recomendaciones prácticas a primera vista. común y las recomendaciones prácticas a primera vista.
 FUOC • P03/75069/02142 49 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 49 Estimación de costes de un proyecto informático

La incertidumbre de este proceso práctico de estimación de costes se encuen- La incertidumbre de este proceso práctico de estimación de costes se encuen-
tra en el posible acierto de la descomposición WBS, además de en la bondad tra en el posible acierto de la descomposición WBS, además de en la bondad
de los estándares de productividad y en las recomendaciones prácticas dispo- de los estándares de productividad y en las recomendaciones prácticas dispo-
nibles. Cabe mencionar que los errores de estimación son muy frecuentes y, nibles. Cabe mencionar que los errores de estimación son muy frecuentes y,
en cierta manera, completamente inevitables. en cierta manera, completamente inevitables.

2.4.1. Un ejemplo: contabilidad sencilla en un PC 2.4.1. Un ejemplo: contabilidad sencilla en un PC

Aplicaremos el método que hemos descrito en el subapartado anterior a un Aplicaremos el método que hemos descrito en el subapartado anterior a un
ejemplo sencillo, una pequeña aplicación de contabilidad que podría que- ejemplo sencillo, una pequeña aplicación de contabilidad que podría que-
dar suficientemente descrita de la manera siguiente: se quiere implementar dar suficientemente descrita de la manera siguiente: se quiere implementar
una miniaplicación contable destinada a ejecutarse en un microordenador una miniaplicación contable destinada a ejecutarse en un microordenador
personal tipo PC compatible. Los requerimientos que se exigen se exponen personal tipo PC compatible. Los requerimientos que se exigen se exponen
a continuación: a continuación:

1) La aplicación debe soportar un sistema de contabilidad general por partida 1) La aplicación debe soportar un sistema de contabilidad general por partida
doble, susceptible de incorporar también cuentas corrientes de clientes, a par- doble, susceptible de incorporar también cuentas corrientes de clientes, a par-
tir de la utilización del Plan General de Contabilidad. tir de la utilización del Plan General de Contabilidad.

2) Se utilizarán unos códigos de cuenta y subcuenta de hasta ocho dígitos, or- 2) Se utilizarán unos códigos de cuenta y subcuenta de hasta ocho dígitos, or-
ganizados jerárquicamente en cuatro niveles. Los niveles quedan determina- ganizados jerárquicamente en cuatro niveles. Los niveles quedan determina-
dos respectivamente por la primera cifra (grupo), las dos primeras cifras dos respectivamente por la primera cifra (grupo), las dos primeras cifras
(subgrupo), las tres primeras cifras (cuentas) y todo el código (subcuenta): (subgrupo), las tres primeras cifras (cuentas) y todo el código (subcuenta):

Plan General de Contabilidad Plan General de Contabilidad

Nivel Código Concepto Nivel Código Concepto

Grupo 4 Acreedores y deudores por operaciones de tráfico Grupo 4 Acreedores y deudores por operaciones de tráfico

Subgrupo 43 Clientes Subgrupo 43 Clientes

Cuenta 430 Clientes Cuenta 430 Clientes


Cuenta 435 Clientes de cobro dudoso Cuenta 435 Clientes de cobro dudoso

Subcuenta 43512345 Joan Belloch Pi (cliente número 12345) Subcuenta 43512345 Joan Belloch Pi (cliente número 12345)

3) Los movimientos afectan siempre a las subcuentas (ocho dígitos) y se de- 3) Los movimientos afectan siempre a las subcuentas (ocho dígitos) y se de-
ben hacer repercutir automáticamente en pirámide a los niveles de orden su- ben hacer repercutir automáticamente en pirámide a los niveles de orden su-
perior (tres, dos y un dígitos, respectivamente). perior (tres, dos y un dígitos, respectivamente).

4) Los asentamientos han de tener la opción de múltiples contrapartidas has- 4) Los asentamientos han de tener la opción de múltiples contrapartidas has-
ta un máximo de diez líneas por asentamiento. ta un máximo de diez líneas por asentamiento.

5) La aplicación incluirá necesariamente: 5) La aplicación incluirá necesariamente:

a) Tratamientos interactivos: a) Tratamientos interactivos:

• Gestión del plan de cuentas (alta, baja, modificación y consulta). • Gestión del plan de cuentas (alta, baja, modificación y consulta).
• Entrada de movimientos contables. • Entrada de movimientos contables.
• Consulta por pantalla del saldo y los movimientos de una subcuenta deter- • Consulta por pantalla del saldo y los movimientos de una subcuenta deter-
minada (extracto). minada (extracto).
 FUOC • P03/75069/02142 50 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 50 Estimación de costes de un proyecto informático

b) Tratamientos diferidos: b) Tratamientos diferidos:

• Listado del plan de cuentas. • Listado del plan de cuentas.


• Listado del diario. • Listado del diario.
• Listado del mayor (o de unas cuentas concretas). • Listado del mayor (o de unas cuentas concretas).
• Listado mensual de Resultados de pérdidas y ganancias. • Listado mensual de Resultados de pérdidas y ganancias.
• Listado mensual del Balance de comprobación. • Listado mensual del Balance de comprobación.
• Listado mensual del Balance de situación. • Listado mensual del Balance de situación.
• Cierre del mes. • Cierre del mes.

Cabe mencionar que a menudo no se dispone ni siquiera de una descripción Cabe mencionar que a menudo no se dispone ni siquiera de una descripción
como ésta que, a pesar de su brevedad, es bastante completa si se conoce qué es como ésta que, a pesar de su brevedad, es bastante completa si se conoce qué es
una contabilidad realizada por ordenador (es decir, si el jefe de proyecto tiene ex- una contabilidad realizada por ordenador (es decir, si el jefe de proyecto tiene ex-
periencia en este tipo de aplicaciones). Enunciados como éste (que, de hecho, no periencia en este tipo de aplicaciones). Enunciados como éste (que, de hecho, no
existen en la realidad), permiten efectuar muy fácilmente una descomposición de existen en la realidad), permiten efectuar muy fácilmente una descomposición de
tareas (WBS), a menudo centrada en la descomposición de tratamientos (que no tareas (WBS), a menudo centrada en la descomposición de tratamientos (que no
de programas) que prácticamente ya da el enunciado. de programas) que prácticamente ya da el enunciado.

En cualquier caso, es evidente que este ejemplo es limitado y que la contabilidad En cualquier caso, es evidente que este ejemplo es limitado y que la contabilidad
que hemos presentado es sólo mensual. Falta lo que podría ser una segunda fase que hemos presentado es sólo mensual. Falta lo que podría ser una segunda fase
del proyecto, con el cierre del ejercicio anual y la apertura del nuevo ejercicio. del proyecto, con el cierre del ejercicio anual y la apertura del nuevo ejercicio.

El resultado de la estimación se indica a continuación con la descomposición El resultado de la estimación se indica a continuación con la descomposición
estructural de las tareas que se deben llevar a cabo (WBS) y, para cada tarea, la estructural de las tareas que se deben llevar a cabo (WBS) y, para cada tarea, la
estimación de esfuerzo en personas-día: estimación de esfuerzo en personas-día:

Estimación de costes del proyecto Estimación de costes del proyecto

Personas-día Personas-día
Descomposición estructural de tareas Descomposición estructural de tareas
JP A P JP A P

Gestión del proyecto Gestión del proyecto

01 Estimación y planificación del proyecto por primera vez 1 01 Estimación y planificación del proyecto por primera vez 1

02 Seguimiento, control y recalificación del proyecto (dos meses) 3 02 Seguimiento, control y recalificación del proyecto (dos meses) 3

Análisis y diseño de arquitectura Análisis y diseño de arquitectura

03 Análisis funcional y especificación 3 03 Análisis funcional y especificación 3

04 Diseño de la base de datos 1 04 Diseño de la base de datos 1

05 Diseño de formularios y listados 2 05 Diseño de formularios y listados 2

Tratamiento de gestión del plan de cuentas Tratamiento de gestión del plan de cuentas

06 Redacción del cuaderno de cargas 0,5 06 Redacción del cuaderno de cargas 0,5

07 Programación 2 07 Programación 2

Tratamiento de la entrada de movimientos contables Tratamiento de la entrada de movimientos contables

07 Redacción del cuaderno de cargas 1 07 Redacción del cuaderno de cargas 1

08 Programación 4 08 Programación 4

Tratamiento de la consulta de saldo y movimientos de subcuentas Tratamiento de la consulta de saldo y movimientos de subcuentas

09 Redacción del cuaderno de cargas 0,5 09 Redacción del cuaderno de cargas 0,5

10 Programación 3 10 Programación 3
 FUOC • P03/75069/02142 51 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 51 Estimación de costes de un proyecto informático

Estimación de costes del proyecto Estimación de costes del proyecto

Personas-día Personas-día
Descomposición estructural de tareas Descomposición estructural de tareas
JP A P JP A P

Tratamiento del listado del plan de cuentas Tratamiento del listado del plan de cuentas

11 Redacción del cuaderno de cargas 0,5 11 Redacción del cuaderno de cargas 0,5

12 Programación 2 12 Programación 2

Tratamiento del listado de diario Tratamiento del listado de diario

13 Redacción del cuaderno de cargas 0,5 13 Redacción del cuaderno de cargas 0,5

14 Programación 2 14 Programación 2

Tratamiento del listado de mayor Tratamiento del listado de mayor

15 Redacción del cuaderno de cargas 0,5 15 Redacción del cuaderno de cargas 0,5

16 Programación 3 16 Programación 3

Tratamiento del listado de la cuenta de pérdidas y ganancias Tratamiento del listado de la cuenta de pérdidas y ganancias

17 Redacción del cuaderno de cargas 1 17 Redacción del cuaderno de cargas 1

18 Programación 3 18 Programación 3

Tratamiento del listado de Balance de comprobación Tratamiento del listado de Balance de comprobación

19 Redacción del cuaderno de cargas 1 19 Redacción del cuaderno de cargas 1

20 Programación 3 20 Programación 3

Tratamiento del listado de Balance de situación Tratamiento del listado de Balance de situación

21 Redacción del cuaderno de cargas 0,5 21 Redacción del cuaderno de cargas 0,5

22 Programación 2 22 Programación 2

Tratamiento del cierre del mes Tratamiento del cierre del mes

23 Redacción del cuaderno de cargas 1 23 Redacción del cuaderno de cargas 1

24 Programación 3 24 Programación 3

Prueba de integración del sistema Prueba de integración del sistema

25 Integración de los programas y prueba general del sistema 5 5 25 Integración de los programas y prueba general del sistema 5 5

Documentación Documentación

26 Documentación general del sistema 3 26 Documentación general del sistema 3

27 Diseño del sistema de ayudas (help) 2 27 Diseño del sistema de ayudas (help) 2

28 Implementación del sistema de ayudas (help) 4 28 Implementación del sistema de ayudas (help) 4

Cierre del proyecto Cierre del proyecto

29 Cierre del proyecto y recogida final de datos 1 29 Cierre del proyecto y recogida final de datos 1

Total (días) 5 23 36 Total (días) 5 23 36

Con vistas a la posterior planificación del proyecto con la asignación de recur- Con vistas a la posterior planificación del proyecto con la asignación de recur-
sos, es decir, la asignación de tareas a personas concretas (relación del OBS con sos, es decir, la asignación de tareas a personas concretas (relación del OBS con
la WBS), se han considerado qué tareas forman parte del trabajo del jefe de la WBS), se han considerado qué tareas forman parte del trabajo del jefe de
proyecto (JP), el analista (A) o el programador (P). En la práctica puede haber proyecto (JP), el analista (A) o el programador (P). En la práctica puede haber
muchos más profesionales involucrados, pero los tres niveles mencionados muchos más profesionales involucrados, pero los tres niveles mencionados
responden a tres niveles diferenciados de sueldo en la práctica profesional ac- responden a tres niveles diferenciados de sueldo en la práctica profesional ac-
tual y son una buena aproximación para una futura estimación de los costes tual y son una buena aproximación para una futura estimación de los costes
 FUOC • P03/75069/02142 52 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 52 Estimación de costes de un proyecto informático

monetarios. Posiblemente, en una aplicación tan pequeña sólo intervenga un monetarios. Posiblemente, en una aplicación tan pequeña sólo intervenga un
único profesional, sin embargo, con vistas a la generalización para casos ma- único profesional, sin embargo, con vistas a la generalización para casos ma-
yores, vale la pena mantener esta separación de las tareas y los profesionales. yores, vale la pena mantener esta separación de las tareas y los profesionales.

Se ha considerado también que el analista, una vez realizado el análisis y el di- Se ha considerado también que el analista, una vez realizado el análisis y el di-
seño de arquitectura, elabora las especificaciones individuales y concretas de seño de arquitectura, elabora las especificaciones individuales y concretas de
cada programa que se debe realizar, que en la profesión se denomina cuaderno cada programa que se debe realizar, que en la profesión se denomina cuaderno
de cargas y es la documentación en la que se basa el programador para efectuar de cargas y es la documentación en la que se basa el programador para efectuar
su tarea. En esta documentación se describen el tratamiento, los formularios y su tarea. En esta documentación se describen el tratamiento, los formularios y
los listados que se deben utilizar en el programa y la parte de la base de datos los listados que se deben utilizar en el programa y la parte de la base de datos
que ha de utilizar el programa. que ha de utilizar el programa.

A partir del cuaderno de cargas, el programador diseña, codifica y prueba el A partir del cuaderno de cargas, el programador diseña, codifica y prueba el
programa individualmente (esta necesidad de probar cada programa explica programa individualmente (esta necesidad de probar cada programa explica
los días que se han estimado para la programación: es necesario realizar un los días que se han estimado para la programación: es necesario realizar un
juego de prueba, comprobar y documentar los resultados, etc.). La tarea del juego de prueba, comprobar y documentar los resultados, etc.). La tarea del
programador termina con la documentación exhaustiva del programa y de los programador termina con la documentación exhaustiva del programa y de los
resultados conseguidos con el juego de prueba. Queda para el final la prueba resultados conseguidos con el juego de prueba. Queda para el final la prueba
de la integración global de toda la aplicación. de la integración global de toda la aplicación.

Se ha considerado que el jefe de proyecto dedica dos o tres horas cada semana Se ha considerado que el jefe de proyecto dedica dos o tres horas cada semana
al seguimiento y control del proyecto (no parece en absoluto que en un pro- al seguimiento y control del proyecto (no parece en absoluto que en un pro-
yecto tan pequeño sean necesario más tiempo). El proyecto, del orden de 60 yecto tan pequeño sean necesario más tiempo). El proyecto, del orden de 60
personas-día de trabajo, puede tener un tiempo de desarrollo de un par de me- personas-día de trabajo, puede tener un tiempo de desarrollo de un par de me-
ses (cabe recordar que en un mes se dan, aproximadamente, unos 22 días la- ses (cabe recordar que en un mes se dan, aproximadamente, unos 22 días la-
borables), hecho que justifica las tres jornadas del jefe de proyecto en borables), hecho que justifica las tres jornadas del jefe de proyecto en
seguimiento y control. seguimiento y control.

Se ha realizado una estimación optimista de las tareas de programación pen- Podéis ver las herramientas RAD en Se ha realizado una estimación optimista de las tareas de programación pen- Podéis ver las herramientas RAD en
el subapartado 1.4.1 de este módulo el subapartado 1.4.1 de este módulo
sando en herramientas modernas como las herramientas RAD ya menciona- didáctico. sando en herramientas modernas como las herramientas RAD ya menciona- didáctico.

das y, también, en una buena asignación de los recursos (por ejemplo, se das y, también, en una buena asignación de los recursos (por ejemplo, se
puede pensar en sólo dos días para la programación y prueba del listado del puede pensar en sólo dos días para la programación y prueba del listado del
Balance de situación si lo efectúa el mismo programador que se ha encargado Balance de situación si lo efectúa el mismo programador que se ha encargado
del Balance de comprobación). A pesar de este optimismo, se ha considerado del Balance de comprobación). A pesar de este optimismo, se ha considerado
que ninguna tarea se puede estimar en menos de media jornada de trabajo, que ninguna tarea se puede estimar en menos de media jornada de trabajo,
que en la mayoría de casos es una estimación muy realista en el ámbito del que en la mayoría de casos es una estimación muy realista en el ámbito del
trabajo profesional asalariado. trabajo profesional asalariado.
 FUOC • P03/75069/02142 53 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 53 Estimación de costes de un proyecto informático

Resumen Resumen

La actividad de la primera estimación de costes de un proyecto informático es La actividad de la primera estimación de costes de un proyecto informático es
y será siempre problemática, sobre todo por el hecho de tener que estimar el y será siempre problemática, sobre todo por el hecho de tener que estimar el
esfuerzo necesario para implementar una aplicación cuando todavía no se co- esfuerzo necesario para implementar una aplicación cuando todavía no se co-
nocen con detalle las funcionalidades que se han de cubrir. nocen con detalle las funcionalidades que se han de cubrir.

La mayoría de métodos de estimación utilizados hasta ahora se centran en dos La mayoría de métodos de estimación utilizados hasta ahora se centran en dos
grandes unidades de medida: el número de líneas de código (LOC) para medir grandes unidades de medida: el número de líneas de código (LOC) para medir
el tamaño y los puntos de función (FP) para medir las funcionalidades. Se da el tamaño y los puntos de función (FP) para medir las funcionalidades. Se da
una relación empírica entre LOC y FP, y la tendencia actual parece que es el una relación empírica entre LOC y FP, y la tendencia actual parece que es el
predominio de los puntos de función e, incluso, la creación de una nueva uni- predominio de los puntos de función e, incluso, la creación de una nueva uni-
dad para la orientación a objetos: los puntos objeto. dad para la orientación a objetos: los puntos objeto.

Cabe recordar que el hecho de que el esfuerzo se mida en personas-mes no per- Cabe recordar que el hecho de que el esfuerzo se mida en personas-mes no per-
mite intercambiar mecánicamente personas y meses, ya que el esfuerzo para mite intercambiar mecánicamente personas y meses, ya que el esfuerzo para
desarrollar un proyecto informático tiene una distribución característica en el desarrollar un proyecto informático tiene una distribución característica en el
tiempo como la que marca la curva de Rayleigh/Norden. tiempo como la que marca la curva de Rayleigh/Norden.

Los diferentes modelos de estimación de costes se encuentran hoy un poco ob- Los diferentes modelos de estimación de costes se encuentran hoy un poco ob-
soletos y todavía no se han desarrollado completamente otros modelos que re- soletos y todavía no se han desarrollado completamente otros modelos que re-
cojan los cambios de herramientas de desarrollo y de productividad que ha cojan los cambios de herramientas de desarrollo y de productividad que ha
alcanzado la informática en la última década. De momento, el IFPUG actuali- alcanzado la informática en la última década. De momento, el IFPUG actuali-
za la interpretación de los puntos de función de Albrecht creados en el año za la interpretación de los puntos de función de Albrecht creados en el año
1979 y el modelo COCOMO de Barry W. Boehm, que ha dominado el campo 1979 y el modelo COCOMO de Barry W. Boehm, que ha dominado el campo
de la estimación de costes desde 1981, se está actualizando en un COCOMO de la estimación de costes desde 1981, se está actualizando en un COCOMO
II que tenga en cuenta los nuevos ciclos de vida y la nueva informática. II que tenga en cuenta los nuevos ciclos de vida y la nueva informática.
 FUOC • P03/75069/02142 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 Estimación de costes de un proyecto informático
 FUOC • P03/75069/02142 55 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 55 Estimación de costes de un proyecto informático

Actividades Actividades
1. Buscad en cualquier portal o buscador de Internet el nombre COCOMO y podréis ver la 1. Buscad en cualquier portal o buscador de Internet el nombre COCOMO y podréis ver la
gran cantidad de referencias que se dan sobre el modelo más famoso y conocido de la gran cantidad de referencias que se dan sobre el modelo más famoso y conocido de la
estimación algorítmica de costes en proyectos informáticos. En muchas, se pueden obte- estimación algorítmica de costes en proyectos informáticos. En muchas, se pueden obte-
ner herramientas informáticas que ayudan a utilizar el modelo de Barry W. Boehm. ner herramientas informáticas que ayudan a utilizar el modelo de Barry W. Boehm.

2. Si tenéis acceso a alguna instalación o entidad que construya software de aplicación en la 2. Si tenéis acceso a alguna instalación o entidad que construya software de aplicación en la
informática de gestión, haced lo posible para conocer los estándares de productividad informática de gestión, haced lo posible para conocer los estándares de productividad
que aplica o, si no existen, el sistema de estimación de costes que utiliza. Puede ser muy que aplica o, si no existen, el sistema de estimación de costes que utiliza. Puede ser muy
útil comparar estos estándares de productividad con los que menciona la bibliografía téc- útil comparar estos estándares de productividad con los que menciona la bibliografía téc-
nica y que se han comentado en este módulo. nica y que se han comentado en este módulo.

3. Después de haber consultado cuáles son los precios-hora habituales de mercado para un 3. Después de haber consultado cuáles son los precios-hora habituales de mercado para un
jefe de proyecto, un analista y un programador, convertid la estimación de esfuerzo del jefe de proyecto, un analista y un programador, convertid la estimación de esfuerzo del
ejemplo de la contabilidad sencilla en un PC de personas-día a pesetas (o euros). Tenien- ejemplo de la contabilidad sencilla en un PC de personas-día a pesetas (o euros). Tenien-
do en cuenta que se trata de una aplicación muy sencilla, la cifra final obtenida os dará do en cuenta que se trata de una aplicación muy sencilla, la cifra final obtenida os dará
una idea del coste que representa desarrollar proyectos de construcción de software a me- una idea del coste que representa desarrollar proyectos de construcción de software a me-
dida y os hará entender la tendencia actual a la utilización de paquetes (packages) y a la dida y os hará entender la tendencia actual a la utilización de paquetes (packages) y a la
reutilización de todo el software que se pueda en la construcción de aplicaciones nuevas. reutilización de todo el software que se pueda en la construcción de aplicaciones nuevas.

Ejercicios de autoevaluación Ejercicios de autoevaluación


1. ¿Es cierto que la estimación inicial de costes de un proyecto informático con métricas ba- 1. ¿Es cierto que la estimación inicial de costes de un proyecto informático con métricas ba-
sadas en las funcionalidades (puntos de función de Albrecht, por ejemplo) es más obje- sadas en las funcionalidades (puntos de función de Albrecht, por ejemplo) es más obje-
tiva que la estimación efectuada con métricas basadas en el tamaño del proyecto (KLOC, tiva que la estimación efectuada con métricas basadas en el tamaño del proyecto (KLOC,
por ejemplo)? por ejemplo)?

2. Cuando un proyecto informático se retrasa con relación a su planificación inicial, ¿se 2. Cuando un proyecto informático se retrasa con relación a su planificación inicial, ¿se
puede decir que la causa es siempre un defecto de la estimación de costes? puede decir que la causa es siempre un defecto de la estimación de costes?

3. ¿Qué se incluye cuando se habla de medir el tamaño de un proyecto informático en lí- 3. ¿Qué se incluye cuando se habla de medir el tamaño de un proyecto informático en lí-
neas de código? neas de código?

4. ¿En un mismo proyecto, el número de líneas de código escritas en COBOL es mayor o 4. ¿En un mismo proyecto, el número de líneas de código escritas en COBOL es mayor o
más pequeño que las escritas en un lenguaje RAD? más pequeño que las escritas en un lenguaje RAD?

5. ¿Cómo se miden los puntos de función de Albrecht? 5. ¿Cómo se miden los puntos de función de Albrecht?

6. ¿A partir de los años noventa, qué se debe realizar para utilizar bien el modelo teórico de 6. ¿A partir de los años noventa, qué se debe realizar para utilizar bien el modelo teórico de
Putman? Putman?

7. ¿El modelo COCOMO de Boehm, de 1981, es un ejemplo clásico de modelo de estima- 7. ¿El modelo COCOMO de Boehm, de 1981, es un ejemplo clásico de modelo de estima-
ción histórico? ción histórico?

8. ¿Son fiables los modelos algorítmicos de estimación de costes? 8. ¿Son fiables los modelos algorítmicos de estimación de costes?

9. Con vistas a la práctica de la gestión de un proyecto informático, ¿cuál es el problema 9. Con vistas a la práctica de la gestión de un proyecto informático, ¿cuál es el problema
principal que plantean los modelos tradicionales de estimación? principal que plantean los modelos tradicionales de estimación?

10. Una vez obtenida una descomposición de tareas de un proyecto (WBS), ¿se podrían utilizar 10. Una vez obtenida una descomposición de tareas de un proyecto (WBS), ¿se podrían utilizar
los modelos algorítmicos para efectuar la estimación de costes de cada una de las tareas? los modelos algorítmicos para efectuar la estimación de costes de cada una de las tareas?
 FUOC • P03/75069/02142 56 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 56 Estimación de costes de un proyecto informático

Solucionario Solucionario
Ejercicios de autoevaluación Ejercicios de autoevaluación

1. El hecho de utilizar KLOC o puntos de función es, sólo, escoger una métrica determina- 1. El hecho de utilizar KLOC o puntos de función es, sólo, escoger una métrica determina-
da. El problema de la estimación se encuentra en la dificultad de acertar el alcance de un da. El problema de la estimación se encuentra en la dificultad de acertar el alcance de un
proyecto informático (tamaño y/o funcionalidades) justo cuando empieza. Por lo tanto, proyecto informático (tamaño y/o funcionalidades) justo cuando empieza. Por lo tanto,
la estimación basada en KLOC no es más objetiva que la basada en puntos de función de la estimación basada en KLOC no es más objetiva que la basada en puntos de función de
Albrecht. Albrecht.

2. La causa de un retraso en el proyecto no es siempre una mala estimación de costes. Pue- 2. La causa de un retraso en el proyecto no es siempre una mala estimación de costes. Pue-
den darse otros problemas de desarrollo como, por ejemplo, un programador incompe- den darse otros problemas de desarrollo como, por ejemplo, un programador incompe-
tente que no realice su trabajo a tiempo, aunque haya sido bien estimado. En el caso de tente que no realice su trabajo a tiempo, aunque haya sido bien estimado. En el caso de
la informática de gestión no se debe olvidar nunca el problema de los requerimientos cre- la informática de gestión no se debe olvidar nunca el problema de los requerimientos cre-
cientes. cientes.

3. Cuando se hace referencia a medir el tamaño de un proyecto informático en líneas de 3. Cuando se hace referencia a medir el tamaño de un proyecto informático en líneas de
código, se incluyen todas las actividades del proyecto y no sólo la codificación. Es decir, código, se incluyen todas las actividades del proyecto y no sólo la codificación. Es decir,
es necesario tener en cuenta el trabajo que conlleva el estudio de oportunidad, el análisis es necesario tener en cuenta el trabajo que conlleva el estudio de oportunidad, el análisis
de requerimientos, el diseño, la codificación, la integración, todo tipo de pruebas, las ac- de requerimientos, el diseño, la codificación, la integración, todo tipo de pruebas, las ac-
tividades de control y gestión de la calidad, la documentación externa e interna, etc. tividades de control y gestión de la calidad, la documentación externa e interna, etc.

4. En un mismo proyecto, el número de líneas de código escritas en COBOL es mayor que 4. En un mismo proyecto, el número de líneas de código escritas en COBOL es mayor que
el número de líneas escritas en un lenguaje RAD. el número de líneas escritas en un lenguaje RAD.

5. Para medir los puntos de función de Albrecht se efectúa un recuento de las características 5. Para medir los puntos de función de Albrecht se efectúa un recuento de las características
funcionales (entradas, salidas, consultas, ficheros internos e interfaces), teniendo en funcionales (entradas, salidas, consultas, ficheros internos e interfaces), teniendo en
cuenta si tienen una complejidad baja, media o alta. Una vez ponderadas estas cifras con cuenta si tienen una complejidad baja, media o alta. Una vez ponderadas estas cifras con
los pesos que fijó Albrecht, se obtienen los puntos de función sin ajustar, que se corrigen los pesos que fijó Albrecht, se obtienen los puntos de función sin ajustar, que se corrigen
teniendo en cuenta las características generales del sistema (catorce valores que deben es- teniendo en cuenta las características generales del sistema (catorce valores que deben es-
timarse, cada uno entre 0 y 5) que determinan el grado total de influencia, hecho que da timarse, cada uno entre 0 y 5) que determinan el grado total de influencia, hecho que da
el valor final de los puntos de función mediante las fórmulas siguientes: el valor final de los puntos de función mediante las fórmulas siguientes:

• PCA = 0,65 + (0,01 · TDI). • PCA = 0,65 + (0,01 · TDI).

• FP = TUFP · PCA. • FP = TUFP · PCA.

6. Para utilizar el modelo teórico de Putman correctamente a partir de los años noventa, se 6. Para utilizar el modelo teórico de Putman correctamente a partir de los años noventa, se
debe adquirir la herramienta de ayuda SLIM, que incorpora todo el modelo y lo mantiene debe adquirir la herramienta de ayuda SLIM, que incorpora todo el modelo y lo mantiene
actualizado. actualizado.

7. El modelo COCOMO, aunque es de 1981, es un modelo que forma parte de la historia, 7. El modelo COCOMO, aunque es de 1981, es un modelo que forma parte de la historia,
pero no es un ejemplo clásico de modelo de estimación histórico, sino el paradigma de pero no es un ejemplo clásico de modelo de estimación histórico, sino el paradigma de
los modelos de estimación denominados modelos compuestos. los modelos de estimación denominados modelos compuestos.

8. Los modelos algorítmicos de estimación de costes son fiables si el proyecto que se quiere 8. Los modelos algorítmicos de estimación de costes son fiables si el proyecto que se quiere
evaluar es semejante a los proyectos que sirvieron para establecer el modelo y los coefi- evaluar es semejante a los proyectos que sirvieron para establecer el modelo y los coefi-
cientes de sus fórmulas. Desgraciadamente, los modelos clásicos de estimación de costes cientes de sus fórmulas. Desgraciadamente, los modelos clásicos de estimación de costes
se obtuvieron hace ya muchos años y la informática ha cambiado demasiado para esperar se obtuvieron hace ya muchos años y la informática ha cambiado demasiado para esperar
que los datos obtenidos de los modelos sean completamente aplicables hoy en día. que los datos obtenidos de los modelos sean completamente aplicables hoy en día.

9. Los modelos tradicionales de estimación de costes suelen dar una única cifra para todo 9. Los modelos tradicionales de estimación de costes suelen dar una única cifra para todo
el proyecto, tanto con respecto a LOC, FP, o al esfuerzo necesario para implementar el el proyecto, tanto con respecto a LOC, FP, o al esfuerzo necesario para implementar el
proyecto. En la práctica, la planificación y el seguimiento se realizan mejor si se dispone proyecto. En la práctica, la planificación y el seguimiento se realizan mejor si se dispone
de una descomposición del proyecto en diferentes actividades y tareas que se puedan pla- de una descomposición del proyecto en diferentes actividades y tareas que se puedan pla-
nificar y controlar una por una. nificar y controlar una por una.

10. Los modelos algorítmicos se obtuvieron en proyectos más bien muy grandes y, por lo 10. Los modelos algorítmicos se obtuvieron en proyectos más bien muy grandes y, por lo
tanto, sus fórmulas no son aplicables a tareas pequeñas. Así pues, no podemos utilizar tanto, sus fórmulas no son aplicables a tareas pequeñas. Así pues, no podemos utilizar
estos modelos para llevar a cabo la estimación de costes de cada una de las tareas en las estos modelos para llevar a cabo la estimación de costes de cada una de las tareas en las
que hayamos descompuesto un proyecto. que hayamos descompuesto un proyecto.

Glosario Glosario
CDA f Cada una de las variables de los modelos empíricos que se cree que inciden en el coste. CDA f Cada una de las variables de los modelos empíricos que se cree que inciden en el coste.

COCOMO m Modelo algorítmico de estimación de costes muy conocido y utilizado, desa- COCOMO m Modelo algorítmico de estimación de costes muy conocido y utilizado, desa-
rrollado por Barry W. Boehm a partir de 1981. Actualmente está en curso una revisión con rrollado por Barry W. Boehm a partir de 1981. Actualmente está en curso una revisión con
el nombre COCOMO II. el nombre COCOMO II.

DET m Número de elementos, o campos de datos, de un fichero. DET m Número de elementos, o campos de datos, de un fichero.
 FUOC • P03/75069/02142 57 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 57 Estimación de costes de un proyecto informático

DSI f Instrucciones de código fuente entregadas realmente. DSI f Instrucciones de código fuente entregadas realmente.

EI f Entradas externas que hacen referencia a los tratamientos que procesan datos o infor- EI f Entradas externas que hacen referencia a los tratamientos que procesan datos o infor-
mación de control que se introduce a la aplicación desde fuera de sus límites. mación de control que se introduce a la aplicación desde fuera de sus límites.

EIF f Ficheros de interfaces externas. EIF f Ficheros de interfaces externas.

EO f Salidas externas. EO f Salidas externas.

EQ f Consultas externas. EQ f Consultas externas.

estándares de productividad m Datos propios de una instalación sobre la productividad estándares de productividad m Datos propios de una instalación sobre la productividad
en la construcción de software, obtenidos a partir de proyectos anteriores, tipificando los re- en la construcción de software, obtenidos a partir de proyectos anteriores, tipificando los re-
sultados. sultados.

FP m Puntos de función. FP m Puntos de función.

hombre-mes o persona-mes m y f Unidad de medida que representa un mes de trabajo hombre-mes o persona-mes m y f Unidad de medida que representa un mes de trabajo
de una persona del equipo de profesionales que trabaja en un proyecto informático. de una persona del equipo de profesionales que trabaja en un proyecto informático.

IFPUG m Grupo internacional de usuarios de los puntos de función. IFPUG m Grupo internacional de usuarios de los puntos de función.

indicador de software m Combinación de diferentes métricas que proporciona una visión indicador de software m Combinación de diferentes métricas que proporciona una visión
resumida del producto o del proceso de construcción de software. resumida del producto o del proceso de construcción de software.

KDSI f Miles de DSI. KDSI f Miles de DSI.

KLOC f Miles de líneas de código. KLOC f Miles de líneas de código.

LIF m Ficheros lógicos internos. LIF m Ficheros lógicos internos.

líneas de código f Unidad de medida (que a menudo se cuenta de mil en mil, en KLOC) líneas de código f Unidad de medida (que a menudo se cuenta de mil en mil, en KLOC)
que incluye en el recuento, además de las líneas codificadas, las directivas de compilación, que incluye en el recuento, además de las líneas codificadas, las directivas de compilación,
las declaraciones de las estructuras de datos y el código ejecutable; no se cuentan los comen- las declaraciones de las estructuras de datos y el código ejecutable; no se cuentan los comen-
tarios y las líneas generadas automáticamente por el entorno de programación o que son fru- tarios y las líneas generadas automáticamente por el entorno de programación o que son fru-
to de reutilización. to de reutilización.
sigla: LOC sigla: LOC

LOC f Véase líneas de código LOC f Véase líneas de código

métrica de software f Asignación de valor a un atributo de una entidad propia del software, métrica de software f Asignación de valor a un atributo de una entidad propia del software,
ya sea un producto o un proceso. ya sea un producto o un proceso.

métricas de productividad f Métricas que recogen la eficiencia del proceso de produc- métricas de productividad f Métricas que recogen la eficiencia del proceso de produc-
ción de software y relacionan el software construido con el esfuerzo que ha costado obtenerlo. ción de software y relacionan el software construido con el esfuerzo que ha costado obtenerlo.

NCSS f Líneas de código fuente que no tienen en cuenta los comentarios. NCSS f Líneas de código fuente que no tienen en cuenta los comentarios.

NSLOC f Nuevas líneas de código fuente. NSLOC f Nuevas líneas de código fuente.

OBS f Véase organization breakdown structure OBS f Véase organization breakdown structure

organization breakdown structure f Descomposición de la organización para atender organization breakdown structure f Descomposición de la organización para atender
todas las tareas del proyecto. todas las tareas del proyecto.
sigla: OBS sigla: OBS

PBS f Véase product breakdown structure PBS f Véase product breakdown structure

PCA m Ajuste por la complejidad del proceso. PCA m Ajuste por la complejidad del proceso.

product breakdown structure f Descomposición en partes del producto final: tablas de product breakdown structure f Descomposición en partes del producto final: tablas de
la base de datos, formularios, programas, módulos, transacciones, etc. la base de datos, formularios, programas, módulos, transacciones, etc.
sigla: PBS sigla: PBS

puntos de función m Métrica creada por Albrecht en el año 1979 que pretende recoger las puntos de función m Métrica creada por Albrecht en el año 1979 que pretende recoger las
funcionalidades como medida de la dificultad de construir un software. El método de cálculo funcionalidades como medida de la dificultad de construir un software. El método de cálculo
realiza el recuento de unas características funcionales (entradas, salidas, consultas, ficheros realiza el recuento de unas características funcionales (entradas, salidas, consultas, ficheros
internos e interfaces), teniendo en cuenta la complejidad, y, después, corrige el valor obteni- internos e interfaces), teniendo en cuenta la complejidad, y, después, corrige el valor obteni-
do mediante la estimación de hasta catorce características generales que determinan el en- do mediante la estimación de hasta catorce características generales que determinan el en-
torno de trabajo y del proyecto. torno de trabajo y del proyecto.
 FUOC • P03/75069/02142 58 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 58 Estimación de costes de un proyecto informático

RAD m Véase rapid application development RAD m Véase rapid application development

rapid application development m Desarrollo rápido de aplicaciones que permiten nue- rapid application development m Desarrollo rápido de aplicaciones que permiten nue-
vas herramientas como, por ejemplo, PowerBuilder, Visual Basic o Delphi, que seguramente vas herramientas como, por ejemplo, PowerBuilder, Visual Basic o Delphi, que seguramente
son las más utilizadas actualmente. son las más utilizadas actualmente.
sigla: RAD sigla: RAD

RET m Número de registros elementales diferentes. RET m Número de registros elementales diferentes.

TDI m Grado total de influencia. TDI m Grado total de influencia.

TUFP m Total de puntos de función sin ajustar. TUFP m Total de puntos de función sin ajustar.

WBS f Véase work breakdown structure WBS f Véase work breakdown structure

WIMP m y f Sigla de windows, icons, mouse y pop-up menu, es decir, ventanas, iconos, ratón WIMP m y f Sigla de windows, icons, mouse y pop-up menu, es decir, ventanas, iconos, ratón
y menús desplegables. Es el paradigma de la manera más moderna y más evolucionada para y menús desplegables. Es el paradigma de la manera más moderna y más evolucionada para
construir diálogos persona-ordenador. construir diálogos persona-ordenador.

work breakdown structure f Descomposición estructural de los trabajos que se deben rea- work breakdown structure f Descomposición estructural de los trabajos que se deben rea-
lizar, es decir, la lista estructurada de todas las actividades y tareas de un proyecto. lizar, es decir, la lista estructurada de todas las actividades y tareas de un proyecto.
sigla: WBS sigla: WBS

Bibliografía Bibliografía
Albrecht, A.J. (1979). “Measuring Application Development Productivity” (pág. 83-92). Albrecht, A.J. (1979). “Measuring Application Development Productivity” (pág. 83-92).
Proceedings joint SHARE/GUIDE/IBM applications development symposium (14 a 17 de octubre de Proceedings joint SHARE/GUIDE/IBM applications development symposium (14 a 17 de octubre de
1979). Monterrey. 1979). Monterrey.

Albrecht, A.J.; Gaffney Jr., J.E. (1983). “Software Function, Source Lines of Code, and Albrecht, A.J.; Gaffney Jr., J.E. (1983). “Software Function, Source Lines of Code, and
Development Effort Prediction: A Software Science Validation”. IEEE transactions on Development Effort Prediction: A Software Science Validation”. IEEE transactions on
software engineering (vol. SE-9, núm. 6, noviembre, pág. 639-648). software engineering (vol. SE-9, núm. 6, noviembre, pág. 639-648).

Boehm, B.W. (1981). Software Engineering Economics. Englewood Cliffs: Prentice Hall. Boehm, B.W. (1981). Software Engineering Economics. Englewood Cliffs: Prentice Hall.

Boehm, B.W. y otros (1995). “Cost Models for Future Software Life Cycle Processes: COCOMO Boehm, B.W. y otros (1995). “Cost Models for Future Software Life Cycle Processes: COCOMO
2.0”. J.D. Arthur y S.M. Henrio (ed.). Annals of Software Engineering, Special Volume On Software Pro- 2.0”. J.D. Arthur y S.M. Henrio (ed.). Annals of Software Engineering, Special Volume On Software Pro-
cess and Product Measurement (vol. 1, pág. 57-94). Amsterdam: J.C. Baltzer, AG, Science Publishers. cess and Product Measurement (vol. 1, pág. 57-94). Amsterdam: J.C. Baltzer, AG, Science Publishers.

Brooks, F. (1975). The Mythical Man-Month. Reading: Addison-Wesley. Brooks, F. (1975). The Mythical Man-Month. Reading: Addison-Wesley.

Cantor, M.R. (1998). Object-oriented Project Management with UML. Nueva York: John Wiley Cantor, M.R. (1998). Object-oriented Project Management with UML. Nueva York: John Wiley
& Sons. & Sons.

Grady, R.O. (1992). Practical Software Metrics for Project Management and Process Improvement. Grady, R.O. (1992). Practical Software Metrics for Project Management and Process Improvement.
Englewood Cliffs: Prentice Hall (Hewlett Packard Professional Books). Englewood Cliffs: Prentice Hall (Hewlett Packard Professional Books).

Horowitz E. y otros (1997). USC COCOMO II, 1997 Reference Manual. Los Ángeles: USC- SCE Horowitz E. y otros (1997). USC COCOMO II, 1997 Reference Manual. Los Ángeles: USC- SCE
Technical Report. Technical Report.

IEEE (1993). IEEE Standard for Software Productivity Metrics. Nueva York: IEEE. IEEE (1993). IEEE Standard for Software Productivity Metrics. Nueva York: IEEE.

Jones C.T. (1986). Programming Productivity. Nueva York: McGraw-Hill. Jones C.T. (1986). Programming Productivity. Nueva York: McGraw-Hill.

Jones, C.T. (1996). “Software Estimating Rules of Thumb”. IEEE computer (marzo, pág. 116-118). Jones, C.T. (1996). “Software Estimating Rules of Thumb”. IEEE computer (marzo, pág. 116-118).

Jones, C.T. (1996). “Activity-based Software Costing”. IEEE computer (mayo, pág. 103-104). Jones, C.T. (1996). “Activity-based Software Costing”. IEEE computer (mayo, pág. 103-104).

Londeix, B. (1987). Cost Estimation for Software Development. Reading (Massachusetts): Londeix, B. (1987). Cost Estimation for Software Development. Reading (Massachusetts):
Addison-Wesley. Addison-Wesley.

Marco, T. de. (1982). Controlling Software Projects. Englewood Cliffs: Yourdon Press (Prentice Marco, T. de. (1982). Controlling Software Projects. Englewood Cliffs: Yourdon Press (Prentice
Hall). Hall).

Möller, K.H.; Paulish, D.J. (1993). Software Metrics: A Practitioner’s Guide to Improved Product Möller, K.H.; Paulish, D.J. (1993). Software Metrics: A Practitioner’s Guide to Improved Product
Development. Londres: Chapman & Hall, IEEE Press. Development. Londres: Chapman & Hall, IEEE Press.

Pressman, R.S. (1998). Ingeniería del software: un enfoque práctico (4.ª ed.). Madrid: McGraw- Hill. Pressman, R.S. (1998). Ingeniería del software: un enfoque práctico (4.ª ed.). Madrid: McGraw- Hill.

Putman, L.H. (1978). “A General Empirical Solution to the Macro Software Sizing and Estima- Putman, L.H. (1978). “A General Empirical Solution to the Macro Software Sizing and Estima-
tion Problem”. IEEE Transactions on Software Engineering (vol. SE-4, núm. 4, julio, pág. 345-361). tion Problem”. IEEE Transactions on Software Engineering (vol. SE-4, núm. 4, julio, pág. 345-361).
 FUOC • P03/75069/02142 59 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 59 Estimación de costes de un proyecto informático

Putman, L.H. (1981). “SLIM, A Quantitative Tool for Software Cost and Schedule Estima- Putman, L.H. (1981). “SLIM, A Quantitative Tool for Software Cost and Schedule Estima-
tion (A Demonstration of a Software Management Tool)”. Proceedings of the NBS/IEEE/ACM tion (A Demonstration of a Software Management Tool)”. Proceedings of the NBS/IEEE/ACM
software tool fair (marzo, pág. 49-57). software tool fair (marzo, pág. 49-57).

Putman L.; Myers, W. (1992). Measures for Excellence. Englewood Cliffs: Yourdon Press. Putman L.; Myers, W. (1992). Measures for Excellence. Englewood Cliffs: Yourdon Press.

Roetzheim, W.H.; Beasley, R.A. (1998). Software Project Cost & Schedule Stimating: Best Roetzheim, W.H.; Beasley, R.A. (1998). Software Project Cost & Schedule Stimating: Best
Practices. Upper Saddle River: Prentice Hall. Practices. Upper Saddle River: Prentice Hall.

Royce, W. (1998). Software Project Management: A Unified Framework. Reading: Addison-Wesley Royce, W. (1998). Software Project Management: A Unified Framework. Reading: Addison-Wesley
(Object Technology Series). (Object Technology Series).

Sommerville, I. (1996). Software Engineering (5.ª ed.). Reading: Addison-Wesley. Sommerville, I. (1996). Software Engineering (5.ª ed.). Reading: Addison-Wesley.

Walston C.E; Felix C.p. (1977). “A Method Of Programming Measurement And Estima- Walston C.E; Felix C.p. (1977). “A Method Of Programming Measurement And Estima-
tion”. Ibm Systems journal (núm. 1, pág. 54-73). tion”. Ibm Systems journal (núm. 1, pág. 54-73).
 FUOC • P03/75069/02142 Estimación de costes de un proyecto informático  FUOC • P03/75069/02142 Estimación de costes de un proyecto informático

También podría gustarte