0% found this document useful (0 votes)
200 views115 pages

Puntos Por Función

This document provides an introduction to function point analysis (FPA) for software projects. It discusses the objective, benefits, and process of FPA. The key steps in FPA are establishing the boundary of the project, identifying transaction types, external inputs, external outputs, and external inquiries. It also covers identifying and rating internal logical files. FPA provides a standardized way to measure the size of a software project based on the functionality delivered to the end user. Understanding FPA can help estimate project schedules and resource needs more accurately.

Uploaded by

Adriana RL
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
200 views115 pages

Puntos Por Función

This document provides an introduction to function point analysis (FPA) for software projects. It discusses the objective, benefits, and process of FPA. The key steps in FPA are establishing the boundary of the project, identifying transaction types, external inputs, external outputs, and external inquiries. It also covers identifying and rating internal logical files. FPA provides a standardized way to measure the size of a software project based on the functionality delivered to the end user. Understanding FPA can help estimate project schedules and resource needs more accurately.

Uploaded by

Adriana RL
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 115

Curso de Formación Análisis de puntos

por Función

Instructor: David
Longstreet
[email protected]
m
www.SoftwareMetrics.Com
816.739.4058

Page 1
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Table of Contents
Introduction 7
Objective of Section____________________________________________________________________7
Introduction___________________________________________________________________________7
Elementary Process____________________________________________________________________8
Definition_____________________________________________________________________________8
Benefits and Uses______________________________________________________________________9
When Not to Use Function Points________________________________________________________10
Types of Function Point Counts_________________________________________________________10
What about Lines of Code (LOC)________________________________________________________11
Understanding Productivity____________________________________________________________11
Understanding Software Productivity____________________________________________________12
Questions____________________________________________________________________________14
Function Point Counting Process 17
Objective of Section___________________________________________________________________17
Introduction__________________________________________________________________________17
Definition____________________________________________________________________________17
Types of Function Point Counts_________________________________________________________18
High Level Steps:_____________________________________________________________________18
Independence and Dependence:_________________________________________________________18
FPA Steps for Files____________________________________________________________________20
Questions____________________________________________________________________________20
Establishing the Boundary 21
Objective of Section___________________________________________________________________21
Definition____________________________________________________________________________21
Identify the Boundary_________________________________________________________________21
Standard Documentation_______________________________________________________________21
Establishing the Boundary early in the Life cycle___________________________________________21
Technology Issues:____________________________________________________________________22
Tabulating___________________________________________________________________________22
Questions____________________________________________________________________________22
Identifying RET’s, DET’s, FTR’s 23

Page 2
Objective of Section___________________________________________________________________23
Definition____________________________________________________________________________23
Rating_______________________________________________________________________________24
Transaction DET’s:___________________________________________________________________24
Record Element Types (RET’s)_________________________________________________________24
Tips to Identify RET’s and DET’s early in the life cycle_____________________________________24
DET’s for GUI________________________________________________________________________24
DET’s For Real Time Systems__________________________________________________________26
Navigation___________________________________________________________________________26
Skill Builder__________________________________________________________________________26
External Inputs 28
Objective of Section___________________________________________________________________28
Definition____________________________________________________________________________28
Rating_______________________________________________________________________________28
Counting Tips:_______________________________________________________________________28
Examples:___________________________________________________________________________29
Data Elements________________________________________________________________________29
File Types Referenced (FTR’s):_________________________________________________________29
Uniqueness___________________________________________________________________________30
Understanding Enhancement Function Points_____________________________________________30
Technology Issues:____________________________________________________________________30
Standard Documentation_______________________________________________________________31
Tips to Identify External Inputs early in the life cycle_______________________________________31
Typical Vocabulary___________________________________________________________________32
Skill Builder__________________________________________________________________________32
External Outputs 34
Objective of Section___________________________________________________________________34
Definition____________________________________________________________________________34
Rating_______________________________________________________________________________34
Counting Tips:_______________________________________________________________________35
Terminology_________________________________________________________________________35
Examples:___________________________________________________________________________35
Data Elements________________________________________________________________________35
File Types Referenced (FTR)___________________________________________________________36

Page 3
FP Online Class
http://www.Metrics Training.Co m
Uniqueness___________________________________________________________________________36
Understanding Enhancement Function Points_____________________________________________36
Technology Issues:____________________________________________________________________37
Standard Documentation_______________________________________________________________37
Tips to Identify External Outputs early in the life cycle_____________________________________37
Typical Vocabulary___________________________________________________________________37
Special Issues and Concerns____________________________________________________________38
Skill Builder__________________________________________________________________________39
External Inquiries 43
Objective of Section___________________________________________________________________43
Definition____________________________________________________________________________43
Rating_______________________________________________________________________________43
Examples:___________________________________________________________________________44
Terminology_________________________________________________________________________44
Data Elements________________________________________________________________________44
File Type Referenced (FTR’s):__________________________________________________________45
Uniqueness___________________________________________________________________________45
Understanding Enhancement Function Points_____________________________________________45
Technology Issues:____________________________________________________________________46
Standard Documentation_______________________________________________________________46
Tips to Identify EQ’s early in the life cycle________________________________________________47
Typical Vocabulary___________________________________________________________________47
Special Issues and Concerns____________________________________________________________47
Skill Builder__________________________________________________________________________49
Transaction Review 52
Objective of Section___________________________________________________________________52
Multiple Languages___________________________________________________________________52
Display of Graphical Images or Icons____________________________________________________53
Messages____________________________________________________________________________54
Complex Control Inputs_______________________________________________________________55
Hyperlinks on WebPages_______________________________________________________________55
Internal Logical Files 56
Objective of Section___________________________________________________________________56
Definition____________________________________________________________________________56

Page 4
Rating_______________________________________________________________________________56
Counting Tips:_______________________________________________________________________56
Examples:___________________________________________________________________________57
Record Element Types:________________________________________________________________57
Data Element Types:__________________________________________________________________58
Technology Issues:____________________________________________________________________58
Standard Documentation_______________________________________________________________58
Tips to Identify ILF’s early in the life cycle:_______________________________________________58
Other comments:_____________________________________________________________________58
Skill Builder__________________________________________________________________________59
External Interface Files 62
Objective of Section___________________________________________________________________62
Definition____________________________________________________________________________62
Rating_______________________________________________________________________________62
Counting Tips:_______________________________________________________________________63
Examples:___________________________________________________________________________63
Technology Issues:____________________________________________________________________63
Standard Documentation_______________________________________________________________63
Tips to Identify EIF’s early in the life cycle:_______________________________________________64
General System Characteristics 65
Objective of Section___________________________________________________________________65
Definition____________________________________________________________________________65
Rating_______________________________________________________________________________65
Standard Documentation_______________________________________________________________65
Rating GSC’s early in the life cycle______________________________________________________65
Tabulating___________________________________________________________________________66
GSC’s at a Glance_____________________________________________________________________66
Considerations for GUI Applications_____________________________________________________67
Detail GSC’s_________________________________________________________________________68
Skill Builder__________________________________________________________________________79
General System Characteristics – Notes Page______________________________________________80
History and IFPUG 81
Objective of Section___________________________________________________________________81
Brief History:________________________________________________________________________81

Page 5
FP Online Class
http://www.Metrics Training.Co m
Growth and Acceptance of Function Point Analysis________________________________________81
More Information about IFPUG_________________________________________________________81
Calculating Adjusted Function Point 83
Objective of Section___________________________________________________________________83
Understanding the Equations___________________________________________________________83
Definition____________________________________________________________________________84
Unadjusted Function Point_____________________________________________________________84
Development Project Function Point Calculation:__________________________________________84
Application Function Point Count (Baseline)______________________________________________85
Enhancement Project Function Point Calculation__________________________________________85
Application After Enhancement Project__________________________________________________86
Skill Builder__________________________________________________________________________88
Case Studies 89
Objective of Section___________________________________________________________________89
Collection Letter______________________________________________________________________91
Control Inputs________________________________________________________________________92
Graphical Information_________________________________________________________________93
Graphs Part II________________________________________________________________________94
The Weather Application_______________________________________________________________95
Adding A New Customer_______________________________________________________________97
Enhanced Weather Application _______________________________________________________100
BikeWare __________________________________________________________________________101
Pizza Screen Design _________________________________________________________________103
www.PIZZACLUB.COM _____________________________________________________________105
Control Information _________________________________________________________________108

Page 6
INTRODUCCIÓN
Objetivo de la Sección: 1
Introducir los conceptos básicos del Análisis de Puntos de Función e introducir y reforzar la
estimación de costos unitarios. Los ejercicios al final de la sección ayudan al alumno a demostrar
que ha adquirido los conocimientos básicos necesarios.

Introducción:
Los sistemas continúan creciendo en tamaño y complejidad, haciéndose cada vez más difíciles de
entender. Dado que las mejoras en las herramientas de codificación permiten a los desarrolladores de
software producir mayores cantidades de software para cumplir con los requisitos de los usuarios en
constante expansión, se debe utilizar un método para comprender y comunicar el tamaño. Una
técnica estructurada de resolución de problemas, el análisis de puntos de función es un método para
dividir los sistemas en componentes más pequeños, para que puedan entenderse y analizarse mejor.
Este libro describe el análisis de puntos de función y las tendencias de la industria utilizando puntos
de función.

Los seres humanos resuelven problemas dividiéndolos en partes más pequeñas y comprensibles. Los
problemas que inicialmente pueden parecer difíciles se encuentran simples cuando se diseccionan en
sus componentes o clases. Cuando los objetos a clasificar son los contenidos de los sistemas de
software, se debe usar un conjunto de definiciones y reglas, o un esquema de clasificación, para
ubicar estos objetos en sus categorías apropiadas. El análisis de puntos de función es una de esas
técnicas: FPA es un método para dividir los sistemas en componentes más pequeños, para que
puedan comprenderse y analizarse mejor. También proporciona una técnica estructurada para la
resolución de problemas. El análisis de puntos de función es un método estructurado para realizar la
descomposición funcional de una aplicación de software.

Los puntos de función son una unidad de medida para el software, al igual que una hora para medir
el tiempo, las millas para medir la distancia o Celsius para medir la temperatura. Los puntos de
función son medidas de intervalo muy parecidas a otras medidas como kilómetros, Fahrenheit,
horas, etc.
Los puntos de función miden el software al cuantificar su funcionalidad proporcionada al usuario
basándose principalmente en el diseño lógico. Con frecuencia se utiliza el término usuario final o
usuario sin especificar a qué se refiere. En este caso, el usuario es un usuario sofisticado. Alguien
que entienda el sistema desde una perspectiva funcional --- muy probablemente alguien que
proporcione requisitos o realice pruebas de aceptación.
Hay una variedad de métodos diferentes que se utilizan para contar los puntos de función, pero este
libro se basa en las reglas desarrolladas por Alan Albrecht y posteriormente revisadas por el Grupo
Internacional de Usuarios de Puntos de Función (IFPUG). Las reglas de IFPUG tienen mucho que
desear, por lo que este libro intenta llenar los vacíos no definidos por IFPUG.

Page 7
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 1

¿Qué hay en la superficie?

La imagen de la derecha representa la punta de un


iceberg. El problema real no es la punta, sino lo que está
debajo de la superficie del agua y no se puede ver. Lo
mismo ocurre cuando diseña una aplicación de software.

Uno de los conceptos erróneos más grandes sobre los


puntos de función es comprender qué funcionalidad se
expone a un usuario final en comparación con la
funcionalidad entregada. Una tendencia actual en el
desarrollo de software son las aplicaciones de
autoservicio como las que utilizan la mayoría de las
principales aerolíneas.

Si visita el sitio web de American Airlines y/o Expedia,


verá una pantalla relativamente simple expuesta al
usuario final. El usuario final simplemente ingresa su
salida y destino y las fechas de viaje. En la superficie,
esto parece ser una consulta simple, pero es
extremadamente compleja. El proceso en realidad
incluye miles de procesos elementales, pero el usuario
final solo está expuesto a un proceso muy simple. Se calculan todas las rutas posibles, los
nombres de las ciudades se convierten a sus tres caracteres internacionales, las interfaces se
envían a todas las aerolíneas (cada una es única), ¡este es un proceso extremadamente complejo
y robusto! Cuando dimensionamos las aplicaciones de software, queremos comprender qué está
expuesto y qué hay debajo de la superficie.

Proceso elemental:
Una aplicación de software es, en esencia, un conjunto definido de procesos elementales. Cuando
estos procesos elementales se combinan, interactúan para formar lo que llamamos un sistema de
software o una aplicación de software. Un proceso elemental no es totalmente independiente
existiendo solo, sino que los procesos elementales se entretejen volviéndose interdependientes. Hay
dos tipos básicos de procesos elementales (datos en movimiento y datos en reposo) en una aplicación
de software. Los datos en movimiento tienen la característica de mover datos de adentro hacia afuera
de los límites de la aplicación o de afuera hacia adentro de los límites de la aplicación. Un proceso
elemental es similar a un caso de prueba de aceptación.

Definición:
En un nivel conceptual, el análisis de puntos de función ayuda a definir dos niveles abstractos
de datos: datos en reposo y datos en movimiento.

Datos en movimiento
Los datos en movimiento se manejan a través de tipos de funciones transaccionales o
transacciones simples. Todas las aplicaciones de software tendrán numerosos procesos

Page 8
Introduction
elementales o procesos independientes para mover datos. Las transacciones (o procesos
elementales) que traen datos desde fuera del dominio de la aplicación (o límite de la
aplicación) al interior de ese límite de la aplicación se denominan entradas externas.

Page 9
FP Online Class
http://www.Metrics Training.Co m
Chapter 1

Las transacciones (o procesos elementales) que toman datos desde una posición de reposo
(normalmente en un archivo) hacia fuera del dominio de la aplicación (o límite de la aplicación) se
conocen como salidas o consultas externas (estos se definirán más adelante en este libro).

Los datos en reposo

Los datos en reposo que mantiene la aplicación en cuestión se clasifican como archivos lógicos
internos. Los datos en reposo que mantiene otra aplicación en cuestión se clasifican como archivos
de interfaz externa.

Beneficios y usos:

Un conteo de puntos de función tiene muchos usos. Hay tres tipos de recuentos de puntos de función.
En la sección Cómo son útiles los puntos de función, se analizan con gran detalle los beneficios del
conteo de puntos de función. El artículo se puede encontrar en www.SoftwareMetrics.Com.

• Los puntos de función se pueden utilizar para comunicarse de forma más eficaz con los grupos de
usuarios empresariales.

• Los puntos de función se pueden utilizar para reducir las horas extra.

• Los puntos de función se pueden utilizar para establecer un inventario de todas las transacciones y
archivos de un proyecto o aplicación actual. Este inventario se puede utilizar como medio de
evaluación financiera de una aplicación. Si se lleva a cabo un inventario para un proyecto de desarrollo
o un proyecto de mejora, entonces este mismo inventario podría usarse para ayudar a mantener el
avance del alcance y ayudar a controlar el crecimiento del proyecto. Aún más importante, este
inventario ayuda a comprender la magnitud del problema.

• Los puntos de función se pueden utilizar para dimensionar aplicaciones de software. El


dimensionamiento es un componente importante para determinar la productividad (salidas/entradas),
predecir el esfuerzo, comprender el costo unitario, etc.

• A diferencia de otras métricas de software, diferentes personas pueden contar puntos de función en
diferentes momentos, para obtener la misma medida dentro de un margen de error razonable. Es decir,
se sacará la misma conclusión de los resultados.

• FPA puede ayudar a las organizaciones a comprender el costo unitario de una aplicación o proyecto
de software.
Una vez que se entiende el costo unitario, las herramientas, los idiomas y las plataformas se pueden
comparar cuantitativamente en lugar de subjetivamente. Este tipo de análisis es mucho más fácil de
entender que la información técnica. Es decir, un usuario no técnico puede comprender fácilmente los
puntos de función.

Hay varios otros usos de los puntos de función. La siguiente lista son algunas aplicaciones prácticas de
puntos de función y FPA. El artículo Uso de puntos de función en el sitio web
www.SoftwareMetrics.Com, en la sección de artículos del sitio web, brinda más detalles sobre cada
uno de estos elementos. Los puntos de función se pueden utilizar para:

Page
10
Introduction

• Definición de cuándo y qué reingeniería

Page 11
FP Online Class
http://www.Metrics Training.Co m
Chapter 1

• Estimación de casos de prueba


• Comprensión de amplios rangos de productividad
• Comprensión del desplazamiento del alcance
• Cálculo del costo real del software
• Estimación de los costos, el cronograma y el esfuerzo generales del proyecto
• Comprensión de los costos de mantenimiento
• Ayuda con las negociaciones del contrato
• Comprender el conjunto apropiado de métricas

Cuand no usar Puntos por función


Los puntos de función no son una muy buena medida cuando se dimensionan los esfuerzos de
mantenimiento (solución de problemas) o cuando se trata de comprender los problemas de
rendimiento. Gran parte del esfuerzo asociado con solucionar problemas (arreglos de producción) se
debe a tratar de resolver y comprender el problema (trabajo de detective). Otro problema inherente a la
medición del trabajo de mantenimiento es que gran parte de la programación de mantenimiento la
realizan una o dos personas. Los conjuntos de habilidades individuales se convierten en un factor
importante al medir este tipo de trabajo. La productividad de los programadores de mantenimiento
individuales puede variar hasta en un 1000 por ciento.

El ajuste del rendimiento puede o no tener nada que ver con la funcionalidad. El ajuste del rendimiento
es más el resultado de tratar de comprender el rendimiento de la aplicación y el tiempo de
procesamiento. Hay mejores métricas para utilizar al medir este tipo de trabajo.

Tipos de recuentos de puntos por función:


Los recuentos de puntos de función se pueden asociar con proyectos o aplicaciones. Hay tres tipos
principales de proyectos de software (Desarrollo, Mejoras y Mantenimiento). De acuerdo con estos
tipos de puntos de función, existen tres tipos diferentes de recuentos de puntos de función (Desarrollo,
Mejora y Aplicación).
Recuento de puntos de función del proyecto de desarrollo
Los puntos de función se pueden contar en todas las fases de un proyecto de desarrollo, desde los
requisitos hasta la implementación inclusive. Este tipo de conteo está asociado con nuevos trabajos de
desarrollo. La fluencia del alcance se puede rastrear y monitorear al comprender el tamaño funcional
en todas las fases de un proyecto. Con frecuencia, este tipo de conteo se denomina conteo de puntos de
función de línea de base.
Recuento de puntos de función del proyecto de mejora
Es común mejorar el software después de haberlo puesto en producción. Este tipo de recuento de
puntos de función intenta dimensionar los proyectos de mejora. Todas las aplicaciones de producción
evolucionan con el tiempo. Al rastrear el tamaño de la mejora y los costos asociados, se puede
construir una base de datos histórica para su organización. Además, es importante entender cómo un
proyecto de desarrollo ha cambiado con el tiempo.

Recuento de puntos de función de la aplicación

Los recuentos de aplicaciones se realizan en las aplicaciones de producción existentes. Este "recuento de
referencia" se puede utilizar con métricas generales de la aplicación, como el total de horas de
mantenimiento. Esta métrica se puede utilizar para

realizar un seguimiento de las horas de mantenimiento por punto de función. Este es un ejemplo de una

Page
12
Introduction
métrica normalizada. No es suficiente examinar solo el mantenimiento, sino que se debe examinar la relación
entre las horas de mantenimiento y el tamaño de la aplicación para obtener una imagen real.
Además, los recuentos de aplicaciones pueden ayudar a las organizaciones a comprender el tamaño de toda
la cartera corporativa (o inventario). Este tipo de conteo es similar a hacer un inventario de una tienda. Al
igual que el inventario, se puede asociar un valor en dólares con cualquier recuento de puntos de función de
la aplicación y para toda la cartera de la organización.

Que pasa con las lineas de Código? (LOC)


Hay varios problemas con el uso de LOC como unidad de medida para el software. Imagine dos
aplicaciones que proporcionen exactamente la misma funcionalidad (pantallas, informes, bases de
datos). Una de las aplicaciones está escrita en C++ y la otra aplicación está escrita en un lenguaje
como Clarion (un lenguaje muy visual). El número de puntos de función sería exactamente el
mismo, pero los aspectos de la aplicación serían diferentes. Las líneas de código necesarias para
desarrollar la aplicación no serían las mismas. La cantidad de esfuerzo requerido para desarrollar la
aplicación sería diferente (horas por punto de función). Somos capaces de comparar la
productividad de los idiomas. A diferencia de las líneas de código, el número de puntos de función
se mantendrá constante (debería permanecer constante).

Teniendo esto en cuenta;

1. El número de líneas de código entregadas depende del nivel de habilidad del programador. De
hecho, cuanto mayor sea el nivel de habilidad del programador, menos líneas de código desarrollará
para realizar la misma función.

2. Los lenguajes de nivel superior como Delphi, Progress 4GL, Forte, Dynasty, VB, Java Script u
otros lenguajes visuales requieren muchas menos líneas de código que Assembler, COBOL o C
para realizar la misma funcionalidad. Es decir, existe una relación inversa entre el nivel de lenguaje
y la producción de trabajo (cuando la producción de trabajo es LOC).

3. El número real de LOC no se conoce hasta que el proyecto está casi terminado.
Por lo tanto, LOC no se puede utilizar para estimar el esfuerzo o el cronograma de un proyecto.
Función
Los puntos se pueden derivar de requisitos y documentos de análisis que están disponibles al
principio del ciclo de vida de un proyecto.

4. No existe un método acordado para contar líneas de código. La declaración y el tipo de


declaraciones utilizadas en Visual C++, Assembler, COBOL, SQL son completamente diferentes.
Es común que las aplicaciones utilicen una combinación de diferentes idiomas.

Page 13
FP Online Class
http://www.Metrics Training.Co m
Chapter 1

Comprendiendo la Productividad:
La definición económica estándar de productividad es “Bienes o servicios por unidad de trabajo o gastos”
hasta 1979, cuando A.J. Albrecht de IBM publicó un artículo sobre puntos de función, hay
no había una definición de qué “bienes o servicios” eran el resultado del proyecto de software. El
bien o servicio de software es la funcionalidad empresarial proporcionada.

Si bien la productividad del software es un tema relativamente nuevo, la "productividad industrial" ha sido un
tema de interés durante muchos años. Una de las primeras personas en estudiar la productividad fue
Frederick Taylor (1856-1912). La principal preocupación de Taylor durante la mayor parte de su vida fue
aumentar la eficiencia en la producción. Taylor decidió que el problema de la productividad era una cuestión
de ignorancia por parte de la dirección. Taylor creía que la aplicación de métodos científicos, en lugar de
costumbres y reglas generales, podría generar una mayor productividad. Un siglo después de Frederick
Taylor, la mayoría de los administradores de software utilizan reglas generales en lugar de un estudio
sistemático.
Hawthorne
Frederick W. Taylor
Studies
Varios científicos emprendieron los famosos experimentos en la planta de Hawthorne de la Western
Electric Company en 1927 y 1932. Comenzaron un estudio para determinar el efecto de la
iluminación
sobre los trabajadores y su productividad. Descubrieron que la productividad mejoraba cuando se
aumentaba o disminuía la iluminación para un grupo de prueba. Descubrieron que cuando las
personas sentían que se les notaba, su productividad aumentaba. También encontraron que la mejora
en la productividad se debió a factores sociales tales como la moral, las interrelaciones satisfactorias
y la gestión eficaz. También encontraron que los mejores gerentes eran aquellos que administraban a
través del asesoramiento, el liderazgo y la comunicación. El fenómeno, que surge básicamente de que
las personas son "observadas", se conoce como el efecto Hawthorne.

Productividad:
La definición de productividad es la relación producto-insumo dentro de un período de tiempo
con la debida consideración por la calidad.

Productividad = productos/insumos (dentro de un período de tiempo, considerando la


calidad)

La fórmula indica que la productividad puede mejorarse (1) aumentando la producción con los
mismos insumos, (2) disminuyendo los insumos pero manteniendo los mismos productos, o (3)
aumentando los productos y disminuyendo los insumos cambiando la relación favorablemente.

Productividad del software = Puntos de función / Entradas

Efectividad vs. Eficiencia:


La productividad implica eficacia y eficiencia en el desempeño individual y organizacional. La
eficacia es el logro de los objetivos. La eficiencia es el logro de los fines con la menor
cantidad de recursos.

Understanding Software Productivity:


La productividad del software se define como horas/puntos de función o puntos de función/horas. Este es el
costo promedio para desarrollar software o el costo unitario del software. Una cosa a tener en cuenta es que
el costo unitario del software no se fija con el tamaño. Lo que muestran los datos de la industria es que el
costo unitario del software aumenta con el tamaño.

Page
14
Introduction

¿Cómo afecta el tamaño a la productividad?

A medida que aumenta el tamaño del proyecto de desarrollo de software, el costo por punto de función en
realidad aumenta. Como puede verse en el gráfico y los datos, el esfuerzo por unidad no permanece
constante a medida que aumenta el tamaño del proyecto de software. Esto es evidente porque las tareas no
son las mismas para los proyectos de software a medida que aumenta el tamaño.

What is Marginal Cost?

Como algunos de ustedes recordarán, el Costo Marginal es un término económico y es diferente del
costo promedio.
El costo promedio es el costo total de producir una cantidad particular de producto dividido por esa
cantidad. En este caso a Costo Total/Puntos de Función.
El costo marginal es el cambio en el costo total atribuible a un cambio de una unidad en la
producción. En nuestro caso, ¿cómo cambia el costo unitario a medida que cambia el tamaño del
proyecto de software? ¿Cómo cambia el costo del software a medida que el producto se vuelve más y
más grande?
Imagine el costo promedio por pie cuadrado de un edificio de un piso en comparación con el costo por
pie cuadrado de un edificio de 100 pisos. Sin duda, los costos de construcción (por costo unitario) para
el edificio de 100 pisos son mucho más altos que los de un edificio de un piso. Este mismo concepto es
cierto para un proyecto de software.
Además del tamaño, hay varios otros factores que afectan el costo de la construcción.
• Dónde está ubicado el edificio
• ¿Quién es el contratista general?
• ¿Quién hace el trabajo real?

¿Por qué aumentar los costos marginales para el desarrollo de software?

Hay una variedad de razones por las que los costos marginales del software aumentan a
medida que aumenta el tamaño. La siguiente es una lista de algunas de las razones

• A medida que aumenta el tamaño, aumenta la complejidad.

• A medida que aumenta el tamaño, es necesario completar un mayor número de tareas.

• A medida que aumenta el tamaño, hay una mayor cantidad de miembros del personal y se
vuelven más difíciles de administrar.

• A medida que aumenta el número de personas en un proyecto, también aumenta el


número de vías de comunicación. La comunicación en proyectos grandes puede ser muy
difícil.

Page 15
FP Online Class
http://www.Metrics Training.Co m
Chapter 1

• Dado que los costos fijos de los proyectos de software son mínimos. Hay pocas o ninguna
economía de escala para los proyectos de software.

Los puntos de función son el resultado del proceso de desarrollo de software. Los puntos de
función son la unidad de software. Es muy importante comprender que los puntos de función
permanecen constantes independientemente de quién desarrolle el software o en qué idioma se
desarrolle el software. Los costos unitarios deben examinarse muy de cerca. Para calcular el
costo unitario promedio, todos los artículos (unidades) se combinan y se dividen por el costo
total. Por otro lado, para estimar el costo total de cada artículo se examina.

Por ejemplo, suponga que va a fabricar una alfombrilla de ratón para computadora. El total
El costo de fabricar 1000 alfombrillas de ratón es de $2660. El costo unitario es de $2.66 (por
bloc). El desglose de costos es:

• La obra de arte tiene un costo fijo de $500 (o .50 por unidad)


• Los costos de instalación son de $250 (o 0,25 por unidad)
• Los costos de envío son $10 (o .01 por unidad)
• Los papeles para producción tendrán un costo de $1.50 por unidad.
• Las almohadillas de goma cuestan $ .15 por unidad.
• El costo de la aplicación del papel a la libreta es de $.25 por unidad

Observe la variación en el costo unitario de cada artículo. Uno de los mayores problemas con la
estimación de proyectos de software es comprender el costo unitario. Los administradores de
software no logran desglosar los elementos en componentes similares o áreas similares. Asumen que
todas las unidades cuestan lo mismo.

Hay diferentes costos para cada uno de los componentes del punto de función. El costo unitario de
los insumos externos no es lo mismo que el costo unitario de los productos externos, por ejemplo.
Las entradas externas en línea y las entradas externas en lote no tienen el mismo costo unitario (o
costo por punto de función). El costo por unidad para crear e implementar archivos lógicos internos
no es el mismo costo por unidad que la creación e implementación de informes en línea.

Para estimar con precisión el costo de una aplicación, se debe estimar el costo de cada componente.
Lo mismo es cierto para el problema del mousepad anterior.

Questions:

Problem 1
¿Cómo estimarías la cantidad de chocolates calientes que se venderán en el juego de campeonato de
la AFC en Kansas City (usa tu imaginación, los Chiefs podrían estar allí)?

¿Cuáles son los factores clave a tener en cuenta?

¿Contra quién te compararías y por qué?

Problem 2
¿Cuál es el costo promedio por mousepad si produce 1000 unidades con los siguientes costos?

Page
La obra de arte tiene un costo fijo de $500 Los costos de instalación son de $250 Los costos de
16
envío son de $10
Los papeles para producción costarán $2.50 por unidad.
Las almohadillas cuestan $ .25 por unidad.
El costo de la aplicación de papel a bloc es de $.35 por unidad

¿Los costos unitarios son los mismos para todos los artículos?

¿Es correcto suponer que los costos unitarios son fijos para el software? (Intuitivamente, ¿espera que
el costo por unidad para crear informes sea el mismo que el costo por unidad para construir una base
de datos?)

Notes:
Chapter 1

FUNCTION POINT COUNTING PROCESS


Objective of Section:
2
El objetivo de este capítulo es introducir al estudiante a los pasos de alto nivel necesarios para
contar puntos de función y realizar análisis de puntos de función. Los detalles de cada paso se
discuten más adelante en este libro. Los ejercicios al final de la sección ayudan al alumno a
demostrar que ha adquirido los conocimientos básicos necesarios.

Introduction:
Aunque ha habido intentos por parte de la Oficina Nacional de Normas (NBS) y el IEEE para
estandarizar términos y definiciones, no existen términos y definiciones practicados en toda la
industria relacionados con el desarrollo de software. IFPUG ha desarrollado algunos términos y
definiciones estándar relacionados con los puntos de función, pero estos términos y definiciones
deben aplicarse a una variedad de entornos de software diferentes.

Los clientes que han estandarizado su terminología dentro de sus propios entornos han visto
saltos significativos en la productividad. Es decir, han reducido la cantidad de verbos utilizados
para describir transacciones y otros eventos.

Imagínese si comparáramos un documento original utilizado con fines de construcción con un


documento de diseño de software típico. Mientras que el proyecto original usa terminología
estándar, el documento de diseño de software usa una variedad de terminología diferente para
describir exactamente lo mismo.

Definition:
El objetivo general es determinar el recuento de puntos de función ajustados. Hay varios pasos
necesarios para lograr esto. Si bien es posible que no comprenda la mecánica de los siguientes
pasos, se analizarán con gran detalle en el resto del libro. La secuencia u orden real de los pasos
no es necesaria. Muchos contadores completarán el paso 5 durante todo el conteo.
– recopilar información sobre la marcha;
1. Determinar el tipo de conteo de puntos de función
2. Determinar el límite de la aplicación
3. Identificar y calificar los tipos de funciones transaccionales para determinar su contribución al
conteo de puntos de función no ajustados.
4. Identificar y calificar los tipos de funciones de datos para determinar su contribución al conteo
de puntos de función no ajustados.
5. Determinar el factor de ajuste de valor (VAF)
6. Calcule el conteo de puntos de función ajustados.

Page 17
www.SoftwareMetrics.Com
Longstreet Consulting Inc

Page
18
Chapter 2

El conteo de puntos de función no ajustados (UFP) se determina en los pasos 3 y 4. Los pasos 3 y 4
se analizan más adelante en este capítulo y se analizan en detalle más adelante en el libro. No es
importante si el paso 3 o el paso 4 se completa primero. En aplicaciones de tipo GUI y OO, es fácil
comenzar con el paso 3.

El recuento final de puntos de función (recuento de puntos de función ajustados) es una


combinación del recuento de puntos de función no ajustados (UFP) y las características generales
del sistema (GSC).

Types of Function Point Counts:


Los recuentos de puntos de función se pueden asociar con proyectos o aplicaciones. Hay tres tipos
de recuentos de puntos de función.
• Recuento de puntos de función del proyecto de desarrollo
• Recuento de puntos de función del proyecto de mejora
• Recuento de puntos de función de la aplicación

High Level Steps:

• Para completar un conteo de puntos de función, se necesita conocimiento de las reglas


de puntos de función y la documentación de la aplicación. El acceso a un experto en
aplicaciones también puede mejorar la calidad del conteo.
• Una vez que se ha establecido el límite de la aplicación, FPA se puede dividir en tres
partes principales (FPA para tipos de funciones transaccionales, FPA para tipos de
funciones de datos y FPA para GSC).

Independence and Dependence:


Dado que la calificación de las transacciones depende tanto de la información contenida en las
transacciones como de la cantidad de archivos a los que se hace referencia, se recomienda que las
transacciones se cuenten primero. Al mismo tiempo que se cuentan las transacciones, se debe
mantener un recuento de todos los FTR (tipos de archivos a los que se hace referencia) a los que hacen
referencia las transacciones. Se aclarará en capítulos posteriores que cada FTR debe tener al menos
una o más transacciones.

Page 18
Function Point Counting Process

FPA Steps for Transactional Function Types:


Later in this document external inputs, external outputs and external inquiries are discussed in
detail. Each transaction must be an elementary process. An elementary process is the smallest
unit of activity that is meaningful to the end user in the business. It must be self-contained and
leave the business in consistent state.
T1. Application documentation and transaction
rules are used to identify
transactions.
FPA for Transactions
Application Documentation ct
T2. The application T1. Identify Transactions
documentation and transaction FfffdFu
Transaction

rules are used to determine Model Datan T2. Type of Transaction(EO, EI, EQ)
type of transaction (external
Model T3. Number of DETs and FTRs
input, external output, or
external inquiry). FPA Rules T4. Determine Low, Ave, High

T3. With the help of Transaction


T5. Values Determined
application documentation Rules
(data model and transaction T6. All Transactions are
summed to obtain UFP
Functional Complexity
for Transactions.

Tables of Weight
model) and transaction rules the number data elements and file type referenced are determined.

T4. A cada transacción identificada se le asigna un valor bajo, promedio o alto según el tipo, los elementos
de datos y los archivos a los que se hace referencia.

T5. Se asigna un valor numérico distinto según el tipo y el valor (bajo, promedio o alto). T6. Todas las
transacciones se suman para crear un recuento de puntos de función sin ajustar de transacción.

Page 19
FP Online Class
http://www.Metrics Training.Co m
Chapter 2

FPA Steps for Files:

Later in this document internal logical files and external interface files are discussed in detail.

FPA for Files


F1. Application
Application
documentation and file rules F1. Identify
are used to identify files. Documentation Files
Transaction Model
F2. The application F2. Type of File(ILF or
EIF)
Data Model
documentation (transaction
model and data model) is used F3. Number of DETs and
FPA
to determine type of file
(either external interface file Rules File RETs F4. Determine Low,
or internal logical file). Rules Ave, High F5. Values

F3. With the help of Determined


Functional
application documentation Complexity
F6. All Files are summed
Tables of Weight
to obtain UFP for Files.

(data model) and file rules the number data elements and record element types are determined.

F4. Each identified file is assigned a value of low, average or high based upon type, data
elements and record types.

F5. A distinct numerical value is assigned based upon type and value (low, average, or high).

F6. All files are summed to create a file unadjusted function point count.

Questions:

¿Hay algún beneficio en la secuencia o el orden de contar los puntos de función? Es decir, ¿hay
algún beneficio en contar transacciones antes de los FTR?

¿Las transacciones son independientes o dependen de los FTR?

¿Qué pasa con los FTR? ¿Se cuentan independientes o dependientes de las Transacciones?

Page 20
Chapter 3

ESTABLISHING THE BOUNDARY


Objective of Section:
3
Describe and define the concepts necessary to establish a boundary between applications.

Definition:
Dado que es común que los sistemas informáticos interactúen con otros sistemas informáticos y/o
seres humanos, se debe trazar un límite alrededor de cada sistema para medirlo antes de clasificar los
componentes. Este límite debe dibujarse de acuerdo con el punto de vista del usuario sofisticado. En
resumen, el límite indica el límite entre el proyecto o la aplicación que se mide y las aplicaciones
externas o el dominio del usuario. Una vez que se ha establecido la frontera, los componentes se
pueden clasificar, clasificar y contar.

Uno de los beneficios del punto de función es que el análisis crea proporciones con otras métricas,
como horas, costos, personal, duración y otras métricas de la aplicación. Es importante que el límite
del punto de función sea consistente con otras métricas que se recopilan para la aplicación y el
proyecto.
Identify the Boundary:
• Revisar el propósito del conteo de puntos de función.
• Observe cómo y qué aplicaciones mantienen los datos.
• Identificar las áreas de negocio que soportan las aplicaciones.

Es posible que sea necesario ajustar el límite una vez que se hayan identificado los componentes. En la
práctica, es posible que sea necesario revisar el límite, ya que se comprende mejor la aplicación general.
Es posible que sea necesario ajustar los recuentos de puntos de función a medida que aprende sobre la
aplicación.
Standard Documentation:
• Documentos de especificaciones generales
• Documentos de interfaz
• Otros informes de métricas
• Entrevistas con los usuarios
• Documentación del usuario
• Documentación de diseño
• Requisitos
• Diagramas de flujo de datos
Establishing the Boundary early in the Life cycle:
Los límites se pueden establecer al principio del ciclo de vida del software. Si la solicitud es un
proyecto de reemplazo, entonces el límite del proyecto debe ser similar (quizás idéntico) al anterior

solicitud. Si la aplicación es una aplicación nueva, se deben revisar los límites de otras aplicaciones
para establecer el límite correcto.

Technology Issues:
Aplicaciones de Internet/Intranet
El límite de una aplicación de Internet/Intranet se define de manera similar para las aplicaciones
tradicionales. Para las aplicaciones tradicionales, el límite no se dibuja solo alrededor de la interfaz de usuario
o un grupo de pantallas, sino alrededor de toda la aplicación. Con frecuencia, las aplicaciones de
Page 22
Internet/Intranet son solo extensiones de las aplicaciones actuales y existentes. Hay una tendencia a crear
una aplicación "nueva" para la extensión de Internet/Intranet, pero este enfoque es incorrecto.

Servidor de cliente
Los límites de las aplicaciones cliente/servidor deben trazarse alrededor del cliente y el servidor. La razón es
que ni el cliente ni el servidor admiten una vista de usuarios (o sofisticada). Es decir, uno solo no representa
una aplicación total. Como se mencionó anteriormente, cualquier aplicación completa necesita datos en
reposo (servidor) y datos en movimiento (cliente).

Tabulating:
There is no special tabulating that needs to take place for establishing the boundary, but the
boundary can dramatically impact the number of external inputs and external outputs.

Questions:

In theory, how does making the boundary too large impact a function point count?

What if the boundary is too small?

Page 23
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 3

IDENTIFYING RET’S, DET’S, FTR’S

Objective of Section:
4
Aprende las técnicas necesarias para identificar un RET, un DET y un FTR. Comprender cómo
identificar DET y FTR es fundamental para distinguir una transacción de otra. Si bien en la
práctica, comprender el número exacto de DET y FTR puede no afectar el recuento de puntos de
función, comprender los DET y FTR puede ayudar a comprender cómo contar los puntos de
función para el recuento de puntos de función de mejora. Los ejercicios al final de la sección
ayudan al alumno a demostrar que ha adquirido los conocimientos básicos necesarios.
Definition:
Tipo de elemento de registro (RET): un RET es un subgrupo de elementos de datos reconocible
por el usuario dentro de un ILF o un EIF. Es mejor observar agrupaciones lógicas de datos para
ayudar a identificarlos. El concepto de RET se discutirá en detalle en los capítulos que tratan
sobre el archivo lógico interno y los archivos de interfaz externa.

Tipo de archivo al que se hace referencia (FTR): un FTR es un tipo de archivo al que hace
referencia una transacción. Un FTR también debe ser un archivo lógico interno o un archivo de
interfaz externo.

Tipo de elemento de datos (DET): un DET es un campo único reconocible por el usuario, no
recursivo (no repetitivo). Un DET es información que es dinámica y no estática. Un campo
dinámico se lee de un archivo o se crea a partir de DET contenidos en un FTR. Además, un DET
puede invocar transacciones o puede ser información adicional sobre transacciones. Si un DET es
recursivo, solo se considera la primera ocurrencia del DET, no todas las ocurrencias.

Un elemento de datos puede ser cuantitativo o cualitativo. Un elemento de datos cuantitativos son
datos en forma numérica. Un elemento de datos cualitativos son datos que no están en forma
numérica, sino en forma de texto, fotografías, bytes de sonido, etc.

Comprender los FTR y los DET ayudó a distinguir una transacción de otra transacción. Este
concepto será discutido en detalle más adelante en este libro.

Page 24
Chapter 4

Rating:
All of the components are rated based upon DET’s, and either RET’s or FTR’s.

Component RET’s FTR’s DET’s


External Inputs (EI) entradas externas
External Outputs (EO) salidas externas
External Inquiries (EQ) consultas externas
External Interface Files (EIF) archivos de interfaz externa
Internal Logical Files (ILF) archivos lógicos internos

Transaction DET’s:
• Entradas externas: campos de entrada de datos, mensajes de error, valores calculados, botones
• Salidas externas: campos de datos en un informe, valores calculados, mensajes de error y
Encabezados de columna que se leen de un ILF. Al igual que un ecualizador y un EO, pueden tener
un lado de entrada y un lado de salida.
• Consultas Externas: Lado de Entrada - campo utilizado para buscar, con el clic del ratón. Lado
de salida: campos mostrados en una pantalla.
Record Element Types (RET’s):
Los tipos de elementos de registro son uno de los conceptos más difíciles en el análisis de puntos de
función. La mayoría de los tipos de elementos de registro dependen de una relación padre-hijo. En este
caso, la información secundaria es un subconjunto de la información principal. En una relación padre-
hijo hay una relación de uno a muchos. Es decir, cada pieza de información secundaria está vinculada
directamente a un campo en el archivo principal. Se discutirá más acerca de los RET en las secciones
de archivo lógico interno y archivo de interfaz externa.
Tips to Identify RET’s and DET’s early in the life cycle:
Los RET y DET pueden ser difíciles de evaluar al principio del ciclo de vida del software. Dado que
los RET y DET son esenciales para calificar los componentes, se pueden usar varias técnicas para
calificar los componentes.

• Califique todos los tipos de funciones transaccionales y tipos de funciones de datos como Promedio.
• Determinar cómo se clasifican los tipos de funciones transaccionales y los tipos de funciones de
datos en aplicaciones de tipos similares. ¿La mayoría de los tipos de funciones de datos tienen una
calificación baja en aplicaciones de tipos similares?
DET’s for GUI
Usando la definición estricta de un elemento de datos proporcionada por el Manual de prácticas de
conteo de IFPUG. “Un elemento de datos es un campo no recursivo reconocible por el usuario”.
Desafortunadamente, esto no brinda mucha orientación al contar las aplicaciones GUI. De hecho, el
manual de prácticas de conteo de IFPUG no proporciona muchos detalles sobre conteo, botones de
radio, casillas de verificación, lista de selección, menús desplegables, búsquedas, cuadros combinados,
etc. En las aplicaciones GUI, un elemento de datos es información que se almacena en un archivo
lógico interno o que se utiliza para invocar una transacción.

Page 24
Identifying RET’s, DET’s and FTR’s

Radio Buttons
Los botones de opción se tratan como tipos de elementos de datos. Dentro de un grupo de, un cuadro,
botones de opción, el usuario tiene la opción de seleccionar solo un botón de opción; por lo tanto, solo
se cuenta un tipo de elemento de datos para todos los botones de opción contenidos en el marco.

Check Boxes
Las casillas de verificación se diferencian de los botones de radio en que se puede seleccionar más de
una casilla de verificación a la vez. Cada casilla de verificación, dentro de un marco, que se puede
seleccionar debe tratarse como un elemento de datos.

Command Buttons
Los botones de comando pueden especificar una acción de agregar,
cambiar, eliminar o consultar. Un botón, como Aceptar, puede invocar
varios tipos diferentes de transacciones.

De acuerdo con las reglas de conteo de IFPUG, cada botón de comando se contaría como un elemento de
datos para la acción que invoca. En la práctica, este elemento de datos no afectará la calificación de la
transacción, pero ayuda a comprender y diseccionar una pantalla llena de transacciones.

Un botón como el siguiente puede ser en realidad el lado de entrada de una consulta u otra transacción.

Por ejemplo, una aplicación simple para realizar un seguimiento de los distribuidores podría tener
campos para el nombre del distribuidor, la dirección, la ciudad, el estado, el código postal, el número
de teléfono y el número de fax. Esto representaría siete campos o (siete elementos de datos) y el botón
de comando Agregar representaría el octavo elemento de datos. En resumen, la entrada externa
"agregar" representa una entrada externa con ocho elementos de datos, la entrada externa "cambiar"
representa otra entrada externa con ocho (siete elementos de datos más el botón de comando
"cambiar") y la entrada externa "eliminar" entrada representa la última entrada externa con ocho
elementos de datos (siete campos más el botón de comando "eliminar").

Display of Graphical Images or Icons


Una visualización de una imagen gráfica es simplemente otro elemento de datos. Una aplicación de
inventario, por ejemplo, puede contener datos sobre piezas. Puede contener el nombre de la pieza, el
proveedor, el tamaño y el peso, e incluir una imagen esquemática de la pieza. Este esquema se trata
como un solo elemento de datos.

Sound Bytes
Muchas aplicaciones GUI tienen adjunto un byte de sonido. Esto representa un elemento de datos. El
número de notas tocadas es simplemente información recursiva. Si la longitud del byte de sonido aumenta,
el elemento de datos sigue siendo uno. Por ejemplo, puede reproducir "Star Spangled Banner" durante dos
o cuatro segundos, pero seguirá contando los bytes de sonido como un elemento de datos. Cuanto más se
reproduce, más información recursiva tiene.

Photographic Images
Una imagen fotográfica es otro elemento de datos y se cuenta como uno. Una aplicación de recursos
humanos puede mostrar el nombre del empleado, la fecha de inicio, etc. y una fotografía del empleado.
La fotografía se trata igual que el nombre del empleado o la fecha de inicio del empleado. La fotografía
se almacena y mantiene como cualquier otra información sobre el empleado.
Page 25
FP Online Class
http://www.Metrics Training.Com
Chapter 4

Messages
Hay tres tipos de mensajes que se generan en una aplicación GUI: mensajes de error, mensajes de
confirmación y mensajes de notificación. Los mensajes de error y los mensajes de confirmación
indican que se ha producido un error o que se completará o se completará un proceso. No son un
proceso elemental o independiente solo, sino que forman parte de otro proceso elemental. Un
mensaje que diga "se requiere el código postal" sería un ejemplo de un mensaje de error. Un mensaje
que diga "¿está seguro de que desea eliminar al cliente?" es un ejemplo de un mensaje de
confirmación. Ningún tipo de mensaje se trata como una salida externa única, pero cada uno se trata
como un elemento de datos para la transacción adecuada.

Por otro lado, un mensaje de notificación es un mensaje de tipo empresarial. Una notificación es un
proceso elemental, tiene algún significado para el usuario empresarial y es independiente de otros
procesos elementales. Es la base del procesamiento y la conclusión que se extrae. Por ejemplo, puede
intentar retirar de un cajero automático más dinero del que tiene en su cuenta y recibe el temido
mensaje: "No tiene fondos suficientes para cubrir esta transacción". Este es el resultado de la lectura
de información de un archivo con respecto a su saldo actual y de la obtención de una conclusión. Un
mensaje de notificación se trata como una salida externa.

DET’s For Real Time Systems


Usando la definición estricta de un elemento de datos proporcionada por el Manual de prácticas de
conteo de IFPUG. “Un elemento de datos es un campo no recursivo reconocible por el usuario”.
Desafortunadamente, esto no brinda mucha orientación al contar sistemas en tiempo real o integrados.
De hecho, el manual de prácticas de conteo de IFPUG no proporciona ningún detalle sobre el conteo
de este tipo de sistemas.

Algunas definiciones tradicionales se pueden aplicar directamente a los sistemas integrados y en


tiempo real. Los campos en un archivo de diagnóstico: hora del diagnóstico, estado del hardware
durante el diagnóstico, temperatura, voltaje, etc., serían todos ejemplos de elementos de datos.

Es posible que los sistemas en tiempo real no tengan ninguna "interfaz de usuario tradicional". Es
decir, el estímulo para el Sistema de tiempo real puede ser su propia salida o estado. Los sistemas
integrados o en tiempo real pueden señalar para determinar el estado actual del hardware (o
ubicación) y determinar el ajuste apropiado (entrada) en función del estado actual.

Navigation
Navigation is moving from one transaction to another.

Skill Builder:
1. La siguiente información se escucha en la estación de tren de Roma. ¿Cuántos elementos de datos se escuchan? Es
decir, ¿qué información varía de una llegada de tren a la siguiente?

El tren procedente de Florencia llegará a la Vía 46 a las 8:30 h. El tren procedente de Nápoles llegará a la Vía 43 a las 11:00
h.

2. Los totales en un informe en particular cambian de color dependiendo de si la cantidad está por encima o por debajo

Page 26
Identifying RET’s, DET’s and FTR’s
$ 500.
3. Por ejemplo, si el monto es -$250, aparece como $250, pero si el monto es superior a 0, el valor aparece en azul. Por
ejemplo, si la cantidad es de $ 1,000. ¿Cuántos elementos de datos están representados por el número y por el color?

Page 27
FP Online Class
http://www.Metrics Training.Com
EXTERNAL INPUTS
Objective of Section:
5
Describe and define the concepts necessary to identify and rate External Inputs. The exercises at
the end of the section help the student demonstrate that they have gained the basic knowledge
required.

Definition:
Entradas externas (EI): es un proceso elemental en el que los datos cruzan el límite de afuera
hacia adentro. Estos datos provienen del exterior de la aplicación. Los datos pueden provenir de
una pantalla de entrada de datos o de otra aplicación. Los datos pueden utilizarse para mantener
uno o más archivos lógicos internos. Los datos pueden ser información de control o información
comercial. Si los datos son información de control no es necesario mantener un archivo lógico
interno.

Si una entrada externa agrega, cambia y elimina (mantiene) información en un archivo lógico
interno, esto representa tres entradas externas. Las entradas externas (especialmente cambiar y
eliminar) pueden estar precedidas por una consulta externa (consulte la sección sobre consultas
externas). Por lo tanto, una pantalla de función completa es agregar, cambiar, eliminar y
consultar (se discutirá más acerca de las consultas más adelante en el libro).
Rating:
Como todos los componentes, los EI se califican y puntúan. La calificación se basa en la cantidad
de tipos de elementos de datos (DET) y los tipos de archivos a los que se hace referencia (FTR).
Los DET y FTR se analizaron anteriormente. La siguiente tabla enumera tanto el nivel (bajo,
medio o alto) como la puntuación adecuada (3, 4 o 6).
F ile s Ty pe R e fe re nce d ( F Da t a Ele me nt s ( DET’ s)
TR ) 1-4 5-15 Greater than 15
Less than 2 Low (3) Low (3) Average (4)
2 Low (3) Average (4) High (6)
Greater than 2 Average (4) High (6) High (6)

Counting Tips:
Try to ask the question, do external inputs need more or less than 2 files to be processed? For all
the EI’s that reference more than 2 FTR’s, all that is needed to know is if the EI has more or less
than 4 data element types referenced. If the EI has more than 4 DET’s the EI will be rated as

Page 28
www.SoftwareMetrics.Com
Longstreet Consulting Inc
External Inputs

high; less than 4 DET’s the EI will be rated as average. Any EI’s that reference less than 2
FTR’s should be singled out and counted separately.

Examples:
Los EI pueden ser datos comerciales, datos de control y datos basados en reglas.

Datos comerciales: nombre del cliente, dirección, teléfono, etc. Datos de control:
Los elementos de datos son aquellos que invocan la transacción o cambian el comportamiento de
la aplicación. Cada casilla de verificación representa un elemento de datos. Además, los botones
de opción Ordenar lista de empleados representan un elemento de datos, así como los botones de
opción Formato de hora.

Controlar los cambios de información


o altera el estado (o el comportamiento) de la aplicación. La información de control especifica
cómo, qué y
cuándo se procesarán los datos.

Data Elements:
Los conjuntos únicos de elementos de datos ayudan a distinguir la entrada externa de otra entrada
externa.

• Campos de entrada de datos


• Valores calculados o datos derivados que se almacenan
• Error de mensajes
• Mensajes de confirmación
• Los campos recursivos solo se cuentan como un DET.
• Teclas de acción (botones de comando como Aceptar, Siguiente, etc.)
• Varias teclas de acción que realizan la misma función se cuentan solo como un DET.
File Types Referenced (FTR’s):
Los FTR únicos ayudan a distinguir la entrada externa de otra entrada externa. Un FTR debe ser un
archivo lógico interno y/o un archivo de interfaz externo. Cada archivo lógico interno que mantiene
una entrada externa se cuenta como un FTR. Cualquier archivo lógico interno o archivo de interfaz
externo al que se haga referencia mediante una entrada externa como parte del proceso elemental de
mantenimiento de un archivo lógico interno también se consideraría un FTR. Por ejemplo, una
entrada externa puede actualizar una
archivo lógico interno, pero también debe hacer referencia a un "archivo de seguridad" para asegurarse de
que el usuario tiene los niveles de seguridad adecuados. Este sería un ejemplo de dos FTR.

Page 29
FP Online Class
http://www.Metrics Training.Com
Chapter 5

Uniqueness:
Un conjunto único de elementos de datos y/o un conjunto diferente de FTR y/o un conjunto único de
cálculos hacen que una entrada externa sea única o diferente de otras entradas externas. Es decir, uno
de los siguientes debe ser cierto:

• Conjunto único o diferente de elementos de datos


• Conjunto único o diferente de FTR
• Cálculos únicos o diferentes

Los cálculos por sí solos no son un proceso elemental sino parte del proceso elemental de la entrada
externa. Un cálculo (o datos derivados) no convierte la transacción en una salida externa. Los
productos externos y los datos derivados se discutirán en detalle en la sección de productos externos
de este documento.
Understanding Enhancement Function Points:
La modificación de cualquiera de los elementos, que hacen que una entrada externa sea única de otras
entradas externas, hace que la IE se "mejore". Si alguno de los siguientes es cierto:

• DET agregados a un EI
• DET modificados en un EI. El DET se incluyó en el último FP Count.
• Un nuevo FTR
• Modificaciones a un cálculo que aparece en un EI.
Technology Issues:

GUI
Radio Buttons - each set of radio buttons is counted as one DET. Only one radio button can be
selected at a time.

Pick Lists- The actual pick list (also known as drop downs, lookups) could be an external
inquiry, but the result of the inquiry may be a DET for an external input.

Check Box - Each check box that can be simultaneously checked is a unique DET.

Buttons - Buttons can be DET’s. The OK button above would be a data element. If there was a
series of buttons Add, Change and Delete. Each button would be counted as a DET for the
associated transaction.

A single GUI “screen” may represent several transactional function types. For example, it is
common for a GUI “screen” to have a series of external inquiries followed by an external input.

Page 30
External Inputs

Other
Mensajes de error: los mensajes de error se cuentan como elementos de datos (DET), no como
elementos externos únicos.
consultas. Cuente un DET para toda la pantalla de entrada. Los mensajes de error múltiples son
similares a los valores recursivos. Un mensaje de error es parte de otro proceso elemental.

La cantidad de mensajes de error en una pantalla GUI es menor que la cantidad de mensajes de
error asociados con las aplicaciones tradicionales. Si se usan correctamente, los botones de opción
y las listas de selección pueden obligar a los usuarios a seleccionar la información correcta; por lo
tanto, elimina la necesidad de editar detrás de escena.

En la práctica, el número de DET no hace mucha diferencia al evaluar un EI, comprender los
mensajes de error o confirmación ayuda a comprender la singularidad.

Tiempo Real y Sistemas Embebidos


En los sistemas integrados y en tiempo real, la comunicación entre el hardware y el software es
común y no debe pasarse por alto al contar este tipo de sistemas. Otros tipos de entradas para
sistemas embebidos y en tiempo real son: controles de operador, controles de volumen, lecturas de
sensores, frecuencias de radio, estándares y ajustes de límites (ajustes de alarmas, etc.).
Standard Documentation:
Una buena fuente de información para determinar las entradas externas son los diseños de pantalla, los
formatos y cuadros de diálogo de pantalla y los diseños de cualquier formulario de entrada. Las
entradas adicionales de otras aplicaciones deben inventariarse aquí. Las entradas de otras aplicaciones
deben actualizar los archivos lógicos internos de la aplicación que se está contando.
• Diseños de pantalla
• Diálogos de pantalla
• Documentación de diseño
• Especificaciones funcionales
• Requisitos de usuario
• Cualquier formulario de entrada
• Diagramas de contexto
• Diagramas de flujo de datos
Tips to Identify External Inputs early in the life cycle:
Los siguientes tipos de documentación se pueden utilizar para ayudar a contar los EI antes de la
implementación del sistema.

• Cualquier objetivo refinado y restricciones para el sistema propuesto.


• Documentación recopilada con respecto al sistema actual, si dicho sistema (ya sea automatizado o
manual) salidas.
• Documentación de los objetivos, problemas y necesidades percibidos por los usuarios.
• Diagrama de flujo de datos preliminar.
• Documentación de Requisitos.

Page 31
FP Online Class
http://www.Metrics Training.Com
Chapter 5

Typical Vocabulary:
The following words are associated with external input or “inputs.” While reading textual
document or application description look for these type of words, they may indicate an add,
change or delete aspect of an external input.

Add Modify (change)


Activate Override (change)
Amend (change and delete) Post (add, change and delete)
Cancel Remove (delete)
Change Reactivate (change)
Convert (change) Remit
Create (add) Replace (change)
Delete Revise (change and delete)
Deassig Save (add, change or delete)
n Store (add)
Disable Suspend (change or delete)
Disconnect (change or delete) Submit (add, change or
Enable delete) Update (add, change or
Edit (change) delete) Voids (change and
Insert ( add and change) delete)
Maintain (add, change, or delete)
Memorize (add)

Skill Builder:
The following questions are used to help build on the concepts discussed in this section. They
are designed to encourage thought and discussion.

1. If an EI has one file type referenced and 5 data elements is it rated, low average or high?
What about 7 data elements? Or 25 Data elements?

2. How many data elements are there on the control input in the body of the chapter (page
29)?

3. Does every EI have to update an ILF? Why?

4. What are the criteria for an EI to be rated high?

5. Fill in the “value” of a low average and high EI?

The following screen is used to add a new customer to an application. The OK command button
and the Next command button both add the new customer to the database.

Page 32
External Inputs

6. How many data elements are there in this input screen?

7. If this screen updates one internal logical file how many unadjusted function points does
this screen represent?

8. How many data elements does the phone number represent?

9. Is the Cancel command button counted as a data element?

La aplicación A tiene un archivo de entrada por lotes. El archivo por lotes es un archivo físico, pero
contiene muchos tipos diferentes de registros. El primer campo es un número de identificación de
registro. El número de identificación del registro puede oscilar entre 1 y 75. El segundo campo describe
si el registro es nuevo y se agrega al archivo, cambia una entrada de lote anterior o elimina una entrada
de lote anterior (agregar, cambiar y eliminar). Según el número de identificación del registro, hay un
conjunto único de elementos de datos, se actualiza y se hace referencia a un conjunto diferente de
archivos, y se sigue una lógica de procesamiento diferente. Cada número de identificador de registro
individual actualiza más de 3 archivos (tiene más de 3 FTR) y contiene más de 5 elementos de datos.
¿Cuántos puntos de función representa esta entrada de lote?
The answers to chapter questions are part of the online training course
http://www.MetricsTraining.Com

Page 33
FP Online Class
http://www.Metrics Training.Com
EXTERNAL OUTPUTS
6
Objective of Section:
Describe and define the concepts necessary to identify and rate External Outputs. The
exercises at the end of the section help the student demonstrate that they have gained the basic
knowledge required.

Definition:
External Outputs (EO) - an elementary process in
which derived data passes across the boundary from
inside to outside. Additionally, an EO may update
an ILF. The data creates reports or output files sent to
other applications. These reports and files are created
from information contained in one or more internal
logical files and external interface files.

Los datos derivados son datos que se procesan más allá


recuperación y edición de información de archivos lógicos internos o archivos de interfaz externa.
Derivado
los datos suelen ser el resultado de algoritmos o cálculos. Los datos derivados se producen cuando
uno o más elementos de datos se combinan con una fórmula para generar o derivar elementos de
datos adicionales. Estos datos derivados no aparecen en ningún FTR (archivo lógico interno o
archivo de interfaz externo).

Un algoritmo se define como un procedimiento mecánico para realizar un cálculo dado o resolver un
problema en una serie de pasos.

Un cálculo se define como una ecuación que tiene uno o más operadores. Un operador es una
función matemática como suma, resta, multiplicación y división (+, -, x, /).

Las transacciones entre aplicaciones deben denominarse interfaces. Solo puede tener una salida
externa o una consulta externa de datos externos a su aplicación. Si obtiene datos de otra aplicación
y los agrega a un archivo en su aplicación, esta es una combinación de obtener y agregar (consulta
externa y entrada externa).
Rating:
Como todos los componentes, los EO se califican y puntúan. La calificación se basa en la cantidad de
elementos de datos (DET) y los tipos de archivos a los que se hace referencia (FTR). La clasificación se basa
en el número total de elementos de datos (DET) únicos (entradas y salidas únicas combinadas) y los tipos
de archivos a los que se hace referencia (FTR) (lados de entrada y salida únicos combinados). Los DET y FTR
se analizaron anteriormente en esta sección. La siguiente tabla enumera tanto el nivel (bajo, medio o alto)
como la puntuación adecuada (4, 5 o 7).

Page 34
www.SoftwareMetrics.Com
Longstreet Consulting Inc
External Outputs

File Types Referenced (FTR) Data Elements


1-5 6-19 Greater than 19
less than 2 Low (4) Low (4) Average (5)
2 or 3 Low (4) Average (5) High (7)
Greater than 3 Average (5) High (7) High (7)

Counting Tips:
Puede hacer la pregunta: ¿Las salidas externas necesitan más o menos de 3 archivos para ser
procesadas? Para todos los EO que hacen referencia a más de 3 archivos, todo lo que se necesita
saber es si el EO tiene más o menos de 5 tipos de elementos de datos. Si el EO tiene más de 5 tipos de
elementos de datos, el EO se calificará como alto, menos de 5, el EO se calificará como promedio.
Cualquier EO que haga referencia a menos de 3 archivos debe señalarse y contarse por separado.
Terminology:
La definición establece que una EO contiene información, cuyos datos derivados pasan a través
del límite desde el interior hacia el exterior. Puede surgir cierta confusión porque un EO tiene un
lado de entrada. La confusión es que la definición lee los datos que pasan a través del límite
desde adentro hacia afuera. El lado de entrada de un EO son criterios de búsqueda, parámetros,
etc., no mantiene un ILF. La información que cruza de afuera hacia adentro (lado de entrada) no
es un dato permanente, sino que es un dato transitorio. La intención de la información
proveniente de fuera de la aplicación (lado de entrada) no es mantener un ILF.

Examples:
A diferencia de otros componentes, los EO casi siempre contienen datos comerciales. Los datos de la
base de reglas y los "resultados" basados en el control casi siempre se consideran Consultas externas.
Esto es cierto debido al hecho de que los datos de la regla y los datos del tipo de control no se derivan
(o derivables).

Los mensajes de notificación se consideran EO. Un mensaje de notificación difiere de un mensaje de


error. Un mensaje de notificación es un proceso elemental, mientras que un mensaje de error (o
mensaje de confirmación) es parte de un proceso elemental. Un mensaje de notificación es el resultado
de algún procesamiento de lógica empresarial. Por ejemplo, una aplicación comercial puede notificar a
un corredor que el cliente que intenta realizar un pedido no tiene fondos suficientes en su cuenta.

Los datos derivados que se muestran en formato textual (filas y columnas) y en formato gráfico son un
ejemplo de dos salidas externas.
Data Elements:
Conjuntos únicos de elementos de datos ayudan a distinguir una salida externa de otra. Tenga en
cuenta que un DET es algo dinámico.
(Un DET es un campo único reconocible por el usuario, no recursivo (no repetitivo))
• Error de mensajes

• Mensajes de confirmación
• Valores calculados (datos derivados)
• Valores en informes que se leen desde un archivo lógico interno o un archivo de interfaz externo.
• Valores o campos recursivos (cuentan solo una vez)
• Por lo general, no cuente los encabezados de informe (literales) como elementos de datos aPage
menos
35
que sean dinámicos. FP Online Class
http://www.Metrics Training.Com
Chapter 6
Es decir, si los encabezados del informe se leen de archivos que se mantienen, también pueden ser
DET.
• Las fechas generadas por el sistema que están en la parte superior o en los informes o que se
muestran normalmente no se cuentan como DET. Si las fechas generadas por el sistema son parte de
la información comercial de la salida externa, deben contarse como DET. Por ejemplo, la fecha de
impresión de una factura o la fecha de impresión de un cheque.

File Types Referenced (FTR):


La ayuda de Unique FTR distingue una salida externa de otra. Un FTR debe ser un archivo lógico
interno y/o un archivo de interfaz externo.

El proceso elemental asociado con una salida externa puede actualizar un archivo lógico interno o un
archivo de interfaz externo. Por ejemplo, el proceso elemental que produce un cheque de nómina
puede incluir una actualización de un archivo para establecer un indicador que indique que se produjo
el cheque de nómina. Esto no es lo mismo que mantener el archivo. Se mantiene el proceso de
modificación de datos (añadir, cambiar y borrar) a través de un proceso elemental (a través de una
Entrada Externa). La intención principal de una EO no es mantener un ILF.
Uniqueness:
Un conjunto
haceúnico de elementos de datos y/o un conjunto diferente de FTR y/o un conjunto único de
cálculos que
los siguientes debeuna
sersalida
cierto:externa sea única o diferente de otras salidas externas. Es decir, uno de
• Conjunto único o diferente de elementos de datos
• Conjunto único o diferente de FTR
• Cálculos únicos o diferentes
• Lógica de procesamiento única

Understanding Enhancement Function Points:


La modificación de cualquiera de los elementos, que hacen que una salida externa sea única de otras
salidas externas, hace que el EO se "mejore". Si alguno de los siguientes es cierto:

• DET agregados a una EO


• DET modificados en un EO. El DET se incluyó en el último FP Count.
• Un nuevo FTR
• Modificaciones a un cálculo que aparece en una EO.

Page 36
External Outputs

Technology Issues:
Cada medio al que se envía un informe se cuenta como un único EO. Si un informe estuviera
disponible en línea, en papel y en formato electrónico, se contaría como tres EO. Ahora, algunas
organizaciones eligen contar esto como solo una EO. Cualquiera que sea la decisión que se tome, la
organización debe apegarse a ella.

Caché de disco: no se debe pasar por alto la información que se prepara, procesa y deriva y se coloca
en archivos de caché para que otra aplicación la utilice. Estos archivos almacenados en caché pueden
ser salidas externas o consultas externas.
Standard Documentation:
• Diseños de informes
• Documentación de diseño
• Especificaciones funcionales
• Requisitos de usuario
• Descripciones de la base de datos
• Tamaños y formatos de campo
• Diseños de informes gráficos
Tips to Identify External Outputs early in the life cycle:
Los
antessiguientes tipos de documentación
de la implementación del sistema.se pueden utilizar para ayudar a contar los productos externos
• Cualquier objetivo refinado y restricciones para el sistema propuesto.
• Documentación recopilada con respecto al sistema actual, si dicho sistema (ya sea automatizado o
manual) salidas.
• Documentación de los objetivos, problemas y necesidades percibidos por los usuarios.
• Diagramas de flujo de datos preliminares.

Typical Vocabulary:
The following words are associated with an “external outputs.” While reading textual
documents or application descriptions look for these types of words. They may indicate an
external output. Notice these words are very similar to those words used for an External Inquiry
(discussed in the next chapter).

Browse Reports
Display Request
Get Retrieve
On- Seek
lines Select
Output View
Print
Query

Page 37
FP Online Class
http://www.Metrics Training.Com
Chapter 6

Special Issues and Concerns:


Cuándo contar los DET para los encabezados de informes:
Los encabezados de informe se cuentan cuando son dinámicos. Es decir, si los encabezados
de los informes se leen desde un archivo lógico interno, deben contarse como DET.

¿Puede una salida externa tener un lado de entrada?


Dado que el lado de entrada no es independiente (independiente o un proceso elemental),
debe considerarse como parte de toda la salida externa. Los FTR y DET utilizados para buscar
deben combinarse con DET y FTR externos únicos para obtener un total general de FTR y
DET para toda la EO. En resumen, una salida externa puede tener un lado de entrada.

¿Puede una salida externa actualizar un archivo lógico interno?


Una salida externa puede actualizar un archivo lógico interno, pero es incorrecto decir que una
salida externa puede mantener un archivo lógico interno. La actualización es parte del proceso
elemental de la salida externa. Una entrada externa mantiene datos en un archivo ILF. El
proceso de mantenimiento es un proceso elemental solo. La definición de mantenimiento se
analiza en las secciones de archivo lógico interno y entrada externa de este libro.

gráficos
Los gráficos se cuentan de la misma manera que los EO textuales. Es decir, el gráfico se
clasifica y puntúa en función del número de DET y el número de FTR. De hecho, la información
recursiva se ve fácilmente en un gráfico, pero puede ser más difícil de visualizar en un informe
de texto.

1. Hay 10 elementos de datos en la siguiente tablaDays


2. Hits
3. % of Total Hits
4. User Sessions
5. Total Hits (weekday)
6. Total % (weekday)
7. Total User Sessions (weekday)
8. Total Hits (weekend)
9. Total % (weekend)
10. Total User Sessions (weekend)

Days, Hits, % of Total Hits and User Sessions all have recursive data.

The same data could be processed and presented as bar graph. But on the following bar graph
there are only two data elements (user session and day of week). The bar graph is a separate

Page 38
External Outputs

external output and is unique from the above table. In short, it provides different business
slightly different information than the table.

The answers to chapter questions are part of the online training course
http://www.MetricsTraining.Com

Skill Builder:
The following questions are used to help build on the concepts discussed in this section. They
are designed to encourage thought and discussion.

Ice Cream Cone Sales by Month


Flavor Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total

V anilla 80 85 85 90 110 120 135 145 90 84 75 70 1169

C hocolate 75 80 70 83 100 105 109 120 80 70 69 65 1026

Strawberry 30 35 35 40 70 80 95 105 40 34 25 20 609

P is tachio 8 9 9 9 11 12 14 15 9 8 8 7 119

Other 12 13 13 13 15 17 19 20 14 13 13 12 174

Total 205 222 212 235 306 334 372 405 233 209 190 174

1. How many data elements are there in the above chart?

2. Is there recursive (repetitive) information? What is it?

Page 39
FP Online Class
http://www.Metrics Training.Com
Chapter 6

3. How many data elements are there in the following line chart? Can
recursive information be seen easier in graphs?

Ice Cone Sales by Month

160
Vanilla
140
120 Chocolate
100 Straw berry
80 Pistachio
60
Other
40
20
0
Aug

Sep
Mar

Apr

Jul
May

Oct
Jan

Feb

Jun

Nov
Figure 1 Dec

4. How many data elements are in the following chart with 2 y - axis?

Max Average Daily Temperature in Kansas City


Data is from 1893 - Present

102 40
92 35
30
82
Fahrenheit

25
Celsius

72
20
62
15
52 10
42 5
32 0
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Month

Page 40
External Outputs

5. How many data elements are there in the following pie chart?

Percent of Cones Sold by Flavor


Pistachio Other
4% 6%
Straw berry Vanilla
20% 37%

Chocolat
e 33%

Figure 2

6. Si un EO tiene 4 tipos de archivos a los que se hace referencia y 15 elementos de datos, ¿se clasifica
como promedio bajo o alto?

7. ¿Qué pasa con 5 elementos de datos con 4 FTR? ¿O 45 elementos de datos con 4 FTR?

8. ¿Es posible tener una EO que no haga referencia a ningún ILF? ¿Por qué?

9. ¿Cuál es el criterio para que una OE tenga una calificación baja?

10. Complete el "valor" de un EO promedio bajo y alto? ¿Cómo se compara esto con un ecualizador?
¿Por qué la diferencia?

11. Tiene una lista de 25 informes y puede asumir con seguridad que cada informe son procesos
elementales separados, calcule el número de puntos de función no ajustados.

12. Se le proporciona una lista de los siguientes 5 informes y la única información que tiene es el
número de FTR.
Informe 1, 3 FTR
Informe 2, 5 FTR
Informe 3, 1 RTC
Informe 4, 2 FTR
Informe 5, 1 RTC

Page 41
FP Online Class
http://www.Metrics Training.Com
Chapter 6

Estime el número de puntos de función no ajustados. ¿Qué método usaste?

13. ¿Cómo estimaría el número no ajustado de puntos de función si se le proporcionara la siguiente


información?

Informe 1, 4 DET
Informe 2, 25 DET
Informe 3, 10 DET
Informe 4, 15 DET
Informe 5, 2 DET

14. ¿Qué método utilizó?

15. Anteriormente, el gráfico de líneas de las ventas de conos de helado se contaba como una salida
externa única. Si un gráfico fuera exactamente igual excepto en italiano, ¿se consideraría otra salida
externa única?

16. Se crean dos cheques separados, un cheque de gastos y un cheque de nómina. Ambos cheques se
ven idénticos y tienen los siguientes campos, nombre del empleado, dirección del empleado, monto
del cheque, fecha de impresión del cheque. El cheque de gastos usa el archivo de reembolso de gastos
y el archivo del empleado y el cheque de nómina usa el archivo de la nómina y el archivo del
empleado. Los cálculos para cada cheque son diferentes. ¿Cuántas salidas externas hay? ¿Explica tu
respuesta?

Las respuestas a las preguntas de los capítulos forman parte del curso de formación online

http://www.MetricsTraining.Com

Page 42
EXTERNAL INQUIRIES
Objective of Section:
7
Describe and define the concepts necessary to identify and rate External Inquiries. The exercises
at the end of the section help the student demonstrate that they have gained the basic knowledge
required.

Definition:
External Inquiry (EQ) - an elementary process with
both input and output components that result in data
retrieval from one or more internal logical files and
external interface files. The input process does not
update or maintain any FTR’s (Internal Logical Files
or External Interface Files) and the output side does
not contain derived data.

Transactions between applications should be referred to as interfaces. You can only have an
external output or external inquiry of data external to your application. If you get data from
another application and add it to a file in your application, this is a combination get and add
(external inquiry and external input).

Rating:
Like all components, EQ’s are rated and scored. Basically, an EQ is rated (Low, Average or
High) like an EO, but assigned a value like and EI. The rating is based upon the total number
of unique (combined unique input and out sides) data elements (DET’s) and the file types
referenced (FTR’s) (combined unique input and output sides). DET’s and FTR’s were
discussed in an earlier chapter. If the same FTR is used on both the input and output side, then
it is counted only one time. If the same DET is used on both the input and output side, then it is
only counted one time.

Functional Complexity Matrix (shared table between EO and EQ)


File Types Referenced (FTR) Data Elements
1-5 6-19 Greater than 19
less than 2 Low (3) Low (3) Average (4)
2 or 3 Low (3) Average (4) High (6)
Greater than 3 Average (4) High (6) High (6)

Page 43
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 7

Examples:
Los ecualizadores pueden contener datos comerciales, datos de control y datos basados en reglas.

Aplicaciones comerciales: un ejemplo de datos comerciales son los nombres de los clientes, las
direcciones, el número de teléfono, etc. Un ejemplo de datos de reglas es una entrada de tabla que
indica cuántos días puede llegar tarde un cliente antes de que se entregue para su recolección.

La lista desplegable (una lista de clientes por nombre) sería un ejemplo de un ecualizador. Una
pantalla llena de información de la dirección del cliente sería un ejemplo de un EQ.
Restablecer (o restaurar) la funcionalidad donde todos los campos modificados se restablecen a sus
valores guardados. La clave para entender esta consulta externa es el "restablecer a sus valores
guardados". Claramente se está leyendo una tabla.
Terminology:
The definition states that an EO contains information, which derived data passes across the
boundary from inside to outside. Some confusion may arise because an EO has an input side.
The confusion is the definition reads data passes across the boundary from inside to outside. The
input side of an EO is search criteria, parameters, etc does not maintain an ILF. The information
that a cross from outside to inside (input side) is not permanent data, but it is transient data. The
intent of the information coming from outside the application (input side) is not to maintain an
ILF.

Data Elements:
Unique sets of data elements help to distinguish one external inquiry from another
external inquiry.

• Input Side
Click of a the mouse
Search values
Action keys (command buttons)
Error Messages
Confirmation Messages (searching)
Clicking on the an action key
Scrolling
Recursive fields are counted only once.
• Outsid
e
Values read from an internal logical file or external interface file
Color or Font changes on the screen
Error Messages
Confirmation Messages
Recursive fields are counted only once.
• The combined (unique) total input and outside DET’s are used when rating
EQ’s.

Page 44
External Inquiries

Al igual que un EI, las teclas de acción que realizan la misma función pero aparecen varias veces se
cuentan como un solo DET.

Los mensajes de error y los mensajes de confirmación pueden ocurrir y ocurren en el lado de entrada
y/o en el lado de salida. Si un usuario inicia una búsqueda y se muestra un mensaje, "espere
buscando" es un ejemplo de un mensaje de confirmación en el lado de entrada. El mensaje "todos los
campos deben completarse" es otro ejemplo de un mensaje de error en el lado de la entrada. Por otro
lado, si el mensaje es "cliente no encontrado" es un ejemplo de un mensaje de error en el lado de
salida. Es decir, el lado de entrada no contenía problemas. Se buscó en la base de datos y se produjo
el "error" en el lado de salida de la transacción.

File Type Referenced (FTR’s):


Unique FTR’s help distinguish one external inquiry from another external inquiry.

Both the input side and output side must be considered when evaluating the FTR’s used by an
external inquiry. Normally they are the same but there are instances where they may not be the
same. The combined total should be used when evaluating an EQ. For example, a security
check may be done on the input side of an external inquiry. The security check is done to make
sure the user of the application has the appropriate level of authority to view the data.

Uniqueness:
A unique set of data elements, and/or a different set of FTR’s make one external inquiry unique
or different from other external inquiry. That is, one of the
following must be true:

• Unique or different set of data elements


• Unique or different set of FTR’s
• Unique processing logic

Sorting does not make on external inquiry unique from another


since the data elements and FTR’s are the same.

An external inquiry cannot have calculated values or derived


data. This characteristic distinguishes an external inquiry from an external output.

Understanding Enhancement Function Points:


Modification of any of the items, which make an External Inquiry unique from other external
inquiries, causes the EQ to be “enhanced.” If any of the following are true:

• DET’s added to an EQ
• DET’s modified on an EQ. The DET was included in the last FP Count.
• A New FTR

Page 45
FP Online Class
http://www.Metrics Training.Com
Chapter 7

Example of Graphical
Data
Imagine the following map. There are two different ways to get the same exact data. One you
can click on the specific state or you can use the drop down list. Once you choose a state data is
generated and presented to the screen. These two EQ are repetitive and do the same exact
thing. We would not consider this as two EQ’s but only one. You can view this map by
visiting http://quickfacts.census.gov/qfd/index.html

Technology Issues:
GUI applications are usually rich with EQ’s (and
EO’s).
A dynamic pick list that reads from a file is an example an External
Inquiry. GUI screens my have a series of EQ’s prior to an EI.

Standard Documentation:
• Screen Layouts
• Design Documentation
• Functional Specifications
• Table Layouts
• User Requirements
• Database descriptions
• Pick lists
• Field sizes and formats

Page 46
External Inquiries

Tips to Identify EQ’s early in the life cycle:


The following types of documentation can be used to assist in counting internal logical files prior
to system implementation.

• Any refined objectives and constraints for the proposed system.


• Collected documentation regarding the current system, if such a system (either automated or
manual) exits.
• Documentation of the users’ perceived objectives, problems and needs.
• Preliminary Data Flow Diagrams.

Typical Vocabulary:
The following words are associated with an “external inquiry.” While reading textual document
or application description look for these type of words. They may indicate an external inquiry.
Notice the words are very similar to those related to external outputs.
Browse Query
Display Scan
Extract Seek
Fetch Select
Find Show
Gather View
Get Report
Drop Down s
Lists
Look Ups
On-lines
Output
Pick Lists
Print

Special Issues and Concerns:

Can an External Inquiry not have an input side?


Even though it may not be visible all external inquiries have an input side. In cases where the
input side is not readily visible is referred to as an implied inquiry.

Can an External Inquiry Update an Internal Logical File?


Like an external output, an external inquiry may update an internal logical file, but it is incorrect
to say that an external inquiry can maintains an internal logical file. The update is part of the
elementary process of the external inquiry. The definition for maintaining is discussed in the
internal logical file and external input sections of this book. The only component that maintains
an internal logical file is an external input.

Page 47
FP Online Class
http://www.Metrics Training.Com
Chapter 7

Menus (Dynamic Menus)


The menu displayed to the right is a
dynamic menu. Word displays the last
several files that have been opened. We
can easily conclude that this information is
being read from some type of internal file.
Hence, the information is dynamic. The
menu would be counted as an external
inquiry.

Even though the IFPUG Manual explicitly


states that menus are not counted, in this
case it is clear that the menu is dynamic
and changes.

The real distinction is if a menu is


dynamic or static. That is, are the contents
of the screen or report dynamic (read from
some file) or are they static (hard coded).

Page 48
External Inquiries

Skill Builder:
The following questions are used to help build on the concepts discussed in this section. They
are designed to encourage thought and discussion.

The following customer list is displayed by clicking on the title bar


“Customer.” The following list is displayed (and is read from a file).

If a particular customer is double clicked additional information is displayed.

1. How many EQ’s does the Customer Button, Customer: Job List and Edit Customer
represent?

Page 49
FP Online Class
http://www.Metrics Training.Com
Chapter 7

If Customer:Job is clicked then the following menu is displayed. If new is selected a blank
(empty screen appears – same fields as Edit Customer). If delete is selected on delete
confirmation is displayed.

Page 50
External Inquiries

2. How many EI’s does this series of screens (Edit, New and Delete) represent?

3. If an EQ references one file type and has 25 data elements is it rated, low average or
high? What about 5 data elements? Or 45 Data elements?

4. Does every EQ have to have at least one FTR? Why?


How does this differ from an EO?

5. What is the criterion for an EQ to be rated high?

The answers to chapter questions are part of the online training course
http://www.MetricsTraining.Com

Page 51
FP Online Class
http://www.Metrics Training.Com
TRANSACTION REVIEW

Objective of Section:
8
To review the three types of transactional function type (external input, external output and
external inquiry).

If the transaction can perform the “activity” then place a check in the appropriate column.

Transactions
Description or Activity External External Externa
Input Output l
DET’s retrieved from FTR’s
Sorting of Data
Updates an ILF
Maintains an ILF
Contains Derived Data
Information from outside the boundary
to inside
Shares complexity matrix table
Are valued the same for Low, Ave,
and High
Never Contains Derived Data
At least on FTR is referenced
Information from inside the boundary
to outside
The answers to chapter questions are part of the online training course
http://www.MetricsTraining.Com

Multiple Languages
Consider an application that is a single language. More than likely report headings, text
descriptions are all “hard coded.” That is the user cannot dynamically change the headings or
the text. Now consider an application that has been developed with multiple languages in mind.
The report headings, text descriptions are all read from files. Compare the following chart in

Page 52
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Transaction Review

Spanish to the English chart presented earlier. Is this chart a unique external output or the same
external output?

The Spanish chart is not a unique external output. If external outputs are available in multiple
languages then several things need to be considered. First there is probably some control input
that allows the user to dynamically select the language. Second, there is an additional FTR
referenced that contains the language text. Third, this language internal logical file is
maintained by an external input. Fourth, there are more data elements in the report. If an
external output is available in more than one language then it is not considered an unique
external output, but the external output is more complex (more DET’s and more FTR’s).

Display of Graphical Images or Icons


A display of a graphical image is simply another data element. An inventory application may
contain data about parts. It may contain part name, supplier, size, and weight and include a
schematic image of the part. This schematic is treated as another data element.

Another example would be a map. The map may be “hot.” As the mouse pointer is moved over
the map different city names are displayed. If the user clicks on a particular hot point details
about that city is
displayed. The details
about each city are
contained in an internal
logical file or external
interface file then the
details could be an
external inquiry.

The following map of the


United States is “hot.” If
you click on Kansas City,

Page 53
FP Online Class
http://www.Metrics Training.Com
Chapter 8

then you get the following information.

Kansas City, Missouri: Population 435,146: Location: 39.1 N, 94.5 W


Houston, Texas: Populations 2,231,130: Location: 29.8 N, 95.4 W
Chicago, Illinois: Population 2,783,726: Location: 41.8 N, 87.6 W

This would be an example of another inquiry.

Messages
There are three types of messages that are generated in a GUI application: Error messages,
Confirmation Messages and Notification Messages. An error message and a confirmation
message indicate that an error has occurred or that a process will be or have been completed. A
message that would state, “Zip code is required” would be an example of an error message. A
message that would state, “Are you sure you want to delete the customer?” is an example of a
confirmation message. Neither of these types of messages is treated as a unique External
Output, but they are treated as data elements for the appropriate transaction.

On the other hand, a notification messages is a business type message. It is the basis of
processing and a conclusion being drawn. For example, you may try to withdraw from an ATM
machine more money than you have in your account and you receive the dreaded message, “You
have insufficient funds to cover this transaction.” This is the result of information being read
from a file regarding your current balance and a conclusion being drawn. A notification
message is treated as an External Output.

Notification Messages may be the result of


processing and the actual processing or derived data
my not be seen. If a message is created to be sent
to a pager (beeper) at a given time. This is much
like an alarm. That is current time is compared to
set time and they are equal the message is sent.
The pager message has one data element the text
message.

Page 54
Transaction Review

Complex Control Inputs


Control inputs change the behavior of an application or the content of a report. In the “Create
Report” control screen, the user has the ability to select which reports are going to be produced.
This particular screen has several data element types. The check box, graph type, dimensions
elements, sub-items and the action keys.

Note that the users can choose each report individually. In fact each report is as an object.
The generated report is a combination of several reports (or objects). Each object has several
attributes.

Hyperlinks on WebPages

Many hyperlinks are nothing more than menus. In this case the
meomix.com, dogchow.com are nothing more then links to other
pages. In this case, they are not treated as an EI, EO or EQ.

According to the rules for an external inquiry a request must come


from outside the application boundary and information must be
displayed from inside to outside the application boundary. A
hyperlink is just that – a hyperlink. A hyperlink is navigation to
another part of the application or another Internet/Intranet site. No
information crosses the boundary.

An external inquiry must reference at least one internal logical file


and/or one external interface file. Both an internal logical file and
an external interface file must be a logical group of related
information. Imagine hyperlinking to another Website -- all the
information displayed is not a logical group of information.

On the other hand, a hyperlink that sends a parameter that is used to


search could be an example of an external inquiry. That is, the
hyperlink follows the rules required for an external inquiry. There is
an input side (the parameter) and there is an output side the results of
the search. In this case the output side is dynamic and changes.
This is in sharp contrast to a static hyperlink that navigates to
another part of the Website.

Page 55
FP Online Class
http://www.Metrics Training.Com
INTERNAL LOGICAL FILES
Objective of Section:
9
Describe and define the concepts necessary to identify and rate Internal Logical Files.
The exercises at the end of the section help the student demonstrate that they have gained the
basic knowledge required.

Definition:
Internal Logical Files (ILF) - a user identifiable group of logically related data that resides
entirely within the application boundary and is maintained through External Inputs. An internal
logical file has the inherent meaning it is internally maintained, it has some logical structure and
it is stored in a file.

Even though it is not a rule, an ILF should have at least one external output and/or external
inquiry. That is, at least one external output and/or external inquiry should include the ILF as an
FTR. Simply put, information is stored in an ILF, so it can be used later. The EO or EQ could
be from another application. It is worth noting that it is possible that a specific ILF is not
referenced by EO or EQ, but it is used by an EI (other than the EI that maintains it).

Again, even though it is not a rule, an ILF should have at least one external
input.

Rating:
Like all components, ILF’s are rated and scored. The rating is based upon the number of data
elements (DET’s) and the record types (RET’s). DET’s and RET’s were discussed earlier. The
table below lists both the level (low, average or high) and appropriate score (7, 10 or 15).

Record Element Data Elements


Types (RET)
1 to 19 20 - 50 51 or More
1 RET Low (7) Low(7) Average (10)
2 to 5 RET Low (7) Average (10) High (15)
6 or More RET Average (10) High (15) High (15)

Counting Tips:
Determine the appropriate row first then the column. Ask the question, do all files contain one
record type or more than one record type? If all or many of the files only contain one record
type, then all that is needed to know if the file contains more or less than 50 data elements types
(DET’s). If the file contains more than 50 data elements the file will be rated as average, if less
than 50 data element types the file will be considered low. Any files that contain more than
one record type can be singled out and counted separately.

Page 56
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Internal Logical Files

Examples:
ILF’s can contain business data, control data and rules based data. The type of data contained in
an ILF is the same type of data an EI to contains and maintains.

It is common for control data to have only one occurrence within an ILF. For example control
data file may only contain parameter settings, or a status setting. For example, part of the on
board automobile system only contains current information, oil pressure, engine temperature, so
on and so forth. This particular process of the on board system does not care about historical
data
– only the current instance. When the status changes the file is updated with current information
and there is no historical information. The on board system may keep track of historical changes
in diagnostics files, but this would be a totally separate process. This process is not used to keep
the car running, but to help a mechanic understand what has been going on with the engine.

Real Time and Embedded Systems: For example, Telephone Switching is made of all three types,
Business Data, Rule Data and Control Data. Business Data is the actual call, Rule Data is how
the call should be routed through the network, and Control Data is how the switches
communicate with each other. Like control files it is common real time systems will have only
one occurrence in an internal logical file.

Business Applications: An example of Business data is customer names, addresses, phone


number, so on and so forth. An example of Rules Data is a table entry that tells how many days
a customer can be late before they are turned over for collection.

Record Element Types:


The idea behind RET’s is to quantify complex data
relationships maintained in a single FTR.

Record element types are one of the most


difficult concepts in function point analysis.
Most record element types are dependent on a
parent - child relationship. The child information
is a subset of the parent information. In a parent
child relationship there is a one to many Figure 3 (two ILF, one RET each)
relationship.

Figure 3 represents two separate logical groups of data A and B. In this case
some A are B.

Figure 4 represents one logical group of data A two record types. In this case
All B are A.

Imagine a customer file that contains Name, Address, so on and so forth. In would be multiple
addition all the credit cards and credit card numbers of the customer are occurrences of credit
contained in the file. This would be an example of 2 record types. There cards and numbers for

Page 57
FP Online Class
http://www.Metrics Training.Com
Chapter 9
each

Figure 4 (two RET, one ILF)

Page 58
Internal Logical Files

customer. The credit card and numbers are meaningless when not linked to the customer.

Additionally, a short article, Understanding RET’s can be found at Website\Articles\ret.htm.

Data Element Types:


Count a DET’s for each unique user recognizable, nonrecursive field on the ILF or EIF. Fields
that are redundant and appear more than one time are only counted one time. Fields that are
redundant because of implementation concerns are counted only one time.

Count a DET’s for each piece of data in an ILF or EIF that exists because the user requires a
relationship with another ILF to be maintained (key information). If an EIF has multiple
key fields only the key fields that relate back to an ILF are counted as data element types.

Technology Issues:
Lotus Notes refers to data stores as “forms.” Powerbuilder Applications may store information
on the host or client. Count it only one time. COBOL Applications may use a variety of data
stores such as IMS, DB2 etc.… It is important to view data from the “logical model.”

In Internet applications an html can be a data store if it is


maintained.

Standard Documentation:
• Table Layouts
• Database descriptions
• Logical data models
• Field sizes and formats
• Design Documentation
• Functional Specifications
• User Requirements

Tips to Identify ILF’s early in the life cycle:


The following types of documentation can be used to assist in counting internal logical files prior
to system implementation.

• Any refined objectives and constraints for the proposed


system.
• Collected documentation regarding the current system, if such a system (either automated
or
manual) exits.
• Documentation of the users’ perceived objectives, problems and needs.
• Preliminary Data
Models.

Other comments: Page 59


FP Online Class
http://www.Metrics Training.Com
Chapter 9
Code maintenance may not be maintained by the application and they may not be maintained by
any other application, but they exist. The issue is that these same tables may be used by external

Page 60
Internal Logical Files

inquiries. A strict interpretation of the rules would not allow the inquiries to be counted. It is
recommended that this type of tables be treated as external interface file.

Skill Builder:
The following questions are used to help build on the concepts discussed in this section. They
are designed to encourage thought and discussion.

1. If a single internal logical file is separated into 3 physical files because of


implementation concerns, then how many internal logical files are counted?

2. A logical group of data is best described as?

3. If an ILF has one record type and 25 data elements is it rated, low average or high?
What about 5 data elements? Or 45 Data elements?

4. Does every ILF have to have at least one EI? Why?

5. Should every ILF have at least one external output or external inquiry? Why?

6. What are the criteria for an ILF to be rated high?

7. Fill in the “value” of a low average and high ILF? How does this
compare to an EIF? Why the difference?

Page 61
FP Online Class
http://www.Metrics Training.Com
Chapter 9

Examine the following tables. The user requires detail information about customers and sales
representatives.

1. How many internal logical files?

2. How many data elements? Is there more than one record type?

3. Can the tables be formed to combine one internal logical file?

Customer Table

Customer Name Address City State Zip Balance Credit Sales


Number Code Limit Rep
AN91 Atwater 215 Watkins Oakdale IN 48101 $347 $700 Number
04
Nelson
AW52 Alliance 266 Ralston Allanson IN 48102 $49 $400 07
West
BD22 Betodial 542 Prairie Oakdale IN 48101 $57 $400 07
CE76 Carson 96 Prospect Bishop IL 61354 $425 $900 11
Enterprise

Sales Representative Table

Sales Rep Last First Address City State Zip Code Area
Number Name Name Manager
Number
04 Right Mike 95 Stockton Oakdale IN 48101 14
05 Perry Tom 198 Pearl Oakdale IN 48101 17
07 Sanchez Rachel 867 Bedford Benson MI 49246 17
11 Morris Katie 96 Prospect Bishop IL 61354 21

Page 62
Internal Logical Files

Imagine a database that stores information about albums.

The database is broken down as Artist, Album Name, Publication Date, and Songs. The key to
the database is both Artist and Album Name. The field songs have three subset fields. Song
contains tack number, song name and length of playing time.

For example,

Bruce Springsteen, Born to Run, Songs. The first row of the song subset is #1, Born To
Run, 4:30.

Figure 5 - Songs Field

1. How many internal logical files are represented by this database?

2. How many total data elements?

3. How many total record types are there on the database?

4. What is the recursive information?

Page 63
FP Online Class
http://www.Metrics Training.Com
EXTERNAL INTERFACE FILES
Objective of Section:
10
Describe and define the concepts necessary to identify and rate External Interface Files. The
exercises at the end of the section help the student demonstrate that they have gained the
basic knowledge required.

Definition:
External Interface Files (EIF) - a user identifiable group of logically related data that is used for
reference purposes only. The data resides entirely outside the application boundary and is
maintained by another applications external inputs. The external interface file is an internal
logical file for another application. An application may count a file as either a EIF or ILF not
both. An external interface file has the inherent meaning it is externally maintained (probably
by some other application), an interface has to be developed to get the data and it is stored in a
file.

Each EIF included in a function point count must have at least one external output or
external interface file against it. At least one transaction, external input, external output or
external inquiry should include the EIF as a FTR.

Every application, which references the EIF, needs to include it in their FP Count. Some
organizations have a pull theory and others have a push theory of data. The pull theory is an
external application “reaching into” another applications and retrieving data. Those
organizations which have push theory require applications to create interfaces (EO or EQ)
which other applications read.

Rating:
Like all components, EIF’s are rated and scored. The rating is based upon the number of data
elements (DET’s) and the record types (RET’s). DET’s and RET’s were discussed earlier in
this section. The table below lists both the level (low, average or high) and appropriate score (5,
7 or 10).

Record Element Types Data Elements


(RET)
1 to 19 20 - 50 51 or More
1 RET Low (5) Low(5) Average (7)
2 to 5 RET Low (5) Average (7) High (10)
6 or More RET Average (7) High (10) High (10)

Page 62
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Internal Logical Files

Counting Tips:
Only count the part of the file that is used by the application being counted not the entire file.
The internal logical file, of another application, that you access may have a large amount of data,
but only consider the DET’s and/or RET’s that are used when rating an EIF.

Determine the appropriate row first then the column. Ask the question, do all files contain one
record type or more than one record type? If all or many of the files only contain one record
type, then all that is needed to know if the file contains more or less than 50 data elements types
(DET’s). If the file contains more than 50 data elements the file will be rated as average, if less
than 50 data element types the file will be considered low. Any files that contain more than
one record type can be singled out and counted separately.

Examples:
EIF’s can contain business data, control data and rules based data.

Real Time and Embedded Systems: For example, Telephone Switching is made of all three
types, Business Data, Rule Data and Control Data. Business Data is the actual call, Rule Data is
how the call should be routed through the network, and Control Data is how the switches
communicate with each other.

Business Applications: An example of Business data is customer names, addresses, phone


number, so on and so forth. An example of Rules Data is a table entry that tells how many days a
customer can be late before they are turned over for collection.

Technology Issues:
Lotus Notes refers to data stores as “forms.” Client/Server Applications may store information
on the host or client. Count it only one time. COBOL Applications may use a variety of data
stores such as IMS, DB2 etc.… It is important to view data from the “logical model.”

Standard Documentation:
• Table Layouts
• Interface Diagrams
• Database descriptions
• Logical data models
• Field sizes and formats
• Design Documentation
• Functional Specifications
• User Requirements

Page 63
FP Online Class
http://www.Metrics Training.Com
Chapter 10

Tips to Identify EIF’s early in the life cycle:


The following types of documentation can be used to assist in counting external interface files
prior to system implementation.

• Any refined objectives and constraints for the proposed system.


• Collected documentation regarding the current system, if such a system (either automated or
manual) exits.
• Documentation of the users’ perceived objectives, problems and needs.
• Preliminary Data Models.

Page 64
GENERAL SYSTEM CHARACTERISTICS
11
Objective of Section:
Describe and define the concepts necessary to rate the General System Characteristics
(GSC’s) to determine the overall Value Adjustment Factor. The exercises at the end of the
section help the student demonstrate that they have gained the basic knowledge required.

Definition:
The value adjustment factor (VAF) is based on 14 general system characteristics (GSC’s)
that rate the general functionality of the application being counted. Each characteristic has
associated descriptions to determine the degrees of influence.

Rating:
The degrees of influence range on a scale of zero to five, from no influence to strong influence.
Each characteristic is assigned the rating based upon detail descriptions provided by the IFPUG
4.1 Manual. They ratings are:

0 Not present, or no
influence
1 Incidental influence
2 Moderate influence
3 Average influence
4 Significant influence
5 Strong influence throughout

Standard Documentation:
• General Specification Documents
• Interviews with the
users

Rating GSC’s early in the life cycle:


GSC’s can be rated relative early in the software life cycle. In fact, if a user cannot answer these
fourteen questions, then the entire project needs to be re-evaluated.

Page 65
Chapter 10

www.SoftwareMetrics.Com
Longstreet Consulting Inc

Page 66
Chapter 11

Tabulating:
Once all the 14 GSC’s have been answered, they should be tabulated using the IFPUG Value
Adjustment Equation (VAF) --
14 where: Ci = degree of influence for each General System
Characteristic VAF = 0.65 + [( ¿ Ci) / 100] .i = is from 1 to 14 representing each GSC.
i =1 ¿ = is summation of all 14 GSC’s.

Another way to understand the formula is VAF = (65 + TDI)/100, where TDI is the sum of
the results from each question. A Microsoft Excel formula would be:
=0.65+SUM(A1:A14)/100 ; assuming that the values for the characteristics were in cells A1 –
A14.

GSC’s at a Glance:
General System Characteristic Brief Description
1. Data communications How many communication facilities are there to
aid in the transfer or exchange of information
with the application or system?
2. Distributed data processing How are distributed data and processing functions
handled?
3. Performance Did the user require response time or throughput?
4. Heavily used configuration How heavily used is the current hardware
platform where the application will be executed?
5. Transaction rate How frequently are transactions executed daily,
weekly, monthly, etc.?
6. On-Line data entry What percentage of the information is entered
On-Line?
7. End-user efficiency Was the application designed for end-
user efficiency?
8. On-Line update How many ILF’s are updated by On-Line
transaction?
9. Complex processing Does the application have extensive logical or
mathematical processing?
10. Reusability Was the application developed to meet one or
many user’s needs?
11. Installation ease How difficult is conversion and installation?
12. Operational ease How effective and/or automated are start-up,
back up, and recovery procedures?
13. Multiple sites Was the application specifically designed,
developed, and supported to be installed at
multiple sites for multiple organizations?
14. Facilitate change Was the application specifically designed,
developed, and supported to facilitate change?

Page 66
General System Characteristics

Considerations for GUI Applications


GSC items such as Transaction Rates, End User Efficiency, On Line Update, and
Reusability usually score higher for GUI applications than on traditional applications. On the
other hand, Performance, Heavily used configuration, multiple sites, will score lower for GUI
applications than traditional applications.

Page 67
FP Online Class
http://www.Metrics Training.Com
Chapter 11

Detail GSC’s:

1. Data Communications
The data and control information used in the application are sent or received over
communication facilities. Terminals connected locally to the control unit are considered to use
communication facilities. Protocol is a set of conventions, which permit the transfer, or
exchange of information between two systems or devices. All data communication links require
some type of protocol.

Score As Descriptions to Determine Degree of Influence


0 Application is pure batch processing or a standalone PC.
1 Application is batch but has remote data entry or remote
printing.
2 Application is batch but has remote data entry and remote
printing.
3 Application includes online data collection or TP
(teleprocessing) front end to a batch process or query system.
4 Application is more than a front-end, but supports only one
type of TP communications protocol.
5 Application is more than a front-end, and supports more than
one type of TP communications protocol.

Comments:
TCP/IP (Transmission Control Protocol/Internet Protocol). TCP/IP provides a common language
for interoperation between networks that use a variety of local protocols (Ethernet, Netware,
AppleTalk, DECnet and others) are examples of TP.
An application that allows query of application via a web based solution and local access would
receive a value of 3.
An application that allows for the update of ILF’s via the Internet and local update would receive
a value of a 5.

Page 68
General System Characteristics

2. Distributed Data Processing


Distributed data or processing functions are a characteristic of the application within the
application boundary.

Score As Descriptions To Determine Degree of Influence


0 Application does not aid the transfer of data or processing
function between components of the system.
1 Application prepares data for end user processing on another
component of the system such as PC spreadsheets and PC
DBMS.
2 Data is prepared for transfer, then is transferred and
processed on another component of the system (not for end-
user processing).
3 Distributed processing and data transfer are online and in one
direction only.
4 Distributed processing and data transfer are online and in
both directions.
5 Processing functions are dynamically performed on the most
appropriate component of the system.

Comments:

Copying files from a mainframe to a local PC or copy files from an Internet or intranet would
receive a value of 2.

Reading via a client or via Internet or intranet would receive a value of 3.


Reading and updating via Internet or intranet would receive a value of 4.

Depending on available resources, the application processes either local, on server, on intranet or
Internet application would receive a value of 5.

Page 69
FP Online Class
http://www.Metrics Training.Com
Chapter 11

3. Performance
Application performance objectives, stated or approved by the user, in either response or
throughput, influence (or will influence) the design, development, installation, and support of the
application.

Score As Descriptions To Determine Degree of Influence


0 No special performance requirements were stated by the
user.
1 Performance and design requirements were stated and
reviewed but no special actions were required.
2 Response time or throughput is critical during peak hours.
No special design for CPU utilization was required.
Processing deadline is for the next business day.
3 Response time or throughput is critical during all business
hours. No special design for CPU utilization was required.
Processing deadline requirements with interfacing systems
are constraining.
4 In addition, stated user performance requirements are
stringent enough to require performance analysis tasks in the
design phase.
5 In addition, performance analysis tools were used in the
design, development, and/or implementation phases to meet
the stated user performance requirements.

Comments:
Again for a client/server or for internet/intranet application this remains the same.

Page 70
General System Characteristics

4. Heavily Used Configuration


A heavily used operational configuration, requiring special design considerations, is a
characteristic of the application. For example, the user wants to run the application on
existing or committed equipment that will be heavily used

Score As Descriptions To Determine Degree of Influence


0 No explicit or implicit operational restrictions are included.
1 Operational restrictions do exist, but are less restrictive than
a typical application. No special effort is needed to meet the
restrictions.
2 Some security or timing considerations are included.
3 Specific processor requirements for a specific piece of the
application are included.
4 Stated operation restrictions require special constraints on
the application in the central processor or a dedicated
processor.
5 In addition, there are special constraints on the application in
the distributed components of the system.

Comments
Does this application share hardware that is busy?. For example, an application that shares a
server with 5 other applications would need to be optimized because it shares resources with 4
other applications.

Page 71
FP Online Class
http://www.Metrics Training.Com
Chapter 11

5. Transaction Rate
The transaction rate is high and it influenced the design, development, installation, and support
of the application

Score As Descriptions To Determine Degree of Influence


0 No peak transaction period is anticipated.
1 Peak transaction period (e.g., monthly, quarterly, seasonally,
annually) is anticipated.
2 Weekly peak transaction period is anticipated.
3 Daily peak transaction period is anticipated.
4 High transaction rate(s) stated by the user in the application
requirements or service level agreements are high enough to
require performance analysis tasks in the design phase.
5 High transaction rate(s) stated by the user in the application
requirements or service level agreements are high enough to
require performance analysis tasks and, in addition, require
the use of performance analysis tools in the design,
development, and/or installation phases.

6. Online Data Entry


Online data entry and control functions are provided in the application.

Score As Descriptions To Determine Degree of Influence


0 All transactions are processed in batch mode.
1 1% to 7% of transactions are interactive data entry.
2 8% to 15% of transactions are interactive data entry.
3 16% to 23% of transactions are interactive data entry.
4 24% to 30% of transactions are interactive data entry.
5 More than 30% of transactions are interactive data entry.

Page 72
General System Characteristics

7. End-User Efficiency
The online functions provided emphasize a design for end-user efficiency. The design includes:
• Navigational aids (for example, function keys, jumps, dynamically generated menus)
• Menus
• Online help and documents
• Automated cursor movement
• Scrolling
• Remote printing (via online transactions)
• Preassigned function keys
• Batch jobs submitted from online transactions
• Cursor selection of screen data
• Heavy use of reverse video, highlighting, colors underlining, and other indicators
• Hard copy user documentation of online transactions
• Mouse interface
• Pop-up windows.
• As few screens as possible to accomplish a business function
• Bilingual support (supports two languages; count as four items)
• Multilingual support (supports more than two languages; count as six items)

Score As Descriptions To Determine Degree of Influence


0 None of the above.
1 One to three of the above.
2 Four to five of the above.
3 Six or more of the above, but there are no specific user
requirements related to efficiency.
4 Six or more of the above, and stated requirements for end-
user efficiency are strong enough to require design tasks for
human factors to be included (for example, minimize key
strokes, maximize defaults, use of templates).
5 Six or more of the above, and stated requirements for end-
user efficiency are strong enough to require use of special
tools and processes to demonstrate that the objectives have
been achieved.

Page 73
FP Online Class
http://www.Metrics Training.Com
Chapter 11

8. Online Update

The application provides online update for the internal logical files.

Score As Descriptions To Determine Degree of Influence


0 None.
1 Online update of one to three control files is included.
Volume of updating is low and recovery is easy.
2 Online update of four or more control files is included.
Volume of updating is low and recovery easy.
3 Online update of major internal logical files is included.
4 In addition, protection against data lost is essential and has
been specially designed and programmed in the system.
5 In addition, high volumes bring cost considerations into the
recovery process. Highly automated recovery procedures
with minimum operator intervention are included.

9. Complex Processing
Complex processing is a characteristic of the application. The following components are
present.
• Sensitive control (for example, special audit processing) and/or application specific
security processing
• Extensive logical processing
• Extensive mathematical processing
• Much exception processing resulting in incomplete transactions that must be processed
again, for example, incomplete ATM transactions caused by TP interruption, missing data
values, or failed edits
• Complex processing to handle multiple input/output possibilities, for example,
multimedia, or device independence
Score As Descriptions To Determine Degree of Influence
0 None of the above.
1 Any one of the above.
2 Any two of the above.
3 Any three of the above.
4 Any four of the above.
5 All five of the above.

Page 74
General System Characteristics

10. Reusability
The application and the code in the application have been specifically designed, developed, and
supported to be usable in other applications.

Score As Descriptions To Determine Degree of Influence


0 No reusable code.
1 Reusable code is used within the application.
2 Less than 10% of the application considered more than one
user's needs.
3 Ten percent (10%) or more of the application considered
more than one user's needs.
4 The application was specifically packaged and/or
documented to ease re-use, and the application is customized
by the user at source code level.
5 The application was specifically packaged and/or
documented to ease re-use, and the application is customized
for use by means of user parameter maintenance.

11. Installation Ease


Conversion and installation ease are characteristics of the application. A conversion and
installation plan and/or conversion tools were provided and tested during the system test phase.

Score As Descriptions To Determine Degree of Influence


0 No special considerations were stated by the user, and no
special setup is required for installation.
1 No special considerations were stated by the user but special
setup is required for installation.
2 Conversion and installation requirements were stated by the
user, and conversion and installation guides were provided
and tested. The impact of conversion on the project is not
considered to be important.
3 Conversion and installation requirements were stated by the
user, and conversion and installation guides were provided
and tested. The impact of conversion on the project is
considered to be important.
4 In addition to 2 above, automated conversion and installation
tools were provided and tested.
5 In addition to 3 above, automated conversion and installation
tools were provided and tested.

Page 75
FP Online Class
http://www.Metrics Training.Com
Chapter 11

12. Operational Ease


Operational ease is characteristic of the application. Effective start-up, back-up, and recovery
procedures were provided and tested during the system test phase. The application minimizes
the need for manual activities, such as tape mounts, paper handling, and direct on-location
manual intervention.

Score As Descriptions To Determine Degree of Influence


0 No special operational considerations other than the normal
back-up procedures were stated by the user.
1-4 One, some, or all of the following items apply to the
application. Select all that apply. Each item has a point
value of one, except as noted otherwise.
Effective start-up, back-up, and recovery processes were
provided, but operator intervention is required.
Effective start-up, back-up, and recovery processes were
provided, but no operator intervention is required (count as
two items).
The application minimizes the need for tape mounts.
The application minimizes the need for paper handling.
5 The application is designed for unattended operation.
Unattended operation means no operator intervention is
required to operate the system other than to start up or shut
down the application. Automatic error recovery is a feature
of the application.

Page 76
General System Characteristics

13. Multiple Sites


The application has been specifically designed, developed, and supported to be installed at
multiple sites for multiple organizations.

Score As Descriptions To Determine Degree of Influence


0 User requirements do not require considering the needs of
more than one user/installation site.
1 Needs of multiple sites were considered in the design, and
the application is designed to operate only under identical
hardware and software environments.
2 Needs of multiple sites were considered in the design, and
the application is designed to operate only under similar
hardware and/or software environments.
3 Needs of multiple sites were considered in the design, and
the application is designed to operate under different
hardware and/or software environments.
4 Documentation and support plan are provided and tested to
support the application at multiple sites and the application is
as described by 1 or 2.
5 Documentation and support plan are provided and tested to
support the application at multiple sites and the application is
as described by 3.

Page 77
FP Online Class
http://www.Metrics Training.Com
Chapter 11

14. Facilitate Change


The application has been specifically designed, developed, and supported to facilitate change.
The following characteristics can apply for the application:
• Flexible query and report facility is provided that can handle simple requests; for example,
and/or logic applied to only one internal logical file (count as one item).
• Flexible query and report facility is provided that can handle requests of average
complexity, for example, and/or logic applied to more than one internal logical file (count
as two items).
• Flexible query and report facility is provided that can handle complex requests, for example,
and/or logic combinations on one or more internal logical files (count as three items).
• Business control data is kept in tables that are maintained by the user with online
interactive processes, but changes take effect only on the next business day.

• Business control data is kept in tables that are maintained by the user with online
interactive processes, and the changes take effect immediately (count as two items).

Score As Descriptions To Determine Degree of Influence


0 None of the above.
1 Any one of the above.
2 Any two of the above.
3 Any three of the above.
4 Any four of the above.
5 All five of the above.

Page 78
General System Characteristics

Skill Builder:
The following questions are used to help build on the concepts discussed in this section. They
are designed to encourage thought and discussion.

1. What is the value adjustment factor if all of the general system characteristics scored
a value of 5 (strong influence)?

2. What is the value adjustment factor if each of the general system characteristics has
no influence (a score of 0)?

3. What is the origin of the .65 in the value adjustment factor calculation?

4. What is the possible (theoretical) range of the value adjustment factor?

Page 79
FP Online Class
http://www.Metrics Training.Com
Chapter 11

General System Characteristics – Notes Page

Page 80
HISTORY AND IFPUG 12
Objective of Section:
To provide a brief history of Function Points and describe IFPUG.

Brief History:
Function Point Analysis was developed first by Allan J. Albrecht in the mid 1970s. It was an
attempt to overcome difficulties associated with lines of code as a measure of software size, and
to assist in developing a mechanism to predict effort associated with software development. The
method was first published in 1979, then later in 1983. In 1984 Albrecht refined the method and
since 1986, when the International Function Point User Group (IFPUG) was set up, several
versions of the Function Point Counting Practices Manual have been published by IFPUG.

Growth and Acceptance of Function Point Analysis


The acceptance of Function Point Analysis continues to grow. This is indicated by the growth of
the International Function Point User Group (IFPUG). Since 1987 membership in IFPUG has
grown from 100 members to nearly 600 members in 1997. Additionally, in less than six years
conference attendance has grown from 125 in 1988 to over 300 by 1997. Examination of IFPUG
clearly indicates that the majority of its is members are from North America, but Function Point
analysis growth outside North America is strong. This is evident by the growing number of
function point organizations worldwide. There are numerous affiliate organizations of IFPUG.
There are affiliate organizations in Italy, France, Germany, Austria, India, The Netherlands,
Australia, Japan, and several other countries.

The exercises at the end of the section help the student demonstrate that they have gained
the basic knowledge required.

More Information about IFPUG:


More information about joining IFPUG, conferences, committees can be obtained by contacting
the IFPUG.

Website: www.IFPUG.Org
Email: [email protected]

Page 81
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 12

Page 82
CALCULATING
ADJUSTED 13
FUNCTION POINT
Objective of Section:
Describe the calculations necessary for determining the final Function Point Counts. The
exercises at the end of the section help the student demonstrate that they have gained the
basic knowledge required.

Understanding the Equations:


There are three sets of equations new projects (Development), existing projects (Baseline or
Application) and for enhancement projects. There are two equations for the enhancement
projects. The first equation accounts for size of the enhancement project while the second
equation adjusts the size of the Application.

Forget About the Equations for a Minute:


The equations can be very cumbersome and there are many variables. Forget about the
exact equations for a moment.

When you develop a new application you need to know the entire size of the project. This means
you would want to include the number of function points of the application plus any other
function points that need to be developed. For example, you may need to develop a mini
(temporary) application to assist with conversion efforts. So in the end, you would have the
number of function points for the application to be installed plus any other functions you needed
to develop.

When you have an enhancement project and you are going to modify an existing production
application, you are concerned about two things. The first thing is the size of the actual
enhancement project. How many function points is this project? The size of this project
includes any added functionality, any changed functionality, and any deleted functionality. Also
in an enhancement project you may have other functionality needed that is not directly part of
the enhancement project.

Normally an enhancement project is the size of any (added functionality plus any changed
functionality) x the value adjustment factor. The value adjustment factor normally does not
change; there is normally no conversion effort, so on and so forth.

Page 83
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 13

The second concern is how did the enhancement project change the actual production
application. Is the existing production application larger than before? And if it is larger by
how much? This would be any added functionality. Also you would want to know of any
functionality that exist before and is larger after the enhancement.

In practice the size of the existing production application will be impacted by added
functionality more. Many organizations learn that existing application size does not change
much, but they are changing existing functionality.

Definition:
The final Function Point Count is obtained by multiplying the VAF times the Unadjusted
Function Point (UAF). The standard function point equation is:
FP = UAF * VAF
Where:
UAF = Unadjusted Function Points
VAF = Value Adjustment Factor

Unadjusted Function Point:

Type of Complexity of Components


Component
Low Average High Total
External Inputs x3= x4= x6=
External Outputs x4= x5= x7=
External Inquiries x3= x4= x6=
Internal x7= x 10 = x 15 =
Logical Files
External x5= x7= x 10 =
Interface Files

Total Number of
Unadjusted Function
Points

Development Project Function Point Calculation:


Use the following formula to calculate the development project function point count. Notice
there is an additional term CFP which is conversion function points. Often when a new
application is replacing an old application, the data must be converted. Sometimes a “mini
application” needs to be developed to assist in the conversion. This mini application does not
exist after the new application is up and running. This is why development function point
calculation is different the application function point count (see next below).

Page 84
Calculating Adjusted Function Points

DFP = (UFP + CFP) * VAF


Where:
DFP is the development project function point count
UFP is the unadjusted function point count
CFP is the function points added by the conversion unadjusted function point count
VAF is the value adjustment factor

Application Function Point Count (Baseline):


Use the following formula to establish the initial function point count for an existing
application. The user is receiving functionality. There are no changes to the existing
functionality or deletions of unneeded functionality. The application function point count does
not include conversion requirements.
AFP = ADD * VAF
Additionally, this equation is used to establish the function point count for an application at any
point in time.
Where:
AFP is the initial application function point count.
ADD is the unadjusted function point count of those functions that were installed by the
development project. Since many enhancement projects (that were not counted) have been
installed in the application, the ADD in this case represents all functionality that exists within
the application boundary at a particular point in time.
VAF is the value adjustment factor of the application.

Enhancement Project Function Point Calculation:


Use the following formula to calculating the size for enhancement projects.
EFP = [(ADD + CHGA + CFP) * VAFA] + (DEL* VAFB)
Where:
EFP is the enhancement project function point count.
ADD is the unadjusted function point count of those functions that were added by the
enhancement project.
CHGA is the unadjusted function point count of those functions that were modified by the
enhancement project. This number reflects the functions after the modifications.
CFP is the function point count added by the conversion.
VAFA is the value adjustment factor of the application after the enhancement project.

Page 85
FP Online Class
http://www.Metrics Training.Com
Chapter 13

DEL is the unadjusted function point count of those functions that were deleted by the
enhancement project. It is important to consider the absolute value of the DEL not the negative
value.
VAFB is the value adjustment factor of the application before the enhancement project.

In practice:
EFP = [(ADD + CHGA + CFP) * VAFA] + (DEL* VAFB)
In practice VAFA = VAFB = VAF, so the equation becomes
EFP = (ADD + CHGA + CFP+ DEL)* VAF)
Also normally CFP = 0, so the equation simplifies further
EFP = ((ADD + CHGA + DEL)* VAF)

Simplification of the equation:


To examine the equation in detail let’s assume that VAFA = VAFB = 1 and CFP = 0.
Hence EFP = (ADD + CHGA + DEL).
That is, the size of an enhancement project is a summation of all added functionality, changed
functionality and any deleted functionality.

In theory and in practice, each piece of the formula must be adjusted by the appropriate Value
Adjustment factor. Assume now that VAFA ;t: VAFB. The added and changed after is adjusted
by the VAFA, but the deleted is adjusted by the VAFB. Additionally, if CFP ;t: 0 then it should
be adjusted by VAFA.

Application After Enhancement Project:

AFP = [(UFPB + ADD + CHGA) - (CHGB + DEL)] * VAFA

Where:
UFPB = Unadjusted Function Point Count Before Enhancement.
AFP = Application Function Point Count
DEL = is the number of function points deleted (the negative value).
All other acronyms are the same as before.

Of course, an enhancement calculation can add and/or Delete functionality from the UFPB.
Added functionality can be due to new components or added functionality can be due to
increase in size of existing components. For example, an existing external input could go from
a low to an average – valued at 3 to 4.

In Practice
Normally VAFA = VAFB = VAF, so the equation can be re-arranged

Page 86
Calculating Adjusted Function Points

AFP = (UFPB+ADD + CHGA-CHGB – DEL)* VAF

Let’s assume that CHGA = CHGB and DEL = 0.


Then AFP= (UFPB + ADD) * VAFA

Page 87
FP Online Class
http://www.Metrics Training.Com
Chapter 13

Skill Builder:
The following questions are used to help build on the concepts discussed in this section. They
are designed to encourage thought and discussion.

1. An application has a base unadjusted function point count of 500, a value adjustment
factor of 1.10. What is the adjusted function point count?

2. An application has 100 unadjusted function points and a value adjustment factor of 1.02.
An enhancement project adds 25 function points, deletes 20 function points, and changes
15 function points (in this case assume CHGB = CHGA). The new value adjustment
factor is 1.05.

3. What is the new (after the enhancement) adjusted function point count?

4. What is the enhancement function point count?

An application has the following:


10 Low External Inputs, 12 High External Outputs, 20 Low Internal Logical Files, 15 High
External Interface Files, 12 Average External Inquiries, and a value adjustment factor of 1.10.

5. What is the unadjusted function point count?

6. What is the adjusted function point count?

Page 88
CASE STUDIES

Objective of Section:
The Case Studies require the student to put together several pieces of knowledge together to
solve the case study. The case studies insure that the student is grasping and understanding not
only individual components but also the components as they relate to each other.

While the exercises at the end of each section are intended to be guided practice, the case
studies are intended to be independent practice. The student should be able to work solve the
case study working alone or in a small group without instructor guidance.

Page 89
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 14

Crossword Puzzle
1. 2. 3. 4.
5. 6.

7. 8. 9.
10.
11. 12.
13
.
14. 15.
16.
17.
18.
19.
20. 21.

22. 23.
24.
25. 26. 27.
28. 29. 30.

31. 32.

Across Down
1. Updates an ILF 1. A change to a baseline application
5. Mountains in Northern Italy 2. From inside to outside of the
boundary, contains no derived data
7. The summation of the GSC’s divided by 100 + .65 3. Logical Groups of Data inside boundary
8. An EO contains this 4. Not to give but to…
11. Good Bye (Italian) 6. Mediterranean ____
12. Ability to modify data through an elementary process 9. Collection of automated procedures and data
supporting a business objective
13. Contains Logical Information 10. Flying alone (a single person)
14. Dracula’s title 12. Brooks thinks this is mythical
15. Not physical but 19. A characteristic of an entity
16. A unique user recognizable field 23. Another name for a software bug
17. Establishes what functions are included in the function 25. The set of questions that evaluate the
point count overall complexity of an application
18. Read or maintained by transaction 27. The eternal city
20. What EI’s, EO’s and EQ’s are called 29. Not hello, but good ___
21. Another measure of software size (Abbreviation) 30. Sí (English meaning)
22. The specification, construction, testing, and delivery of a
new information systems
24. International Function Point User Group (Abbreviation)
26. Function points should be counted from the “ “ view
28. Another word for Reused (No. 10 of 14)
31. Function points are not hard they are ..
32. The first function point count

Page 90
Case Studies and Exercises

Collection Letter
<today_date>

Dear <title> <last_name>,

Our records indicate that you are past due <num_of_days>. If you do not pay within <pay_day>,
then we will kindly repo your <color><style_ automobile>.

<greeting>.

Warm Regards,
<repo_man>

Example letter
December 18, 1999

Dear Mr. Harmon,

Our records indicate that you are past due 255 days. If you do not pay within 5 days from the
date of this letter, then we will kindly repo your red Ford 150 Truck.

Please have a Merry Christmas and prosperous New

Year. Warm Regards


Rocky Balboa

Questions and other information


• The number of past due days (num of days) is date of letter minus the due date. Due
date derived from the Payment File
• Pay day is calculated.
• Repo Man is read from the Employee File
• Title and Last Name are read from the Customer File
• The greeting is based upon the date of the letter and an appropriate message from the
Greeting File.
What are the data elements?
Is this letter an EO or an EQ, why?
How many FTR’s?

Page 91
FP Online Class
http://www.Metrics Training.Com
Chapter 14

Control Inputs

1. How many data elements are on the “Checking Preferences”


control Screen?

2. How many data elements are on the “General Preferences”


control Screen?

3. The how many control inputs are represented by the menu items to
the right?

4. If the “default” reads values from a control file, then how


is “default” treated?

Page 92
Case Studies and Exercises

Graphical Information

1. What are the external outputs?

2. What are the data elements for each EO?

3. How are the legends treated?

Page 93
FP Online Class
http://www.Metrics Training.Com
Chapter 14

Graphs Part II

There are two data ILF’s that contain information needed to produce the graph. There is an
additional control file which alters the way the graph looks.

1. Is there a control EI and control ILF for “graphs”?

2. How many total FTR’s are referenced for


the graphs?

3. Does this graph represent another EO?

Page 94
Case Studies and Exercises

The Weather Application


Release 1.0
The following application was designed to capture temperature and rainfall by city and state.
There is only one input screen, one file and one report. Each field on the following input
screen can be modified (add, changed or deleted). The add and change functions are different.
All previous entries viewed by using the scroll bar. Assume a VAF of 1.0.

Weather Storage File


City State Temperature Rain Fall Date

Average Temperature and Rain Fall by City and State


Temperature Rain Fall Date
City 1 State 1
Detail Readings
for City 1
Averages
City 2 State 2
Detail Readings
for City2
Averages

Page 95
FP Online Class
http://www.Metrics Training.Com
Chapter 14

Based on the weather application fill in the following table. The exercise is designed to
identify the exact number of data elements.

Component Number of Data What are the data elements?


(EI,EXTERNAL Elements?
OUTPUT, EQ,
ILF
and EIF)

What is the total unadjusted number of function points?

Page 96
Adding A New Customer

The following two screens are used to add a new customer to an application. The customer is
not considered added until both Address information and Additional Information is
completed.

The OK and Next buttons both save information to the file.

Figure 6

Page 97
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 14

There are four drop down list boxes on the Additional Info tab (Type, Terms, Rep and Tax Item).
The first three (Type, Terms and Rep) are read from files that are maintained by the application.
Tax item is hard coded. Please ignore the “Define Fields” button.

Figure 7

The drop down lists Type, Rep and Terms are displayed at the end of this case study.

For this part of the application please answer the following questions.

1. How many external inputs are there?

2. How many total data elements are there on the external input?

3. What are the data elements?

4. In terms of function points what are Type, Terms and Rep (see next page)?

5. In terms of function points how are Type and Terms treated the second time they appear?

6. The Rep and Terms drop down box are used again when invoices are created.

Page 98
Case Studies and Exercises

Page 99
FP Online Class
http://www.Metrics Training.Co m
Chapter 14

Enhanced Weather Application


Release 2.0

Release 2.0 is an enhancement to “The Weather Application” Release 1.0. The user wants the
ability to save temperature as either Celsius or Fahrenheit. To accomplish this a radio button is
added to the input screen, which allows the user to select either Celsius or Fahrenheit. An
additional field is added to the file, and an additional field is added to the reports. Assume that
the value adjustment factor increases to 1.14.

How many “enhancement” function points does this represent?

What is the baseline function point of release 2.0?

Page 100
BikeWare
Release 1.0
BikeWare is a software product designed for competitive bike riders. BikeWare captures and
stores a variety of information. BikeWare is for a single rider only. The rider wants to be
able to change, add or delete information about a ride or rider. The following information is
either entered by the rider or calculated. All bold items are stored. The following information
is grouped logically into two major groups (ride and rider):

Ride Information
Average Speed
Bike Chill
Factor
T = Temperature during the
Ride W = Average Speed
X = .303439 * sqr (W) - .0202886 * W
Bikechill = Int (91.9 - (91.4 - T) * (X + .474266))
Cadence
Calories Burned = Exponential ((.092037 * Average Speed) - 4.26)) * (Duration of Ride) *Weight of Rider)
Date of the Ride
Distance of the
Ride Duration of
Ride
Temperature during the Ride
Rider Information
Age (age of rider in years)
Weight (weight of rider)
Sex (sex either male or female)

Graphs
Four separate graphs (see below) can be created by days, by weeks or by months for each
item below. A different set of calculations will be used depending of the graph is days, weeks
or a months graph. Each graph is available on line or as a hard copy and processing logic is
different.
Distance of Ride
Average Speed
Duration of Ride
Calories Burned

Page 101
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 14

For BikeWare determine the following information:

Identify the external inputs, how many data elements and how many files will be referenced?

How many files type referenced are there for the add, the change and the delete? Is it always the
same?

How many internal logical files are there and what are the data elements?

How many external outputs? Describe the external outputs also?

How many data elements for each external output?

Page 102
Case Studies and Exercises

Pizza Screen Design

Option 1
Toppings are read from
another application
(kitchen application). If
the topping is not
available it is not
displayed.

The cost of the Pizza is


calculated
automatically.

Figure 8

When the OK button is clicked the Toppings, Pizza Crust Type and Cost of Pizza are saved.

Option 2
The Items in the drop down box are hard code – not read from a file.
Available Toppings are read from another application (kitchen application).
When a Topping is selected from Available Toppings it is copied to Selected Toppings

Page 103
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 14

Figure 9

The Cost of the Pizza is automatically calculated.


When the OK button is clicked the Selected Toppings, Pizza Crust Type and Cost of Pizza are
the saved.

What are the differences if any between Option 1 and Option 2? Please fill in the table below.

Option 1 Option 2
Component Data Elements Component Data Elements

Note: Components are external input, external inquiries, internal logical files, and external
interface files

Page 104
Case Studies and Exercises

www.PIZZACLUB.COM

Part 1

WWW.PizzaClub allows customers to order pizza via the Internet. The following is only
one screen of many screens.

1. Once the customer has accessed www.PizzaClub.Com they fill out this screen.
2. When the customer clicks on the form the information is saved to a file.
3. If any of the fields are not filled out (populated) the customer receives and error
message telling them “All fields must be populated”.

4. What are the data elements?


5. How many unadjusted function points does this screen and one file represent.

Page 105
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 14

Figure 10

Page 106
Case Studies and Exercises

Part 2

Www.PizzaClub.com is going to be enhanced. Instead of allowing the customer to type city


and state, they will input the zip code number. The application will search the zip code file and
then automatically populate City and State. The customer can override the populated fields. The
zip code file is maintained by another application.

How many unadjusted function points does this enhancement represent?

What are the new components?

What data elements are impacted?

Page 107
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 14

Control Information

What are the data elements in the following control screen (alignment)?

Figure 11 -
Control Screen

Page 108
Case Studies and Exercises

How many data elements are there in the following “Data Entry Preferences” control screen?

If this control screen updates one internal logical file, then how many unadjusted function points
does this represent?

Figure 12

Page 109
www.SoftwareMetrics.Com
Longstreet Consulting Inc
Chapter 14

Word Problem 1

Let’s assume your productivity rate is 10 hours per function point (it takes 10 hours of work to
deliver a function point). Additionally, assume your cost per hour is $60. Therefore, the cost
to deliver 1 function point is $600.

1. How much would it cost to develop an application with 5,000 function points?

2. Let’s assume you anticipate a Maintenance Rate is $100/Function Point. How much needs to
be budgeted to cover Maintenance Expenses for the first year?

3. Assume that the application will be operational for 6 years (application life expectancy is 6
years). Maintenance Costs will be fixed at $100/Function Point Per Year. What is the total
expected cost of the application-- including all development and maintenance costs?

4. Should maintenance costs be considered when developing an application? How do you


determine expected maintenance costs?

Page 110
Case Studies and Exercises

Word Problem 2

Assume the same cost per function point as before ($600).

Suppose a vendor, a tool vendor, and claims that his tool will increase productivity by 50 percent
-- cut your cost per function point in half. Assume the following to be true:

You are planning on implementing 1,000 function points over the next year.
You want the tool to pay for itself within 1 year.

1. What is the maximum amount you would be willing to pay for this tool -- You want to break
even.

Page 111
www.SoftwareMetrics.Com
Longstreet Consulting Inc

You might also like