ESTIMACION DE COSTE DEL ESTIMACION DE COSTE DEL SOFTWARESOFTWARE
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.
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).
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
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
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.
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
mé
tric
as
de
pro
yect
os
an
terio
res
mé
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
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
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:
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
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
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
mé
tric
as
de
pro
yect
os
an
terio
res
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.
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.
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
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
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)
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.
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.
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
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
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
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