- Duration (timeline)
- Change (RFC)
- People (project team)
- Quality (defects)
- Critical resources (limitations)
- Size (scale of the project)
Advantages and disadvantages
Why to use function points for application or project size calculation. When it can help you.
Function points is not a new concept, it was developed by Allan J. Albrecht in the mid 1970s. The method description was first published in 1979, and then later in 1983. In 1986 the International Function Point User Group (IFPUG) was set up. Since 1987 membership in IFPUG has grown from 100 members to 600 members in 1997. 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. There are also numerous affiliate organizations of IFPUG. There are affiliate organizations in Italy, France, Germany, Austria, India, The Netherlands, Australia, Japan, and several other countries.
Functional and non-functional requirements
In order to operate with function points we also need to know what is the difference between functional and non-functional requirements.
- Data Transfer (Input customer data, send control signal, send transactions
from one system to another)
- Data Transformation (Calculate bank interest; derive average temperature; use billing data to produce invoice totals)
- Data Storage (Store customer order; record temperature over time; store control parameters to drive data)
- Data Retrieval (List current employees; retrieve satellite position; display a report of employee dependents)
- Quality Constraints (Usability, Reliability, Efficiency, Portability)
- Organizational Constraints (locations for operations, target hardware, compliance to standards)
- Environmental Constraints (interoperability, security, privacy, safety)
- Implementation constraints (development language, delivery schedule)
Whenever we learn a new concept we need to study its vocabulary first. Here are the main terms of function point analysis.
Stages of software development cycle
If your project is already being developed, can you calculate it size in function points? Please, have a look at the picture below to find out when during software development cycle it's recommended to use function point analysis.
Here are the stages to go through to do estimation in function points:
Now let's see on a very simple example how to calculate function points that can be used to estimation application and/or project size.
First of all we need to define an application components that we take into consideration when counting function points. There are 5 of them.
Internal Logical File (ILF) - data which is resides within the application boundary and which is maintained (added, changed, deleted, updated) by the application
External Interface File (EIF) - is a user recognizable group of logically related data or control information which is referenced by the application being measured, but maintained within the boundary of another application. It is identified as an ILF in another application(s)
External Input (EI) – an elementary process that processes data or control information sent from outside the boundary. Words that suggest EIs: Add, Make Inactive, Allocate, Modify, Assign, Record, Associate, Remove, Change, Reset, Create, Delete, Import, Reverse, Set, Undo, Update, Upload, Withdraw;
External Inquiry (EQ) – is an elementary process that sends data or control information outside the boundary (using data retrieval only). Words that suggest EQs: Browse, Display, Enquire, Extract, Inquire, List, Pick, List, View
External Output (EO) – is an elementary process that sends data or control information outside the boundary and includes additional processing beyond that of an external inquiry. Words that suggest EOs: Adjust, Export, Generate, Notify, Print, Report, Summary
You can see these 5 types of components on the picture below
You can also notice on the picture two more types of elements RET and DET, we also will need it for our calculation.
RET - a record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF.
DET - a unique user recognizable, non-repeated attribute.
Now let's try to find these components in requirements for application that used to track student information.
Student data is 1 Internal Logical File. Add, Change and Delete are 3 External Inputs. There is also 1 RET and 6 DETS in this requirements.
We have counted components, lets now count function points. We need formulas to do this. At first we need formulas to define complexity of our components. As you remember, we have 1 ILF with 1 RET and 4 DETS and 3 EIs with 1 FTR and 5-6 DETs. Here they are.
As you see, all our components are of low complexity. We are very close now to get estimation in function points. We need only to define weight of the component.
The weight is 3 for our 3 EIs and 7 for ILF. Thus, we multiply 3 into 3 (9) and 1 into 7 (7) and in sum (9+7) we get 16 function points. We did it!
If you would like to get more details on Function Point Analysis, watch a webinar on this topic -