Ingeniería de Software Avanzada

Anuncio
Universidad Técnica Federico Santa María
Departamento de Informática
Ingeniería de Software
Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Origen : Allan Albrecht, IBM
© Suma ponderada de parámetros básicos para
dimensionar funcionalmente una aplicación
© Considera características externas relevantes para los
usuarios
© Pueden ser determinados en etapas tempranas del
desarrollo
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 1
Puntos de función (FP)
© Son independientes de lenguajes, y a la vez
convertibles a LOC (promedio) para lenguajes
específicos
© Suma ponderada de parámetros básicos
© Usos: estudios de producción, consumo, calidad de
software
© Puntos de función: unidad natural de consumo.
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Usos industriales de puntos de función:
©
©
©
©
Productividad: FP/Esfuerzo
Responsiveness: FP/Tiempo calendario
Calidad: Defectos/FP
Negocio: Costo/FP
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 2
Costos de puntos de función
FP
Diseño Construcción
Total
1501-2000
2001-2500
2501-3000
3001-3500
3501-4000
US$242
US$255
US$265
US$274
US$284
US$967
US$1019
US$1058
US$1094
US$1134
US$725
US$764
US$793
US$820
US$850
Fuente: RDI (USA)
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Rangos de productividad en
PF/MM
Tamaños Seleccionados
Tasas de Productividad
PF/MM
100 PF
1000 PF
10000 PF
> 100
75 a 100
50 a 75
25 a 50
15 a 25
5 a 15
1a5
>1
1.0%
3.0%
7.0%
15.0%
40.0%
25.0%
10.0%
4.0%
0.01%
0.1%
1.0%
5.0%
10.0%
50.0%
30.0%
4.0%
0.0%
0.0%
0.0%
0.1%
1.4%
13.5%
70.0%
15.0%
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 3
Factores de conversión PF a LOC
Lenguaje
Assembler
C
ALGOL
COBOL
FORTRAN
Pascal
RPG
PL/1
Modula-2
Prolog
LISP
BASIC
4GL para BD
APL
Smalltalk
Query
Spreadsheet
Íconos Gráficos
Instrucciones Fuente
por PF
(aprox)
320
128
105
105
105
91
80
80
80
64
64
64
40
32
29
13
6
4
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© 7 pasos para el cálculo:
©
©
©
©
©
©
©
Determinar tipo de contabilización
Identificar fronteras de la aplicación
Identificar las funciones de datos y su complejidad
Identificar las funciones transaccionales y su complejidad
Determinar FP no ajustados
Determinar el factor de ajuste - 14 características
Calcular valor final FP ajustados
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 4
Puntos de función (FP)
Ejemplo de aplicación guía telefónica
Recepcionista
Administrativo
Actualiza
guía
Fronteras
Requiere, recupera,
despliega información
de los datos de la guía
telefónica
Guía Telefónica
Listado telefónico
Imprime
listado
mensual
Datos guía telefónica
Determina si es empleado
Personal
Datos empleados
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Paso 1: Determinar tipo de contabilización
© 3 tipos de contabilizaciones de FP
© Desarrollo - funcionalidad provista a los usuarios finales con la
primera instalación de la aplicación
© Mejoramiento - modificaciones a aplicaciones existentes,
agragaciones, eliminaciones, actualizaciones
© Aplicación - aplicación instalada (baselines) que se mantiene
© En este curso veremos solo el primer tipo
© En ejemplo anterior, asumamos que es un nuevo
desarrollo
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 5
Puntos de función (FP)
© Paso 2: Identificar fronteras de la aplicación
© en el ejemplo, las fronteras separan al
administrador, el recepcionista, el listado
telefónico, y la aplicación Personal de la aplicación
Guía Telefónica
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Paso 2: Identificar fronteras de la aplicación
Usuario externo
Salida externa
Entrada externa
Consulta externa
Salida externa
Archivo Externo de Interfaz
Archivo Interno Lógico
Entrada externa
Frontera de la aplicación
Otras aplicaciones
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 6
Puntos de función (FP)
© Paso 3: Identificar las funciones de datos y su
complejidad
© Archivos internos lógicos
© Datos guía telefónica
© Archivos externos de interfaz
© Datos de empleados
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Paso 4: Identificar las funciones transaccionales y su
complejidad
© Entradas externas
© Actualización de directorio
© Salidas externas
© Listado telefónico
© Consultas externas
© Requiere, recupera y despliega
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 7
Puntos de función (FP)
© Paso 5: Determinar FP no ajustados
© Cada parámetro puede ser de complejidad baja, promedio o alta
© Se contabilizan cuántos parámetros corresponde a cada
complejidad
© Se multiplica cada cantidad por la correspondiente ponderación
© Se suman los totales para determinar PFNA
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Paso 5: Determinar FP no ajustados
© Archivos Internos Lógicos (ILF)
© x7
x10
x15
© Archivos Externos de Interfaz (EIF)
© x5
x7
x10
© Entrada Externa (EI)
© x3
x4
x6
© Salida Externa (EO)
© x4
x5
x7
© Consulta Externa (EQ)
© x3
x4
x6
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 8
Puntos de función (FP)
© Paso 6: Determinar el factor de ajuste - 14
características
© A cada factor debe asignarse un valor de 0 a 5
© Se suman los 14 factores, rango posible es 0 a 70
© Se normaliza el valor a un factor de ajuste f en el rango 0.65
a 1.35
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Paso 6: Determinar el factor de ajuste - 14
características
© Comunicación de datos
© Procesamiento de datos distribuido
© Rendimiento (Performance)
© Configuración usada fuertemente
© Tasa de transacción
© Entrada de datos en línea
© Eficiencia del usuario final
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 9
Puntos de función (FP)
© Paso 6: Determinar el factor de ajuste - 14
características
© Actualización en línea
© Procesamiento complejo
© Reusabilidad
© Facilidad de instalación
© Facilidad operacional
© Sitios múltiples
© Facilitamiento del cambio
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Paso 7: Calcular valor final FP ajustados
© Se calcula multiplicando el número de puntos de función no
ajustados por el factor de ajuste
PFA = PFNA * f
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 10
Puntos de función (FP)
© Ejercicio: Utilizando sus conocimientos actuales, su
criterio y sentido común, ejecute los 7 pasos del
cálculo de FP en el siguiente caso
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Se va a desarrollar una aplicación simple para mantener y actualizar
datos de alumnos que se matriculan en cursos del programa de
educación a distancia del Departamento de Informática de la
Universidad. Los datos de alumnos que se manejarán son los siguiente:
nombre, rol, carrera, fecha de contacto, dirección, teléfono, fax,
dirección electrónica. Estos datos se ingresarán inicialmente cuando un
alumno se contacte por primera vez con este sistema a través de una
página web utilizando su rol como clave fundamental, una password y
una tecla Fn. Adicionalmente los coordinadores del programa de
educación a distancia tendrán la capacidad de cambiar, vía una página
web y utilizando su rol, su password y una tecla Fn, la información de
cualquier alumno ya ingresado al sistema (para estos efectos se puede
considerar a los coordinadores como superusuarios). Se va a incluir
cuatro campos adicionales en estos datos de alumnos, pero se
actualizarán a través de una transacción separada, que corresponderá a
la matrícula de un curso específico. Estos campos adicionales son:
curso matriculado, semestre, año, y fecha de matrícula.
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 11
La matrícula en un curso específico se hará a través de una página web
que el alumno podrá accesar directamente, utilizando su rol, su
password, y una tecla Fn, y a través de la cual ingresará la información
mencionada para completar su matrícula. Todas las passwords estarán
en el archivo de passwords, mantenido externamente por otra aplicación.
El archivo de passwords contendrá la siguiente información: rol,
password. La funcionalidad permitirá que en cualquier momento se
recupere la información de los cursos matriculados por un alumno,
utilizando su rol, su password y una tecla Fn. Si esta opción la activan
los coordinadores se desplegará además tres campos de texto con
información adicional. Además semanalmente la aplicación enviará en
forma automática un archivo actualizado con toda la información de las
matrículas al sistema de matrículas centralizado de la universidad. Cada
vez que se produzca un error en alguna de las transacciones se enviará un
mensaje de error que se recuperará de un archivo de errores que tiene 3
campos, mantenido externamente. Además, cada vez que se pulse la
tecla F1 se desplegará información de ayuda correspondiente a un texto
que se mantiene en un repositorio de la aplicación.
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© El cálculo de puntos de función se hace siguiendo las
reglas definidas en el IFPUG Counting Practices
Manual V4.0 de 1994
© capítulos 4,5,6 entregados
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 12
Puntos de función (FP)
© Variaciones
©
©
©
©
FP “tradicional” (1979, 1984)
Feature points (1986)
British Mark II (1988)
otros
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© IFPUG (International Function Points User
Group)
© establecido en 1987 para promover el uso de FP a través de
conferencias, publicaciones, etc
© algunos comités
© education curriculum
© counting practices
© management reporting
© certification
© new environments
© benchmarking
© otros comités formados (Italia, Francia, UK, Holanda entre
otros)
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 13
Puntos de función (FP)
© Errores típicos
© principal: recolectar entradas inadecuados (entradas: 5
parámetros básicos, 14 características generales)
© tratar de incluir todo lo descrito en los requerimientos
© reconocer los grupos de datos (archivos)
© incluir entradas externas que no corresponden
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Puntos de función (FP)
© Atajos propuestos
© considerar todos los parámetros de complejidad promedio
(razón: determinar la complejidad toma hasta un 30% del
esfuerzo total)
© combinar EO y EQ (razón: no hay claridad si hay diferencias,
además las ponderaciones son similares)
© eliminar el factor de ajuste de complejidad f (razón:en la
práctica, f afecta solo +/- 10%)
© utilizar un f fijo, para realidades típicas
Ingeniería de Software Avanzada
Dr. Marcello Visconti Z.
Page 14
Descargar