Puntos de Funcion
Puntos de Funcion
Puntos de Funcion
Resumen
Se analizan las experiencias de aplicación de las métricas basadas en punto función para
la evaluación de software de Tiempo Real.
En este trabajo se parte de la extensión de la técnica de punto función para Tiempo Real
propuesta por el Software Engineering Laboratory in Applied Metrics (SELAM) de la
Universidad de Quebec (Canadá) y se analiza sistemáticamente su aplicación a dos clases de
sistemas tiempo real: un controlador de comunicaciones distribuido y un adquisidor de datos
con control de funciones centralizado.
Dado que ambos sistemas han sido desarrollados en el LIDI y se cuenta con la
posibilidad de evaluarlos con las métricas clásicas, se analizan comparativamente los resultados
de la técnica de punto función extendida y se discute la posibilidad de obtener una pauta de
complejidad del software desarrollado.
Palabras clave: Métricas. Punto Función. Ingeniería de Software. Sistemas de Tiempo Real.
1
Prof. Titular con Ded. Excl. LIDI. Dpto. de Informática, Facultad de Ciencias Exactas,
UNLP.
Profesional CIC Pcia. BS. AS. E-mail [email protected]
2
Inv. Principal CONICET. Profesor Tit. Ded. Excl., Dpto. de Informática, Facultad de
Cs. Exactas, UNLP.
E-mail [email protected]
3
JTP Ded. SExcl. LIDI. Dpto. de Informática, Facultad de Ciencias Exactas, UNLP.
E-mail [email protected]
4
Ayte. Diplomado Ded. SExcl. LIDI. Dpto. de Informática, Facultad de Ciencias Exactas,
UNLP.
E-mail [email protected]
5
Calle 50 y 115 Primer Piso, (1900) La Plata, Argentina, Teléfono 54-21-227707
WEB: lidi.info.unlp.edu.ar
Introducción
A fines de 1970, A. J. Albretch sugirió que la unidad de salida de los proyectos software
debería ser válida para cualquier lenguaje de programación y debería representar tópicos de
interés para los usuarios del software. Lo que él proponía era medir la funcionalidad del
software.
Albretch consideró que los aspectos del software externos podían ser enumerados
mediante cinco ítems:
Número de salidas externas: se cuenta cada salida que proporciona al usuario información
orientada a la aplicación.
Número de consultas externas: una petición está definida como una entrada interactiva que
resulta en la generación de algún tipo de respuesta por parte del sistema en forma de salida
interactiva.
Número de interfaces externas: se cuentan todas las interfaces legibles por la máquina (por
ejemplo archivos en cinta o disco) que son utilizados como comunicación con otro sistema.
Los puntos de función (FP, function points), se obtienen utilizando una relación empírica
basada en medidas cuantitativas del dominio de información del software y valoraciones
subjetivas de la complejidad del software[ABR96][KEM93].
Por ejemplo en [ART85] los puntos de función se calculan siguiendo la tabla que se
muestra a continuación:
En el Anexo 2 se da una tabla tentativa con las líneas de código por punto
función para diferentes niveles de lenguaje, así como los datos de productividad esperada por
programador para cada nivel de lenguaje [JON91].
Naturalmente, resulta muy difícil adaptar a toda clase de sistemas una métrica
de carácter general como la de punto función. Por esto aparecen extensiones y modificaciones
para ajustar el comportamiento del estimador al tipo de sistema a desarrollar[JON96].
Extensiones para Tiempo Real a las métricas de Punto Función
Número de grupos de datos de control internos: datos lógicamente relacionados que son
actualizados por la aplicación evaluada.
Número de grupos de datos de control externos: datos lógicamente relacionados que son
usados (pero no actualizados) por la aplicación evaluada.
Número de entradas de control externas: un dato de control entra desde afuera del limite de
la aplicación, es un subproceso único.
Número de salidas de control externas: un dato de control sale del limite de la aplicación, es
un subproceso único.
El conteo de Puntos Función con la extensión puede definirse como la suma de los Punto
Función standard y los Punto Función de Control.
Existen dos particularidades en los sistemas de tiempo real que deben tenerse en cuenta en el
momento de hacer el conteo:
Hay dos clases de estructuras de datos de control: grupos lógicos de ocurrencia múltiple
(pueden tener más de una instancia del mismo tipo de registro) y grupo lógico de ocurrencia
simple (tienen sólo una instancia del mismo tipo de registro). Estas últimas son las que
priman en los sistemas de tiempo real y son difíciles de agrupar como archivos internos o
interfaces externas.
r e l a c io n a d a s co n
d at o s
I de ntific ar los
g ru po s d e d at o s
Co n ta r l os tip o s
r e la ci o n a d a s c o n
c on t rol
Det er m in a r e l ti p o
d e t é cn ic a a Ide nt if icar los P u n t o F u n c ió n
ut ilizar lím ite s no aj usta d o
Co nt a r lo s t ip o s
Pr o ce so s s o b r e de funcione s
d a to s t r a n sa cc io n a l e s
s o br e d a t o s
I den tifica r lo s
p r o c es o s
C a l c u la r P F
Co n t a r lo s t ipo s aj us ta d o
Pr o ce so s d e d e fu n ci on e s
co nt ro l t r a n sa c ci o n a le s
d e c on t rol
D e t e r m i na r u n
fact or de a ju ste
Aplicación: Complejidad de un Sistema Distribuído de Tiempo Real
El Sistema de Mensajería de Entrenamiento Militar [ROM98] cuya planificación se estudió con
la técnica de punto función extendida, puede resumirse estructuralmente en las siguientes
características:
UOI
UOE
UOI UOE
UOI CTO
UOI UOE
UOE
• En el área de operaciones hay una central de tráfico de operaciones (CTO) que recibe las
comunicaciones desde las UOi locales y también desde unidades operativas externas UOE,
que incluyen puestos de comando de mayor jerarquía.
Análisis y diseño de un sistema de tiempo real con restricciones de tiempo muy rígidas. Por
otra parte existen restricciones específicas impuestas por la tecnología de la central utilizada y
los modems de comunicaciones, que obligan al desarrollo de los drivers específicos para la
aplicación.
A partir del diagrama de flujo de control del Kernel del Sistema en estudio, se puede obtener la
tabla de puntos función que sigue [VIC97].
(ECE)Comienz o de mensaje
MODEM (EI)Mensaje recibido Recibir
me nsaje
(ECX)Pedido corte
(ECE)Rta Corte
Mensajes Recibidos
Cortar
OPERADOR (ECX)Rta llegada comunicación
(ECX)Pedid o de enlace
MODEM (ECE)Rta mode m Establecer
comunicación
(ECX)Rta al operador
Mensaje a guardar enviado
Enviar
OPERADOR me nsa je
(EI)Mensaje a Enviar Men sajes Enviados
(EO)Mensaje encriptado
(ECE)Rta Envio
(ECX)Pedido de corte
Cortar
MODEM comunicación
(ECE)Rta corte
Enviar mensajes
Puntos
Entrada externa (EI) 2
Salida externa (EO) 1
Entrada de control externa(ECE) 5
Salida de control externa (ECX) 6
Archivos internos 2
Total de Puntos 16
En su desarrollo se utilizaron los lenguajes Visual Basic, C y tiene unas 470 líneas de código
fuente para las funciones estudiadas.
0 1 2 3 4 5
Sin influencia Incidental Moderado Medio Significativo Esencial
Como un ejemplo de niveles de lenguajes, mostramos aquí una tabla para las distintas
generaciones de lenguajes.
Niveles de lenguajes
[ABR96] Abran A., Robillard P.N. Function point Analysis. An Empirical Study of its
Measurement Processes. IEEE Transactions on Software Engineering. Vol 22 no. 12 pp 895-
909 Dec 1996.
[ABR97] Abran A., Maya M., Desharnais J. M., Adapting Function Points to real-time
software, American Programmer, 1997
[COU95] Coulouris G, Dollimore J, Distributed System Concepts and Design, Ad. Wesley,
1995.
[GAL95] Galea S. The Boeing Company: 3D Function Point Extensions, V2.0 Release 1.0,
Boeing Information and Support Service, Research and Technology Engineering. June 1995.
[GRA92] Grady R. B. Practical software metrics for project management and process
improvement. Prentice Hall, New Jersey. 1992
[HAT88]Hatley D., Pirbhai I. Strategies for Real-Time System Specification, Dorset House,
1988.
[IFP94] IFPUG, Function Point Counting Practices Manual , Release 4.0 International
Function point Users Group- IFPUG- Westerville, 1994.
[JON91] Jones C. Applied Software Measurement- Assuring Productivity and Quality, McGraw
Hill 1991.
[KAN95] Kan S. Metrics and Models in Software Quality Engineering. Addison Wesley, 1995.
[LAP93] Laplante P. Real Time System Design and Analysis: An Engineer´s Handbook. The
Institute of Electrical and Electronics Engineers inc. New York 1993.
[ROM98] Romero F., Sosa R., De Giusti A., Sistemas distribuidos de Tiempo Real.
Experiencia en el diseño y puesta a punto de un sistema de Mensajería para entrenamiento
militar. Informe Técnico LIDI, 01-016-98,1998.
[SEL97] SELAM, Full Function Points: Counting practices manual, Tech. Report 1997-
04,1997
[SHU92] Shumate K., Software specification and design for real-time systems, Wiley, 1992.