47
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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Estimación de Tamaño de

Software: Puntos Funcionales

Grupo de Construcción de Software

Facultad de Ingeniería

Universidad de los Andes

Page 2: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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

Se calculan de acuerdo con las siguientes fórmula:

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Puntos de función Sin Ajuste (PSA)

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Puntos de Complejidad de

Procesamiento (PCP)

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Factor de Complejidad de

Procesamiento (FCP)

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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

Factor de Complejidad de

Procesamiento (FCP)

Page 10: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Ejemplo de cálculo: Puntos de

Complejidad de Procesamiento (PCP)

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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) = 44

Ejemplo de cálculo: Puntos de

Complejidad de Procesamiento (PCP)

Page 12: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Ejemplo de cálculo: Resultado final

Factor de Complejidad de Procesamiento (FCP):

FCP = 0.65 + (0.01 x PCP)

= 0.65 + (0.01 x 44)

= 1.09

Total de Puntos de Función (FP):

FP = PSA x FCP

= 63 x 1.09

= 68.67

Page 13: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

¿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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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

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 17: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 18: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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

Page 19: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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

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 20: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 21: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 22: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 23: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 24: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 25: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 26: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 27: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 28: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 29: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 30: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Obtención de los puntos de

complejidad de procesamiento

Valores posibles para estimar el grado de

influencia:

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

1 = Influencia poco significativa

2 = Influencia moderada

3 = Influencia medianamente significativa

4 = Influencia significativa

5 = Influencia muy fuerte, en toda la extensión del sistema

Page 31: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 32: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Servicios distribuidos

La aplicación mantiene datos distribuidos (en múltiples

computadores) o procesa información en forma

distribuida.

Factores de complejidad del

procesamiento

Page 33: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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.

Factores de complejidad del

procesamiento

Page 34: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Ambiente de uso sobrecargado

Se desea correr la aplicación en equipo existente o

comprometido que tendrá una alta carga de

operación.

Factores de complejidad del

procesamiento

Page 35: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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.

Factores de complejidad del

procesamiento

Page 36: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Entrada de datos en línea

La aplicación ofrece servicios de entrada de datos y

control en línea.

Factores de complejidad del

procesamiento

Page 37: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Eficiencia del usuario final

Las operaciones en línea ofrecidas, deben diseñarse o

implantarse con un énfasis en la eficiencia de los

usuarios

Factores de complejidad del

procesamiento

Page 38: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

Actualización en línea

La aplicación ofrece actualización en línea de los

almacenamientos de datos lógicos

Factores de complejidad del

procesamiento

Page 39: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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.

Factores de complejidad del

procesamiento

Page 40: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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.

Factores de complejidad del

procesamiento

Page 41: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 la necesidad de intervención

del operador.

Factores de complejidad del

procesamiento

Page 42: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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)

Factores de complejidad del

procesamiento

Page 43: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 44: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 45: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 46: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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 47: Estimación de Tamaño de Software: Puntos Funcionalesisis2603/... · 2011-01-12 · Puntos de Función Métrica para cuantificar la funcionalidad de un sistema de software tal como

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.