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
© Copyright 2024 ExpyDoc