est imac ion de costes de un proyecto informatico
TRANSCRIPT
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
1/60
Estimacin
de costes deun proyecto
informticoMtricas de productividad y modelosde estimacin de costes
Miquel Barcel Garca
P03/75069/02142
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
2/60
FUOC P03/75069/02142 Estimacin de costes de un proyecto informtico
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
3/60
FUOC P03/75069/02142 Estimacin de costes de un proyecto informtico
ndice
Introduccin .............................................................................................. 5
Objetivos ..................................................................................................... 7
1. Mtricas del software.......................................................................... 91.1. Mtricas del producto y del proceso ................................................. 10
1.2. Mtricas de calidad y de productividad ............................................ 11
1.3. El esfuerzo y la medida de la productividad .................................... 13
1.3.1. Los problemas terminolgicos del hombre-mes ...................13
1.3.2. El mito del hombre-mes ........................................................14
1.4. Mtricas orientadas al tamao y a la funcin .................................. 151.4.1. Las lneas de cdigo .............................................................. 16
1.4.2. Los puntos de funcin .......................................................... 21
1.4.3. Relacin entre puntos de funcin y lneas de cdigo ........... 26
1.4.4. Una perplejidad final ............................................................28
2. Estimacin de costes de un proyecto informtico ..................... 292.1. Momento de la estimacin y grado de exactitud ............................. 30
2.2. Los mtodos de estimacin posibles segn Barry W. Boehm ..........31
2.3. Modelos de estimacin ..................................................................... 33
2.3.1. Modelos histricos ................................................................ 352.3.2. Modelos empricos o estadsticos .......................................... 36
2.3.3. Modelos tericos: el modelo de Putman ............................... 38
2.3.4. Modelos compuestos: los modelos COCOMO
de Barry W. Boehm ............................................................... 40
2.3.5. El uso de estndares de productividad .................................. 44
2.4. Prctica real de la estimacin ........................................................... 47
2.4.1. Un ejemplo: contabilidad sencilla en un PC ........................ 49
Resumen ...................................................................................................... 53
Actividades ................................................................................................. 55
Ejercicios de autoevaluacin ................................................................. 55
Solucionario ............................................................................................... 56
Glosario ....................................................................................................... 56
Bibliografa ................................................................................................ 58
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
4/60
FUOC P03/75069/02142 Estimacin de costes de un proyecto informtico
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
5/60
FUOC P03/75069/02142 5 Estimacin de costes de un proyecto informtico
Introduccin
Cuando se inicia un proyecto informtico se conocen muy pocas de las funcio-nalidades que se deben implementar. A pesar de todo, a veces debe realizarse
una estimacin de los costes necesarios para construir un software de aplicacin,
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
manera, la especificacin o el anlisis es una de las primeras etapas de las que
consta el complejo proceso de construccin de software de aplicacin en la in-
formtica de gestin). Sin embargo, aunque esto sea as, a menudo antes de
empezar se debe llevar a cabo una primera estimacin de costes que, simple-
mente, sea objetiva y que tenga unas mnimas posibilidades de convertirse en
realidad.
Por tanto, debemos disponer, en primer lugar, de diferentes unidades de medida
que nos puedan ser tiles para caracterizar y medir varias funcionalidades del
software que se quiere implentar: el tamao del proyecto, la evaluacin de la ca-
lidad y la fiabilidad, etc. Y, adems, necesitamos unidades de medida que nos
permitan asociar estas funcionalidades con el esfuerzo que cuesta implementar-
las; es decir, debemos tener referencias sobre la productividad en la construc-
cin de software.
En este mdulo didctico analizamos algunas de las muchas mtricas del
software, con atencin especial a las mtricas de tamao (LOC), funcionali-
dades (puntos de funcin) y productividad (esfuerzo), que son las ms ade-
cuadas para llevar a cabo una buena estimacin de los costes de construccin
de un software de aplicacin determinado.
En la construccin de software interviene un conjunto de costes muy variado,
sin embargo, tal como se menciona en el mdulo El proyecto informtico de
construccin de software, dominan los costes del personal tcnico que inter-viene en la construccin del software, a menudo caracterizados como jefes de
proyecto, analistas y programadores. Por tanto, estimar el trabajo de los dife-
rentes profesionales involucrados en un proyecto en horas o das es la manera
habitual de considerar los costes ms relevantes en el proceso de construccin
de software de aplicacin.
Sin embargo, el hecho de disponer de unidades de medida no es suficiente. Es
necesario tambin conocer los diferentes modelos que, desde hace unos trein-
ta aos, se utilizan para estimar los costes de un proyecto informtico.
Cabe mencionar que algunos de estos modelos estn prcticamente obsoletos
y no son nada adecuados para la informtica de nuestros das. De hecho, du-
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
6/60
FUOC P03/75069/02142 6 Estimacin de costes de un proyecto informtico
rante la ltima dcada, los cambios en la construccin del software han sido
tantos y tan rpidos que, a menudo, los modelos de estimacin disponibles no
parecen los ms adecuados para la compleja y difcil tarea de estimar los cos-
tes. Es cierto que se revisan los modelos ms importantes, pero la falta de datos
concretos y generalizables provoca que todava no se hayan sustituido del
todo los modelos tradicionales.
En este mdulo, adems de exponer las mtricas o las unidades de medida ms
habituales, presentamos de manera crtica los diferentes modelos de estima-
cin que existen y que forman el mbito de conocimiento que debe tener un
buen jefe de proyecto sobre el tema de la estimacin de costes.
El mdulo termina con un ejemplo prctico y concreto sobre el proyecto de
construir una pequea aplicacin de contabilidad.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
7/60
FUOC P03/75069/02142 7 Estimacin de costes de un proyecto informtico
Objetivos
En este mdulo presentamos la primera de las etapas de la gestin de un pro-yecto informtico: la estimacin previa de los posibles costes en la construc-
cin de software de aplicacin en la informtica de gestin. Con el estudio de
los materiales asociados a este mdulo didctico, el estudiante debe poder al-
canzar los siguientes objetivos:
1. Conocer el problema de las mtricas de software, sobre todo las quesirven
para medir el tamao de un proyecto, las funcionalidades que se quieren
implementar y, especialmente, la productividad que se puede alcanzar.
2. Comprender lo que se denomina el mito del hombre-mes, es decir, las difi-
cultades asociadas a la unidad ms habitual utilizada para medir el esfuerzo
humano en la construccin de software (por ejemplo, la persona-mes).
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
combinaciones y debe darse un reparto concreto y especfico del esfuerzo
a lo largo de los meses del proyecto.
3. Conocer las caractersticas, las ventajas y los inconvenientes de las mtricas
de tamao (lneas de cdigo) y funcionalidad (puntos de funcin) y su po-sible interrelacin.
4. Conocer la orden de magnitud de las ratios habituales de productividad en
la construccin de software de aplicacin en la informtica de gestin.
5. Comprender que el grado de incertidumbre en la estimacin de costes de
un proyecto informtico es francamente elevado cuando empieza el pro-
yecto, pero a medida que ste avanza se puede reducir del todo.
6. Conocer de manera crtica los diferentes modelos de estimacin de costesen la construccin de software que se han utilizado en los ltimos aos, las
caractersticas y los puntos fuertes y dbiles que tienen.
7. Entender un posible proceso prctico de estimacin de costes con un siste-
ma ascendente (bottom-up) a partir de una descomposicin del proyecto en
varias tareas y la estimacin directa de cada tarea por separado.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
8/60
FUOC P03/75069/02142 Estimacin de costes de un proyecto informtico
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
9/60
FUOC P03/75069/02142 9 Estimacin de costes de un proyecto informtico
1. Mtricas del software
Para efectuar una estimacin correcta de los costes de un proyecto informticode construccin de software, se debe disponer de unidades de medida que nos
permitan relacionar las diferentes actividades de la construccin del software
con el esfuerzo en horas de trabajo o con el coste monetario que representa
tener su construccin. sta es una cuestin que se intenta resolver a partir de
las diferentes mtricas de productividad o, si se quiere, de las diversas unidades
con las que se puede medir la construccin del software.
De hecho, medir el software no es en absoluto una actividad sencilla. Se puede
decir que toda magnitud fsica se puede medir, pero el software es, sobre todo,el resultado de una actividad bsicamente intelectual, tanto en el origen como
en el resultado final. De hecho, la dificultad de medir el software ha provocado
el nacimiento de varias mtricas o unidades de medida que intentan cuantifi-
car diferentes aspectos que pueden ser relevantes en el software.
En esta definicin de mtrica se incluyen tres conceptos que conviene especi-
ficar de manera diferenciada:
Cuando hablamos de un atributo nos referimos a una determinada carac-
terstica que pretendemos medir y cuantificar*.
Cuando hablamos de un producto nos referimos, por ejemplo, a un cdi-
go, un diseo, una especificacin, etc.
Cuando se habla de un proceso se hace referencia a una etapa de la cons-
truccin del software y a la manera de llevarlo a cabo: un diseo, unas prue-
bas, etc.
Reproducimos a continuacin una definicin estricta de lo que es una mtrica de
software y que podis encontrar en el Standard Glossary of Software Engineering Terms
del IEEE.
Una mtrica es, pues, una asignacin de valor a un atributo de una en-
tidad propia del software, ya sea un producto o un proceso.
Una mtrica de softwarees una medida cuantitativa del grado en el
que un sistema, un componente o un proceso posee un determinado
atributo.
* Como podran ser el esfuerzo,la fiabilidad, la mantenibilidad,
la calidad o el tamao.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
10/60
FUOC P03/75069/02142 10 Estimacin de costes de un proyecto informtico
Existe una variedad impresionante de mtricas de software y, de hecho, mu-
chos autores han ido sugiriendo diferentes unidades de medida para evaluar y
cuantificar diversos aspectos considerados importantes en el software.
A menudo las mtricas se utilizan para evaluar un determinado aspecto del
software que ya existe, pero tambin para estimar a priori determinadas magni-
tudes de un software que an est por elaborar. Cabe decir, de entrada, que no
se puede llevar a cabo una estimacin posible de proyectos informticos futu-ros si no se dispone, desde el inicio, de los datos obtenidos en la evaluacin de
proyectos anteriores.
En el momento de realizar la estimacin de costes, las mtricas de productivi-
dad son las que tienen ms relevancia en la calificacin de un proyecto infor-
mtico.Por ello, aqu nos centraremos muy especialmente en dichas mtricas.
Como veremos, se dan diversos modelos para efectuar esta estimacin, pero,
evidentemente, todos se basan, de una manera o de otra, en los datos obteni-
dos en la evaluacin de proyectos anteriores. La eleccin de una mtrica enconcreto suele ser un aspecto primordial en los diferentes modelos de estima-
cin.
Cabe mencionar que, a pesar de disponer de mtricas bien escogidas e incorpora-
das a un proceso de construccin de software, contina habiendo problemas.
En definitiva, se debe tener un criterio para adoptar y utilizar una mtrica
de software. Como siempre que se mide, el hecho de disponer de unidades
de medida e, incluso, de estndares, no aleja, ms bien al contrario, la in-evitable necesidad de pensar. Disponer de mtricas puede ser una ayuda,
pero no lo es todo.
1.1. Mtricas del producto y del proceso
Una primera subdivisin de las muchas mtricas que existen las clasifica en los
dos tipos siguientes:
1) Las mtricas del producto, que miden diferentes aspectos del software ob-tenido, a menudo a partir de cdigo fuente expresado en un lenguaje inform-
tico determinado*.
En general, se puede decir que las diferentes mtricas intentan evaluartres grandes magnitudes generales: la calidad y el tamao (a menudo
del producto) y la productividad (frecuentemente del proceso de cons-
truccin del producto), aunque lo hacen desde muchos puntos de vista
diferentes.
Podis ver diferentes modelos deestimacin de costes en el apartado2 de este mdulo didctico.
La falibilidadde las mtricas
La aceptacin, que es muy fre-cuente, de las lneas de cdigocomo unidad de medida deltamao de un proyecto infor-mtico no evita errores deapreciacin (considerar o no
los comentarios o las lneas enblanco), de recuento (cada vezhay ms lneas de cdigo ge-neradas de manera automticapor las herramientas de desa-rrollo), de generalizacin (paraun mismo tratamiento, se ne-cesita un nmero diferente delneas de cdigo en funcin dellenguaje de programacin uti-lizado), etc.
* Lenguajes de programacin,de diseo, de especificacin, etc.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
11/60
FUOC P03/75069/02142 11 Estimacin de costes de un proyecto informtico
2) Las mtricas del proceso, que intentan medir determinados atributos que
hacen referencia al entorno de desarrollo del software y tienen en cuenta la
manera de construirlo.
A menudo, las mtricas se pueden utilizar solas o combinadas, es decir, como
indicadores que permiten proporcionar una visin resumida del producto desoftware o del proceso de su construccin:
1) Los indicadores de producto referidos, evidentemente, al software obteni-
dopueden servir para evaluar la calidad del proceso de construccin de soft-
ware, siempre de manera comparativa con estndares de mercado o con
niveles alcanzados en otros productos.
Cabe mencionar que los indicadores de producto a menudo no estn realmen-
te disponibles hasta que no lo est el producto en s, es decir, a posteriori, cuan-
do el software de aplicacin ya se encuentra en disposicin de entrar en la
etapa de explotacin.
2) Los indicadores de proceso han de permitir conocer la eficacia de una ins-
talacinsimplemente por comparacin con los indicadores que es capaz de
conseguir respecto de los que la literatura tcnica publica.
En la ltima dcada 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
programa de mtricas de software**, que, una vez decididas unas determinadas uni-dades de medida, intenta introducir en el proceso de desarrollo y construccin de
software la buena prctica de medir diferentes aspectos y cuantificar al mximo
posible buena parte de los aspectos de la gestin de la construccin de software de
aplicacin. El hecho de disponer de estas informaciones objetivas es de gran ayu-
da en la calificacin de proyectos informticos futuros.
1.2. Mtricas de calidad y de productividad
Las diferentes unidades de medida para cuantificar el software intentan deter-
minar sus caractersticas, que se pueden resumir en calidad del producto y pro-
ductividad del proceso.
En el caso de la informtica de gestin, a menudo estas necesidades provienen
de un contrato entre el cliente y el proveedor de software, aunque, como se
La calidad de un producto, segn la definicin del estndar ISO 8402,
es el conjunto de funcionalidades y caractersticas de un producto o ser-
vicio que se centran en su capacidad de satisfacer las necesidades, ya sea
implcitas o bien explicitadas claramente, de un cliente o usuario.
Como indicadorde producto...
... se puede utilizar, por ejem-plo, el nmero de errores deun software, aunque es tam-bin un indicador claro de lacalidad del proceso de cons-truccin utilizado para obtenereste software.
Como indicadorde proceso...
... si se utiliza, por ejemplo, elnmero de lneas de cdigopor persona y mes, como la ci-fra ms o menos estndar pu-blicada en los aos noventasera de 350 lneas de cdigopor persona y mes en un pro-yecto medio, una instalacinque slo consiguiera 200 sa-bra que est todava lejos de loque debera ser factible en elestado actual del arte.
* En ingls, Software ProcessMaturity.
** En ingls, Software MetricsProgram.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
12/60
FUOC P03/75069/02142 12 Estimacin de costes de un proyecto informtico
dice en otro mdulo, es muy difcil que todas las necesidades queden explici-
tadas convenientemente en los requerimientos.
A menudo, las mtricas de calidad forman parte de lo que se denominan medi-
dasindirectas del producto, junto con las mtricas de funcionalidad, complejidad,
eficiencia, fiabilidad, facilidad de mantenimiento y tantas otras capacidades en
cierta manera difciles de medir objetivamente.
En el caso de la productividad, es mucho ms fcil encontrar medidas directas,
como las diferentes maneras de determinar el tamao del producto obtenido
(las lneas de cdigo o los puntos de funcin, por ejemplo) relacionndolo con
el tiempo y/o el esfuerzo que ha costado obtenerlo.
Las unidades de medida como indicadores
A menudo las diferentes unidades de medida se combinan en indicadores resumidos,como ejemplos podemos encontrar, entre otros, los siguientes:
Lneas de cdigo por persona y da (indicador de productividad). Horas para implementar un punto de funcin (indicador de productividad). Nmero de errores por cada mil lneas de cdigo (indicador de calidad). Pesetas por cada millar de lneas de cdigo (indicador de coste). Pginas de documentacin por cada mil lneas de cdigo (indicador de documentacin).
En la terminologa del estndar de mtricas de productividad de software del
Instituto de Ingenieros Elctricos y Electrnicos (IEEE Standard for Software Pro-
ductivity Metrics) de 1993, se habla de primitiva para hacer referencia al nivel
msbajo en el que se recogen los datos. Evidentemente, podemos encontrar
primitivas de dos tipos:
De salida*, que recogen las caractersticas finales del software.
De entrada**, que miden lo que ha sido necesario tener y utilizar para
construirel software.
Las mtricas de calidad se asocian a unos determinados atributos
medibles, no siempre evidentes, para reconocer la presencia o ausen-
cia de calidad.
Las mtricas de productividad recogen la eficiencia del proceso de
produccin de software y relacionan el software que se ha construido conel esfuerzo que ha costado elaborarlo.
Una ratio de productividad es una relacin que se suele establecer para
tener en cuenta la productividad entre las primitivas de salida, es decir,
las unidades que miden la salida del proceso de construccin de software
y las primitivas de entrada, que miden las entradas en el proceso de
construccin de software.
Algunas medidasdirectas...
... seran las lneas de cdigo, elcoste, el esfuerzo, el nmerode errores, la velocidad de eje-cucin, la memoria ocupadapor un programa, los puntosde funcin de Albrecht, etc.
* En ingls, output primitives.
** En ingls, input primitives.
Primitivas de entraday de salida
Algunos ejemplos de primiti-vas de salida son las lneas decdigo, el nmero de errores,los puntos de funcin, el n-mero de pginas de docu-mentacin, etc.
Por otra parte, ejemplos de pri-mitivas de entrada son el esfuer-zo en horas de trabajo de unapersona, el coste en pesetas, etc.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
13/60
FUOC P03/75069/02142 13 Estimacin de costes de un proyecto informtico
1.3. El esfuerzo y la medida de la productividad
Con vistas a tratar la productividad en el proceso de construccin de software
de aplicacin, independientemente de cules sean las primitivas de salida uti-
lizadas (generalmente, las lneas de cdigo o los puntos de funcin que estu-
diaremos ms adelante), las primitivas de entrada intentan a menudo medirel 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
salida.
Como se explica en otro mdulo, casi siempre el coste se asocia o es propor-
cional al esfuerzo que supone el trabajo, ya que los recursos humanos que in-
tervienen en un proyecto informtico son, hoy en da, los ms importantes.
Aunque conviene no olvidar que pueden darse otros costes para el hardware,
el software de desarrollo, etc., a menudo se hace la simplificacin de asociar
coste y esfuerzo en un proyecto informtico, aunque se expresen en unidades
diferentes.
Cabe mencionar que, como siempre que se efectan generalizaciones de
este tipo, se piensa en un profesional de cualificacin media, con una bue-
na formacin o una experiencia adecuada para la tarea que debe realizar y
una capacidad de trabajo media. Es evidente que en un equipo de proyecto
intervienen todo tipo de profesionales, algunos ms eficientes o ms moti-
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
deben llevar a cabo. Sin embargo, en el tratamiento general de las mtricas
de productividad se piensa en un profesional genrico con capacidades,motivacin y dedicacin medias.
1.3.1. Los problemas terminolgicos del hombre-mes
En los proyectos informticos se han utilizado diferentes denominaciones de
la unidad de esfuerzo, como las siguientes:
1) En primer lugar, se habl de hombre-mes como la tarea que llevaba a cabo
un hombre duranteun mes de trabajo. sta es la denominacin habitual, que
se puede encontrar a menudo abreviada con la sigla MM, proveniente de la de-
nominacin inglesa man-month.
La medida habitual del coste es, evidentemente, la cantidad de dinero
que cuesta producir un software determinado; mientras que las medidas
habituales del esfuerzo se reducen siempre al trabajo que lleva a cabo
un profesional en una determinada unidad de tiempo: un da (persona-
da), un mes (persona-mes) o un ao (persona-ao).
Podis ver las lneas de cdigo y lospuntos de funcin en el subapartado1.4 de este mdulo didctico.
Podis ver los recursos de unproyecto informtico en elsubapartado 1.4 del mdulo Elproyecto informtico de construccin desoftware de esta asignatura.
La denominacinhombre-mes...
... se utiliza en libros del todoclsicos, como el de Brooks(The Mythical Man-Month), apartir de la experiencia de unode los primeros grandes pro-
yectos informticos de cons-truccin de software: el sistemaoperativo 360 de IBM en losaos sesenta.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
14/60
FUOC P03/75069/02142 14 Estimacin de costes de un proyecto informtico
2) Ms adelante, pareci que la denominacin era claramente sexista y sebus-
caron otros nombres como stos:
Persona-mes: un mes de trabajo de una persona del equipo con indepen-
denciadel gnero.
Staff-month: un mes de trabajo de una persona del equipo de proyecto*.
Engineering-month: un mes de trabajo en la actividad de ingeniera del
software, que incluye, como ya sabemos, el anlisis, el diseo, la programa-
cin y las pruebas para producir una determinada aplicacin o un sistema
de informacin.
Desgraciadamente, la tradicin se mantiene y es muy habitual or hablar todava
de un proyecto informtico de, por ejemplo, 50 hombres-mes, trmino que laprctica profesional parece haber estabilizado en nuestro entorno. En este texto,
hechas estas aclaraciones previas, seremos ms bien eclcticos en la denomina-
cin de esta unidad de medida del esfuerzo en un proyecto informtico.
1.3.2. El mito del hombre-mes
Los problemas que plantea la unidad persona-mes no proceden slo de querer
usar un lenguaje polticamente correcto. Inconscientemente, una unidad que
es el producto de dos (nmero de personas y meses) sugiere que debe ser po-
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 informtico.
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-
* En ingls, staff.
Podis ver las etapas de la actividadde ingeniera de softwareen elsubapartado 1.8 del mdulo El proyectoinformtico de construccin de software.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
15/60
FUOC P03/75069/02142 15 Estimacin de costes de un proyecto informtico
sona que trabaje durante quince meses, como con quince personas que trabajen
conjuntamente durante un mes. O, tambin, por ejemplo, con tres personas
que trabajen durante cinco meses.
Matemticamente es cierto y, en los tres casos, el producto es el mismo:
1 15 =15 1 =3 5 =15.
Pero en la prctica de la construccin de software este intercambio no es
cierto. Posiblemente la tercera opcin est ms prxima a la realidad que
las otras dos.
ste es el posible error de interpretacin que quiere ayudar a corregir el artcu-
lo ms importante de los que Brooks recoge en la obra ya histrica The Mythi-
cal Man-Month.
En determinados trabajos se da una distribucin del esfuerzo a lo largo del
tiempo que les es, en cierta manera, caracterstica. Esto ocurre en la construc-
cin de software y es necesario saberlo.
Ejemplo de distribucin caracterstica del esfuerzo a lo largo del tiempo
La distribucin del esfuerzo de construccin de software se puede comparar con la tareade traer a un ser humano al mundo, proceso que, habitualmente, requiere el esfuerzo de9 meses- mujer y admite slo una distribucin temporal muy clara: una mujer con unembarazo 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 mujeresdurante tres meses, a pesar de que el producto final parece, matemticamente, el mismo:
9 1 =1 9 =3 3 =9 meses-mujer.
Cabe decir que, en este ejemplo tan claro, no se tienen en cuenta excepciones como lossietemesinos (7 meses-mujer de esfuerzo), o los gemelos (4,5 meses-mujer de esfuerzo).
En el caso del esfuerzo para construir software, aunque puedan darse pequeas
desviaciones, tambin se tiene un tipo caracterstico de distribucin del esfuer-
zo a lo largo del tiempo que ya se muestra en otro mdulo.
1.4. Mtricas orientadas al tamao y a la funcin
Con el objetivo de medir la productividad del proceso de construccin desoft-
ware de aplicacin, debe darse la posibilidad de determinar primitivas de sali-
da que sean tiles para relacionarlas despus con el volumen del trabajo o elesfuerzo (primitiva de entrada) que representa desarrollar un producto de soft-
ware determinado.Y eso es francamente difcil.
En resumidas cuentas, llegamos a la conclusin de que los meses y los
hombres (o las mujeres) no son intercambiables.
Lectura recomendada
Podis consultar el trabajo
de Brooks sobre el mito delhombre-mes en la obrasiguiente:
F. Brooks (1975). TheMythical Man-Month.Reading (Massachusetts):Addison-Wesley.
Podis ver la figura Ciclo de vida encascada del subapartado 1.8 delmdulo El proyecto informtico deconstruccin de software de estaasignatura.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
16/60
FUOC P03/75069/02142 16 Estimacin de costes de un proyecto informtico
El tamao del software, construido a partir de las lneas de cdigo que ste
incluye, es una medida tradicional para evaluar el volumen de trabajo.
Pero debe conocerse, de entrada, que el tamao es una medida que, a veces,
no es lo suficientemente indicativa de lo que realmente cuesta construir un
software.
Las lneas de cdigo no siempre son una medida indicativa del esfuerzo
A veces, algoritmos laboriosos y difciles de encontrar se concretan en muy pocas lneasde cdigo (pongamos treinta o cuarenta lneas), que provocan la imposibilidad de hacer-se una idea del volumen de trabajo que representa pensar, disear y disponer finalmentede un algoritmo determinado a partir del disminuido resultado final. En este caso, recu-rrir a una medida del tamao como las lneas de cdigo puede ser poco correcto.
Por ello se han propuesto tambin otras unidades de medida que, en lugar del
tamao, intentan tener en cuenta la dificultad intrnseca de construir un soft-
ware determinado; es decir, mtricas que se refieren no al tamao del producto
final obtenido, sino a las funcionalidades que ste incorpora. Un ejemplo su-
ficientemente conocido es el de los puntos de funcin de Albrecht que des-
pus estudiaremos con detalle.
En la prctica, a pesar de los problemas y defectos que estudiaremos a conti-
nuacin, la medida de lneas de cdigo y/o de puntos de funcin es la ms ha-
bitual para determinar el volumen de un proyecto informtico, es decir, son
las principales primitivas de salida que se utilizan para calcular ratios de pro-ductividad.
1.4.1. Las lneas de cdigo
La medida ms utilizada para determinar el tamao de un proyecto inform-
tico ha sido, durante mucho tiempo, la de las lneas de cdigo del software fi-
nal obtenido. A menudo, en la literatura especializada se utilizan diversas
denominaciones segn las interpretaciones de cada uno respecto de la defini-
cin de stas. A continuacin presentamos algunas de stas:
a) LOC: lneas de cdigo. Es la ms habitual y antigua.
Es necesario decir, sin embargo, que el problema de optar por una m-
trica orientada al tamao o a la funcin no es tan grave si se tiene en
cuenta que, al menos en el caso de la informtica de gestin, se da una
especie de estndar de complejidad sencilla que no hace muy difciles
los algoritmos y que, en cierta manera, permite relacionar mtricas
orientadas al tamao, como las lneas de cdigo, con mtricas orienta-
das a la funcin, como los puntos de funcin, como veremos tambin
ms adelante. Podis ver los puntos de funcin deAlbrecht en el subapartado 1.4.2de este mdulo didctico.
LOC es la sigla de la expresininglesa Lines of Code.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
17/60
FUOC P03/75069/02142 17 Estimacin de costes de un proyecto informtico
b) KLOC: miles de lneas de cdigo. Es la unidad de medida que adoptan la
mayora de modelos clsicos de estimacin de costes en la calificacin de un
proyecto informtico.
c) DSI: instrucciones de cdigo fuente realmente entregadas, y su mltiplo
KDSI, quesurgieronpara que se tuviera en cuenta que, en los nuevos entornosde desarrollo y construccin de software, buena parte de las lneas de cdigo
no siempre las ha escrito el equipo del proyecto, sino que las han generado las
herramientas de productividad del entorno de programacin.
d) NCSS: lneas de cdigo fuente sin tener en cuenta los comentarios, y su
mltiplo KNCSS, por el hecho de considerar que en un buen proceso de cons-
truccin los programas incluyen lneas de comentario o que una lnea de tra-
tamiento se puede escribir en diferentes lneas de cdigo para aumentar la
legibilidad y mejorar la mantenibilidad del software.
e) NSLOC: nuevas lneas de cdigo fuente, tal como se realiza en el modelo
COCOMO 2 paraque se tenga en cuenta que slo deben contarse las lneas de
cdigo nuevas sin contar las que incorpore automticamente el entorno de
programacin, o, lo ms importante en este caso, el hecho de que parte del c-
digo final puede proceder de la reutilizacin de rutinas u objetos ya disponi-
bles que no se han de volver a escribir, pero que se incorporan al proyecto
informtico en curso.
Las diferentes denominaciones de la medida de las lneas de cdigo
Las diferentes denominaciones que existen cuando se habla de las lneas de cdigo reco-gen el hecho de que tenemos bastantes dificultades y dudas a la hora de medirlas. stosson algunos de los planteamientos que hacen difcil la valoracin:
Debemos contar o no las lneas de comentario?
Qu ocurre cuando una nica instruccin se escribe, por legibilidad, en dos o ms l-neas de cdigo fuente?
Se deben tener en cuenta las lneas que haya generado automticamente el entornode programacin (formateador de pantallas, gestor de formularios de pantalla, gestorde acceso a la base de datos, etc.)?
Se deben tener en cuenta las lneas de cdigo de rutinas o los objetos reutilizados pro-cedentes de otras aplicaciones?
Es la medida basada en las lneas de cdigo indiferente al lenguaje de programacinutilizado?
Qu pasa con las ratios de productividad establecidas cuando cambian los lenguajesde programacin utilizados?
Cada modelo de estimacin o cada programa de mtricas de software elige cul
de las muchas interpretaciones posibles se debe tener en cuenta.
De manera simplificada, aqu consideraremos que las LOC (que a menudo secuentan de mil en mil, en KLOC) son las nuevas lneas de cdigo fuente que
incluyen las directivas de compilacin*, las declaraciones de las estructuras de
DSI es la sigla de la expresininglesa Delivered Source Instructions.
NCSS es la sigla de la expresininglesa Non Comment Source
Statements.
NSLOC es la siglade la expresin inglesa New
Source Lines of Code.
* Por ejemplo, las COPY del COBOL.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
18/60
FUOC P03/75069/02142 18 Estimacin de costes de un proyecto informtico
datos y el cdigo ejecutable excluyendo los comentarios y las lneas genera-
das automticamente por el entorno de programacin o fruto de reutilizacin.
Cada lnea fsica de cdigo se cuenta una sola vez y cada fichero incluido au-
tomticamente** se cuenta tambin una sola vez.
Lneas de cdigo, productividad y lenguajes de programacin
Las lneas de cdigo se empezaron a utilizar como unidad de medida durante
los aos setenta y ochenta. A menudo se asocian a ratios de productividad re-
lacionndolas con el esfuerzo medido casi siempre como el trabajo que realiza
un profesional en una unidad de tiempo determinada: un da (persona-da),
un mes (persona-mes) o un ao (persona-ao).
El problema principal de las lneas de cdigo con vistas al estudio de la pro-
ductividad es que los lenguajes de programacin han ido cambiando con el
tiempo y que, evidentemente, el nmero de lneas de cdigo que es necesario
para implementar una misma funcionalidad depende del lenguaje de progra-
macin utilizado.
En su libro de 1986, el especialista Caper T. Jones ofreca datos que ilustran varios
aspectos de la productividad asociada a los diferentes lenguajes de programacin:
Las ratios de productividad tambin proceden de los aos setenta y
ochenta (de la informtica y de los lenguajes que existan entonces). Es-tas ratios, que actan como estndares de la profesin y que han sido
mencionadas de paso, son las siguientes:
a) 10 LOC por da y persona ocupada en el proyecto, segn Barry W.
Boehm a principios de los aos ochenta.
b) 350 NCSS por persona y mes, segn datos de comienzos de losaos
noventa en los proyectos de la empresa Hewlett Packard recogidos por
Robert O. Grady.
Esfuerzo para desarrollar la misma cantidad de lneas de cdigoen diferentes lenguajes
Lenguajes Tamao (LOC) Esfuerzo (persona-mes) LOC por persona-ao
Ensamblador 10.000 40 3.000
Macroensamblador 10.000 42 2.857
C 10.000 44 2.727
COBOL 10.000 48 2.500
Pascal 10.000 51 2.354
Ada 10.000 52 2.308
BASIC 10.000 53 2.264
Fuente: C.T. Jones, 1986.
** Como en el caso del COPYdel COBOL.
Podis ver las ratios deproductividad en el subapartado2.1.2 del mdulo El proyectoinformtico de construccin de softwarey en el subapartado 1.2 de estemdulo didctico.
Lectura complementaria
Encontraris datos sobre la
productividad asociadaa los diferentes lenguajesde programacin en la obrasiguiente:C. T. Jones (1986).Programming Productivity.Nueva York: McGraw-Hill.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
19/60
FUOC P03/75069/02142 19 Estimacin de costes de un proyecto informtico
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
(ms LOC por persona-ao) de los lenguajes de bajo nivel desaparece.
Por tanto, posiblemente es ms adecuada la tabla siguiente, tambin extrada
del libro de Jones, que ofrece resultados parecidos, pero que parte del esfuerzoque es necesario para desarrollar, en diferentes lenguajes, unos programas que
implementen una misma funcionalidad.
Los datos de Jones son suficientemente compatibles con los otros estndares
de productividad que hemos ido mencionando. Si tenemos en cuenta el CO-
BOL, e imaginamos unos 225 das de trabajo al ao exceptuando las fiestas, lasvacaciones y los fines de semana (365 14 22 52 2 =225), la productividad
de la que habla Jones es de 11,11 LOC por persona-da, que est prximo a las
10 que deca Boehm en la misma poca y es un poco inferior a las casi 16 LOC
por persona-da que representan las 350 NCSS de Grady establecidas unos
cuantos aos despus.
Cabe mencionar que estos datos provienen, como ya hemos dicho, de los aos
setenta y ochenta y no recogen lo que se puede conseguir con lenguajes de
programacin de productividad ms elevada o con las facilidades de los nue-
vos entornos de programacin y sus ayudas.
En los ltimos aos han aparecido una serie de lenguajes muy fciles de utili-
zar que unen, poco a poco, las ventajas de la orientacin a objetos con los de
la llamadaprogramacin visual. Nacidos en el mundo de la microinformtica
para ayudar a la realizacin de programas con interfaz visual bajo el paradigma
Esfuerzo y lneas de cdigo para desarrollar la misma funcionalidaden diferentes lenguajes
Lenguajes Tamao (LOC) Esfuerzo (persona-mes) LOC por persona-ao
Ensamblador 10.000 40 3.000
Macroensamblador 6.666 28 2.856
C 5.000 22 2.727
COBOL 3.333 26 2.500
Pascal 2.500 13 2.307
Ada 2.222 12 2.222
BASIC 2.000 11 2.181
Fuente: C.T. Jones, 1986.
Por tanto, la idea de una productividad media entre 10 y 16 LOC por
persona-da con lenguajes como, por ejemplo, el COBOL es la conclu-
sin final que se puede extraer de los datos disponibles a mitad de losaos ochenta.
El COBOL es con mucho el lenguajems usado en las aplicaciones
de gestin.
Ejemplos de programascon interfaz visual
Entre los muchos ejemplos dis-ponibles de programas bajo elparadigma WIMP, debemos
destacar PowerBuilder, VisualBasic o Delphi, que son posi-blemente los ms utilizadosactualmente.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
20/60
FUOC P03/75069/02142 20 Estimacin de costes de un proyecto informtico
WIMP (windows, icons, mouse ypop-up menu; es decir, ventanas, iconos, ratn
y mens desplegables), constituyen la manera ms moderna y ms evolucio-
nada de lo que se ha llamado RAD (rapid application development, es decir, el
desarrollo rpido de aplicaciones).
El problema es que todava no existen datos suficientes para tener en cuenta
estos nuevos lenguajes, que, eso s, parecen haber aumentado mucho la pro-
ductividad en la construccin de software de aplicacin.
Lneas de cdigo y el conjunto del proyecto informtico
En cualquier caso, incluso pensando en lenguajes clsicos en la informtica de
gestin como el COBOL, es evidente que si nos hablan de un programador que
es capaz de codificar slo entre 10 y 16 LOC en un da (es decir, en ocho horas
de trabajo), la primera idea es que se trata de un profesional poco eficiente.Ahora bien, cuando se habla de las lneas de cdigo como mtrica de tamao
de un proyecto informtico, no se piensa nicamente en la actividad de codi-
ficacin que lleva a cabo el programador.
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
laproductividad aparente de una persona a partir de las LOC que se pueden im-
plementar por persona y ao. Pero debemos saber cul es el trabajo que incor-
pora cada una de las medidas o estndares.
La productividad aparente del COBOL
En el caso concreto del COBOL o en el de un lenguaje parecido, la productividad aparen-te vara mucho en funcin de las actividades que tengamos en cuenta, como vemos acontinuacin:
Si slo se tiene en cuenta la codificacin y, adems, medida en slo un da de trabajo(y convenientemente pasada a su equivalente anual), se obtienen 25.000 LOC por per-sona-ao.
Si se tienen en cuenta el diseo, la codificacin y las pruebas de slo un mdulo o ru-tina y se realiza la medida durante un mes (y despus, como antes, se pasa a su equi-valente anual), se obtiene una medida de 12.000 LOC por persona-ao.
Si se trata del diseo, la codificacin y las pruebas de un programa completo que constade diferentes mdulos o rutinas, se obtienen 6.000 LOC por persona-ao.
Cuando se tiene en cuenta la actividad de un programador durante todo un ao en lacual, evidentemente, se incluyen las interrupciones entre proyectos y, tambin, otrasactividades no directamente relacionadas con la programacin, se obtienen 4.000 LOCpor persona-ao.
Las LOC de las que se habla aqu, adems de coincidir fsicamente con
las lneas de cdigo fuente de los programas construidos, incorporan, a
los efectos de la medida de la productividad, todos los otros trabajos que
ha sido necesario realizar para llegar a la codificacin.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
21/60
FUOC P03/75069/02142 21 Estimacin de costes de un proyecto informtico
Si se incluyen tambin todas las actividades previas a la programacin y las pruebas (elestudio de oportunidades, el anlisis de requerimientos, el diseo, la codificacin, laintegracin, todo tipo de pruebas, las actividades de control y gestin de la calidad, ladocumentacin externa e interna y el mantenimiento de un proyecto), se obtiene unamedida de 2.500 LOC por persona-ao.
Si a las actividades anteriores se aade tambin el apoyo para un centenar de usuarios
y su formacin, la medida que se obtiene es de 750 LOC por persona-ao.
Finalmente, cuando se tiene en cuenta el esfuerzo total en software de una organiza-cin o empresa durante todo un ao, incluyendo los proyectos cancelados o fracasa-dos, los desarrollos nuevos y el mantenimiento y las ampliaciones de sistemas viejosde informacin, se obtienen 250 LOC por persona-ao.
Destacamos, entre stas, la medida de las 2.500 LOC por persona-ao, que es la ms ade-cuada porque tiene en cuenta todas las actividades que corresponden al proyecto deconstruccin de software de aplicacin que nos ocupa. El dato coincide, en orden de mag-nitud, con el intervalo entre 10 y 16 LOC por persona-da que la informtica tradicionalconsidera el estndar de productividad habitual en grandes proyectos de informtica degestin con lenguajes tradicionales como el COBOL.
1.4.2. Los puntos de funcin
Como veremos, existen diferentes modelos de estimacin de las cargas de un
proyecto informtico. La mayora utilizan como medida de las primitivas de sa-
lida las lneas de cdigo en cualquiera de las versiones posibles. Otra alternativa,
cada da ms utilizada, es la medida de los puntos de funcin que defini Albrecht
en un primer artculo del ao 1979 y que fue revisado (y relacionado tambin con
la mtrica de las lneas de cdigo) en el ao 1983 por el mismo Albrecht, ayudado
por Gaffney.
El recuento de los puntos de funcin, como veremos, deja algunos aspectos a
la interpretacin de quien lleva a cabo la medida y ello ha generado diferentes
artculos y trabajos que, manteniendo la idea central de Albrecht, intentan
ayudar a adaptar el recuento de puntos de funcin a la realidad cambiando la
informtica de gestin: bases de datos relacionales, nuevos lenguajes y entor-
nos de programacin, nuevas herramientas de programacin visual, orienta-
cin a objetos, etc.
Desde el ao 1984, el denominadogrupo internacional de usuarios de los puntosde funcin, IFPUG (de la denominacin inglesa International Function Points
User Group) publica peridicamente la manera correcta de evaluar los diferen-
tes aspectos discrecionales del recuento de puntos de funcin de Albrecht. La
versin 3.0, fechada en el ao 1990, y la 4.0, que es de 1994, son las ms uti-
lizadas hoy y la diversa literatura tcnica actual sobre puntos de funcin hace
referencia a ellas a menudo.
Actualmente, la mayora de especialistas estaran de acuerdo en afirmar que la
mtrica de los puntos de funcin es la ms utilizada. El trabajo del IFPUG la
pone en cierta manera al da, mientras que las mtricas basadas en las lneasde cdigo no siempre se han adaptado bien a los nuevos lenguajes de progra-
macin o a las herramientas RAD.
Podis ver diferentes modelos deestimacin de costes en elsubapartado 2.3 y las diferentesversiones de medidas de lneas de cdigoen el subapartado 1.4.1 de este mdulodidctico.
Lectura complementaria
Podis consultar la obrasiguiente:
A.J. Albrecht; J.E.Gaffney Jr. (1983). SoftwareFunction, Source Linesof Code, and DevelopmentEffort Prediction: A SoftwareScience Validation.IEEE Transactions on SoftwareEngineering(vol. SE-9,nm.6, noviembre,pg. 639-648).
En la direccin electrnicawww.ifpug.org podisencontrar informacin de laversin ms actual del IFPUG en Internet,
aunque para obtener determinadosdatos o manuales se ha de ser socio.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
22/60
FUOC P03/75069/02142 22 Estimacin de costes de un proyecto informtico
A pesar de todo, contina vivo el problema de que la mtrica fue pensada du-
rante los aos setenta, cuando la informtica era bastante diferente de lo que
es hoy en lenguajes, tipo de aplicaciones, importancia de las bases de datos,
en el papel decisivo de las comunicaciones y de la distribucin de sistemas,
etc. EL IFPUG ha decidido mantener inalterada la estructura de la mtrica, lo
que no facilita su utilizacin actual. En concreto, el IFPUG recomienda, si-guiendo las directrices que establece, construir procedimientos normalizados
y uniformes en cada instalacin para proceder al recuento de los puntos de
funcin siempre de una misma manera homognea.
Como veremos, tambin ser necesario establecer para cada instalacin cul
es la ratio de productividad (puntos de funcin por persona-mes o por hora de
trabajo) que son imprescindibles para una estimacin y calificacin correctas
de proyectos informticos futuros.
Determinacin de los puntos de funcin
El recuento de los puntos de funcin se elabora a partir de determinadas ca-
ractersticas funcionales, que pueden ser de datos o de transaccin:
1) Las caractersticas funcionales de datos son las que presentamos a
continuacin:
a) Ficheros lgicos internos (LIF): grupo de datos interrelacionados lgicamen-
te yque pueden ser identificados claramente incluso por los usuarios, o a vecesinformacin de control pero que, en cualquier caso, siempre se mantienen dentro
de los lmites de la aplicacin, es decir, son internos y propios de la aplicacin.
Son los ficheros de la aplicacin (o, si se quiere, las tablas de la base de datos).
b) Ficheros de interfaces externas (EIF): grupo de datos interrelacionados l-
gicamentey que pueden ser identificados por los usuarios, o a veces informa-
cin de control pero, en este caso, proceden de fuera de los lmites de la
aplicacin y se mantienen al margen de sta. Representan los ficheros o las ta-
blas que la aplicacin utiliza pero que no crea ni mantiene.
2) Las caractersticas funcionales de transaccin son las siguientes:
a) Entradas externas (EI): hacen referencia a los tratamientos que procesan
datoso informacin de control introducidos en la aplicacin desde fuera de
sus lmites. Son, evidentemente, las entradas a la aplicacin.
b) Salidas externas (EO): cualquier proceso elemental que genere datos o in-
formacin de control que salga de los lmites de la aplicacin. Equivale a las
salidas que genera la aplicacin.
c) Consultas externas (EQ): proceso elemental formado por una combina-
cin de entrada y salida que permite la recuperacin de datos. La salida no
LIF es la sigla de la expresininglesa Logical Internal File.
EIF es la sigla de la expresininglesa External Interface File.
EI es la sigla de la expresin inglesaExternal Input.
EO es la sigla de la expresininglesa External Output.
EQ es la sigla de la expresininglesa External Query.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
23/60
FUOC P03/75069/02142 23 Estimacin de costes de un proyecto informtico
debe contener datos derivados y se pueden utilizar los ficheros lgicos inter-
nos. Son las consultas internas de la aplicacin, que a menudo se resuelven
con consultas en los ficheros o tablas propias.
Siguiendo una serie de directrices ms o menos objetivas que hoy elabora y man-
tiene el IFPUG, cada una de estas caractersticas funcionales queda definida comosi fuera de complejidad simple, media o compleja. En la tabla siguiente se muestra
la ponderacin de cada caracterstica funcional y la disposicin de los clculos
para obtener, gracias a pesos de ponderacin fijados por Albrecht a finales de los
aos setenta, lo que se denomina total de puntos de funcin sin ajustar(TUFP):
El mismo Albrecht ya pens que las caractersticas funcionales indicadas no
agotaban todas las posibilidades de definir funcionalmente un software de
aplicacin. Por ello, aadi que se deban considerar tambin las caractersti-
cas generales del sistema. En la formulacin establecida en el ao 1979 (y
mantenida todava por el IFPUG sin modificaciones) se dan catorce caracters-
ticas funcionales y se evala cada una de 0 a 5 (el valor medio es, pues, 2,5).
La tabla siguiente detalla las caractersticas generales del sistema y una dispo-
sicin adecuada a su clculo:
Puntos de funcin sin ajustar (TUFP)
Tipo DescripcinComplejidad
TotalSimple Media Compleja
EI Entradas externas 3 ----- 4 ----- 6 -----
EO Salidas externas 4 ----- 5 ----- 7 -----
LIF Ficheros lgicos internos 7 ----- 10 ----- 15 -----
EIF Interfaces lgicas externas 5 ----- 7 ----- 10 -----
EQ Consultas externas 3 ----- 4 ----- 6 -----
Total de puntos de funcin sin ajustar (TUFP) -----
Caractersticas generales del sistema: grado total de influencia (TDI)
ID Caracterstica del sistema Total
C1 Comunicacin de datos -----
C2 Funciones distribuidas -----
C3 Rendimiento -----
C4 Configuracin muy utilizada -----
C5 Frecuencia de transacciones -----
C6 Entrada on-linede datos -----
C7 Eficiencia de usuario final -----
C8 Actualizacin on-line -----
C9 Procesos complejos -----
C10 Reusabilidad -----
TUFP es la sigla de la expresininglesa Total Unadjusted
Function Points.
Los pesos de ponderacin
La ponderacin de las caracte-rsticas funcionales de la tablarefleja claramente las preocu-paciones de finales de los aossetenta, cuando, por ejemplo,se pensaba que el tratamientode un fichero complejo dabaprcticamente cinco veces mstrabajo que resolver el trata-miento de una entrada sencilla(eso es lo que, de hecho, quie-ren decir, comparativamente,los factores 15 para el LIF com-plejo y 3 para la EI sencilla).
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
24/60
FUOC P03/75069/02142 24 Estimacin de costes de un proyecto informtico
Estas caractersticas generales afectan al resultado de los puntos de funcin de
manera que la suma de los valores de stas (que se encuentra siempre entre 0
y 70) se denomina grado total de influencia (TDI).
Con el valor del grado total de influencia se determina el ajuste por la com-
plejidad del proceso (PCA) segn la frmula siguiente:
PCA= 0,65 + (0,01 TDI).
Finalmente, los puntos de funcin (FP) se obtienen ajustados y definitivos se-
gn el clculo siguiente:
FP=TUFPPCA,
dondePCA es el valor de la expresin anterior.
Contina vigente un debate general sobre la idoneidad tanto de las caracters-
ticas funcionales (EI, EO, EQ, LIF, EIF), como de las caractersticas generales,
que, de hecho, se establecieron a finales de los aos setenta y, muy posible-
mente, podran no ser las ms adecuadas para reflejar las funcionalidades de
las aplicaciones de hoy da.
Aunque el IFPUG ha decidido mantener las mismas caractersticas y pondera-
ciones que escogi Albrecht sin modificar los pesos de ponderacin, peridi-
camente va publicando guas para ayudar a la determinacin de los valores de
las caractersticas generales y, tambin, del grado de complejidad de las carac-tersticas funcionales.
Por falta de espacio, no podemos incluir aqu las recomendaciones completas
del IFPUG, pero s indicaremos algunas a modo de ejemplo, extradas de la ver-
sin 4.0 (1994) del manual del IFPUG:
1) La complejidad funcional sobre los ficheros (tanto los LIF como los EIF)
sedetermina a partir de dos conceptos:
El nmero de elementos, o campos de datos, de un fichero (DET).
El nmero de registros elementales diferentes (RET).
Caractersticas generales del sistema: grado total de influencia (TDI)
ID Caracterstica del sistema Total
C11 Facilidad de instalacin -----
C12 Facilidad de operacin -----
C13 Instalacin mltiple -----
C14 Facilidad de cambios -----
Grado total de influencia (TDI) -----
TDI es la sigla de la expresininglesa Total Degree of Influence.
PCA es la sigla de la expresininglesa Processing Complexity
Adjustement.
FP es la sigla de la expresin inglesaFunction Points.
DET es la sigla de la expresininglesa Data Element Type.
RET es la sigla de la expresininglesa Record Element Type.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
25/60
FUOC P03/75069/02142 25 Estimacin de costes de un proyecto informtico
La complejidad de las caractersticas funcionales sale, en este caso, de una
tabla como la que presentamos a continuacin:
2) De manera similar, la complejidad de las caractersticas generales se
puedeevaluar a partir de las guas que publica el IFPUG. Por ejemplo, en la
versin 4.0, la primera caracterstica funcional (comunicacin de datos) se
determina con los valores siguientes:
Los puntos de funcin y la productividad
Para tener datos de la productividad a partir de los puntos de funcin, se
suele utilizar una ratio de productividad que indica el nmero de horas de
trabajo (siempre de un profesional medio) necesarias para implementar un
punto de funcin.
Evidentemente, como ya hemos dicho antes en el caso de las lneas de c-
digo, en este trabajo se reflejan todas las tareas necesarias, desde el estudio
de oportunidad hasta la puesta en marcha, pasando por el anlisis de los
requerimientos, el diseo de la solucin tcnica, la programacin y las
pruebas.
Aunque siempre se deben tener los datos de productividad habituales en
una determinada instalacin, Jones nos ofrece como patrn de referencialos resultados en su empresa Software Productivity Research (SPR), donde
se descompone un proyecto informtico en diferentes actividades (hasta
Medida de la complejidad de los LIF y los EIF
1 a 19 DET 20 a 50 DET 51 DET o ms
1 RET Baja Baja Media
2 a 5 RET Baja Media Alta
6 RET o ms Media Alta Alta
Caracterstica funcional: comunicacin de datos
0 La aplicacin es puramente batch o se ejecuta en un nico PC
1 La aplicacin es batch, pero tiene entrada de datos o impresin remota
2 La aplicacin es batch, pero tiene entrada de datos e impresin remotas
3La aplicacin incluye entrada de datos on-lineo TP (teleproceso) front-endpara un proceso batch o un sistema de consulta
4La aplicacin es ms que un front-end, sin embargo, soporta slo un tipo
de protocolo de comunicaciones de TP
5La aplicacin es ms que un front-endy soporta ms de un tipo de protocolode comunicaciones de TP
Lectura recomendada
Encontraris los datos queofrece Jones sobre su empresaen la obra siguiente:
C.T. Jones (1996).SoftwareEstimating Rules of Thumb.IEEE computer(marzo,pg. 116-118).
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
26/60
FUOC P03/75069/02142 26 Estimacin de costes de un proyecto informtico
un mximo de 25 para todo tipo de proyectos). Los datos se resumen en la
tabla que presentamos a continuacin:
Teniendo en cuenta slo las actividades tpicas de los proyectos informticos
en la informtica de gestin, las horas por punto de funcin que marcan la
productividad en cada caso y una ponderacin de su importancia final en el
conjunto del proyecto, Jones obtiene una media de 1,65 horas por punto de
funcin, 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-
cesos de mejora de la productividad.
A todos los efectos, una productividad que tenga entre dos o tres horas por
punto de funcin podra ser la ms habitual en la mayora de las instala-
ciones modernas.
1.4.3. Relacin entre puntos de funcin y lneas de cdigo
Aunque los puntos de funcin y las lneas de cdigo sean diferentes, es posible
encontrar una especie de equivalencia entre los unos y las otras. De hecho, ya
existen miles de proyectos informticos que se han medido utilizando puntosde funcin y, tambin, lneas de cdigo, hecho que ha permitido obtener ra-
tios de conversin de una unidad a la otra.
Productividad en horas por punto de funcin
Actividad Descripcin Horas/FP Ponderacin (%) Total horas/FP
01 Requerimientos 0,75 5 3,75
04 Plan del proyecto 0,26 2 0,52
05 Diseo inicial 0,75 8 6,00
06 Diseo detallado 0,88 10 8,80
08 Codificacin 2,64 40 105,60
15Documentacin deusuario
1,89 10 18,90
16 Prueba unitaria 0,88 10 8,80
17 Prueba funcional 0,88 4 3,52
18 Prueba de integracin 0,75 4 3,00
19 Prueba del sistema 0,66 4 2,64
25 Gestin del proyecto 1,32 3 3,96
Media 1,6549
Fuente: C.T. Jones, 1996.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
27/60
FUOC P03/75069/02142 27 Estimacin de costes de un proyecto informtico
Se han publicado diferentes equivalencias entre FP y LOC; la que propona
Caper T. Jones es la siguiente:
Otros autores pretenden incluso encontrar frmulas de equivalencia, como
hace Bernard Londeix, que en el caso concreto del lenguaje COBOL propone
la frmula de conversin siguiente:
LOC =118,7 FP6,490.
Sin embargo, a pesar del inters por la exactitud, cabe mencionar que las im-
precisiones en la determinacin de las LOC y, sobre todo, de los FP (a pesar de
los estndares y las recomendaciones del IFPUG), convierten en muy razona-
ble la propuesta del mismo Caper T. Jones.
La propuesta de Caper T. Jones en su columna mensual en la revistaIEEE Computer, en elao 1996, concretamente en el mes de marzo, estableca la equivalencia siguiente:
Regla 1: un punto de funcin =100 sentencias de cdigo fuente lgico.
En aquel mismo artculo, este experto justificaba la equivalencia de esta manera:El ratio entre sentencias de cdigo fuente lgico sin comentarios al punto de funcin vadesde ms de 300 sentencias por punto de funcin para los lenguajes bsicos de ensam-blador, hasta menos de 20 para los lenguajes orientados a objetos y la mayora de los ge-neradores de programas. Como los lenguajes de procedimientos (procedural) como C,COBOL, Fortran y Pascal estn prximos a una relacin de 100 en 1, este valor puede ser-vir como factor de conversin basto.
Esta regla tiene un gran margen de error y son necesarias correcciones significativascuando se trata de lenguajes de programacin orientados a objetos, generadores deaplicaciones o aplicaciones donde se utilice una cantidad significativa como cdigoreutilizado.
C.T. Jones (1996, pg. 116).
Cabe mencionar que, en este contexto, Jones considera ms bien las lneas de
cdigo lgicas que las fsicas (que dependen del estilo de cada programador)
LOC por punto de funcin
Lenguaje LOC/FP
Ensamblador 320
Macroensamblador 213
C 150
COBOL 106
Fortran 106
Pascal 91
RPG 80
PL/I 80
Ada 71
BASIC 64
Fuente: C.T. Jones, 1986.
Lectura complementaria
Podis consultar la obrasiguiente:
B. Londeix (1987). Costestimation for softwaredevelopment. Reading(Massachusetts):Addison- Wesley.
Conversin de LOC en FP
Para lenguajes de procedi-miento, como C, COBOL,Fortran o Pascal: 100 LOCpor FP.
Para lenguajes orientados aobjeto y generadores deaplicaciones: 20 LOCpor FP.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
28/60
FUOC P03/75069/02142 28 Estimacin de costes de un proyecto informtico
y, sobre todo, que los puntos de funcin hacen referencia a la versin 3.0 del
recuento de puntos de funcin segn el IFPUG.
1.4.4. Una perplejidad final
Aunque parezca mentira, no existe un acuerdo total entre los datos que Jones
ofrece y los otros disponibles que hemos comentado, procedentes de Boehm
y Grady. Es ms, la diferencia es muy acusada.
Si, de manera general, un punto de funcin son 100 LOC de COBOL y, segn
hemos visto, hoy en da se implementa en dos o tres horas, en una jornada de
trabajo de ocho horas se deberan implementar entre 260 y 400 LOC, cantidad
que se encuentra muy por encima de lo que dicen Boehm y Grady (entre 10 y
15 LOC por persona-da).
En cualquier caso, no hay nada que hacer. Este tipo de contradicciones sobre
los datos de productividad son habituales en las mtricas de productividad del
software, que, evidentemente, acusan el paso de los aos y, sobre todo, las ca-
ractersticas propias (no siempre iguales) de las instalaciones y los proyectos
informticos de donde se han tomado los datos.
Como ya se ha dicho, la nica manera segura de poder tener unos estndares
de productividad buenos y dignos de ser utilizados es no depender de lo que
dicen libros y artculos (con datos obtenidos en condiciones a menudo biendiferentes) y disponer de los datos de productividad propios*, datos que pue-
den haber sido obtenidos en proyectos anteriores del mismo tipo (en cuanto
a aplicacin y tecnologa) y con equipos de desarrollo de calificaciones y ca-
ractersticas personales conocidos. Por este motivo, como ya se ha dicho en
otro mdulo, es tan importante disponer de la documentacin de gestin y de
los datos de proyectos informticos anteriores.
Podis ver los datos de Boehm yGrady con relacin a las lneas decdigo en el subapartado 1.4.1de este mdulo didctico.
Podis ver la relacin que se daentre los puntos de funcin y laproductividad en el subapartado 1.4.2de este mdulo didctico.
* A partir de KLOC o de los puntosde funcin.
Podis ver el subapartado 1.6 delmdulo El proyecto informtico deconstruccin de software de estaasignatura.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
29/60
FUOC P03/75069/02142 29 Estimacin de costes de un proyecto informtico
2. Estimacin de costes de un proyecto informtico
Ya sabis que la gestin de un proyecto informtico de gestin empieza con lacalificacin del proyecto, que pretende, en primer lugar, obtener una idea del
volumen de trabajo que costar construir la aplicacin (estimacin) y, en se-
gundo lugar, planificar en el tiempo las diferentes actividades que es necesario
llevar a cabo (planificacin).
La primera de estas etapas se conoce tambin con el nombre de estimacin de
costes de un proyecto informtico, ya que a partir del esfuerzo de trabajo esti-
mado se obtendr el presupuesto. Del mismo modo, despus de la planificacin
y el reparto en el calendario de las tareas que se deben a realizar, se obtienen losplazos, etapa que tambin se conoce con el nombre de tiempo de desarrollo del
proyecto. Y es necesario recordar que las funcionalidades, los plazos y el presu-
puesto definen un proyecto informtico de construccin de software.
Como ya conocis de otro mdulo, los costes que intervienen en un proyecto
informtico son variados y complejos, pero la tendencia a la disminucin del
coste del hardware y al aumento del coste del software provoca que aqu nos
podamos centrar en los costes de personal para la construccin del software de
aplicacin. La mayor parte del coste del software se encuentra hoy en el coste
de las horas de anlisis, diseo, programacin y prueba que se deben utilizarpara obtenerlo. Por ello, cuando aqu se habla de estimacin de costes se hace
referencia, exclusivamente, al esfuerzo humano que ha sido necesario, es de-
cir, a las horas de trabajo requeridas para construir el software.
De las dos etapas de la calificacin, la de la estimacin de costes y determina-
cin del volumen de trabajo que se debe llevar a cabo es claramente la ms di-
fcil y compleja. Existe mucha bibliografa sobre el tema, pero, en cierta
manera, sirve de poco. Cuando el jefe de proyecto se plantea por primera vez
evaluar el trabajo necesario para construir un software determinado slo dis-pone de unos pocos datos de lo que ha de ser la aplicacin futura y la realidad
es que no sabe en absoluto lo suficiente como para llegar a una estimacin co-
rrecta. Y este problema, simplemente, no tiene solucin.
Ya hace muchos aos que Tom de Marco dej claro este punto. En un libro
lleno de disquisiciones interesantes y con mucho sentido comn, de Marco
considera que el hecho de esperar obtener de la bibliografa tcnica datos lo
bastante fiables como para llevar a cabo una buena estimacin es una actitud
comparable a la que toman los personajes de la obra de teatro Esperando a Go-
dotdel premio Nobel Samuel Beckett. En la obra, un clsico del teatro moder-no, dos personajes pasan todo el tiempo esperando a alguien, un tal Godot,
que, simplemente, no llega nunca.
Podis ver las etapas de un proyectoinformtico en el subapartado 1.2del mdulo El proyecto informtico deconstruccin de software de estaasignatura.
Podis ver el apartado 1 del mduloEl proyecto informtico deconstruccin de software de estaasignatura.
Lectura recomendada
Os recomendamos que leisel captulo El dilema de laestimacin de la obrasiguiente:
T. de Marco (1982).
Controlling Software Projects(vol. 2, pg. 9-17).Englewood Cliffs: YourdonPress (Prentice Hall).
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
30/60
FUOC P03/75069/02142 30 Estimacin de costes de un proyecto informtico
En palabras de de Marco:
No hay modelos de coste transportables. Si esperas que alguien en otro lugar desarrolleun conjunto de frmulas que puedas utilizar para prever el coste en tu propia instalacin,probablemente tendrs que esperar para siempre.
T. de Marco (1982, pg. 155).
Como ya se ha dicho sobradamente, es imprescindible disponer de datos con-
cretos sobre proyectos anteriores realizados en una instalacin determinada.
Si no se tienen estos datos, se deben utilizar los de la bibliografa tcnica*, aun-
que no es siempre razonable fiarse demasiado. Quiz por ello, el propio de
Marco propone las dos definiciones sucesivas muy realistas de lo que es una
estimacin, aunque parezcan ms bien cnicas:
1) Definicin implcita de estimacin: una estimacin es la prediccin ms
optimista que tiene una probabilidad no nula de llegar a ser cierta.
2) Definicin propuesta por de Marco: una estimacin es una prediccin
que tiene la misma probabilidad de estar por encima que de estar por debajo
del resultado real.
A pesar de todo, para empezar, se debe realizar una estimacin y, dejando
bien claro que en estos aspectos vale ms la experiencia que las frmulas,
aqu intentaremos comentar cmo se puede estimar a priori el trabajo ne-
cesario para construir un software de aplicacin determinado en la inform-
tica de gestin.
2.1. Momento de la estimacin y grado de exactitud
El problema, evidentemente, es que cuando se ha de llevar a cabo la primera es-
timacin todava no se dispone de las especificaciones completas de la aplica-
cin que es necesario construir. Se ignora la mayor parte del detalle de las
funcionalidades que caracterizan el proyecto. Precisamente, es en la etapa de
anlisis y diseo cuando estas especificaciones quedarn totalmente determina-
das y se podr conocer el alcance real del proyecto informtico.
Se ha intentado calcular cul es la desviacin que se presenta entre la esti-macin del volumen de trabajo que se debe realizar y el volumen que se
debe llevar a cabo realmente al final. El grfico de la pgina siguiente mues-
En resumidas cuentas, estimar la carga de trabajo que es necesario llevar
a cabo para la construccin de software de aplicacin es una tarea que
normalmente debe fracasar.
* Por ejemplo, la productividadde 10 a 16 LOC por persona-da
o 2 horas para implementarun punto de funcin.
Lectura recomendada
Encontraris las definicionesde estimacin propuestas porde Marco en la obrasiguiente:
T. de Marco (1982).Controlling Software Projects(pg. 14). EnglewoodCliffs: Yourdon Press(Prentice- Hall).
En cuantoa la experiencia...
... el jefe de proyecto deberaser como el demonio, de quiense dice que sabe ms por viejoque por demonio.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
31/60
FUOC P03/75069/02142 31 Estimacin de costes de un proyecto informtico
tra cmo, a medida que avanza el proyecto informtico y se conocen con
ms detalle las especificaciones, el margen de error va disminuyendo:
Fuente: Grfico 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) cmo la pri-
mera estimacin, realizada en el momento de la definicin inicial del produc-
to, puede tener errores de estimacin hasta cuatro veces por encima o por
debajo de lo que despus ser la carga real de trabajo.
De manera similar, tal como se ve en la escala de ordenadas de la derecha, la
duracin 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
el 160% y el 60% de la duracin real, siempre comparando la realidad final
con esta primera estimacin tan precaria realizada slo a partir de la definicin
inicial del producto.
2.2. Los mtodos de estimacin posibles segn Barry W. Boehm
En el libro de Barry W. Boehm (1981), que se ha convertido en un clsico sobre
el tema, se exponen siete maneras diferentes de proceder a la estimacin ini-
cial de costes de un proyecto informtico. Algunas pueden parecer extraas e
incluso poco serias, sin embargo, si se tiene en cuenta la realidad de mercadoy la prctica real, los siete procedimientos que menciona Boehm (evidente-
mente, no todos recomendables) son bastante esclarecedores.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
32/60
FUOC P03/75069/02142 32 Estimacin de costes de un proyecto informtico
A continuacin se exponen los siete mtodos que menciona Boehm, con co-
mentarios complementarios, tal vez ajenos a la voluntad inicial del autor:
1) Utilizacin de modelos: Boehm los denomina modelos algortmicos y
proporcionan uno o ms algoritmos que dan una estimacin del coste delsoft-
ware como funcin de un nmero de variables determinado que se consideraninfluyentes en este coste. Estos modelos, como veremos, pueden ser tambin
de base estadstica, terica o compuestos.
2) Juicio de expertos en el tipo de proyecto: mtodo que supone basarse
fundamentalmente en la experiencia de uno o ms profesionales expertos que
ya hayan actuado en diferentes ocasiones como jefes en proyectos bastante
parecidos al que nos preocupa.
3) Analoga con otro proyecto parecido: estrategia que pretende ampararseen los datos disponibles obtenidos en otro proyecto de construccin de soft-
ware que sea en cierta manera anlogo al que nos ocupa en aspectos clave
como la tecnologa, el tipo de aplicacin, el personal que interviene, etc.
4) Utilizar todos los recursos disponibles: caso habitual que se da cuando
no segestiona un proyecto informtico y se destinan los recursos que pa-
recen necesarios en cada momento del desarrollo. Con respecto a este pun-
to, Boehm hace una referencia explcita a lo que se conoce como la ley de
Parkinson, segn la cual el trabajo siempre se expande hasta ocupar todos
los recursos disponibles. Esta ley es fruto de la observacin y el ingenio de
Cyril Northcote Parkinson.
5) Precio ganador: estrategia que propone simplemente una estimacin de
cargas (esfuerzo, coste y/o tiempo de desarrollo) que provoque que la oferta
sea irresistible, con independencia de si despus se puede cumplir o no. O se
iguala automticamente el coste al valor ms bajo para conseguir un contrato,
o se escoge automticamente un tiempo de desarrollo y unos plazos que, con
independencia del trabajo se deba llevar a cabo, permitan al producto ser el
primero en llegar al mercado.
Una estrategia habitual
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-ras deben realizar una oferta de lo que puede costar (en tiempo y dinero) construir unaaplicacin informtica determinada, es casi seguro que se llevar el contrato la que reali-ce una oferta ms barata o la que ofrezca un tiempo de desarrollo inferior. El hecho deque despus 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.
6) Estimacin global descendente*: mtodo que intenta obtener un dato
nicoy global para todo el proyecto informtico a partir de diferentes propie-dades globales del producto final (tamao, complejidad, dificultad tcnica, ni-
vel de calidad y fiabilidad, etc.) que, despus, se va descomponiendo.
Lectura recomendada
La idea de que el trabajo,si no se controla, ocupasiempre todos los recursosdisponibles, se expone demanera muy divertida en laobra siguiente:Cyril Northcote Parkinson(1962).Al patrimonio por elmatrimonio (tercera ley deParkinson). Bilbao: Deusto.
* En ingls, top-down.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
33/60
FUOC P03/75069/02142 33 Estimacin de costes de un proyecto informtico
7) Descomposicin en actividades (WBS) y estimacin ascendente*: mto-
do quedescompone el conjunto del proyecto en diferentes actividades** y,
una vez estimado el esfuerzo para cada una de stas, obtiene por agregacin el
esfuerzo total del proyecto.
Cabe destacar que, al margen del realismo de algunos de los mtodos mencio-nados por Boehm, los seis primeros representan mtodos estratgicos y tcti-
cos que, a menudo, dan lugar a una estimacin nica de la totalidad del
proyecto. Como veremos ms adelante, el mtodo ms operativo es el spti-
mo, que permite, adems, obtener un desglose del proyecto informtico en ac-
tividades, hecho que nos ser muy til tanto en la planificacin, como en el
seguimiento y control del proyecto.
A pesar de todo, la mayora de los mtodos que recogen los libros (y ste no
ser en absoluto una excepcin) tratan la estimacin de costes por mtodos y
modelos algortmicos o con base estadstica. En este caso, como veremos en-
seguida, se ofrecen frmulas que suelen ofrecer como resultado de la estima-
cin una nica cifra global para todo el proyecto informtico.
2.3. Modelos de estimacin
Antes de disponer de modelos, lo que se haca era recurrir a la apreciacin per-
sonal del jefe de proyecto, que a menudo basaba sus estimaciones en una ex-
periencia propia no siempre objetiva o reflejada en datos concretos.
A medida que se introducen los programas de mtricas de software,se empieza a
disponer de datos reales de proyectos ya elaborados. Ello permite escapar de la
subjetividad personal e intentar expresar en modelos y frmulas todo aquelloque el estudio estadstico o terico de los datos disponibles nos permite deducir
con respecto a la productividad en la construccin de software de aplicacin.
Los diferentes modelos de estimacin de costes y/o esfuerzos en la cons-
truccin de software* se pueden dividir en cinco grandes grupos principales:
modelos conbase histrica, con base estadstica, tericos, compuestos y basa-
dos en estndares. A continuacin los presentamos brevemente:
1) Los modelos de base histrica son los ms antiguos y, en cierta manera,
primitivos.A menudo se basan en la analoga con otros proyectos parecidos y
se fundamentan casi exclusivamente en la experiencia profesional (la histo-
ria) de los que efectan la estimacin.
La idea de los modelos de estimacin es la de proporcionar sistemas y
mtodos generales para proceder a realizar la estimacin de costes en la
construccin de software de aplicacin.
* En ingls, bottom-up.
** En ingls, Work BreakdownStructure.
Podis ver la operatividad delmtodo de descomposicin enactividades y estimacin ascendenteen el subapartado 2.4 de este mdulodidctico. Podis ver tambin laplanificacin, el seguimiento y el controlen el mdulo La gestin de un proyectoinformtico de esta asignatura.
Podis ver los modelos deestimacin en el subapartado 2.3 deeste mdulo didctico.
Podis ver los programas demtricas de softwareen elsubapartado 1.1 de este mdulodidctico.
* En la denominacin inglesa,Cost Estimating Models.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
34/60
FUOC P03/75069/02142 34 Estimacin de costes de un proyecto informtico
2) Los modelos de base estadstica intentan superar la experiencia histrica
concreta de unos cuantos profesionales y, a partir del estudio estadstico de los
datos reales disponibles tomados de un conjunto ms o menos numeroso de
proyectos ya acabados, obtienen frmulas que relacionan las diferentes unida-
des de medida del software, a menudo las lneas de cdigo (LOC) y el esfuerzo
(generalmente medido en hombre-mes).
3) Los modelos de base terica proporcionan otro enfoque. Estosmodelos,
ms que basarse en datos estadsticos disponibles no siempre suficientemente
abundantes y/o generalizables, lo que hacen es partir de una serie de ideas ge-
nerales sobre el proceso de construccin de software y, sobre esta teora, elabo-
ran frmulas que relacionan diferentes mtricas de software.
4) Los modelos compuestos han arraigado a partir de los trabajos de Barry
W. Boehm.Estos modelos intentan obtener las ventajas de los dos sistemasanteriores: estadsticos y tericos. Es decir, se parte de una serie de plantea-
mientos tericos y se complementan o corrigen con datos estadsticos obteni-
dos de proyectos reales ya acabados.
Dado que a menudo los modelos mencionados anteriormente son poco fia-
bles y ofrecen un grado de error nada despreciable, la prctica profesional ha
provocado que muchas instalaciones* hayan adoptado un sistema ms simple
y menos complicado: la elaboracin de estndares de productividad obte-
nidos en proyectos anteriores de la misma instalacin. Para llevar a cabo la es-
timacin de nuevos proyectos se parte de estos estndares.
Tambin al margen de los estndares propios de cada instalacin, en la biblio-
grafa tcnica se encuentran las que podramos denominar recomendaciones
prcticas a primera vista*, que han sido elaboradas por especialistas prestigiosos
y que puedenactuar como referencia general futura para los estndares pro-
pios de una instalacin que empieza a desarrollarse.
Cabe sealar que la mayora de los modelos disponibles se han elaborado du-
rante los aos setenta y ochenta y, evidentemente, responden a una informticabastante diferente de la que se lleva a cabo en la actualidad, que ha mejorado
bastante la productividad por medio de nuevos entornos de programacin, nue-
vos lenguajes visuales y orientados a objetos, nuevas herramientas de ayuda,
etc. Pero, en cualquier caso, los resultados que ofrecen los modelos de estima-
cin ms algortmicos pueden actuar siempre como hito superior de la estima-
cin que se quiere realizar.
Tambin cabe mencionar que la mayora de modelos disponibles suelen
utilizar las lneas de cdigo (LOC) como base para obtener otras medidas:
el esfuerzo medido en personas-mes, los meses de construccin del proyec-to, el nmero de profesionales que deberan estar involucrados, el nmero
de errores que se puede esperar tener, el nmero de pginas de documen-
* Generalmente, las instalacionesmayores y con ms experiencia.
* Rules of thumb,en la denominacin inglesa.
Podis ver las LOC con relacin allenguaje de programacin utilizadoen el subapartado 1.4.3 de este mdulodidctico. Podis ver tambin lasherramientas RAD en el subapartado1.4.1 de este mdulo didctico.
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
35/60
FUOC P03/75069/02142 35 Estimacin de costes de un proyecto informtico
tacin que es necesario realizar, etc. En la mayora de modelos todo parte
de las LOC, que, como ya hemos visto, son una mtrica que depende de-
masiado de los lenguajes de programacin (y stos han cambiado mucho
en los ltimos aos) y que hoy en da a menudo son difciles de medir, so-
bre todo con las actuales herramientas RAD, que generan gran parte de l-
neas del cdigo final.
2.3.1. Modelos histricos
Tal vez el mtodo ms utilizado todava para realizar la estimacin de costes
es el que se basa en la experiencia personal de quien la lleva a cabo (por ejem-
plo, el jefe de proyecto). Como podis suponer, se trata de un mtodo marca-
damente subjetivo y muy propenso a errores. Puede ocurrir que quien realicela estimacin no tenga en cuenta de manera adecuada todos los aspectos que
pueden intervenir en el proyecto y tambin puede suceder que la experiencia
disponible no se corresponda en absoluto con el tipo de proyecto o de aplica-
cin que se debe efectuar.
Este sistema se puede aplicar tanto a mtodos descendentes, como a mtodos
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-
cretas, si ya se tiene claro cules sern) para obtener la estimacin del proyectocompleto sumando las estimaciones de las diferentes partes.
Combinacin de estimaciones individuales
Puede ocurrir que, cuando el proyecto tiene una cierta envergadura, se pida la
opinin de ms de un experto y se tenga que combinar dos o tres estimaciones.
En este caso, existen diferentes tcnicas para intentar encontrar una combina-
cin adecuada, sobre todo para evitar que, en reuniones conjuntas, el estimador
con ms personalidad imponga su criterio sobre el resto. A continuacin men-cionamos tres de estas tcnicas:
a) Media. La manera ms sencilla de llegar a una combinacin adecuada es,
simplemente, calcular la media entre las diferentes estimaciones obtenidas
por separado.
b) Media ponderada. Otro procedimiento consiste en tener en cuenta que
puedendarse estimaciones pesimistas y optimistas y que se deben tener en
cuenta de una manera diferente a otras estimaciones intermedias. Lo quese hace, pues, en lugar de calcular la media habitual, es establecer una me-
dia ponderada, que podra ser, por ejemplo, en el caso de tres estimaciones,
-
8/6/2019 Est Imac Ion de Costes de Un Proyecto Informatico
36/60
FUOC P03/75069/02142 36 Estimacin de costes de un proyecto informtico
la que recomendaba Pressman en las primeras ediciones de su libroIngenie-
ra del Software: