Estimación de Costo de
Software
Instituto Universitario Politécnico
“Santiago Mariño"
Extensión Caracas
Factores en el costo del software
Los factores de costo describen aspectos relacionados con la naturaleza del producto, hardware utilizado, personal
involucrado, y características propias del proyecto.
Productos:
El proceso de estimación del costo de un producto software está formado por un conjunto de técnicas y
procedimientos que se usan en la organización para poder llegar a una predicción fiable. Este es un proceso continuo,
que debe ser usado y consultado a lo largo de todo el ciclo de vida del proyecto.
Tiempo Disponible:
Es una predicción de cuánto tiempo durará y costará el desarrollo y mantenimiento de un proyecto de desarrollo de
software a medida. El esfuerzo puede expresarse en horas/persona.
Factores en el costo del software
Confiabilidad:
Probabilidad de que el software se ejecute durante un periodo de tiempo determinado sin que se produzca un fallo,
ponderada por el coste para el usuario de cada fallo que se produzca.
Productividad:
Eficiencia con la que se producen bienes o servicios, calculada como una relación entre la tasa de producción y los
medios utilizados para conseguirla.
Métricas técnicas:
Las métricas técnicas para el software proporcionan una manera sistemática de valorar la calidad basándose en un
conjunto de reglas. También proporcionan al ingeniero del software descubrir y corregir problemas potenciales antes de
que se conviertan en defectos catastróficos.
Factores en el costo del software
Orientadas al tamaño:
Es para saber en que tiempo voy a terminar el software y cuantas personas voy a necesitar.
Orientadas a personas:
Proporcionan medidas e información sobre la forma que la gente desarrolla el software de computadoras y sobre todo el
punto de vista humano de la efectividad de las herramientas y métodos. Son las medidas que voy a hacer de mi
personal que va a realizar el sistema.
Mediciones de Software
La medicion del software es una tecnologia con caracteristicas y limitaciones similares a una nueva e
inmadura tecnologia.
La medición de software implica analizar las estadísticas de uso de software y ayuda a los
administradores de TI a reducir los gastos generales debido a renovaciones y actualizaciones no
deseadas.
La medición de software está adquiriendo más importancia entre las empresas que buscan reducir
los costos de TI. Los gastos incurridos por las renovaciones de licencias innecesarias están llamando
la atención de los administradores de TI, que están buscando formas de reducir los gastos de TI.
Esto se puede lograr al observar las métricas de uso de cada aplicación.
Técnicas de Descomposición
Las técnicas de descomposición en programación matemática, en particular programación lineal, aprovechan la
estructura de los problemas y las características del método de resolución para resolver problemas más pequeños de
forma secuencial asegurando la convergencia al óptimo del problema completo.
Tamaño del software:
Se predice basándose en:
• Grado que el planificador a estimado el tamaño del producto.
• Habilidad para traducir la estimación en esfuerzo humano, tiempo y dinero.
• Grado en que el plan del proyecto proteja las habilidades del equipo de software.
• Estabilidad de los requisitos del software.
Técnicas de Descomposición
Tamaño en lógica difusa:
En este enfoque, el planificador debe identificar el tipo de aplicación, establecer su magnitud en una escala
cualitativa y luego refinar la magnitud dentro del rango original.
Tamaño en punto de función:
El planificador desarrolla estimaciones de las características del dominio de información
Tamaño de componentes estándar:
El software está compuesto de algunos “componentes estándares” diferentes que son genéricos a un área de
aplicación particular.
Por ejemplo, los componentes estándares para un sistema de información son subsistemas, módulos, pantallas,
reportes, programas interactivos, programas en lote, archivos e instrucciones en el nivel objeto.
Técnicas de Descomposición
Tamaño de cambio:
Este enfoque se usa cuando un proyecto abarca el uso de software existente que debe modificarse en alguna forma
como parte de un proyecto. El planificador estima el número y tipo (por ejemplo, reuso, código agregado, cambio de
código, código borrado) de las modificaciones que deben lograrse.
Estimación basada en el problema:
Los datos LOC y PF se usan en dos formas durante la estimación del proyecto de software: 1) como variables de
estimación para “dimensionar” cada elemento del software y 2) como métricas de referencia recopiladas de
proyectos pasados y utilizadas en conjunto con variables de estimación para desarrollar proyecciones de costo y
esfuerzo.
Técnicas de Descomposición
Estimación basada en LCD:
Como ejemplo de técnicas de estimación LOC basadas en problema, podemos considerar un paquete de software
que se va a desarrollar para una aplicación de diseño asistido por computadora para componentes mecánicos. El
software debe ejecutarse en una estación de trabajo de ingeniería y tener interfaz con varios periféricos de gráficos
de computadora, incluido un ratón, pantalla a color de alta resolución e impresora láser.
Estimación basada en PF:
La descomposición para estimación basada en PF se enfoca en valores de dominio de información en lugar de en
funciones del software. Se estiman entradas, salidas, consultas, archivos e interfaces externas para el software.
Estimación basada en el proceso:
El proceso se descompone en un conjunto relativamente pequeño de tareas y se estima el esfuerzo requerido para
lograr cada tarea. Como en las técnicas basadas en problemas, la estimación basada en proceso comienza con un
delineado de las funciones de software obtenidas del ámbito del proyecto.
Estimación de Esfuerzo
La estimación del esfuerzo se puede definir como un proceso que intenta predecir con cierto grado de certeza los
recursos de hardware y software, costo, tiempo y esfuerzo necesarios para completar las actividades de un proyecto y
entregar las respectivas salidas: productos o servicios.
Estimar consiste en determinar el valor de una variable desconocida a partir de otras conocidas, o de una pequeña
cantidad de valores conocidos de esa misma variable.
La estimación de esfuerzo es el proceso de predecir la cantidad más realista de esfuerzo (expresado en
persona/hora) que se requieren para desarrollar o mantener una aplicación o servicio a menudo basado en el
conocimiento de aplicaciones o servicios similares previamente desarrollados; se acota con el costo de tiempo y
Dinero.
Modelos
De estimación (Empírica):
El Modelo Constructivo de Costes COCOMO -Constructive Cost Model– es utilizado en proyectos de software para
estimar los costes del mismo en función de tres submodelos: básico, intermedio y detallado. El modelo básico estima
el coste del proyecto –pequeño o mediano- en función de número de líneas de código estimadas.
De Cocomo:
Un modelo empírico de estimación para el software de computadora utiliza fórmulas derivadas empíricamente para
predecir los datos que se requieren en el paso de planificación del proyecto de software. Los datos empíricos que
soportan la mayoría de los modelos se obtienen de una muestra de proyectos limitada.
Modelos
Simplex:
Una “abstracción” del proceso de desarrollo de software. El modelo de proceso de software funciona para especificar
las etapas y el orden de todas las actividades que se realizan, así como también las secuencias.
De recursos:
El método SIMPLEX se encarga de establecer una solución inicial y factible. Luego, define una variable de entrada
al aplicar la condición de factibilidad. En esta situación, el algoritmo se puede detener para no que exista una
variable de entrada.
Modelos
De estimación de tiempo:
Consiste en predecir, en fases iniciales del ciclo de vida, características del software cuyo valor real sólo
puede conocerse en etapas posteriores o cuando el proyecto ha finalizado.