Function Points - Albrecht
Function Points - Albrecht
Table of contents
Introduction
Definition
FP are very popular
Components
External Inputs (EI)
External Outputs (EO)
External Inquiries (EQ)
External Interface Files (EIF)
Internal Logical Files (ILF)
FP - How do they work?
Step 1: Boundary Determination
Step 2: Functional Classification
1. External Inputs
2. External Outputs
3. Logical Internal Files
4. External Files
5. Queries
Step 3: Unadjusted Total
Step 4: Adjustements
Step 5: Final Calculation
FP - Advantages
FP - Disadvantages
Conclusions
Other Interesting Links to the Topic
Introducción
En los proyectos software como en casi todos los otros proyectos de desarrollo es muy importante conocer tan
pronto como sea posible la cantidad de lo que vas a hacer. La importancia de la estimación de tamaño viene del
hecho de que todas las demás estimaciones (recursos, tiempo, costes) se deducen a partir de las estimaciones de
tamaño, es decir, las estimaciones en tamaño malas nos pueden llevar a grandes problemas después. Los métodos
más importantes de estimación del tamaño de un proyecto software son: el método de líneas de código Line-of_code
(LOC) y el método de Puntos de Función (FP). Se describe a continuación brevemente el Método de los Puntos de
Función con sus ventajas y desventajas principales. Este tema es muy extenso para ser tratado solo en unas páginas,
por lo que se proponen varios enlaces Internet para quien quiera profundizar.
En 1979, Allan Albrecht desarrolló una metodología que estima la cantidad de "funciones" que va a implementar el
software en términos de los datos que utiliza (absorbe) y que genera (produce)
Definición
Los Puntos de Función es una medida del tamaño de las aplicaciones software y de los proyectos que las construyen.
El tamaño se mide desde un punto de vista funcional o de usuario. Es independiente del lenguaje de utilizado, la
tecnología o la capacidad del equipo del proyecto utilizado para desarrollar la aplicación.
Tiene un soporte teórico muy fuerte basado en las fórmulas científicas de software de Halstead.
Los Puntos de Función son muy populares
En la actualidad los puntos de función han conseguido una gran popularidad y utilización. En la International
Conference on Applications of Software Measurement de 1993, se anunció que los Puntos de Función se habían
convertido en la métrica más utilizada a nivel mundial. Su éxito proviene del énfasis colocado en el punto de vista
externo. A causa de que la estimación de coste y esfuerzo basado en Puntos de Función no depende ni del lenguaje
ni de la tecnología, es posible realizar métricas en las primeras etapas del desarrollo.
En 1986, se constituyó la organización sin ánimo de lucro International Function Point Users Groups (IFPUG),
creada para controlar la estandarización y difusión de la métrica. La organización tiene su para realizar medidas: el
Counting Practices Manual. En 1994, IFPUG hizo la Release 4.0 de su Counting Practices Manual.
Componentes
Albrecht considera que los aspectos externos visibles del software que pueden ser enumerados con precisión constan
de cinco elementos: las entradas a la aplicación, las salidas de esta, las interrogaciones o consultas, los archivos de
datos que serían actualizados por la aplicación y las interfaces a otras aplicaciones.
Entradas. (External Inputs (EI)) son pantallas o formularios a través de los cuales el usuario humano de la
aplicación u otros programas añaden nuevos datos o actualizan los datos existentes. Algunos ejemplos podrían ser
los siguientes. pantallas de entrada, entradas interactivas, entradas hardware, entradas batch.
Salidas- (External Outputs (EO)) son pantallas o informes que la aplicación produce para utilización por el
usuario humano o por otras aplicaciones. Ejemplos: informes en pantalla, informes impresos, salidas en multimedia,
salidas para el software, salidas para el hardware.
Consulta. (External Inquiries (EQ)) son pantallas que permiten interrogar una aplicación y pedir asistencia o
información tales como: petición/respuesta, menús, ayudas sensibles al contexto, consultas empotradass.
Grupo de datos externo (GDE). (External Interface Files (EIF)) son ficheros compartidos con otras aplicaciones
e incluye ficheros en cinta entrantes o salientes y listas de parámetros. Algunos ejemplos. Reference Data, Fixed
Messages, Shared Data Files .
Grupo de datos Interno (GDI). (Internal Logical Files (ILF) ) son colecciones lógicas de registros que la
aplicación modifica o actualiza. Ejemplos: Application Data Groups, Data Tables, Data Base Files.
FP - ¿Cómo funcionan?
Cada una de estas categorías de entrads, salidas, .... mencionadas se cuentan y se les da un peso específico mediante
números que reflejan el valor relativo de la función para el usuario/cliente. La suma ponderada de las entradas ,
salidas, ... se la llama "puntos de función"
El release 4.0 del Counting Practices Manual para Puntos de Función del IFPUGtiene aproximadamente 200
páginas, y es necesario recibir formación para poder utilizarlo..
As it is described here, function point calculation originated at IBM, where it is used extensively.
FP - Advantages
The benefits of function points derive from their technology independence, standardization and representing the
user's view. These benefits include:
Measures objectively, consistently and can be audited.
Studies by Chris Kemerer of MIT show that function points' consistency is +/- 12% between counters.
Normalizes data for ready comparisons between projects, applications and organizations.
To put them in perspective, other measures frequently require the size in function points. For example, 100 delivered
defects on a 100 function point system is not good news. The same 100 delivered defects on a 10,000 function point
system are much easier to take.
The same for productivity measurement. Many executives have come to the conclusion that regardless of their core
business, they are also in the software business. Calculating several variations on the function points produced per
month theme tells them how well they are doing in this regard.
Provides one size measurement for all types of applications and businesses.
Function points are applied the same way in a bank's information system using COBOL as a military satellite in
Ada.
Size is available early in the project life cycle and through out the application's life.
When can you count function points? Like voting, you should count early and often! The sooner you can quantify
what a project is delivering, the sooner it is under control. Under IFPUG 4.0, there are rules and guidelines that
make it possible to count function points once the requirements have been finalized.
Measure is easily understood, applied, used and obtained by both the software engineers and the customer.
Companies must analyze their portfolios of applications and projects. The size in function points is an attribute that
needs to be tracked for each application and project. Along with other data, this will allow decisions regarding the
retaining, retiring and redesign of applications to be made.
Represents what is delivered to the customer and are easily interpreted in business terms
Very often, users and project managers horse-trade change requests, features, costs and schedules throughout this
time. Function points can be used to quantify these negotiations. However, they must be used properly. It is not wise
to exchange a 100 function point enhancement for a 100 function point reduction in functionality. The work already
expended on the 100 function points to be dropped must also be considered. Again, using enhancement function
points can make this process easier on all participants.
Provides a basis of communication with the customer
The customer doesn't need to know C++ or Java, or what technique the software engineer use to do the project. FP
offers a common language for both: the client and the contractor.
Other advantages
Back to Table of Contents
FP - Disadvantages
The lack of tools, inability to perform automated FP, and "unsuitability for project tracking" are often cited as the
major disadvantages of FP methodology. Some of its disadvantages are:
The definitions are sometimes confusing
It is often difficult to identify the components of an application. For example, what is a logical file?
Untrained/inexperienced people have trouble developing consistent FP counts.
For a large organization, a small group involved with function point counting and other estimating activity is ideal.
Some judgments are rather subjective than objective
Albrecht had assigned weights to function point components based on "debate and trial." Function points are used to
determine or express the complexity of an application, as well as for metrics of development productivity. Although
the calculation is precise, many of the judgments required are more subjective. An organization may consider
defining quantitative boundaries for the sake of internal consistency.
Need special application when counting embedded systems
When small systems are combined into larger applications, Albrecht's approach makes the total function point count
less than the sum of the components.
Not easily automated
Due to the number of factors that needed to be considered it is very difficult to make an application which can count
all these factors for calculating the corresponding number of function points.
Some factors (aspects) cannot be accounted
Albrecht did not provide a means of accounting for internal complexity. This is the same problem regarding
algorithms that the feature points technique was developed to address.
There are also other methods based on Function Points algorithm which try to improve some of this weaknesses or
to customize the method for other kinds of applications. The presentation of other methods is beyond the scope of
this presentation but if you are interested you can find something about them following the next links:
What are Feature Points?
What are Mk II function points?
What are 3D function points?
What are Engineering Function Points?
Conclusions
One question arises after this presentation. How accurate are this methods? The answer is very difficult to formulate
due to the large number of factors (more or less objective) which can interfere. One thing is sure: PEOPLE MAKE
DECISIONS AND NOT THESE METHODS. It means that the result of one of these methods should be only an
factor and in making a decision other factors can be consider such as: experience, intuition, specialists' advise, etc.
One example in this sense is the Wide Band Delphi Technique, which allows many specialist opinions to converge
in an acceptable estimates range.
However, if Function Points method is applied correctly, it can be of great help in making a decision regarding the
software size estimation.
References
Albrecht, A. J. (1983). Software Function, Source Lines of Code, and Development Effort Prediction: A Software
Science Validation, IEEE Transactions on Software Engineering, SE-9(6), pp. 639 - 647 Bernstein, L. and
Lubashevsky A. Living with Function Points. A. T. & T. Bolling, H. How to Calculate Function Points. Questicon.
Function Points Analysis and Its Uses. Predicate Logic, Inc. How are Function Points Useful.Longstreet Consulting,
Inc. Humphrey, W.(1989). Managing the Software Process. Addison - Wesley Publishing. Humphrey, W.(1995). A
Discipline for Software Engineering. Addison - Wesley Publishing. International Function Point Users Group Jones,
C. What are Funtion Points ? ,Software Productivity Research, Inc. Kellen, V. Estimating and Tracking Software
Projects. , Kallista, Inc. Kemerer, C. F. (1993). Reliability of Function Points Measurement, Communications of
the ACM, 36(2), pp. 85 - 97. < Vienneau, R. Function Points, DACS/Kaman Sciences Corporation.
Go to: Software Size Estimation Software Inspections Software Cost Estimation Defining the Software Process
Software Testing
index.htmlSoftware Configuration Management Software Process Data Gathering and Analysis Managing
Software Quality Defect Prevention
PUNTOS DE FUNCION, EJEMPLO
Introducción
En los proyectos software como en casi todos los otros proyectos de desarrollo es muy importante conocer tan
pronto como sea posible la cantidad de lo que vas a hacer. La importancia de la estimación de tamaño viene del
hecho de que todas las demás estimaciones (recursos, tiempo, costes) se deducen a partir de las estimaciones de
tamaño, es decir, las estimaciones en tamaño malas nos pueden llevar a grandes problemas después. Los métodos
más importantes de estimación del tamaño de un proyecto software son: el método de líneas de código Line-of_code
(LOC) y el método de Puntos de Función (FP). Se describe a continuación brevemente el Método de los Puntos de
Función con sus ventajas y desventajas principales. Este tema es muy extenso para ser tratado solo en unas páginas,
por lo que se proponen varios enlaces Internet para quien quiera profundizar.
En 1979, Allan Albrecht desarrolló una metodología que estima la cantidad de "funciones" que va a implementar el
software en términos de los datos que utiliza (absorbe) y que genera (produce)
Definición
Los Puntos de Función es una medida del tamaño de las aplicaciones software y de los proyectos que las construyen.
El tamaño se mide desde un punto de vista funcional o de usuario. Es independiente del lenguaje de utilizado, la
tecnología o la capacidad del equipo del proyecto utilizado para desarrollar la aplicación.
Tiene un soporte teórico muy fuerte basado en las fórmulas científicas de software de Halstead.
En la actualidad los puntos de función han conseguido una gran popularidad y utilización. En la International
Conference on Applications of Software Measurement de 1993, se anunció que los Puntos de Función se habían
convertido en la métrica más utilizada a nivel mundial. Su éxito proviene del énfasis colocado en el punto de vista
externo. A causa de que la estimación de coste y esfuerzo basado en Puntos de Función no depende ni del lenguaje
ni de la tecnología, es posible realizar métricas en las primeras etapas del desarrollo.
En 1986, se constituyó la organización sin ánimo de lucro International Function Point Users Groups (IFPUG),
creada para controlar la estandarización y difusión de la métrica. La organización tiene su para realizar medidas: el
Counting Practices Manual. En 1994, IFPUG hizo la Release 4.0 de su Counting Practices Manual.
Componentes
Albrecht considera que los aspectos externos visibles del software que pueden ser enumerados con precisión constan
de cinco elementos: las entradas a la aplicación, las salidas de esta, las interrogaciones o consultas, los archivos de
datos que serían actualizados por la aplicación y las interfaces a otras aplicaciones.
Entradas. (External Inputs (EI)) son pantallas o formularios a través de los cuales el usuario humano de la
aplicación u otros programas añaden nuevos datos o actualizan los datos existentes. Algunos ejemplos podrían ser
los siguientes. pantallas de entrada, entradas interactivas, entradas hardware, entradas batch.
Salidas- (External Outputs (EO)) son pantallas o informes que la aplicación produce para utilización por el
usuario humano o por otras aplicaciones. Ejemplos: informes en pantalla, informes impresos, salidas en multimedia,
salidas para el software, salidas para el hardware.
Consultas. (External Inquiries (EQ)) son pantallas que permiten interrogar una aplicación y pedir asistencia o
información tales como: petición/respuesta, menús, ayudas sensibles al contexto, consultas empotradass.
Grupo de datos externo (GDE). (External Interface Files (EIF)) son ficheros compartidos con otras aplicaciones
e incluye ficheros en cinta entrantes o salientes y listas de parámetros. Algunos ejemplos. Reference Data, Fixed
Messages, Shared Data Files .
Grupo de datos Interno (GDI). (Internal Logical Files (ILF) ) son colecciones lógicas de registros que la
aplicación modifica o actualiza. Ejemplos: Application Data Groups, Data Tables, Data Base Files.
FP - ¿Cómo funcionan?
Cada una de estas categorías de entrads, salidas, .... mencionadas se cuentan y se les da un peso específico mediante
números que reflejan el valor relativo de la función para el usuario/cliente. La suma ponderada de las entradas ,
salidas, ... se la llama "puntos de función"
El release 4.0 del Counting Practices Manual para Puntos de Función del IFPUGtiene aproximadamente 200
páginas, y es necesario recibir formación para poder utilizarlo..
Esquema resumido de los pasos
Tenemos un proyecto ya bien determinado (es decir las fronteras bien delimitadas). Una empresa subcontratada por
nuestro cliente ha determinado que el proyecto tiene los siguientes componentes:
Salidas 5 4 1
Consulta 10 3 0
A) Utilizando la tabla de pesos por complejidad siguiente, calcular el numero de puntos de función no ajustados
NPFNA
Salidas 4 5 7
Consulta 3 4 6
Factor Influence
Data communication 2
Distributed functions 0
Performance objectives 3
Heavily used configuration 3
Transaction rate 4
On line data entry 4
End-user efficiency 3
On line update 2
Complex processing 3
Reusability 2
Installation ease 3
Operational ease 4
Multiple sites 5
Facilitate change 3