Está en la página 1de 18

METODOS MANUALES

De Estimacin de Costos de Software

Ingeniera de Software

2016

METODOS MANUALES

INTEGRANTES:

Ingeniera de Software

METODOS MANUALES

Tabla de Contenido
Introduccin..................................................................................................................... 4
Mtodos Basados en Mtricas de Lnea de Cdigo (LOC).................................................5
Frmula......................................................................................................................... 6
Ventajas y Desventajas................................................................................................. 7
Ejemplo......................................................................................................................... 8
Mtodos Basados en Proporciones y Porcentajes.............................................................8
Desventaja.................................................................................................................... 8
Factores de Ajuste......................................................................................................... 9
Desarrollo por clase de Software............................................................................... 9
Desarrollo por tamao de Software.........................................................................10
Interseccin entre Mtodos basados en proporciones y LOC......................................10
Mtodos Basados en Mtricas de Punto de Funcin.......................................................11
Esquema..................................................................................................................... 12
Composicin............................................................................................................... 12
Factores de clculo..................................................................................................... 13
Frmulas..................................................................................................................... 14
Ejemplo....................................................................................................................... 15
Relacin entre puntos de funcin y lneas de cdigo..................................................16
Ttulo 1........................................................................................................................... 16
Ttulo 2........................................................................................................................ 16
Ttulo 3..................................................................................................................... 16

METODOS MANUALES
Ingeniera de Software

METODOS MANUALES

Introduccin
El software ha alcanzado una mala reputacin pues ha sido considerado como una
tecnologa perturbadora. Los grandes proyectos de software han tendido a tener una
muy alta frecuencia de exceso de calendarizacin, costos, problemas de calidad e
indiscutibles cancelaciones. Mientras esta mala reputacin a menudo es merecida, es
importante notar que algunos grandes proyectos de software finalizan a tiempo y con el
presupuesto estimado, adems funcionan satisfactoriamente cuando stos son
desplegados.
Los grandes proyectos exitosos difieren de los fracasos. Una diferencia importante es la
utilizacin de estimaciones automatizadas respecto a las estimaciones manuales, estas
ltimas son generalmente inexactos y a menudo excesivamente optimistas contrario a
las estimaciones automatizadas que conducen a estimaciones ms exactas.
Hay que tener en cuenta que las estimaciones manuales y las automatizadas pueden
ser equitativamente cercanas en trminos de prediccin del esfuerzo de programacin
o codificacin, pero las estimaciones automatizadas son mejores para predecir
actividades de no codificacin (crecimiento de los requerimientos, esfuerzo del diseo,
esfuerzo de documentacin, esfuerzo de administracin, esfuerzo de evaluacin).
Debido a que el crecimiento de la estimacin de costos es una actividad compleja,
existe un crecimiento industrial de compaas dedicadas a ofrecer diferentes marcas
comerciales de herramientas de estimacin de costos en el mercado. A partir del 2005,
algunas de esas herramientas de estimacin son: COCOMO II (actualizacin de COCOMO
81), CoStar, CostModeler, CostXpert, KnowledgePlan, PRICE S, SEER, SLIM y SoftCost.
Algunas de las herramientas de estimacin de costos ms antiguas, no estn
activamente en el mercado pero todava son utilizadas, tales como: CheckPoint,
COCOMO, ESTIMACS, REVIC y SPQR/20, ya que su uso no es apoyado por los
vendedores, por lo que su utilizacin est en declive.
En 1998 Capers Jones propone una clasificacin de los mtodos de estimacin [Jones, 2007] en
la que aparecen seis metodologas agrupadas en dos grandes grupos: metodologas manuales,
que no tienen herramientas que automaticen el clculo y los mtodos automticos, que s las
tienen.
A continuacin se ofrecen varios mtodos prcticos Manuales de Estimacin de Costos de
Software interesantes y a veces tiles. Se advierte al lector que estos mtodos prcticos no son
adecuados para la realizacin de proyector formales, importantes o de negocio.

Ingeniera de Software

METODOS MANUALES

Mtodos Basados en Mtricas de Lnea de


Cdigo (LOC)
Durante aos, los mtodos de estimacin manual estuvieron basados en mtricas de
lneas de cdigo (LOC) y se desarrollaron mtodos prcticos funcionales para lenguajes
de programacin mediante procedimientos comunes, como el ensamblador, COBOL,
FORTRAN, PASCAL, etctera.
Las Lneas de cdigo son medidas directas del software y del proceso por el cual se
desarrolla. La medida ms utilizada es la longitud del cdigo fuente del software
(nmero de lneas del cdigo o en ingles Lines of code LOC)
Estos mtodos prcticos LOC suelen comenzar con suposiciones bsicas acerca de
ndices de productividad de redaccin de cdigo para proyectos de software de
diferentes tamaos, luego recurren a proporciones o porcentajes, de este modo
realizarn otros tipos de trabajo como pruebas, diseo, control de calidad,
administracin de proyectos, etctera.
Tamao
del
programa
(LOC)

Redaccin
de cdigo
LOC/mes

1
10
100
1 000
10 000
100 000
1 000 000

2500
2250
2000
1750
1500
1200
1000

Esfuerzo
de
redaccin
de cdigo
- mes
0.0004
0.0044
0.0500
0.5714
6.6667
83.3333
1000.000

Esfuerzo
de
pruebas,
%

Esfuerzo
ajeno a
cdigo, %

10.00
20.000
40.00
50.00
75.00
100.00
125.00

10.00
20.00
40.00
50.00
75.00
100.00
150.00

Esfuerzo
total,
meses

LOC netas
por mes

0.0005
2083
0.0062
1607
0.0900
1111
1.2000
833
17.0000
588
250.0000
400
3750.000
267
0
Tabla 1. Mtodos prcticos basados en Mtricas LOC para lenguajes por
procedimiento (Supone que 1 mes de trabajo= 132 horas de trabajo)

La Tabla 1 ilustra los mtodos prcticos basados en LOC para lenguajes por
procedimientos donde se utiliza meses como unidad de trabajo. Esta forma de unidad
en mes resulta comn en sistemas grandes y si se quiere para programas pequeos se
puede utilizar la unidad en horas.
La columna rotulada Esfuerzo de pruebas, % denota el tiempo relatico para hacer
pruebas en lugar de programar. Como puede apreciarse, entre ms grande sea el
proyecto se necesita ms tiempo para hacer pruebas.
La columna rotulada Esfuerzo ajeno a cdigo, % denota un sinfn de actividades
distintas de la programacin pura, asociada con proyectos de software y que deben
incluirse en la estimacin:

Definicin de requisitos
Diseo externo

Ingeniera de Software

METODOS MANUALES

Diseo interno
Administracin del cambio
Documentacin de usuario
Administracin de proyectos

Frmula
La Lnea de cdigo es cualquier lnea de texto de un programa que no sea un
comentario o lnea en blanco, sin tener en cuenta el nmero de instrucciones o partes
de instrucciones en la lnea. Esta medida suele representarse por NCLOC (NoComentary
Lines of code).Para calcular la longitud de un programa se utiliza la siguiente frmula:
LOC = NCLOC + CLOC
Donde CLOC es el nmero de lneas de comentarios (Comentary Lines of Code).
Cuando se busca solo la nocin de pura longitud, se manejan dos alternativas
aceptables:
a)Medir la longitud en trminos de bytes de almacenamiento requerido para contener
el texto del programa.
b)Medir la longitud en trminos de nmero de caracteres en el texto del programa. Si
se conoce el nmero medio de caracteres por lnea de texto (NL); el nmero de lneas
se calcula de la siguiente forma:
LOC = Char / NL

Ingeniera de Software

METODOS MANUALES

Ventajas y Desventajas
Este mtodo prctico puede ser til para alguno e intil para otros por ese motivo a
continuacin presentaremos algunas ventas y desventajas de usar la estimacin en
LOC.

Ventajas

Facilidad de clculo en cualquier proyecto


Existen herramientas de estimacin basadas en las Lneas de Cdigo

Desventajas
El problema en el uso de este mtodo es que no se tome en cuente el concepto de
reutilizacin, as como los costos fijos, ni las tareas que se desarrollan que no producen
cdigo. Por lo que no debe ser utilizado este mtodo directamente en la estimacin de
esfuerzo o productividad.

Las lneas de cdigo dependen del lenguaje de programacin ,perjudicando a los


programas cortos bien diseados
Comparar la productividad utilizando lenguajes diferentes puede llevar a
conclusiones errneas (El estilo de programacin depende de cada persona)

Ingeniera de Software

METODOS MANUALES

Dificulta la estimacin en fases tempranas del desarrollo la cantidad de lneas


que tendr una aplicacin.

Ejemplo
Ejemplo 01:
Si una organizacin de software mantiene registros sencillos, se puede crear una tabla
de datos orientados al tamao, como se muestra en la siguiente tabla:
Proyecto
Alfa
Beta
Gamma

Esfuerzo
24
62
43

$
168
440
314

KLDC
12.1
27.2
20.2

Pag. Doc.
365
1224
1050

Errores
29
86
64

Gente
3
5
6

La tabla anterior lista cada proyecto de desarrollo de software de los ltimos aos y los
correspondientes datos originados al tamao de cada uno. Debe tenerse en cuenta que
el esfuerzo y el costo registrados en la tabla incluyen todas las actividades de
ingeniera de software: anlisis, diseo, codificacin y prueba. Con los datos de la tabla
se pueden calcular valores medidos con todos los proyectos como son:

Productividad = KLDC/persona-mes
Calidad = errores/KLDC
Costo = Dlares/KLD
Documentacin = pgs. de doc. /KLDC

*Donde KLDC es miles de lneas de cdigo.

Mtodos Basados en Proporciones y


Porcentajes
Los proyectos de software incluyen muchos ms tipos de trabajo que solo redaccin de
cdigo. Se ha desarrollado una familia bastante grande de mtodos de estimacin
manual, basados en el uso de proporciones y porcentajes.
Estos mtodos suponen una forma de estimacin de cascada. Primero se estima el
proyecto en su totalidad. Segundo, se aplican proporciones y porcentajes para distribuir
el esfuerzo total en conjuntos deseados de fases.

Ventajas y Desventajas
Ventajas

Ingeniera de Software

METODOS MANUALES

Facilidad de clculo en cualquier proyecto


Existen herramientas de estimacin basadas en proporciones y porcentajes

Desventajas
El problema bsico con la estimacin basada en proporciones, radica en la falsa
suposicin de que existen proporciones constantes entre redaccin de cdigo y otras
actividades clave, como pruebas, administracin de proyectos, integracin, etctera.
De hecho, las proporciones varan de forma significativa, con base en cinco conjunto de
variables independientes:

Clase de aplicacin (software de sistema, sistemas de informacin basada en la


web, etctera)
Tamao de la aplicacin
El o los lenguajes de programacin utilizados
Presencia o ausencia de materiales reutilizables
Metodologa empleada, como Agile, WAterfall, en espiral, etctera.

La complejidad de las interacciones de estos cinco conjunto de variables es la razn por


las que las herramientas comerciales de estimacin de costos de software contienen
cientos de reglas y factores de ajuste.

Factores de Ajuste
Existen demasiadas combinaciones de factores para ilustrarlas todas, pero resulta
instructivo ver cmo los porcentajes aplicados en actividades de software clave, varan
en relacin con la clase y tamao de la aplicacin.

Desarrollo por clase de Software


En la siguiente tabla se presentan siete actividades importantes para resaltar el
porcentaje de esfuerzo de redaccin de cdigo, contra el fondo de actividades ajenas a
la redaccin de cdigo.

Actividad

Definicin
de
requisitos

Proyectos
de usuario
final
0

Proyectos
MIS

Proyectos
de sistemas

Proyectos
comerciales

Proyectos
militares

10

Ingeniera de Software

METODOS MANUALES
Diseo
10
Redaccin
60
de Cdigo
Pruebas
30
Administraci 0
n de
cambios
Documentac 0
in
Administraci 0
n del
proyecto
Total
100
Tabla de Porcentajes
(Supone una aplicacin

12
25

15
18

10
25

15
18

30
6

30
10

36
5

22
12

10

10

12

12

10

13

100
100
100
100
de esfuerzo de desarrollo por clase de software.
de 1 000 puntos de funcin o 100 000 instrucciones
de cdigo fuente)

En contraste, en el caso de proyectos de software militar, las actividades asociadas con


requisitos, diseo y documentacin hacen un total de, ms o menos, el doble del
esfuerzo dedicado a la redaccin del cdigo: 35% versus 18%.
Cuando consideramos proporciones basadas en diversos rangos de tamao de
aplicaciones, tambin encontramos diferencias enormes que impiden asumir una
proporcin o porcentaje como mtodo de estimacin general seguro.

Desarrollo por tamao de Software


En la siguiente tabla se muestra cinco niveles de tamao separados por orden de
magnitud, comenzando con aplicaciones pequeas de 10 puntos de funcin (unas 1000
instrucciones de cdigo fuente), hasta llegar a sistemas enormes de 100 000 puntos de
funcin (10 millones de instrucciones de cdigo fuente).

Actividad

Proyectos
de 10 PF

Proyectos
de 100 PF

Proyectos
de 1000 PF

Proyectos
10000 PF

Definicin
de
requisitos
Diseo

Proyectos
de 100000
PF
9

10

12

13

Ingeniera de Software

10

METODOS MANUALES
Redaccin
50
40
30
20
15
de Cdigo
Pruebas
27
29
30
33
34
Administraci 1
4
6
7
8
n de
cambios
Documentac 4
6
7
8
9
in
Administraci 8
10
10
12
12
n del
proyecto
Total
100
100
100
100
100
Tabla de Porcentajes de esfuerzo de desarrollo por tamao de software.
(Supone lenguajes por procedimiento, como COBOL o C)

Dentro de dicho espectro, en el extremo de sistemas pequeos la redaccin de cdigo


es la actividad dominante en trminos de esfuerzo; mientras para los sistemas grandes,
la redaccin de cdigo es slo 15% del esfuerzo total. Los principales motores de costo
en el extremo de los sistemas grandes son las actividades asociadas con bsquedas y
correccin de errores de cdigo y actividades asociadas con la produccin de diferentes
tipos de documentacin impresa, como requisitos, planes, especificaciones y manuales
de usuario.

Interseccin entre Mtodos basados en proporciones y LOC


En la interaccin entre mtodos prcticos basados en proporciones y los que recurren a
lnea de cdigo, existe un aspecto importante que tiene que ver con la cantidad de
cdigo fuente reutilizable, tomando de aplicaciones similares y otras fuentes.
En la siguiente tabla se muestra porcentajes de reutilizacin observados entre clientes
de SPR para diversos lenguajes de programacin.

Lenguaje de Programacin

Promedio de reso, %

Ingeniera de Software

11

METODOS MANUALES
Visual Basic
Eiffel
Smaltalk
JAVA
Objetive C
Ada 95
C++
SQL
Ada
COBOL
FORTRAN
Ensamblador de macros
C
Pascal
Jovial
CMS2
PL/I
Ensamblador bsico
Promedio
Tabla Cantidad aproximada de

60.00
55.00
50.00
50.00
45.00
35.00
27.00
25.00
25.00
17.00
15.00
15.00
12.50
12.50
10.00
10.00
7.50
5.00
26.15
cdigo reutilizable por lenguaje.

Cuando hay material reutilizable presente en volmenes sustanciales durante un


proyecto de desarrollo de software, ste afectar obviamente los resultados de fecha
lmite, esfuerzo y costo desde la perspectiva de una estimacin.
La posibilidad de reutilizar software es un tema tan importante con muchos aspectos
mal entendidos. Por ejemplo, la reutilizacin de software solo es valiosa si el material
empleado se aproxima a niveles de calidad sin defectos. La reutilizacin de cdigo
fuente de mala calidad es de alto riesgo y costosa.
Se debe saber que las proporciones de reutilizacin de software en la tabla anterior son
slo aproximadas y pueden variar ampliamente.
En general, los lenguajes que promueven y facilitan la reutilizacin, como la familia de
lenguajes orientados a objetos y la familia Visual Basic, tiene muchas ms fuente de
cdigo reutilizable que lenguajes como COBOL para el que la reutilizacin es
meramente accidental.
La conclusin general sera que el uso de proporciones y porcentajes simplistas para la
estimacin de costos de software es una prcticas muy riesgosa, a menos que el
estimador disponga de proporciones basadas en la experiencia, derivada a su vez de
proyectos del mismo tamao, clase, lenguaje de programacin y usando idntico
volumen de materiales reutilizables.

Ingeniera de Software

12

METODOS MANUALES

Mtodos Basados en Mtricas de Punto de


Funcin
La medida de punto de funcin se propuso en 1979 y trata de medir la funcionalidad o
utilidad del software.
Es una mtrica que sirve para estimar el tamao de una aplicacin de forma
independiente del lenguaje de programacin o las tecnologas utilizadas
Son medidas indirectas del software y del proceso por el cual se desarrolla. Estas
mtricas se centran en la funcionalidad o utilidad del programa. Los puntos de funcin
(PFs) se obtienen utilizando una relacin emprica basada en medidas cuantitativas del
dominio de informacin del software y valoraciones subjetivas de la complejidad del
software.
Los objetivos de estos son:

Medir lo que el usuario pide y recibe


Proporcionar una mtrica que de soporte al anlisis de la calidad y productividad
Ser independiente del cdigo fuente o el lenguaje
Medir independientemente de la tecnologa utilizada en la implantacin

Esquema
Primero la aplicacin del mtodo de Puntos de Funcin para determinar las sentencias
de cdigo del proyecto software, la cual mantiene una distorsin, producida por no
considerar esta tcnica la reutilizacin de mdulos preexistentes.

Segn se puede observar en la Figura 3 correspondiente a la metodologa de


estimacin por el mtodo de Puntos de Funcin, se obtienen los Puntos de Funcin del
sistema que son ajustados de acuerdo a factores predefinidos (Bem B.W., Software
Engineering Economics ) tales como atributos de comunicacin de datos, frecuencias

Ingeniera de Software

13

METODOS MANUALES
distribuidas, rendimiento, configuraciones fuertemente utilizadas, frecuencia de
transacciones, entrada on-line de datos, diseo para la eficiencia del usuario final,
actualizacin on-line, procesos complejos, utilizacin en otros sistemas, facilidad de
instalacin, facilidad de operacin, instalacin de mltiples sitios y facilidad de cambio,
posibilitando a partir de all el establecimiento, de acuerdo a ratios especficos, de la
cantidad de sentencias de cdigo del sistema software.
Este mtodo calcula los puntos de funcin de un sistema descomponiendo al mismo en
cinco funciones principales (entradas, salidas, consultas, ficheros internos y externos),
asignndoles valores de acuerdo a su complejidad y en funcin de la cantidad de cada
uno de ellos se llega a determinar, mediante su sumatoria, los puntos de funcin, que
son posteriormente ajustados de acuerdo a las caractersticas especficas del proyecto
(International Function Point users Group).

Composicin
Un Punto de Fusin es una mtrica que se compone de la suma ponderada de los
totales de entradas, salidas, consultas, archivos lgicos, e interfaces que se identifican
en la aplicacin.

Entradas: IU -> (Archivos / BD / Otros Sistemas)


Salidas: (Archivos / BD / Otros Sistemas) -> IU
Interacciones / Consultas: IU -> Archivos / BD -> UI
Interfaces Externas: Integracin con otras aplicaciones, bases de datos, etctera
externas al sistema
Archivos (Interfaces) Internos: Integracin con fuentes de datos internas

Entradas: Pantallas o formularios a travs de los cuales el usuario agrega nuevos


datos o actualiza los existentes (Pantallas de datos, cintas magnticas discos,
entradas sensoriales, lpiz magntico mouse). Si una pantalla de entradas es
muy grande para desplegarla en una vez (asumimos que son ms de 80 col y 25
reg) y requiere de una segunda pantalla, el conjunto cuenta como una sola
entrada. Debemos considerar entradas que requieran procesamiento nico.

Salida: Pantallas o informes que la aplicacin produce. Las salidas que requieren
procesamiento separado deben ser contabilizadas en aplicaciones de
remuneracin. Una funcin de salida que genere 100 cheques se cuenta como
una sola (Pantallas de datos de salida, informes impresos, archivo en disco, sets
de cheques). En general, contabilizaremos como salida entidades que son
referenciadas por nombres.
Archivos lgicos: Coleccin lgica de registros que la aplicacin actualiza. Estos
pueden ser planos en una base de datos, una rama de una base de datos
jerrquica, una tabla de una base de datos relacional.
Interfaces: Son los archivos compartidos con otras aplicaciones, como archivos
en cintas magnticas que vienen o van, bases de datos compartidas o listas de
parmetros.
Consultas: son pantallas que permiten al usuario interrogar a la aplicacin y
solicitar asistencia. Tales como pantallas de ayuda(HELP).

Ingeniera de Software

14

METODOS MANUALES

Factores de clculo
Factores de clculo de punto de funcin que se toman en cuenta son los siguientes:
[Rating de 0-5]
1. Comunicaciones de datos
2. Funciones distribuidas
3. Objetivos de performance
4. Configuracin fuertemente utilizado
5. Tasa de transacciones
6. Entrada de datos interactivas (en lnea)
7. Eficiencia del usuario final
8. Actualizacin en lnea
9. Complejo el procesamiento interno
10.Diseado el cdigo para ser reutilizable
11.Factibilidad de la instalacin
12.Factibilidad operacional
13.13.Sitios mltiples
14.Facilidad para los cambios
Procedimiento para clculo del factor de ajuste:
1.
2.
3.
4.

Se asigna una evaluacin individual a cada uno de los 14 factores de influencia


Se suman las evaluaciones (esta dar un valor entre 0 y 70)
Multiplicar la suma de evaluaciones por 0.01, para obtener un valor decimal
Sumar 0.65 al valor decimal para crear un factor de complejidad (un valor entre
0.65 y1.35)

Parmetro

Baja

Media

Alta

Entradas

x3

x4

x6

Salidas

x4

x5

x7

Peticiones

x3

x4

x6

Ficheros

x7

x 10

x 15

x5

x7

x 10

Total

Internos
Ficheros
Externos

Frmulas

Ingeniera de Software

15

METODOS MANUALES
El punto de funcin FP se calcula con la siguiente ecuacin:
PF = T * (0.65 + 0.01 * F).
Clculo del CAF (Complexity Adjustment Factor):
CAF = 0.65 + 0.01 *N
* CAF puede variar entre 0.65 (todos los ratings en 0) hasta 1.35 (todos los
ratings en 5)
Clculo del AFP (Adjusted Funtion Points):
AFP = FP * CAF
Clculo Puntos de Aplicacin (SLOC/FP):
SLOC = LANG_FACTOR * PF

Ejemplo
Ejemplo 02:
Supongamos un aplicacin con 10 entradas, 10 salidas, 10 consultas, 1 archivo de
datos y i archivo de interfaz, todos ellos de complejidad promedio. Supongamos que los
factores de influencia se determinaron de la siguiente manera:

Ingeniera de Software

16

METODOS MANUALES
F1

F2

F3

F4

F38

F5

F39

F6

F 410

F7

F 411

F 12

F 13

F 14

La
El

Parmetro
significativo
Entradas
Salidas
Archivos Lgicos
Archivos de
Interface
Consultas

suma de los 14 factores de influencia es: 40


clculo de los puntos de funcin sin ajustar es:
Nmero

Baja complejidad

Alta complejidad

10
10
10
1

4
5
4
10

40
50
40
10

La suma de los puntos de funcin es: 147


Calculo del factor de complejidad40 x 0.01 + 0.65 = 1.05Calculo del valor final de
puntos de funcin ajustado es: 147 x 1.05 = 154

Relacin entre puntos de funcin y lneas de cdigo

Normal

Ingeniera de Software

17

METODOS MANUALES

Ttulo 1
Ttulo 2
Ttulo 3
Normal

http://www.academia.edu/4749373/2_2_Evaluaci%C3%B3n_del_Costo_Beneficio
http://eclases.tripod.com/id14.html
http://www.codecompiling.net/files/slides/clase_06_costos.pdf
ocw.uc3m.es/ingenieria-informatica/principios-de-ingenieria-informatica/psp-0.1
http://www.liderdeproyecto.com/articulos/estimacion_costos_de_software.html

Ingeniera de Software

18