Вы находитесь на странице: 1из 23

ESTIMACION DE COSTE DEL SOFTWARE

INTRODUCCIN
1.1. Qu es un proyecto de Sistema o Software?
Es el Proceso de gestin para la creacin de un Sistema o software, la cual encierra un conjunto de actividades, una de las cuales es la estimacin.
FUNCIN RENDIMIENTO RESTRICCIONES INTERFACES FIABILIDAD

MBITO DEL SOFTWARE

1.2. Objetivos de la Planificacin del Proyecto. El objetivo de la Planificacin del proyecto de Software es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificacin temporal.
PLANIFICACIN
EXPERIENCIA

ESTIMACIN

RIESGO
DATOS HISTRICOS

2.- FACTORES EN EL COSTO DEL SOFTWARE


2.1 Capacidad del programador 2.2 Complejidad del producto (Software)
- Programas de Aplicacin (procesamiento de datos y programas de datos). - Programas de Apoyo (compiladores, ligadores y sistemas de inventarios).
- Programas de Sistema (sistema de base de Datos, sistemas operativos y sistemas para tiempo real).

2.3 Tamao del Producto.Un proyecto grande de programacin es obviamente mas cara en su desarrollo que un o pequeo.

2.4 Tiempo Disponible.El esfuerzo total del proyecto se relaciona con el calendario de trabajo asignado para la terminacin del proyecto

2.5 Nivel de Confiabilidad Requerido.La confiabilidad puede expresarse en trminos de exactitud, firmeza, cobertura y consistencia de cdigo fuente.
Categora Muy Baja Baja Nominal Alta Muy Alta Consecuencia de la falla Algunas molestias menor Las perdidas son fciles de recuperar Dificultad relativa en la recuperacin Gran perdida financiera Riesgo de una vida 0.75 0.88 1.00 1.15 1.40 Factor

2.6 Nivel Tecnolgico


El nivel de tecnologa empleado en un proyecto de programacin se refleja en el lenguaje utilizado

3.- TCNICAS DE DESCOMPOSICIN Normalizacin de las mtricas


Los datos normalizados son utilizados para evaluar el proceso y el producto (pero nunca a los individuos)

normalizacin orientada al tamao Por lneas de cdigo normalizacin orientada a la funcin Por puntos funcin

3.1.- Estimacin LDC (LOC es la sigla de la expresin inglesa Lines of Code. )


La medida ms utilizada para determinar el tamao de un proyecto informtico ha sido, durante mucho tiempo, la de las lneas de cdigo del software final obtenido.

Problemas de la utilizacin de LDC


* no existe definicin estndar de LDC (p.ej., se consideran LDC los comentarios?) * lneas fsicas o lgicas * contabilizacin del cdigo reutilizable * aplicaciones en diferentes lenguajes * estilos individuales de programacin

Ejemplo de LOC
Hay que desarrollar un software CAD que aceptar datos geomtricos de 2 o 3 dimensiones por parte del ingeniero. ste controlar el sistema CAD por medio de una interfaz que debe tener un diseo de buena calidad. Una base de datos CAD contiene todos los datos geomtricos y la informacin de soporte. Se desarrollarn mdulos de anlisis de diseo para producir la salida requerida que se va a visualizar en varios dispositivos grficos. El software se disear para controlar e interconectar diversos perifricos, como un ratn, un digitalizador y una impresora lser.

Funciones identificadas: interfaz de usuario y facilidades de control (IUFC) anlisis geomtrico de dos dimensiones (AG2D) anlisis geomtrico de tres dimensiones (AG3D) gestin de base de datos (GBD) facilidades de la interfaz grfica (FIG) control perifricos (CP) mdulos de anlisis del diseo (MAD)

descomposicin de funciones

Estimacin en LDC de AG3D: optimista: 4600 ms probable: 6900 pesimista: 8600

VE = (Sopt + 4Sm + Spes)/6

mtricas de proyectos anteriores

Datos histricos: productividad media de la organizacin en proyectos similares: 620 LDC/pm


Tarifa laboral: 8000 $ /mes Coste LDC: 13 $

Funcin IUFC AG2D AG3D GBD FIG CP MAD Total

LDC estimada 2300 5300 6800 3350 4950 2100 8400 33200

Coste total proyecto: 431000 $ Esfuerzo estimado: 54 personas-mes

Puntos de funcin: relacin emprica basada en medidas cuantitativas del dominio de informacin del software y valoraciones subjetivas acerca de la complejidad del software

3.2 Estimacin por PF (Expresin de Punto Funcin)


Determinacin de los puntos de funcin El recuento de los puntos de funcin se elabora a partir de determinadas caractersticas funcionales, que pueden ser de datos o de transaccin:

Por qu la preferencia a FP?


independencia del lenguaje de programacin
utiliza inmediatamente caractersticas contables del dominio de informacin del problema no penalizar implementaciones que requieren menos LOCs que otras (vs. mantenimiento) facilitan el reuso y favorecen a las iniciativas orientadas a objetos

Calcular Puntos Funcin


Analizar el dominio de la informacin de la aplicacin y desarrollar el conteo

Establecer el conteo para cada dominio de entrada e interfaces de sistema

Pesar cada conteo por evaluacin de la complejidad

Asignar el nivel de complejidad o peso para cada conteo

evaluar la influencia de factores globales que afecten la aplicacin

Grado de importancia de factores externos Fi tales como reuso, concurrencia, SO,... Puntos funcin = (conteo x peso) x C

Calcular puntos funcin

donde:
Factor de complejidad: C = (0.65 + 0.01 x N)

Grado de influencia: N = Fi

Analizar el Dominio de la Informacin


factor de ponderacin parmetro de medida conteo
simple prom. complejo

# de entradas de usuario
# de salidas de usuario # de consultas

X 3
X 4 X 3 X 7 X 5

4
5 4 10 7

6
7 6 15 10

=
= = = =

# de archivos
# of interfaces ext. conteo-total factor de complejidad puntos funcin

Considerar la Complejidad
Los factores se tasan en una escala 0 (sin importancia) 5 (muy importante)
comunicaciones de datos funciones distribuidas configuracin pesada tasa de transaccin entrada de datos en lnea eficiencia para el usuario actualizacin en lnea procesamiento complejo facilidad de instalacin facilidad operacional sites mltiples facilidad de cambios

Ejemplo FP
Valor dominio informacin Num. entradas Num. salidas Num. peticiones Num. archivos Num. interfaces ext. Cuenta total Opt. Probable Pesimista 20 12 16 4 2 24 15 22 4 2 30 22 28 5 3 Cuenta est 24 16 22 4 2 Peso 4 5 4 10 7 Cuenta PF 96 80 88 40 14 318

Copia de seguridad y recuperacin Comunicaciones Proceso distribuido Rendimiento crtico Entorno operativo existente Entrada de datos online Transacciones entrada en varias pant. Archivos maestros actualizados online Complejidad valores dominio informacin Complejidad procesamiento interno Cdigo diseado para reutilizacin Conversin en diseo Instalaciones mltiples Aplicacin diseada para cambios

4 2 0 4 3 4 5 3 5 5 4 3 5 5

PF estimado = cuenta total x (0,65 + 0,01 x Suma (Fi)

PF estimado = 372

Coste total proyecto: 457000 $ mtricas de proyectos anteriores Datos histricos: productividad media de la organizacin en proyectos similares: 6,5 PF/pm Esfuerzo estimado: 58 personas-mes

Tarifa laboral: 8000 $ /mes


Coste por PF: 1.230 $

3.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 relacin entre LDC y PF: depende del lenguaje escogido
Lenguaje
Ensamblador C Cobol Fortran Pascal Ada Lenguajes OO L4G Lenguajes visuales

LDC/PF (media)
320 128 105 105 90 70 30 20 4

4.-TECNICAS DE ESTIMACION
La estimacin se utiliza para definir si el presupuesto del proyecto y el producto se ajusta para que las cifras del presupuesto se cumplan.

4.1 Estimacin basada en el enfoque descendente o ascendente


Estos enfoques para la estimacin del costo se pueden abordar utilizando enfoque descendente o ascendente Un enfoque descendente inicia en el nivel de sistema. La estimacin comienza examinando la funcionalidad total del producto y cmo es que esa funcionalidad se propaga al interactuar con las subfunciones El enfoque ascendente, en contraste, inicia en el nivel de componente. El sistema se divide en componentes y se calcula el esfuerzo requerido para desarrollar cada uno de stos

4.2 Estimacin basada en el Proceso.


Es la tcnica ms comn para estimar un proyecto es basar la estimacin en el proceso que se va a utilizar, es decir, el proceso se descompone en un conjunto relativamente pequeo de actividades o tareas, y en el esfuerzo requerido para llevar a cabo la estimacin de cada tarea.

4.3 Tipos de Tcnicas de Estimacin de costos.Tcnica Descripcin

Modelado del algoritmo de costos

Se desarrolla un modelo utilizando informacin histrica de costos que relaciona alguna mtrica de software (por lo general, su tamao) con el costo del proyecto. Se consultan varios expertos en las tcnicas de desarrollo de software propuestas y en el dominio de aplicacin. Cada uno de ellos estima el costo del proyecto. Estas estimaciones se comparan y discuten. El proceso de estimacin se itera hasta que se acuerda una estimacin. Esta tcnica es aplicable cuando otros proyectos en el mismo dominio de aplicacin se han completado. Se estima el costo de un nuevo proyecto por analoga con estos proyectos completados. La Ley de Parkinson establece que el trabajo se extiende para llenar el tiempo disponible. El costo se determina por los recursos disponibles ms que por los objetivos logrados. El costo del software se estima dependiendo de lo que el cliente est dispuesto a pagar por el proyecto. El esfuerzo estimado depende del presupuesto del cliente y no de la funcionalidad del software

Opinin de expertos

Estimacin por analoga

Ley de Parkinson

Asignar costos para ganar

5 TCNICAS DE ESTIMACIN DE COSTOS DEL SOFTWARE


5.1.- Estimacin de Costos por la Tcnica del Juicio Experto.Se basa en la experiencia, como en el conocimiento anterior en el sentido comercial de uno o mas individuos dentro de la organizacin, su mayor ventaja es la experiencia la cual puede llegar a ser su debilidad 5.2. Estimacin del costo por la tcnica DELFI La tcnica DELFI fue desarrollada con el fin de tener el consenso de expertos, sin contar con los efectos negativos de las reuniones de grupos

5.3- MODELOS DE ESTIMACIN EMPRICA


Donde los datos que soportan la mayora de los modelos de estimacin obtienen una muestra limitada de proyectos

COCOMO (MEDELO CONSTRUCTIVO DE COSTE)

MODELO 1 (COCOMO bsico) calcula el esfuerzo y el coste del desarrollo en funcin del tamao estimado del programa (LDC). Se utiliza para una aproximacin rpida al principio del ciclo de vida.

ESFUERZO: TIEMPO:

E = ab KLDCbb D = cb Edb

MODELO 2 (COCOMO intermedio) calcula el esfuerzo y el coste en funcin del tamao estimado del programa y de un conjunto de guas de coste que incluyen una evaluacin subjetiva del producto, hardware, personal y atributos del producto

Tres tipos de proyectos: Orgnicos: relativamente pequeos y sencillos, en los que trabajan pequeos equipos con experiencia, sobre un conjunto de requisitos poco rgidos. Semiacoplados: proyectos intermedios (en tamao y complejidad) en los que participan equipos con variados niveles de experiencia, y que deben satisfacer requisitos poco o medio rgidos. Empotrados: proyectos que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringido. MODELO COCOMO BSICO Proyecto Orgnico ab 2,4 bb 1,05 1,12 1,20 cb 2,5 2,5 2,5 db 0,38 0,35 0,32

ESFUERZO: E = ai KLDCbi x FAE (factor de ajuste del esfuerzo)

MODELO 3 (COCOMO avanzado) incorpora las caractersticas del mod. 2 y evala el impacto de los FAE en cada fase del desarrollo.

Semiacoplado 3,0 Empotrado 3,6

Ejemplo COCOMO

Por ejemplo, si sabemos que en el proyecto se trabajar con un nivel alto de utilizacin de herramientas de desarrollo, el factor de coste tendr un valor de 0,91. Por lo tanto, si el esfuerzo nominal calculado es de 40 personas-mes, la estimacin de coste final (suponiendo el resto de factores a nivel medio) ser E = 40x0,91 = 36,4 personas-mes Se trata de estimar el esfuerzo de desarrollo de un sistema de comunicaciones de 30 KDLC, de alta complejidad. Afortunadamente podremos emplear personal de muy alta cualificacin con una gran experiencia especfica en este tipo de software. El coste del salario mensual de cada persona es de 1.350 _/mes Si aplicamos COCOMO, podemos ver que el esfuerzo estimado ser: Esfuerzo nominal = 3,2 x (30)1,05 = 113,79 personas-mes.

5.5.-Modelo de Estimacin de Putnam


Es un modelo multivariable dinmico que asume una distribucin especifica del esfuerzo a lo largo de la vida de un proyecto de desarrollo de Software.

5.6 Modelos del Punto Funcin


Las mtricas del software orientadas a la funcin son medidas indirectas del software y del proceso por el cual se desarrolla. Ms que calcular las LDC las mtricas orientadas a la funcin se centran en la funcionalidad o utilidad del programa

5.7 Modelo de estudio temporal


En un nivel individual, el proceso de desarrollo del software se ve afectado por un numero n de gente interaccionando en el proyecto y por las caractersticas del entorno en el cual esa gente interacciona.

6 HERRAMIENTAS AUTOMTICAS DE ESTIMACIN.


Las herramientas automticas de estimacin permiten al planificador estimar costos y esfuerzos, as como llevar a cabo anlisis del tipo, que pasa si, con importantes variables del proyecto, tales como la fecha de entrega o la seleccin del personal.

7.- ESTIMACIN DE LOS COSTOS DE MANTENIMIENTO DE SOFTWARE


La mayor preocupacin con respecto al mantenimiento durante la fase de plantacin de un proyecto de programacin es estimar el nmero de programadores de mantenimiento que se requerirn, as como especificar las facilidades necesarias para que se lleve acabo.
Actividad Mejoras Mayor eficiencia Mejor documentacin Mejoras para el usuario Adaptacin Datos de entrada y archivos Equipo y sistema operativo Correcciones Arreglos de emergencia Arreglos programados Otros % del esfuerzo 51.3 4.0 5.5 41.8 23.6 17.4 6.2 21.7 12.4 9.3 3.4

Ejemplos de posibles riesgos en el desarrollo de software

riesgo
rotacin de personal

tipo de riesgo

descripcin

proyecto, producto personal con experiencia abandona el proyecto antes de que y negocio finalice proyecto proyecto proyecto y producto proyecto y producto proyecto y producto producto negocio

cambio de administracin
no disponibilidad del hardware cambios de requerimientos retrasos en la especificacin subestimacin del tamao

cambio de administracin organizativa con diferentes prioridades


el hardware necesario para el proyecto no se recibe a tiempo existencia de ms cambios de requerimientos de los previstos inicialmente retrasos en las especificaciones de interfaces esenciales el tamao del sistema se ha subestimado

bajo rendimiento de la herramienta CASE


cambio de tecnologa competencia del producto

las herramientas CASE que ayudan al proyecto no tienen el rendimiento y las funcionalidades esperadas
la tecnologa fundamental sobre la que se est construyendo el sistema es sustituida por una nueva un producto competitivo se pone en venta antes de que el sistema se complete

negocio

8 Conclusiones
En conclusin la planificacin del Proyecto de Software tiene que estimar tres cosas antes de que comience el proyecto: cuanto durara, cuanto esfuerzo requerir y cuanta gente estar implicada. Adems el planificador debe predecir los recursos de hardware y software que va a requerir y el riesgo implicado

Cualquier cosas que necesites cuantificar debe ser medido y de alguna forma es superior a no medirlo del todo Tom Gilb