estimación de tamaño de software: puntos funcionales grupo de construcción de software facultad...

49
Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Upload: cenobia-de-almeida

Post on 28-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Estimación de Tamaño de Software: Puntos

FuncionalesGrupo de Construcción de

SoftwareFacultad de Ingeniería

Universidad de los Andes

Page 2: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de Función

Métrica para cuantificar la funcionalidad de un sistema de software tal como la percibe el usuario/comprador.

Propuesta originalmente por A. Albrecht (IBM) en 1979.

Permite medir el tamaño del sistema a partir de sus requisitos iniciales.

Puede usarse muy tempranamente en el proceso de desarrollo ya que resulta relativamente fácil de visualizar.

Page 3: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Cálculo de los puntos de función

Los puntos de función son un número positivo con escala arbitraria que refleja el tamaño de la funcionalidad del sistema (i.e. a mayor tamaño mayor número de puntos de función).

Page 4: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Cálculo de los puntos de función (cont.)

Se calculan de acuerdo con las siguientes fórmulas: Puntos de función = Puntos de función sin

ajuste x Factor de complejidad de procesamiento

donde, Factor de complejidad de procesamiento =

0.65 + (0.01 x Puntos de complejidad de procesamiento

Page 5: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función sin ajuste

Es una medida de la funcionalidad del sistema que no pretende reflejar su complejidad interna.

Se mide contando en el sistema: Entradas (inputs) Salidas (outputs) Consultas (inquiries) Almacenamientos lógicos (logical files) Interfaces con otros sistemas

Page 6: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Complejidad y pesos

Tipo Simple Promedio

Complejo

Entradas 3 4 6

Salidas 4 5 7

Almacenamientos

lógicos

7 10 15

Interfaces 5 7 10

Consultas 3 4 6

Page 7: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de complejidad de procesamiento

Son una medida del grado de influencia en la complejidad del sistema, de una serie de factores preestablecidos.

Se consideran 14 factores diferentes. Cada factor se evalúa en una escala de

0 (no tiene influencia) a 5 (influencia muy fuerte)

Page 8: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factor de complejidad de procesamiento

Permite ajustar el total de puntos de función en 35% (hacia arriba o hacia abajo) de acuerdo con la complejidad de procesamiento.

Se calcula con la fórmula: Factor de complejidad de procesamiento =

0.65 + (0.01 x Puntos de complejidad de procesamiento)

Su rango de valores está entre 0.65 (0 puntos de complejidad ) hasta 1.35 (70 puntos de complejidad).

Page 9: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factor de complejidad de procesamiento

Comunicación de datos

Actualización en línea

Servicios distribuidos Procesamiento complejo

Desempeño Reusabilidad Ambiente de uso

sobrecargado

Facilidad de instalación

Rata de transacciones

Facilidad de operación

Entrada de datos en línea

Múltiples lugares de operación

Eficiencia del usuario final

Facilidad de modificación

Page 10: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Ejemplo de cálculo: Puntos de complejidad de procesamiento

Comunicación de datos 5 Actualización en línea 5 Servicios distribuidos 5 Procesamiento complejo 3 Desempeño 4

Reusabilidad 0 Ambiente de uso

sobrecargado 1 Facilidad de

instalación 1 Rata de

transacciones 5 Facilidad de

operación 3

Page 11: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Ejemplo de cálculo: Puntos de complejidad de procesamiento

Múltiples lugares de operación 4 Eficiencia del usuario final 5 Facilidad de modificación 3

Total de puntos de complejidad de procesamiento (PCP) = 49

Page 12: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Ejemplo de cálculo: Resultado final

Factor de complejidad de procesamiento (FCP):

FCP = 0.65 + (0.01 x PCP) = 0.65 + (0.01 x 49) = 1.14 Total de puntos de función (FP): FP= PSA x FCP = 63 x 1.14 = 71.82

Page 13: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

¿Cómo contar los puntos de función?

El objetivo es encontrar cuáles son las entradas, salidas, consultas, cuántos almacenamientos lógicos hay ...

Desarrollar un diagrama de contexto del sistema.

Identificar todas las interacciones del sistema con entidades externas del mundo real.

A partir de los requerimientos del sistema identificar los puntos funcionales

Page 14: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función de tipo entrada

Cada una de las entradas del usuario que adiciona o cambia información en el almacenamiento interno o cambia el estado del sistema se cuenta como una entrada

Una entrada se considera única si tiene un formato distinto o si requiere una lógica de procesamiento diferente (es manejada por código diferente).

Una entrada puede recibirse directamente del usuario (i.e. en línea) o en batch mediante un archivo de comandos.

Page 15: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función de tipo entrada (cont)

No debe contarse los archivos de entrada que contienen datos generados por otras aplicaciones, ya que éstos serán contados como puntos de función del tipo interface. Lo mismo aplica para las entradas recibidas directamente de otras aplicaciones.

No cuente la parte de entrada de una consulta.

Page 16: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Clasificación de los puntos de función de tipo entrada

Simple Contiene pocos datos/tipos/campos, pocos

archivos internos se ven afectados en su procesamiento, y/o su interfaz de usuario es simple/fácil de desarrollar.

Promedio No es claramente ni simple ni complejo.

Page 17: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Clasificación de los puntos de función de tipo entrada

Complejo Contiene muchos datos/tipos/campos,

muchos archivos internos se ven afectados en su procesamiento, y/o su interfaz de usuario es compleja/difícil de desarrollar

Page 18: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función de tipo salida

Cada salida enviada al usuario como resultado de algún procesamiento realizado dentro del sistema.

Una salida se considera única si tiene un formato distinto o si requiere una lógica de procesamiento diferente (es manejada por código diferente).

Una salida puede ser enviada al usuario directamente (i.e. en línea) o en batch como un archivo de mensajes.

Page 19: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función de tipo salida (cont.)

No deben contarse los archivos de salida generados para uso de otras aplicaciones, ya que éstos serán contados como puntos de función del tipo interface.

Lo mismo aplica para las salidas enviadas directamente a otras aplicaciones.

No cuente la parte de salida de una consulta.

Page 20: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Clasificación de los puntos de función de tipo salida

Simple Contiene pocos datos/tipos/campos, pocos

archivos internos son consultados en su procesamiento, y/o su formato es simple/fácil de producir.

Promedio No es claramente ni simple ni complejo.

Page 21: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Clasificación de los puntos de función de tipo salida

Complejo Contiene muchos datos/tipos/campos,

muchos archivos internos son consultados en su procesamiento, y/o su formato es complejo/difícil de producir.

Page 22: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

PF de tipo almacenamiento lógico

Cada uno de los grupos lógicos de datos que deben ser mantenidos internamente por el sistema para soportar su funcionalidad.

Se considera único si guarda un tipo de información diferente, o si requiere una lógica de procesamiento distinta (código diferente) para ser manipulado.

Puede corresponder a una o más estructuras de datos, archivos o tablas de relacionales o a una parte de una de ellas.

Page 23: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función de tipo almacenamiento lógico (cont)

Desde el punto de vista del usuario, los almacenamientos lógicos pueden mirarse como depósitos de información internos, que contienen variables de estado del sistema y/o constantes o parámetros de operación.

No deben contarse los almacenamientos lógicos que no intervengan en el procesamiento de al menos una de las entradas, salidas, interfaces o consultas identificadas para el sistema.

Page 24: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Clasificación de los puntos de función de tipo almacenamiento lógico

Simple Contiene pocos datos/campos, con

relaciones estructurales simples entre ellos. No hay requisitos significativos de desempeño o recuperación relacionados con él.

Promedio No es claramente ni simple ni complejo.

Page 25: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Clasificación de los puntos de función de tipo almacenamiento lógico

Complejo Contiene muchos datos/campos, con

relaciones estructurales complejas entre ellos. Hay requisitos significativos de desempeño o recuperación relacionados con él.

Page 26: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función de tipo interface

Cada grupo lógico de datos o información de control, recibido o enviado desde/hacia otra aplicación, directamente o en batch

En el caso de comunicación en batch, cada tipo de archivo aceptado o generado por la aplicación cuenta como una interfaz diferente.

Page 27: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función de tipo interface

Para interfaces directas (en línea), cada mensaje o evento diferente recibido de o enviado a otra aplicación, cuenta como una interfaz diferente.

Las entradas recibidas de otras aplicaciones, relacionadas con el propósito principal de la aplicación deben ser contadas como puntos de función de tipo entrada. Lo mismo aplica para las salidas.

Page 28: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Clasificación de los puntos de función de tipo interface

Simple Contiene pocos datos/campos, y posee una

estructura o formato simple. Promedio

No es claramente ni simple ni compleja. Compleja

Contiene muchos datos/campos, y posee una estructura o formato complejo.

Page 29: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Puntos de función de tipo consulta

Cada combinación lógica de entrada/salida, dónde la entrada causa una salida inmediata, y ningún almacenamiento interno es actualizado (i.e. no cambia el estado del sistema).

Una consulta se considera única si sus porciones de entrada y/o salida tienen formatos diferentes de las de otras consultas, o si requiere un procesamiento lógico (código) diferente

Page 30: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Clasificación de los puntos de función de tipo consulta

Se clasifica la parte de entrada de la consulta como simple, promedio o compleja, como en el caso de los puntos de función de tipo entrada.

Se clasifica la parte de salida de la consulta como simple, promedio o compleja, como en el caso de los puntos de función de tipo salida.

La complejidad de la consulta es la mayor de las dos clasificaciones anteriores.

Page 31: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Obtención de los puntos de complejidad de procesamiento

Se estima el grado de influencia que cada uno de los 14 factores de complejidad de procesamiento tiene en la implantación del sistema, y se suman estos valores.

Page 32: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Obtención de los puntos de complejidad de procesamiento

Valores posibles para estimar el grado de influencia:

0 = No esta presente, no tiene ninguna influencia si lo está

1 = Influencia poco significativa 2 = Influencia moderada 3 = Influencia significativa 4 = Influencia significativa 5 = Influencia muy fuerte, en toda la

extensión del sistema

Page 33: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Comunicación de datos Los datos y la información de control

utilizados por la aplicación son enviados o recibidos por medio de servicios de comunicación electrónica.

Page 34: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Servicios distribuidos La aplicación mantiene datos distribuidos

(en múltiples computadores) o procesa información en forma distribuida.

Page 35: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Desempeño Los requisitos de desempeño de la

aplicación, ya sea en tiempo de respuesta o capacidad de procesamiento de datos, tienen influencia en su diseño, desarrollo, instalación o soporte.

Page 36: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Ambiente de uso sobrecargado Se desea correr la aplicación en equipo

existente o comprometido que tendrá una alta carga de operación.

Page 37: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Rata de transacciones La rata de transacciones es alta y tendrá

influencia en el diseño, desarrollo, instalación o soporte de la aplicación.

Page 38: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Entrada de datos en línea La aplicación ofrece servicios de entrada

de datos y control en línea.

Page 39: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Eficiencia del usuario final Las operaciones en línea ofrecidas, deben

diseñarse o implantarse con un énfasis en la eficiencia de los usuarios

Page 40: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Actualización en línea La aplicación ofrece actualización en línea

de los almacenamientos de datos lógicos

Page 41: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Procesamiento complejo Muchas interacciones de control y puntos

de decisión, uso extensivo de operaciones lógicas y matemáticas, amplia necesidad de código de manejo de casos excepcionales resultante de operaciones incompletas o fallidas.

Page 42: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Reusabilidad El código de la aplicación será diseñado

específicamente para ser reutilizado en otras aplicaciones.

Facilidad de instalación La facilidad de conversión o instalación,

aparece como parte de los requisitos.

Page 43: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Facilidad de operación Se ofrecerán procedimientos efectivos de

arrancada, copias de respaldo (back-up) y recuperación y éstos serán probados en la fase de pruebas. La aplicación debe reducir al mínimo al necesidad de intervención del operador.

Page 44: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Factores de complejidad del procesamiento

Múltiples lugares de operación La aplicación será diseñada específicamente

para ser instalada en varios lugares de operación y/o en varias organizaciones.

Facilidad de modificación La aplicación será diseñada específicamente

para ser flexible a los cambios (i.e. altamente parametrizada, fácilmente modificable, etc).

Page 45: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Estimación del tamaño

El tamaño de la aplicación puede estimarse correlacionando los puntos de función con el número de líneas de código

Puede utilizarse una regla de proporcionalidad (regla de tres) basada en tablas como las mostradas anteriormente.

También puede usarse la técnica de regresión lineal con base en proyectos anteriores. Este método puede resultar mucho más confiable.

Page 46: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Estimación del tamaño (cont.)

Los puntos de función pueden contarse antes y después del desarrollo, con lo cual es posible hacer correlaciones que permitan ajustar las estimaciones para lograr una mayor precisión.

La correlación entre los puntos de función y el tamaño de las aplicaciones es normalmente alta.

Page 47: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Consideraciones finales

Los puntos de función son un método relativamente sencillo para estimar el tamaño de una aplicación.

Los puntos de función son un proxy de estimación muy conveniente, ya que son fácilmente observables a los largo del desarrollo.

Page 48: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Consideraciones finales

Su uso está limitado en buena parte a las aplicaciones de corte comercial. Otro tipo de aplicaciones puede requerir de métodos diferentes.

Es posible refinar el método modificando los pesos de los distintos elementos, los factores de complejidad de procesamiento, o los pesos de estos últimos. Este proceso, sin embargo, puede ser bastante complejo.

Page 49: Estimación de Tamaño de Software: Puntos Funcionales Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Referencias

A. J. Albretch, J. E. Gaffney, Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation, IEEE Transactions on Software Engineering, Vol 9, No. 6, noviembre de 1983.

C. R. Symons, Function Point Analysis: Difficulties and Inprovements, IEEE Transactions on Software Engineering, Vol 14, No. 1, enero de 1988.

C. F. Kemerer, B. S. Porter, Improving the Reliability of Function Point Measurement: An Empirical Study, IEEE Transactions on Software Engineering, Vol 18, No. 11, noviembre de 1992.

International Function Point Users Group (IFPUG) Home Page, http://www.ifpug.org/home/docs/ifpughome.html

IFPUG, Guidelines to Software Measurement, IFPUG, 1994.