costos del software

23
ESTIMACION DE COSTE ESTIMACION DE COSTE DEL SOFTWARE DEL SOFTWARE

Upload: diego-caballero

Post on 13-Jun-2015

1.809 views

Category:

Documents


0 download

DESCRIPTION

ESTIMACIÓN DE COSTOS DEL SOFTWARE

TRANSCRIPT

Page 1: costos del software

ESTIMACION DE COSTE DEL ESTIMACION DE COSTE DEL SOFTWARESOFTWARE

Page 2: costos del software

INTRODUCCIÓNINTRODUCCIÓN

– 1.2. Objetivos de la Planificación del Proyecto.1.2. Objetivos de la Planificación del Proyecto.

El objetivo de la Planificación del proyecto de Software es El objetivo de la Planificación del proyecto de Software es proporcionar un marco de trabajo que permita al gestor hacer proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificación estimaciones razonables de recursos costos y planificación temporal. temporal.

PLANIFICACIÓNPLANIFICACIÓN

ESTIMACIÓNESTIMACIÓN RIESGORIESGOEXPERIENCIA

EXPERIENCIA

DATOSHISTÓRICOS

DATOSHISTÓRICOS

ÁMBITO DELSOFTWARE

RENDIMIENTO

RESTRICCIONES

INTERFACES

FIABILIDAD

FUNCIÓN–1.1. ¿Qué es un proyecto de Sistema o Software?1.1. ¿Qué es un proyecto de Sistema o Software?

Es el Proceso de gestión para la creación de un Sistema o software, la cual encierra un conjunto de actividades, una de las cuales es la estimación.

Page 3: costos del software

2.- FACTORES EN EL COSTO DEL SOFTWARE2.- FACTORES EN EL COSTO DEL SOFTWARE

2.1 Capacidad del programador

2.2 Complejidad del producto (Software)

- Programas de Aplicación (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).

Page 4: costos del software

2.3 Tamaño del Producto.-

Un proyecto grande de programación es obviamente mas cara en su desarrollo que un o pequeño.

2.4 Tiempo Disponible.-

El esfuerzo total del proyecto se relaciona con el calendario de trabajo asignado para la terminación del proyecto

2.5 Nivel de Confiabilidad Requerido.-

La confiabilidad puede expresarse en términos de exactitud, firmeza, cobertura y consistencia de código fuente.

Categoría Consecuencia de la falla Factor

Muy BajaBajaNominalAltaMuy Alta

Algunas molestias menorLas perdidas son fáciles de recuperarDificultad relativa en la recuperaciónGran perdida financieraRiesgo de una vida

0.750.881.001.151.40

Page 5: costos del software

2.6 Nivel Tecnológico2.6 Nivel Tecnológico

El nivel de tecnología empleado en un proyecto de programación se refleja en el lenguaje utilizado

3.- TÉCNICAS DE DESCOMPOSICIÓN

Normalización de las métricasNormalización de las métricas

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

normalización orientada al tamaño

—Por líneas de código

normalización orientada a la función

—Por puntos función

Page 6: costos del software

3.1.- Estimación LDC (LOC es la sigla de la expresión inglesa Lines of Code. )

* no existe definición estándar de LDC (p.ej., ¿se consideran LDC los comentarios?)* líneas físicas o lógicas* contabilización del código reutilizable* aplicaciones en diferentes lenguajes* estilos individuales de programación

Problemas de la utilización de LDC

La medida más utilizada para determinar el tamaño de un proyecto informático ha sido, durante mucho tiempo, la de las líneas de código del software final obtenido.

Page 7: costos del software

Ejemplo de LOCEjemplo de LOC

Hay que desarrollar un software CAD que aceptará datos geométricos de 2 o 3 dimensiones por parte del ingeniero. Éste controlará el sistema CAD por medio de una interfaz que debe tener un diseño de buena calidad. Una base de datos CAD contiene todos los datos geométricos y la información de soporte. Se desarrollarán módulos de análisis de diseño para producir la salida requerida que se va a visualizar en varios dispositivos gráficos.El software se diseñará para controlar e interconectar diversos periféricos, como un ratón, un digitalizador y una impresora láser.

Hay que desarrollar un software CAD que aceptará datos geométricos de 2 o 3 dimensiones por parte del ingeniero. Éste controlará el sistema CAD por medio de una interfaz que debe tener un diseño de buena calidad. Una base de datos CAD contiene todos los datos geométricos y la información de soporte. Se desarrollarán módulos de análisis de diseño para producir la salida requerida que se va a visualizar en varios dispositivos gráficos.El software se diseñará para controlar e interconectar diversos periféricos, como un ratón, un digitalizador y una impresora láser.

Funciones identificadas:interfaz de usuario y facilidades de control (IUFC)análisis geométrico de dos dimensiones (AG2D)análisis geométrico de tres dimensiones (AG3D)gestión de base de datos (GBD)facilidades de la interfaz gráfica (FIG)control periféricos (CP)módulos de análisis del diseño (MAD)

Funciones identificadas:interfaz de usuario y facilidades de control (IUFC)análisis geométrico de dos dimensiones (AG2D)análisis geométrico de tres dimensiones (AG3D)gestión de base de datos (GBD)facilidades de la interfaz gráfica (FIG)control periféricos (CP)módulos de análisis del diseño (MAD)

Estimación en LDC de AG3D:optimista: 4600más probable: 6900pesimista: 8600

Estimación en LDC de AG3D:optimista: 4600más probable: 6900pesimista: 8600

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

Función LDC estimada

IUFC 2300AG2D 5300AG3D 6800GBD 3350FIG 4950CP 2100MAD 8400Total 33200

Función LDC estimada

IUFC 2300AG2D 5300AG3D 6800GBD 3350FIG 4950CP 2100MAD 8400Total 33200

Datos históricos:productividad media de la organización en proyectos similares: 620 LDC/pm

Tarifa laboral: 8000 $ /mes

Coste LDC: 13 $

Datos históricos:productividad media de la organización en proyectos similares: 620 LDC/pm

Tarifa laboral: 8000 $ /mes

Coste LDC: 13 $

de

sco

mp

osi

ció

nd

e f

un

cio

ne

s

de

sco

mp

osi

ció

nd

e f

un

cio

ne

s

tric

as

de

pro

yect

os

an

terio

res

tric

as

de

pro

yect

os

an

terio

res

Coste total proyecto: 431000 $

Esfuerzo estimado: 54 personas-mes

Coste total proyecto: 431000 $

Esfuerzo estimado: 54 personas-mes

Page 8: costos del software

3.2 Estimación por PF (Expresión de Punto Función)Determinación de los puntos de función El recuento de los puntos de

función se elabora a partir de determinadas características funcionales, que pueden ser de datos o de transacción:

independencia del lenguaje de programación

utiliza inmediatamente características contables del “dominio de información” del problema

no “penalizar” implementaciones que requieren menos LOCs que otras (vs. mantenimiento)

facilitan el reuso y favorecen a las iniciativas orientadas a objetos

¿Por qué la preferencia a ¿Por qué la preferencia a FP?FP?

Puntos de función: relación empírica basada en medidas cuantitativas del dominio de información del software y valoraciones subjetivas acerca de la complejidad del software

Page 9: costos del software

Calcular Puntos Calcular Puntos FunciónFunciónAnalizar el dominio

de la información de laaplicaciòn y desarrollarel conteo

Pesar cada conteo porevaluación de lacomplejidad

evaluar la influencia defactores globales queafecten la aplicación

Calcular puntosfunción

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

Asignar el nivel de complejidad o pesopara cada conteo

Grado de importancia de factores externosFi tales como reuso, concurrencia, SO,...

Grado de influencia: N = Fi

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

Puntos función = (conteo x peso) x C

donde:

Page 10: costos del software

Analizar el Dominio de la Analizar el Dominio de la InformaciónInformación

factor de complejidad

puntos función

# de entradas de usuario

# de salidas de usuario # de consultas # de archivos # of interfaces ext.

parámetro de medida

3 4 3 7 5

conteofactor de ponderación

simple prom. complejo

4 5 4 10 7

6 7 6 15 10

= = = = =

conteo-total

X X X X X

Page 11: costos del software

Considerar la Considerar la ComplejidadComplejidadLos factores se tasan en una escala

0 (sin importancia) – 5 (muy importante)

comunicaciones de datosfunciones distribuidasconfiguración pesadatasa de transacciónentrada de datos en lìneaeficiencia para el usuario

actualización en líneaprocesamiento complejofacilidad de instalaciónfacilidad operacionalsites múltiplesfacilidad de cambios

Page 12: costos del software

Ejemplo FPEjemplo FP

Valor dominio información

Opt. Probable Pesimista Cuenta est

Peso Cuenta PF

Num. entradas 20 24 30 24 4 96 Num. salidas 12 15 22 16 5 80 Num. peticiones 16 22 28 22 4 88 Num. archivos 4 4 5 4 10 40 Num. interfaces ext. 2 2 3 2 7 14 Cuenta total 318

Copia de seguridad y recuperación 4Comunicaciones 2Proceso distribuido 0Rendimiento crítico 4Entorno operativo existente 3Entrada de datos online 4Transacciones entrada en varias pant. 5Archivos maestros actualizados online 3Complejidad valores dominio información 5Complejidad procesamiento interno 5Código diseñado para reutilización 4Conversión en diseño 3Instalaciones múltiples 5Aplicación diseñada para cambios 5

Copia de seguridad y recuperación 4Comunicaciones 2Proceso distribuido 0Rendimiento crítico 4Entorno operativo existente 3Entrada de datos online 4Transacciones entrada en varias pant. 5Archivos maestros actualizados online 3Complejidad valores dominio información 5Complejidad procesamiento interno 5Código diseñado para reutilización 4Conversión en diseño 3Instalaciones múltiples 5Aplicación diseñada para cambios 5

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

PF estimado = 372PF estimado = 372

Coste total proyecto: 457000 $

Esfuerzo estimado: 58 personas-mes

Coste total proyecto: 457000 $

Esfuerzo estimado: 58 personas-mesDatos históricos:productividad media de la organización en proyectos similares: 6,5 PF/pm

Tarifa laboral: 8000 $ /mes

Coste por PF: 1.230 $

Datos históricos:productividad media de la organización en proyectos similares: 6,5 PF/pm

Tarifa laboral: 8000 $ /mes

Coste por PF: 1.230 $mé

tric

as

de

pro

yect

os

an

terio

res

tric

as

de

pro

yect

os

an

terio

res

Page 13: costos del software

relación entre LDC y PF: depende del lenguaje escogido

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

Lenguaje LDC/PF (media)

Ensamblador 320C 128Cobol 105Fortran 105Pascal 90Ada 70Lenguajes OO 30L4G 20Lenguajes visuales 4

Lenguaje LDC/PF (media)

Ensamblador 320C 128Cobol 105Fortran 105Pascal 90Ada 70Lenguajes OO 30L4G 20Lenguajes visuales 4

Aunque los puntos de función y las líneas de código sean diferentes, es posible encontrar una especie de equivalencia entre los unos y las otras

4.-TECNICAS DE ESTIMACION

La estimación se utiliza para definir si el presupuesto del proyecto y el producto se ajusta para que las cifras del presupuesto se cumplan.

Page 14: costos del software

4.1 Estimación basada en el enfoque descendente o ascendente

Estos enfoques para la estimación del costo se pueden abordar utilizando enfoque descendente o ascendente

Un enfoque descendente inicia en el nivel de sistema. La estimación comienza examinando la funcionalidad total del producto y cómo 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 Estimación basada en el Proceso.

Es la técnica más común para estimar un proyecto es basar la estimación en el proceso que se va a utilizar, es decir, el proceso se descompone en un conjunto relativamente pequeño de actividades o tareas, y en el esfuerzo requerido para llevar a cabo la estimación de cada tarea.

Page 15: costos del software

4.3 Tipos de Técnicas de Estimación de costos.-4.3 Tipos de Técnicas de Estimación de costos.- Técnica Descripción

Modelado del algoritmo de costos

Se desarrolla un modelo utilizando información histórica de costos que relaciona alguna métrica de software (por lo general, su tamaño) con el costo del proyecto.

Opinión de expertos

Se consultan varios expertos en las técnicas de desarrollo de software propuestas y en el dominio de aplicación. Cada uno de ellos estima el costo del proyecto. Estas estimaciones se comparan y discuten. El proceso de estimación se itera hasta que se acuerda una estimación.

Estimación por analogíaEsta técnica es aplicable cuando otros proyectos en el mismo dominio de

aplicación se han completado. Se estima el costo de un nuevo proyecto por analogía con estos proyectos completados.

Ley de ParkinsonLa Ley de Parkinson establece que el trabajo se extiende para llenar el

tiempo disponible. El costo se determina por los recursos disponibles más que por los objetivos logrados.

Asignar costos para ganarEl 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

Page 16: costos del software

5 TÉCNICAS DE ESTIMACIÓN DE COSTOS DEL SOFTWARE5 TÉCNICAS DE ESTIMACIÓN DE COSTOS DEL SOFTWARE

5.1.- Estimación de Costos por la Técnica 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 organización, su mayor ventaja es la experiencia la cual puede llegar a ser su debilidad

5.2. – Estimación del costo por la técnica DELFI

La técnica 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 ESTIMACIÓN EMPÍRICA

Donde los datos que soportan la mayoría de los modelos de estimación obtienen una muestra limitada de proyectos

Page 17: costos del software

MODELO 1 (COCOMO básico)calcula el esfuerzo y el coste del desarrollo en función del tamaño estimado del programa (LDC). Se utiliza para una aproximación rápida al principiodel ciclo de vida.

ESFUERZO: E = ab KLDCbb

TIEMPO: D = cb Edb

MODELO 1 (COCOMO básico)calcula el esfuerzo y el coste del desarrollo en función del tamaño estimado del programa (LDC). Se utiliza para una aproximación rápida al principiodel ciclo de vida.

ESFUERZO: E = ab KLDCbb

TIEMPO: D = cb Edb

MODELO 2 (COCOMO intermedio)calcula el esfuerzo y el coste en función del tamañoestimado del programa y de un conjunto de “guíasde coste” que incluyen una evaluación subjetiva del producto, hardware, personal y atributos del producto

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

MODELO 2 (COCOMO intermedio)calcula el esfuerzo y el coste en función del tamañoestimado del programa y de un conjunto de “guíasde coste” que incluyen una evaluación subjetiva del producto, hardware, personal y atributos del producto

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

MODELO 3 (COCOMO avanzado)incorpora las características del mod. 2 y evalúa elimpacto de los FAE en cada fase del desarrollo.

MODELO 3 (COCOMO avanzado)incorpora las características del mod. 2 y evalúa elimpacto de los FAE en cada fase del desarrollo.

• Tres tipos de proyectos:Tres tipos de proyectos:– Orgánicos: relativamente pequeños y sencillos, en Orgánicos: relativamente pequeños y sencillos, en

los que trabajan pequeños equipos con experiencia, los que trabajan pequeños equipos con experiencia, sobre un conjunto de requisitos poco rígidos.sobre un conjunto de requisitos poco rígidos.

– Semiacoplados: proyectos intermedios (en tamaño y Semiacoplados: proyectos intermedios (en tamaño y complejidad) en los que participan equipos con complejidad) en los que participan equipos con variados niveles de experiencia, y que deben variados niveles de experiencia, y que deben satisfacer requisitos poco o medio rígidos.satisfacer requisitos poco o medio rígidos.

– Empotrados: proyectos que deben ser desarrollados Empotrados: proyectos que deben ser desarrollados en un conjunto de hardware, software y en un conjunto de hardware, software y restricciones operativas muy restringido.restricciones operativas muy restringido.

MODELO COCOMO BÁSICO

Proyecto ab bb cb db

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

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

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

MODELO COCOMO BÁSICO

Proyecto ab bb cb db

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

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

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

COCOMO (MEDELO CONSTRUCTIVO DE COSTE)

Page 18: costos del software

Ejemplo COCOMO

Por ejemplo, si sabemos que en el proyecto se trabajará con un nivel alto de utilización 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 estimación 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 cualificación con una gran experiencia específica en este tipo de software.

El coste del salario mensual de cada persona es de 1.350 _/mesSi aplicamos COCOMO, podemos ver que el esfuerzo estimado será:

Esfuerzo nominal = 3,2 x (30)1,05 = 113,79 personas-mes.

Page 19: costos del software

5.5.-Modelo de Estimación de Putnam

Es un modelo multivariable dinámico que asume una distribución especifica del esfuerzo a lo largo de la vida de un proyecto de desarrollo de Software.

5.6 Modelos del Punto Función

Las métricas del software orientadas a la función son medidas indirectas del software y del proceso por el cual se desarrolla. Más que calcular las LDC las métricas orientadas a la función 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 características del entorno en el cual esa gente interacciona.

Page 20: costos del software

6 HERRAMIENTAS AUTOMÁTICAS DE ESTIMACIÓN.

Las herramientas automáticas de estimación permiten al planificador estimar costos y esfuerzos, así como llevar a cabo análisis del tipo, que pasa si, con importantes variables del proyecto, tales como la fecha de entrega o la selección del personal.

7.- ESTIMACIÓN DE LOS COSTOS DE MANTENIMIENTO DE SOFTWARE La mayor preocupación con respecto al mantenimiento durante la fase de plantación de un proyecto de programación es estimar el número de programadores de mantenimiento que se requerirán, así como especificar las facilidades necesarias para que se lleve acabo.

Actividad % del esfuerzo

Mejoras Mayor eficiencia Mejor documentación Mejoras para el usuarioAdaptación Datos de entrada y archivos Equipo y sistema operativoCorrecciones Arreglos de emergencia Arreglos programadosOtros

51.34.05.541.823.617.46.221.712.49.33.4

Page 21: costos del software

Ejemplos de posibles riesgos en el desarrollo de software

riesgoriesgo tipo de riesgotipo de riesgo descripcióndescripción

rotación de personalrotación de personal proyecto, producto proyecto, producto y negocioy negocio

personal con experiencia abandona el proyecto antes de que personal con experiencia abandona el proyecto antes de que finalicefinalice

cambio de cambio de administraciónadministración proyectoproyecto cambio de administración organizativa con diferentes cambio de administración organizativa con diferentes

prioridadesprioridades

no disponibilidad del no disponibilidad del hardwarehardware proyectoproyecto el hardware necesario para el proyecto no se recibe a tiempoel hardware necesario para el proyecto no se recibe a tiempo

cambios de cambios de requerimientosrequerimientos

proyecto y proyecto y productoproducto

existencia de más cambios de requerimientos de los previstos existencia de más cambios de requerimientos de los previstos inicialmenteinicialmente

retrasos en la retrasos en la especificaciónespecificación

proyecto y proyecto y productoproducto retrasos en las especificaciones de interfaces esencialesretrasos en las especificaciones de interfaces esenciales

subestimación del subestimación del tamañotamaño

proyecto y proyecto y productoproducto el tamaño del sistema se ha subestimadoel tamaño del sistema se ha subestimado

bajo rendimiento de bajo rendimiento de la herramienta la herramienta

CASECASEproductoproducto las herramientas CASE que ayudan al proyecto no tienen el las herramientas CASE que ayudan al proyecto no tienen el

rendimiento y las funcionalidades esperadasrendimiento y las funcionalidades esperadas

cambio de cambio de tecnologíatecnología negocionegocio la tecnología fundamental sobre la que se está construyendo el la tecnología fundamental sobre la que se está construyendo el

sistema es sustituida por una nuevasistema es sustituida por una nueva

competencia del competencia del productoproducto negocionegocio un producto competitivo se pone en venta antes de que el un producto competitivo se pone en venta antes de que el

sistema se completesistema se complete

Page 22: costos del software

8 Conclusiones

En conclusión la planificación 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. Además el planificador debe predecir los recursos de hardware y software que va a requerir y el riesgo implicado

Page 23: costos del software

Cualquier cosas que necesitesCualquier cosas que necesitescuantificar debe ser medidocuantificar debe ser medidoy de alguna forma es superiory de alguna forma es superiora no medirlo del todoa no medirlo del todo

Tom GilbTom Gilb