Ejemplo de estimación con Ecuación de Software

EJEMPLO SOBRE ECUACIÓN DE SOFTWARE
Recuerden: La relación entre el personal y el tiempo no es lineal. Usando la ecuación del software de Putnam:
3
 L 
Esfuerzo  
*B
4/3 
P
*
t


Donde L = Número de líneas de código fuente.
P = Parámetro de Productividad.
E = Esfuerzo de desarrollo en personas-año.
t = tiempo de desarrollo en años.
En un Proyecto de Software con las siguientes características:
Su tamaño se ha estimado en 500 Puntos de Función (ajustados).
Debe entregarse en 9 meses.
Es una aplicación para cálculos en bio-informática.
Se requiere escribirlo en lenguaje C++. Tasa de conversión: 66 LDC / PF
(a) Estime el esfuerzo para esa aplicación
(b) Estime la cantidad de personas
(c) Si el proyecto se prorroga por 2 meses, ¿cuántas personas se necesitarían?
(d) En relación con los ítems (c) y (d), calcule la diferencia porcentual en cuanto a salarios, si se
paga a cada persona 1.500.000 pesos
SOLUCIÓN
Parte (a) Estimación del esfuerzo
Hay que llevar el tamaño a la unidad de Líneas de Código Fuente:
L = Tamaño (LDC en C++) = 500 PF * 66 (LDC/PF) = 33000 LDC (ó 33 KLDC)
Determinamos el valor P (índices de productividad, indicados en la Tabla 1) teniendo en cuenta el
tipo de aplicación. Al ser un software para cálculos en bio-informática, es una aplicación del tipo
“Sistemas científicos” y el valor de P correspondiente es P = 13530
El tiempo lo expresamos en años:
9 meses = 0.75 años.
t4/3 = (0.75)4/3 = 0.68142022
Ahora determinamos el factor B mirando el tamaño en KLDC que en nuestro caso es 33 KLDC y
buscamos el valor que mejor se ajuste en la Tabla 2. El tamaño es superior a 30 KLDC de modo
que usamos el rango siguiente cuyo valor B = 0.34
¡Listo! Solo falta reemplazar:
3


33000
Esfuerzo  
 *0.34
13530*0.68142022


El esfuerzo será igual a 15.59 personas-año.
(b) Estime la cantidad de personas
Cantidad de personas = Esfuerzo / Duración
Cantidad de personas = 15.59 personas-año / 0.75 año = 20.7866 personas
En la práctica 21 personas.
(c) Estime cantidad de personas si el proyecto se prorroga por 2 meses más:
Significa que ya no se tendrán 9 meses sino 11 meses, de modo que debemos actualizar:
El tiempo lo expresamos en años:
11 meses = 0.91667 años.
t4/3 = (0.91667)4/3 = 0.890466
Recalculamos el esfuerzo:
3


33000
Esfuerzo  
 *0.34
 13530*0.890466 
Esfuerzo = 6.98675 personas-año
Cantidad de personas = Esfuerzo / Duración =
Cantidad de personas = 6.98675 personas-año / 0.91667 año = 7.62 personas
En la práctica 8 personas.
(d) Diferencia porcentual de salarios
Escenario 1: 21 personas durante 9 meses, a razón de 1.500.000 pesos por persona.
21 personas * 9 mes * 1.500.000 pesos / persona–mes = 283.500.000 pesos
Escenario 2: 8 personas durante 11 meses, a razón de 1.500.000 pesos por persona.
8 personas * 11 mes * 1.500.000 pesos / persona–mes = 132.000.000 pesos
Diferencia porcentual = [(Valor mayor – valor menor) / (valor mayor)]
* 100%
Diferencia porcentual = [(283.500.000 – 132.000.000) / (283.500.000)]
Diferencia porcentual = [(151.500.000) / (283.500.000)]
Diferencia porcentual = [0.5343915]
Diferencia porcentual =
* 100%
53.4344 %
* 100%
* 100%
NOTA: Los datos de estas tablas están tomados directamente del Documento “Modern Empirical Cost and Schedule
Estimation Tools. A DACS State-of-the-Art Report”
Disponible en: http://goo.gl/VtNC1a
Tabla 1. Índices de Productividad
Índice
Productividad
987
1597
1974
Tipo de Aplicación
Ejemplos o aclaraciones
Microcódigo
El microcódigo son las instrucciones que ejecuta la unidad de control dentro de la
arquitectura interna de un microprocesador. Ningún usuario tiene acceso al
microcódigo; solo en casos muy especiales algunos proveedores de micros escriben
microcódigo a medida de clientes para aplicaciones específicas.
Firmware (ROM)
El glosario estándar de terminología del software del Institute of Electrical and
Electronics Engineers (IEEE), Std 610.12-1990, define el firmware como sigue:
"La combinación de instrucciones de un dispositivo de hardware e instrucciones y
datos de computadora que residen como software de solo lectura en ese dispositivo".
Como pueden ver se refiere a otros elementos hardware (además del
microprocesador) que tengan instrucciones al interior de su estructura.
Entonces, el firmware es software, no tiene nada físico salvo el dispositivo que lo
contiene. Se llama diferente por varias razones:
No lo puede cambiar el usuario normal, a veces se puede actualizar
Sin el firmware NADA funciona, es la BIOS del sistema.
Está ligado al hardware, y no servirá de un aparato a otro EN CASO DE NO SER
idénticos.
Software Embebido
de Tiempo Real
Software para
aviónica
Un sistema embebido (anglicismo "embedded") o empotrado (integrado, incrustado)
es un sistema de computación diseñado para realizar una o algunas pocas funciones
dedicadas, frecuentemente en un sistema de computación en tiempo real. Al contrario
de lo que ocurre con los computadores de propósito general (como por ejemplo una
computadora personal) que están diseñados para cubrir un amplio rango de
necesidades, los sistemas embebidos se diseñan para cubrir necesidades específicas.
En un sistema embebido la mayoría de los componentes se encuentran incluidos en la
placa base (la tarjeta de vídeo, audio, módem, etc.) y muchas veces los dispositivos
resultantes no tienen el aspecto de lo que se suele asociar a una computadora.
Algunos ejemplos de sistemas embebidos podrían ser dispositivos como un taxímetro,
un sistema de control de acceso, la electrónica que controla una máquina
expendedora o el sistema de control de una fotocopiadora entre otras múltiples
aplicaciones.
Por lo general los sistemas embebidos se pueden programar directamente en el
lenguaje ensamblador del microcontrolador o microprocesador incorporado sobre el
mismo, o también, utilizando los compiladores específicos, pueden utilizarse
lenguajes como C o C++; en algunos casos, cuando el tiempo de respuesta de la
aplicación no es un factor crítico, también pueden usarse lenguajes interpretados
como JAVA.
3194
Sistemas para
radares
4181
Comando y Control
Software para automatización de procesos, control de brazos robot, control de
hidroeléctricas, etc.
5186
Control de Procesos
Software para control estadístico de procesos. Software para inspección de defectos
de productos manufacturados.
8362
Telecomunicaciones
Software para gestión de redes y/o centrales de comunicación para celulares.
13530
28657
Software de
Sistemas
Software para dinámica de sistemas, investigación de operaciones, sistemas sociales,
etc.
Sistemas científicos
Software para bio-informática, simulaciones físicas o químicas, modelado de piezas
(como AUTOCAD), análisis químicos, herramientas CASE, etc.
Sistemas para
negocios
Software para ventas, inventarios, control académico, contabilidad, planeación y
gestión de proyectos, transportes y envíos, etc.
Tabla 2. Factor Especial de Destrezas
Tamaño
(en Líneas de Código Fuente –en inglés, Source
Lines of Code SLOC- )
Valor del factor
B
5 – 15 K
0.16
20 K
0.18
30 K
0.28
40 K
0.34
50 K
0.37
> 70 K
0.39
--------------------------------------
FIN DEL DOCUMENTO