2

What does function Point Analysis Mean? is it that its used for cost estimation of a software? or are there any proper definition that would define function Point Analysis? Can you please give me a short description on it.

2 Answers2

3

While I agree with Leo's answer, I'll try a more practical description:

What it is

Function Point Analysis (FPA) is one of currently five standards for Functional Sizing (see ISO/IEC 14143) as approved by ISO. FPA is actually the widely used short term for the ISO/IEC 20926 standard titled "IFPUG Functional Size Measurement".

FPA is a means to rate (the term 'measure' is actually misleading) the amount of functional requirements to software. To achieve this rating, a technique is used that was known as 'functional decomposition' in earlier times. This concept is in fact very close to describing requirements with 'use cases', even though the detailed rules and notations are quite different.

In short, the functional requirements are decomposed into 'elementary functions', which then are rated each with a point value. The total of points for all elementary functions is used as an indication of the 'size' or amount of requirements. This is called the 'functional size' expressed in the unit of 'function points' (fp).

The natural representation of a functional decomposition is the functional tree.

The FPA standard also has a set of rules for rating changes to existing applications, thus it can be used to rate the functional requirements for the adaption of extension of existing systems ('enhancements' or 'releases').

What it is not

FPA is not an effort estimation technique by itself. Obviously, the relation between the size of functional requirements and the implementation effort can be and often is rather loose. Function points can be used as (one) input to more complex estimation models (such as COCOMO), which have to take into account all other effort drivers.

FPA is not a 'software metric' - functional size is always related to the user requirements fulfilled by software. While you can count and measure lines of code or code complexity, functional size is the result of an analytical process.

When to use it

FPA can be helpful to estimate the effort for a software project in an early stage, when the requirements are known, but the details of implementation have not yet been specified or evaluated. The functional requirements are reflected in the functional size, the non-functional requs need to be input in an estimation model. You need to have/use a good and proven (and trusted) model, otherwise the functional size is useless for this purpose.

FPA can also help to rate the 'value' of an application in the sense of 'recovery costs'.

Eventually, in the context of IT client/vendor relationships, FPA can be used as a basis for pricing. Clients are invoiced based on an agreed 'price per fp' instead of an hourly rate.

When not to use it

By definition, FPA requires a basic understanding of the functional requirements. Thus, if you do not have or know the functional requirements, it will be difficult if not impossible to use FPA.

FPA is also not suited to rate the performance of individuals, as it is a rather holistic rating for an application and cannot to be used to size only parts of it.

Benny
  • 66
  • 6
  • It would have been better, had to provided examples. Also your text seems confusing. You said in beginning `FPA is not an effort estimation technique` while later you said `FPA can be helpful to estimate the effort for a software project`. At least it sounds confusing to me. I believe. something can be used for effort estimation or can't be used at all. Would you like to clarify ? – SimpleGuy Jan 06 '18 at 09:05
  • Nomen est omen ;-) If it helps to change my statement to 'FPA is not an effort estimation technique **by itself**' I'm happy to do so. The paragraph 'When to use it' tells you, that, to derive a effort estimate from FPA, you need a reasonable (effort estimation) model. – Benny Jan 09 '18 at 16:51
  • :-P Yes the comment is helping me and I guess it would help other too ! – SimpleGuy Jan 10 '18 at 16:36
1

the authoritative answer, from IFPUG

http://www.ifpug.org/about-ifpug/about-function-point-analysis/

Function Point Analysis (FPA) is a sizing measure of clear business significance. First made public by Allan Albrecht of IBM in 1979, the FPA technique quantifies the functions contained within software in terms that are meaningful to the software users. The measure relates directly to the business requirements that the software is intended to address. It can therefore be readily applied across a wide range of development environments and throughout the life of a development project, from early requirements definition to full operational use. Other business measures, such as the productivity of the development process and the cost per unit to support the software, can also be readily derived.The function point measure itself is derived in a number of stages. Using a standardized set of basic criteria, each of the business functions is a numeric index according to its type and complexity. These indices are totaled to give an initial measure of size which is then normalized by incorporating a number of factors relating to the software as a whole. The end result is a single number called the Function Point index which measures the size and complexity of the software product.

In summary, the function point technique provides an objective, comparative measure that assists in the evaluation, planning, management and control of software production.

ps. the IFPUG definition is what is taken as certain in the Court here in Brazil, when someone has any kind of dispute about function points (mostly because Government contracts are usually defined in FPs)

Leo
  • 751
  • 4
  • 29