Vous êtes sur la page 1sur 10

COCOMO y Puntos de Funcin

Gestin de una cadena de televisin

Fichero: Estimacion_costes_fase2.odt Versin: 0.2 Grupo de desarrollo:

Autores principales: Alejandro Alfonso Ux Alejandro Berlanga Moreno Guillermo Martos Sevilla Jonatan Pech Ibez (grupo de planificacin y prueba) Lunes, 25 de mayo de 2009

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

ndice
ndice....................................................................................................2 I. Introduccin.................................................................................................................................3 II. Puntos de Funcin......................................................................................................................3 III. Cocomo Intermedio...................................................................................................................7 IV. Conclusin................................................................................................................................10

Pgina 2

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

I. Introduccin.
En este documento, se realizaran dos mtodos utilizados para realizar distintas mediciones del software, como son Cocomo y Puntos de funcin. Por un lado, se tendrn los Puntos de Funcin. Este mtodo es utilizado en la ingeniera del software para medir el tamao del software. Pretende medir la funcionalidad entregada al usuario de manera independiente de la tecnologa usada para la construccin y explotacin del mismo. Por otro lado, se tendr Cocomo. Este mtodo es un modelo matemtico de base emprica utilizado para la estimacin de costes dentro del proceso de desarrollo del software. Existen tres variantes bien diferenciadas (bsico, intermedio y detallado). En este documento, nos centraremos en el Cocomo intermedio.

II. Puntos de Funcin


Para realizar un clculo correcto del volumen del software creado en la segunda iteracin, tenemos que conocer la siguiente frmula: PFA = PFSA * (0.65 + (0.01 * FCT)) donde: PFA son los puntos de funcin ajustados. PFSA son los puntos de funcin sin ajustar. FCT es el factor de complejidad total. Para poder calcular los puntos de funcin sin ajustar, debemos centrarnos en los ficheros lgicos internos, los ficheros de interfaz externa, las entradas externas, las salidas y las consultas externas. A continuacin, se detalla su valor: Ficheros Lgicos Internos (FLI): Bloque de Anuncios (5) BAJO. Emisiones (6) BAJO. Asignaciones (6) BAJO. Formado Por (3) BAJO. Compuesto Por (3) BAJO. 5 * BAJO 5 * 7 = 35 Ficheros de Interfaz Externas (FIE): No se cuentan con FIEs, ya que no tenemos ficheros en los que se almacenen histricos, ni calendarios, etc. Entradas Externas (EE): En la Ventana Principal de la Programacin (35 campos) ALTO En la Ventana de Crear/Modificar Bloque de Anuncios (23 campos. ALTO En la Ventana de Crear/Modificar Emisin: 31 campos. ALTO En la Ventana de la Temporalidad: 12 campos. BAJO 3 * ALTO 3 * 6 = 18 1 * BAJO 1 * 3 = 3

Pgina 3

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

Consultas Externas (CE): Consulta Bloques de Anuncios. BAJO 4 campos (identificador, descripcin, clasificacin_moral, duracin). 1 Archivo Lgico Referenciado. Consulta Anuncios en Bloque de anuncios. MEDIO 10 campos (bloque, ttulo, producto, descripcin, clasificacin_moral, duracin, publico_dirigido, anunciante, tipo_producto, orden(Formado Por)). 3 Archivos Lgico Referenciados (Anuncio, Bloque de anuncios, Formado Por). Consulta Emisiones. BAJO 4 campos (identificador, descripcin, clasificacin_moral, duracin). 1 Archivos Lgico Referenciado. Consulta Contenido de Emisin. MEDIO 4 campos (emisin, identificador(bloques de anuncios), ttulo(programa), tiempo(Compuesto Por)) 4 Archivos Lgico Referenciados (Bloque de anuncios, Emisiones, Programas, Compuesto Por ). Consulta de Asignaciones. BAJO 3 campos (fecha, nombre(canal), emisin) 3 Archivos Lgico Referenciados(Emisiones, Asignaciones, Canales) 2 * MEDIO 2 * 4 = 8 3 * BAJO 3 * 3 = 9 FLI 35 FIE 0 EE 21 SE 0 CE 17 TOTAL (PFSA) 73

Para calcular el FCT, hemos respondido de la siguiente manera (entre 0 y 5) a las siguientes preguntas. 1. Es necesario establecer comunicacin de datos? Se ha elegido el valor 3 ya que slo se tendr un proceso en cada momento. 2. Hay funciones de procesamiento distribuido? Se ha elegido el valor 0 ya que no estamos tratando con procesos distribuidos, evitando la transferencia de datos o procesos entre componentes del sistema. 3. Es crtico el rendimiento? Se ha elegido el valor 0 ya que no se ha especificado ningn requisito relativo al rendimiento por lo que se tendr el rendimiento normal de los sistemas informticos comunes. 4. Se utilizar el sistema en un entorno operativo existente y muy utilizado? Se ha elegido el valor 1 ya que no se ha especificado ningn requisito relativo a cmo competir por los recursos de la CPU con otros sistemas que tambin luchen por dichos recursos. Por esto, se supone que sern las restricciones comunes a todos los terminales. 5. Es elevada la tasa de transacciones? Se he elegido el valor 1 ya que el mayor nmero de transacciones se harn solamente una vez al mes. 6. Requiere entrada de datos interactiva? Se ha elegido el valor 5 ya que, la mayor parte de los datos los introduce el usuario desde la aplicacin de forma directa.

Pgina 4

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

7. El usuario final requiere interfaces fciles de usar y ayudas integradas? Los elementos con los que contar nuestra aplicacin son: 1. Mens. 2. Seleccin mediante cursos de datos de la pantalla. 3. Documentacin impresa de las operaciones en lnea. 4. Uso de ratn. 5. Ventanas de pop-up. 6. Forzar la aplicacin a tener el menor nmero de pantallas posible por transaccin. Se ha elegido el valor 3 ya que nuestra aplicacin posee seis elementos (descritos anteriormente) y no se ha realizado ningn requisito a cerca de la eficiencia. 8. Se actualizan los archivos de datos de forma interactiva? Se ha elegido el valor 3 ya que los ficheros lgicos internos se actualizan de forma directa por parte del usuario en la aplicacin, no necesitando recurrir a nada para realizar las modificaciones. Adems, no se han descrito requisitos relacionados con la proteccin del sistema ante prdidas de informacin. 9. Es complejo el procesamiento interno? El procesamiento interno presentar alguna de las siguientes caractersticas estn presente: 1. Se han especificado muchas excepciones, consecuencia de transacciones incompletas, que debern tratarse. 2. La aplicacin llevar incorporados sistemas de seguridad y control. Se ha elegido el valor 2 ya que se dan las dos caractersticas citadas anteriormente. 10. Se disea el cdigo para ser reutilizable en otras aplicaciones? Se ha elegido el valor 1 ya que se ha hecho el cdigo reutilizable pero slo en el mbito de la aplicacin. 11. Se incluye la conversin del sistema antiguo y la instalacin del nuevo? Se ha elegido el valor 1 ya que se facilita la instalacin de la aplicacin. 12. Se facilita la operacin automtica del sistema minimizando el trabajo manual del CPD? Se pueden tener en cuenta las siguientes posibilidades de automatizacin: 1. Se proveer de procesos de arraque, back-up y recuperacin pero con intervencin del operador. 2. Se proveer de procesos de arranque, back-up y recuperacin pero sin intervencin del operador. 3. En la aplicacin se minimiza la necesidad de montar cintas u otros dispositivos de almacenamiento externo. 4. Se minimiza la necesidad de manejar papel. Se ha elegido el valor 1 ya que de las opciones anteriores, slo se da una de ellas. Con esta aplicacin, se pretende minimizar el uso del papel y el esfuerzo de los usuarios. 13. Debe servir para diferentes instalaciones en diversas organizaciones? Se ha elegido el valor 2 ya que se considera que puede trabajar en distintas plataformas similares (linux y windows) y con un hardware similar. 14. Debe facilitar cambios y utilizacin por parte del usuario? Esto contemplar: 1. Consultas flexibles del usuario. Podemos tener consultas: 1. Simples con condiciones lgicas And/Or que implican un slo fichero lgico. 2. Medias con condiciones lgicas de complejidad media mediante And/Or que relacionan ms de un fichero lgico. 3. Complejas con condiciones lgicas muy complejas mediante combinaciones lgicas And/Or entre varios ficheros lgicas. 2. Parmetros de la aplicacin va tablas ajenas al cdigo: 1. El cambio de la configuracin se hace efectivo al arrancar el sistema al da siguiente. 2. El cambio de la configuracin se hace interactivamente y tiene efecto inmediato.

Pgina 5

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

Se ha elegido el valor 2 ya que el usuario podr hacer consultas medianamente complejas entre uno o varios ficheros. En conclusin, se obtiene la siguiente tabla: # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Factor de complejidad Comunicacin de datos Proceso Distribuido Objetivos de rendimiento Configuracin explotacin compartida Tasa de transacciones Entrada de datos EN_LNEA Eficiencia con el usuario final Actualizaciones EN_LNEA Lgica del proceso interno compleja Reusabilidad del cdigo Contempla la conversin e instalacin Facilidad de operacin Instalaciones mltiples Facilidad de cambios Valor 3 0 0 1 1 5 3 3 2 1 1 1 2 2 25

Factor de complejidad total(FCT)

Tras haber conseguido los valores anteriores, sustituimos en la ecuacin inicial: PFA = PFSA * (0.65 + (0.01 * FCT)) PFA =73 * (0.65 + (0.01 * 25)) PFA = 65.7 Una vez calculado este valor, calculamos aproximadamente las lneas a partir de los PFA y el lenguaje de programacin. Al ser el lenguaje de programacin un lenguaje orientado a objetos, este toma el valor de 29. En conclusin, se tiene que: LOC = PFA * 29 LOC = 65.7 * 29 LOC = 1905,3

Pgina 6

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

III. Cocomo Intermedio.


De entre los distintos tipos de proyectos que existen (orgnico, semi-acoplado y empotrado), nos centraremos al que se asemeja ms al nuestro. En este caso, estamos hablando de un proyecto semi-acoplado puesto que el equipo encargado de su realizacin no tiene experiencia en este tipo de problemas y, adems, las especificaciones dadas por el cliente no han sido del todo completas y concisas. De acuerdo con el tipo de proyecto en el que nos encontramos, se cuentan con los siguientes valores previamente establecidos para el Cocomo bsico (que ayudar en el clculo del Cocomo Intermedio): a = 3.00 b = 1.12 c = 2.25 d = 0.25 Contamos con las siguientes frmulas con las que calcularemos el esfuerzo y la duracin del proyecto respectivamente: E= a * KLOCb E= 3.00 * KLOC1.12 E = 3.00 * 1.90531.12 E = 6.1756 personas por mes donde: KLOC son miles de lneas de cdigo. D = c * Ed D = 2.25 * E0.25 D = 2.25 * 6.17560.25 D =3.5469 meses Adems, tambin se puede calcular tanto la productividad como el nmero personas que hace falta para llevar a cabo dicha tarea. Para ello, contamos con las siguientes frmulas: Productividad = LOC / E Productividad = 1905.3 / 6.1756 Productividad = 308.5206 LOC / persona al mes Npermed = E / D Npermed = 6.1756 / 3.5469 Npermed = 1.7411 En nuestro caso, nos interesa tambin el Cocomo Intermedio, por el que contamos con el valor de las variables siguientes: a = 3.00 b = 1.12 c = 2.25 d = 0.25 Duracin_mxima = 1 mes

Pgina 7

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

Contamos con la siguiente frmula con la que calcularemos el esfuerzo del proyecto: E = a * EAF * KLOCb E = 3.00 * 0.9404 * 1.90531.12 0.9404 E = 5.8075 personas por mes El EAF es el Factor de amplificacin del esfuerzo y se calcula gracias a la siguiente frmula: EAF = donde:

EAF = ( 1.00 * 1.16 * 0.85 * 1.00 * 1.00 * 0.87 * 0.87 * 1.00 * 1.13 * 1.17 * 0.90 * 1.14 * 0.91 * 0.83 * 1.23) EAF = 0.9404

Fi es el conjunto de factores obtenidos de la tabla del Cocomo Intermedio. De esta tabla, hemos obtenido los siguientes valores: RELY: Se ha elegido el valor 1.00 (normal) ya que nuestra aplicacin, ante los fallos que puedan producirse, puede acarrear la prdida de un nmero escaso de informacin. DATA: Debemos aproximar el volumen de datos. Para ello estimamos el tamao de cada fichero: Calculamos el volumen de datos que se generar en un ao, suponiendo 10 canales. a: n de BloqueAnuncios b: n de Emisiones c: n de Asignaciones d: n de relaciones Anuncio-BloqueAnuncios e: n de relaciones BloqueAnuncios-Emisiones f: n de anuncios por bloque, en media = 10 g: n de bloques por emision, en media = 3 b = 8 diarias + 8 x 30 = 250 al mes x 12 = 3000 al ao x 10 canales = 30000 a = g x b = 90000 x 0.8 (factor de repeticin) = 72000 c = 16 emisiones diarias x 365 = 5840 x 10 canales = 58400 d = a x f = 720000 e = b x g = 90000 a BloqueAnuncios b Emisiones c Asignaciones d Anuncio-Bloque e Bloque-Emision x x x x x 5 6 6 3 3 campos campos campos campos campos = = = = = 360000 Bytes 180000 Bytes 350400 Bytes 2160000 Bytes 270000 Bytes

En total tenemos 3320400 Bytes, que dividido entre el nmero de lneas de cdigo, da una proporcin de 1660.2 y por tanto es MUY ALTO y elegimos el valor 1.16 (muy alto).

CPLX: Se ha elegido el valor 0.85 (bajo) ya que nuestra aplicacin no es compleja y est formada por operaciones simples. TIME: Se ha elegido el valor 1.00 (normal) ya que nuestra aplicacin no necesita gran parte de tiempo de CPU. STOR: Se ha elegido el valor 1.00 (normal) ya que nuestra aplicacin no presenta un uso elevado de memoria. VIRT: Se ha elegido el valor 0.87 (bajo) ya que se prev que los cambios en el entrono sean poco frecuentes. TURN: Se ha elegido el valor 0.87 (bajo) ya que nuestra aplicacin es interactiva. ACAP: Se ha elegido el valor 1.00 (normal).

Pgina 8

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

AEXP: Se ha elegido el valor 1.13 (bajo) ya que los miembros del grupo poseen algo de experiencia pero no se han enfrentado previamente a ningn proyecto de estas caractersticas. PCAP: Se ha elegido el valor 1.17 (bajo) ya que los miembros del grupo han programado pequeas aplicaciones durante la carrera. VEXP: Se ha elegido el valor 0.90 (alto) ya que el hardware para el que se programa la aplicacin es familiar a todos los miembros del grupo. LEXP: Se ha elegido el valor 1.14 (muy bajo) ya que la experiencia en el lenguaje java era casi nula para muchos miembros del equipo. MODP: Se ha elegido el valor 0.91 (alto) ya que se usan con asiduidad tcnicas. TOOL: Se ha elegido el valor 0.83 (muy alto) ya que se usan herramientas en todas las fases de desarrollo. SCED: Se ha elegido el valor 1.23 (muy bajo) ya que el proyecto debera hacerse en 3 meses y medios y slo tenemos 1 mes posible por lo que habr que acelerar mucho.

Una vez obtenido el valor del esfuerzo, (E = 5.8075 personas por mes) pasamos a calcular la duracin del proyecto, el nmero medio de personas y la productividad de cada una de ellas. D = c * Ed D = 2.25 * E0.25 D = 2.25 * 5.80750.25 D = 3.4928 meses Productividad = LOC / E Productividad = 1905.3 / 5.8075 Productividad = 328.0757 LOC / persona al mes Npermed = E / D Npermed = 5.8075 / 3.4928 Npermed = 1.6627 personas

Pgina 9

Documento de planificacin
versin 0.2

Gestin de una cadena de televisin

IV. Conclusin.
Lo primero que puede decirse que, este mtodo de estimacin de costes no es muy fiable en proyectos que se desarrollan en un periodo corto de tiempo (menor de un ao), careciendo de precisin cuando se trata de proyectos de tamao reducido. Normalmente, suele decirse que para proyectos cuyos PFA son inferiores a 100, no es recomendable esa prctica. Para realizar esta aplicacin, se ha calculado el esfuerzo que debe hacer cada persona por mes. Teniendo en cuenta que se tenan 3.5469 meses y un nmero medio de personas del 1.7411, se obtuvo un esfuerzo del 6.1756 personas por mes (obtenido de las ecuaciones anteriores). Esto se correspondera con unas 1905.3 LOC del proyecto. Esto es en cuanto al Cocomo bsico. Si miramos el Cocomo intermedio, teniendo en cuenta que se tenan 3.4928 meses y un nmero medio de personas del 1.6627, se obtuvo un esfuerzo del 5.8075 personas por mes (obtenido de las ecuaciones anteriores). Esto se correspondera con unas 1905.3 LOC del proyecto. Como se ha indicado antes, se trata de un proyecto semi-acoplado y de un producto con un tamao pequeo, por lo que el porcentaje de esfuerzo de realizar la planificacin y el modelado de requisitos es del 7%. Tambin se cuenta con que hay que aumentar el tiempo, por la planificacin, en un 16%. Por lo tanto, considerando lo dicho anteriormente, se obtiene que el esfuerzo es de 6.2140. En cuanto a la duracin, se tendra un tiempo de 4.0516 meses. Segn Cocomo, 10 personas trabajando 1 mes (20 das a 8 horas al da por persona) emplearan 1600 horas. En cuanto al trabajo del Grupo lamo, se han tenido las restricciones de 10 personas en el proyecto y 1 slo mes de trabajo. El total de horas trabajado es de 662. Si se ha trabajado 23 das (ya que en Semana Santa no se trabaj), se obtiene que cada persona debera haber trabajado un promedio de 2.8783 horas al da. Esto se debe a que los integrantes del Grupo lamo no se dedican exclusivamente a este proyecto, teniendo otras tareas que realizar. Asimismo, segn indica Cocomo, todas las personas trabajan el mismo tiempo y el esfuerzo es constante. Sin embargo, esto no ha sucedido en nuestro proyecto ya que unas personas han trabajado ms que otras, no siendo el esfuerzo constante.

Pgina 10