The Simple Function Point (SFP) method [1] is a lightweight Functional Measurement Method.
The Simple Function Point method was designed by Roberto Meli in 2010 to be compliant with the ISO14143-1 standard and compatible with the International Function Points User Group (IFPUG) Function Point Analysis (FPA) method. The original method (SiFP) was presented for the first time in a public conference in Rome (SMEF2011)
The method was subsequently described in a manual produced by the Simple Function Point Association: the Simple Function Point Functional Size Measurement Method Reference Manual, available under the Creatives Commons Attribution-NoDerivatives 4.0 International Public License.
In 2019, the Simple Function Points Method was acquired by the IFPUG, to provide its user community with a simplified Function Point counting method, to make functional size measurement easier yet reliable in the early stages of software projects. The short name became SFP. The SPM (Simple Function Point Practices Manual) was published by IFPUG in late 2021.
When the SFP method was proposed, the most widely used software functional size measurement method was IFPUG FPA.[2] However, IFPUG FPA had (and still has) a few shortcomings:
To overcome at least some of these problems, the SFP method was defined to provide the following characteristics:
Size[UFP]=Size[SiFP]
The sought characteristics were achieved as follows:
IFPUG FPA requires that
Of these activities, SFP requires only the first two, i.e., the identification of logical data files and transactions. Activities 4) and 5) are the most time consuming, since they require that every data file and transaction is examined in detail: skipping these phases makes the SFP method both quicker and easier to apply than IFPUG FPA. In addition, most of the subjective interpretation is due to activities 4) and 5), and partly also to activity 3): skipping these activities makes the SFP method also less prone to subjective interpretation.
The concepts used in the definition of SFP are a small subset of those used in the definition of IFPUG FPA, therefore learning SFP is easier than learning IFPUG FPA, and it is immediate for those who already know IFPUG FPA. In practice, only the concepts of logical data file and transaction have to be known.
Finally, the weights assigned to data files and transactions make the size in SFP very close to the size expressed in Function Points, on average.
The logical data files are named Logical Files (LF) in the SFP method. Similarly, transactions are named Elementary Process (EP). Unlike in IFPUG FPA, there is no classification or weighting of the Base Functional Components (BFC as defined in ISO14143-1 standard).
The size of an EP is 4.6 SFP, while the size of a LF is 7.0 SFP. Therefore the size expressed in SFP is based on the number of data files (#LF) and the number of transactions (#EP). Belonging to the software application being measured:
Size[SFP]=4.6 \#EP+7 \#LF
Empirical studies have been carried out, aiming at
In the original proposal of the SiFP method, a dataset from the ISBSG, including data from 768 projects, was used to evaluate the convertibility among UFP and SiFP measures. This study showed that on average
Size[UFP]=1.0005 Size[SiFP]
Another study also used an ISBSG dataset to evaluate the convertibility among UFP and SiFP measures. The dataset included data from 766 software applications. Via ordinary least square regression, it was found that
Size[SiFP]=0.998 Size[UFP]
Based on these empirical studies, it seems that
Size[SiFP] ≈ Size[UFP]
However, a third study [5] found
Size[UFP]=0.815 Size[SiFP]
In 2017, a study evaluated the convertibility between UFP and SiFP measures using seven different datasets.[6] Every dataset was characterized by a specific conversion rate. Specifically, it was found that
Size[SiFP]=k Size={[UFP]}
k\in[0.957,1.221]
Size[SiFP]=Size[UFP]1.033
In conclusion, available evidence shows that one SiFP is approximately equivalent to one UFP, but this equivalence depends on the data being considered, besides being true only on average.
Considering that the IFPUG SFP basic elements (EP, LF) are totally equivalent to the original SiFP elements (UGEP, UGDG), the previous results hold for the IFPUG SFP method as well.
IFPUG FPA is mainly used for estimating software development effort. Therefore, any alternative method that aims at measuring the functional size of software should support effort estimation with the same level of accuracy as IFPUG FPA. In other words, it is necessary to verify that effort estimates based on SFP are at least as good as the estimates based on UFP.
To perform this verification, an ISBSG dataset was analyzed, and models of effort vs. size were derived, using ordinary least squares regression, after log-log transformations. The effort estimation errors were then compared. It turned out that the two models yielded extremely similar estimation accuracy.
A following study analyzed a dataset containing data from 25 Web applications. Ordinary least squares regression was used to derive UFP-based and SiFP-based effort models. Also in this case, no statistically significant estimation differences could be observed.
The introduction to Simple Function Points (SFP) from IFPUG.