The Simple Function Point method explained

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.

Adoption by IFPUG

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.

Basic concept

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]

, that is, a measure of size expressed in UFP should be equal to the measure expressed in SiFP (In this article we use “UFP” for unadjusted Function Point to designate the unit of measure defined by IFPUG FPA and SiFP the unit of measure defined by SFP).

The sought characteristics were achieved as follows:

IFPUG FPA requires that

  1. logical data files and transactions are identified,
  2. logical data files are classified into Internal Logical Files (ILF) and External Interface Files (EIF),
  3. every transaction is classified as External Input (EI), External Output (EO), External Query (EQ),
  4. every ILF and EIF is weighted, based on its Record Element Types (RET) and Data Element Types (DET),
  5. every EI, EO and EQ is weighted, based on its File Types Referenced (FTR) and DET exchanged through the borders of the application being measured.

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.

Definition

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 evaluation of the SFP method

Empirical studies have been carried out, aiming at

Convertibility between SFP and FPA measures

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]

(note that this approximate equivalence holds on average: in both studies an average relative error around 12% was observed).

However, a third study [5] found

Size[UFP]=0.815 Size[SiFP]

. This study used data from only 25 Web applications, so it is possible that the conversion rate is affected by the specific application type or by the relatively small size of the dataset.

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]=kSize={[UFP]}

, with

k\in[0.957,1.221]

. Noticeably, for a dataset, no linear model could be found; instead the statistically significant model

Size[SiFP]=Size[UFP]1.033

was found.

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.

Using SFP for software development effort estimation

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.

External links

The introduction to Simple Function Points (SFP) from IFPUG.

Notes and References

  1. Meli. Roberto. 2011. Simple function point: a new functional size measurement method fully compliant with IFPUG 4.x. Software Measurement European Forum. 2011.
  2. Book: International Function Point Users Group (IFPUG). Function point counting practices manual, release 4.3.1. 2010.
  3. Web site: Jones. Capers. 2008. A new business model for function point metrics. 1 February 2022.
  4. Web site: Total Metrics. 2007. Methods for Software Sizing – How to Decide which Method to Use. 1 February 2022.
  5. Book: Ferrucci. Filomena. Gravino. Carmine. Lavazza. Luigi. Proceedings of the 31st Annual ACM Symposium on Applied Computing . Simple function points for effort estimation . 2016-04-04. http://dx.doi.org/10.1145/2851613.2851779. 1428–1433 . New York, NY, USA. ACM. 10.1145/2851613.2851779. 9781450337397 . 16199405 .
  6. Abualkishik. Abedallah Zaid. Ferrucci. Filomena. Gravino. Carmine. Lavazza. Luigi. Liu. Geng. Meli. Roberto. Robiolo. Gabriela. 2017. A study on the statistical convertibility of IFPUG Function Point, COSMIC Function Point and Simple Function Point. Information and Software Technology. 86. 1–19. 10.1016/j.infsof.2017.02.005. 0950-5849.