An Empirical Analysis of Function Point Adjustment Factors

C. J. Lokan

School of Computer Science

Australian Defence Force Academy

University of New South Wales

Canberra, Australia

+61 2 6268 8060

c-lokan@adfa.edu.au

 

Abstract

In function point analysis, fourteen "general systems characteristics" (GSC’s) are used to construct a "value adjustment factor" (VAF), with which a basic function point count is adjusted. Although the GSC’s and VAF have been criticized on both theoretical and practical grounds, they are used by many practitioners. This paper reports on an empirical investigation into their use and practical value.

We conclude that recording the GSC’s may be useful for understanding project cost drivers and for comparing similar projects, but the VAF should not be used: doubts about its construction are not balanced by any practical benefit. A new formulation is needed for using the GSC’s to explain effort; factors identified here could guide further research.

 

1. Introduction

In function point analysis (FPA), fourteen "general systems characteristics" (GSC’s) are used to construct a "value adjustment factor" (VAF), with which a basic function point count is adjusted. This stage of function point analysis is controversial.

The general systems characteristics are intended to measure general aspects of size, as opposed to application-specific size [1]. Intuitively, they are used to adjust a function point count so as to better predict effort.

Criticisms of the GSC’s and VAF are both theoretical and practical. Theoretical criticisms are that the construction of the VAF involves operations that are inadmissable according to measurement theory [2]; since "complexity" appears in computing unadjusted function points and again in the GSC’s, there is some double counting [3,4]; and the GSC’s are inter-related [3,5].

Practical criticisms are that not all of the right things are counted as GSC’s [4]; when computing the VAF it is not appropriate to give all of the GSC’s the same weight [4]; the VAF does not provide enough variation [4]; and using the VAF does not improve effort estimation [3,6,7,8].

The adjustment phase of FPA is widely used despite these concerns. It makes intuitive sense to practitioners, whose experience is that the GSC’s are things which influence project difficulty and effort.

An informed decision is needed on whether the GSC’s and VAF are really worth using. If they bring no practical benefits, they should be abandoned. If there are practical benefits, the decision arises of whether or not to use them in spite of theoretical objections. Empirical research is needed to inform this decision.

A study by Desharnais [5] found that only some of the GSC’s were relevant in the adjustment process. He proposed a modified adjustment method, in which different GSC’s have different weights. Several authors have investigated the VAF, finding consistently that it is not effective for improving effort estimation [3,6,7,8].

This paper describes a new empirical study of the FPA adjustment process. A collection of 235 projects is analyzed. The initial focus is on the GSC’s alone, without regard to their use in the VAF. Questions investigated are: how the GSC’s are used overall; how their use varies in different types of projects; and what relationships exist between them. Attention then turns to the adjustment process, to see whether the findings of previous researchers are confirmed in this much larger data set.

Section 2 describes the data set analyzed here. Section 3 looks at the GSC’s individually, describing the distribution of each GSC and noting how the distributions vary for different types of projects. Section 4 investigates relationships between the GSC’s. Section 5 evaluates the VAF. Section 6 presents conclusions.

 

2. Data sample

The projects analyzed here come from the International Software Benchmarking Standards Group ("ISBSG") Repository [9]. This is a public repository of data about completed software projects. The projects cover a wide range of applications, development techniques and tools, implementation languages, and platforms. ISBSG believes that they are representative of better software development projects worldwide.

At the time of this analysis, the repository contained data on 421 projects. After those which were unsuitable for study were excluded (for example, some are measured with Mark II function points [10], which do not use the GSC’s), a sample of 235 projects remained.

The following data was available for each project in the sample: size, measured using the IFPUG standard [1] for function points; the effort expended by the development team; all fourteen GSC values; and project attributes such as application type, development platform, programming language, and date of implementation.

Table 1 summarizes the ranges of function points, effort, and delivery rate.

 

Statistic

Size

(FPs)

Effort (Hours)

Project Delivery Rate (Hours/FP)

Minimum

11

97

0.7

1st Quartile

140

793

4.1

Median

276

2216

6.8

3rd Quartile

725

4787

12.8

Maximum

17520

106500

68.9

Mean

695

5129

9.5

St.Dev.

1512

10136

8.8

Table 1: Characteristics of projects analyzed

 

3. Usage of individual GSCs

Each characteristic is scored on a six-point ordinal scale. A score of zero means "not relevant", and scores of 1 through 5 (5 is high) indicate the importance of the characteristic. IFPUG provides guidelines for determining the scores 1].

Table 2 shows the distribution of scores observed for each characteristic. These distributions give some impression of the nature of the projects. A range of profiles can be seen: mostly high values (eg on-line data entry, data communication); mostly low values (eg distributed data processing); mostly average values (eg complex processing); and a fairly even spread (eg transaction rate).

Characteristic

0

1

2

3

4

5

G01

Data communication

3

0

7

34

27

29

G02

Distributed data processing

33

9

24

12

19

3

G03

Performance

6

15

11

30

26

12

G04

Heavily used configuration

9

23

34

20

5

9

G05

Transaction rate

20

11

13

29

23

5

G06

Online data entry

3

2

8

26

1

60

G07

End user efficiency

6

7

21

23

27

15

G08

Online update

3

5

10

32

37

13

G09

Complex processing

9

15

20

30

23

2

G10

Reusability

15

17

27

26

10

4

G11

Ease of installation

20

11

23

24

7

15

G12

Ease of operation

17

11

34

23

8

6

H13

Multiple sites

33

11

24

16

11

5

G14

Facilitate change

29

7

17

27

10

10

Table 2: percent of projects with each GSC value

One might expect different characteristics to matter more for some types of software than others. The distributions of GSC values for different types of projects are presented in Tables 5-10 (in the appendix).

Projects are classified by type of organization, business area, application type, project type, programming language level, and development platform. These particular classifications were chosen for two reasons. First, they cover the full range of project attributes, including context, nature, and implementation. Second, in our view the GSC’s are an attempt to explain variations in productivity, and these are the classifications that have been found to be related to productivity in the ISBSG data set [9]. The projects were also classified by date of implementation; the few trends that emerged are noted below.

The tables can be interpreted in two ways. For each characteristic, one can see the types of projects for which they are more or less important (Section 3.1). For each group of projects, one can see which GSC’s matter more and which matter less (Section 3.2). Some interesting trends can be seen from each perspective. These are summarized in Section 3.3

 

3.1 Variations in the use of each GSC

Each section below characterizes the overall distribution of a single GSC (see Table 2).

The distributions of GSC values shown in Tables 5-10 are then analyzed. The chi-squared test was used to identify statistically significant differences between distributions (at the 0.05 significance level). Those differences are described.

G01: Data Communication

Teleprocessing is now almost universal. Only 10% of projects report a "below average" score of 2 or less; 56% have an "above average" score of 4 or 5.

The scores tend to be lower for banking projects, and for projects developed on personal computers. There has been a gradual decline, from above average towards average, from 1991 to 1996.

 

G02: Distributed Data Processing

Of all the GSC’s, this has one of the greatest percentages of "below average" values. The distribution is bimodal: systems tend to be either monolithic, or to have distributed processing as a characteristic of above average importance.

There tends to be more distributed processing in engineering systems. Distributed processing is more common on midrange platforms than on other platforms. It is more common in transaction/production systems and office information systems than in management information systems and decision support systems. It is more important in new developments than in enhancement projects.

G03: Performance

This characteristic has a broad spread: scores are below average for 32% of projects, average for 30%, and above average for 38%.

Performance is more important for transaction/production systems than for management information systems. It is more important for new developments than for enhancement projects.

G04: Heavily Used Configuration

Scores for this characteristic are generally low: 66% below average, 20% average, and 14% above average.

Scores are lower for transaction/production systems and office information systems than for management information systems and decision support systems. They are lower for new developments than for enhancement projects; higher for midrange projects than for other platforms; and higher for engineering systems. Scores increase from 3GL projects to 4GL projects to application generator projects.

G05: Transaction Rate

Scores for transaction rate are shared across the range from 0 to 4; there are few scores of 5.

Transaction rates are more important than usual for banking systems, and less for engineering systems. They are more important on mainframes than on other platforms. Although one might expect them to be more important for transaction/production systems, there are no significant differences between application types. Scores for this characteristic rise steadily from 1991 through 1996.

G06: On-line Data Entry

This characteristic has by far the highest scores of all, and the least variation. Fully 60% of projects score this characteristic at 5, the maximum value possible.

According to IFPUG’s guidelines [1], a score of 5 means that more than 30% of transactions involve interactive data entry. Perhaps 30% is too low a threshold nowadays; a higher value might provide more useful discrimination.

The scores are lower (generally 3’s) for a block of Cobol/mainframe/banking projects from one organization. The score is 5 for just about everything else.

G07: End User Efficiency

This characteristic has a broad spread, with a slight tendency towards higher scores: 34% are below average, and 43% are above average.

End user efficiency is more important for management information systems than for transaction/production systems. The scores are lower, and have a flatter distribution, for new developments than for enhancement projects. Again, scores increase from 3GL projects to 4GL projects to application generator projects.

G08: On-line Update

Scores for on-line update tend to be high (half are above average), but they are mostly 3’s and 4’s rather than 5’s.

Scores tend to be higher for transaction/production systems. They are lower on personal computers than on other platforms. Once again, scores increase from 3GL projects to 4GL projects to application generator projects.

G09: Complex Processing

This characteristic has a normal (bell-shaped) distribution, centered about the average score of 3. There are few scores of 0 or 5.

Scores for complex processing are highest on mainframes and lowest on microcomputers; highest in 3GL projects and lowest in 4GL projects. The scores are higher, and have a flatter distribution, for new developments than for enhancement projects. Processing complexity increases steadily from 1991 through to 1996.

G10: Reusability

The importance of reusability is generally low, with 59% below average and only 14% above average, but it is a very mixed bag.

Reusability is slightly more of a concern for decision support systems than for other types of software. It is less of a concern on personal computers than on mainframes.

G11: Ease of Installation

This characteristic has one of the broadest distributions. Scores are low overall (54% below average, 22% above average), but both extremes are well represented. Ease of installation is of no concern in 20% of projects, and extremely important in 15%.

Scores are higher for enhancement projects than for new developments; higher for mainframe projects than for other platforms; and higher for engineering systems than for other business areas.

G12: Ease of Operation

Ease of operation is rarely much of an issue. Scores for this characteristic are nearly the lowest overall: 62% are below average, and only 14% are above average. Scores are spread from 0-3, with 2 the most common score.

The only significant difference emerges when projects are grouped by application type: scores are higher for management information systems and decision support systems than for transaction/production systems and office information systems.

G13: Multiple Sites

This characteristic has the lowest scores of all: 68% are below average, and 33% have the minimum possible score of 0.

Scores are very low for legal systems, and high for engineering systems. They are higher for new developments than for enhancements or redevelopments; higher for 3GL projects than for others; and higher on midrange computers than on mainframes. Once again, scores are higher for management information systems and decision support systems than for transaction/production systems and office information systems.

 

G14: Facilitate Change

Each score for this characteristic is well represented, but generally scores are low: 53% are below average, and 20% above average. The distribution is bimodal, with the two common scores being 0 (of no concern) and 3 (average concern).

Scores are low for 3GL projects, and high for 4GL projects. They are low for new developments; low for mainframe projects; and high for engineering projects. Not surprisingly, this characteristic is more important for management information systems and decision support systems, and less important for transaction/production systems.

 

3.2 GSC usage for different types of software

In this section the projects are broken down into different groups, on various criteria. For each group of projects, we can see which GSC’s matter more and which matter less.

Type of organization (see Table 5)

Manufacturing projects score low for complexity, distribution, and user focus, and high for data communication. Projects developed by utilities (electricity, gas, water) are lower in complexity, higher in performance constraints and distribution, and place more focus on the user (end user efficiency, ease of installation).

The banking projects are dominated by one organization. Almost all projects from this organization had the same GSC values. They score lower than usual in data communication, on-line data entry, and user focus; and higher in processing complexity.

Business area (see Table 6)

Banking systems score lower than usual for on-line data entry; and higher for transaction rate, processing complexity, and reuse (although reuse is still not very important). Engineering projects feature more distributed processing, and focus more than usual on user efficiency; ease of operation is less important. Legal systems focus on the end user; software developed for multiple sites is rare, and ease of installation is rarely a concern.

Application type (see Table 7)

Management information systems and decision support systems often vary together, as do transaction/production systems and office information systems. Management information systems usually vary in opposition to transaction/production systems.

Management information systems and decision support systems tend to be low in complexity, and high in facilitating change by the user. Transaction/production systems and office information systems have more constraints on performance, and are less concerned with facilitating change by the user. Decision support systems also score higher than usual (although still low overall) on distributed processing.

Project type (see Table 8)

New developments score higher than enhancement projects for complex processing, performance constraints, distributed processing (although this is still low overall), and multiple sites. They have less concern for the user (facilitating change, end user efficiency).

The GSC distributions for new developments tend to be flatter. Those for enhancement projects have sharper peaks.

Programming language (see Table 9)

Third generation languages tend to be used more for software intended for multiple sites. Processing complexity scores are also higher for 3GLs, while scores for on-line update are lower. 4GL projects score highly on facilitating change, and low on processing complexity. Application generator projects score highly on data communication, heavily used configuration, end user efficiency, and on-line update.

Development platform (see Table 10)

Mainframe projects score high for processing complexity and transaction rate, and low for user efficiency, data communication, and on-line update. Midrange projects score high for distribution, multiple sites, heavily used configuration, and facilitating change by the user. Microcomputer projects have low scores for on-line update, processing complexity, and reuse.

Project completion date

From 1991 to 1996, there is a trend down (from more 5’s to more 3’s) for on-line data entry and data communication. There is a trend towards increasing importance for transaction rate, complex processing, and multiple sites.

 

3.3 Discussion

The characteristics with the highest scores relate to data communication and on-line entry. These are almost universal. Redefinition of these characteristics may be advisable if they are not to lose their discriminative value.

Redefinition of data communication and on-line entry may already be happening informally. A downward trend in the scores for these characteristics might reflect changing perceptions, as what was once seen as extreme is now seen as normal. An alternative explanation is that this trend is due to the increasing use of personal computers, where communication appears to be less of an issue.

The characteristics with the lowest scores relate to distributed processing, multiple sites, ease of installation and operation, and reusability. The first two might be expected to increase, as intranets and the Internet become more important.

More demands are being placed on software. Processing complexity and transaction rates are each increasing with time.

Some GSC’s vary in clearly recognizable ways for different types of software. Most trends make sense. For example, performance is important for transaction/production systems; systems developed on personal computers are more likely to be stand-alone systems with little concern for communication and on-line entry; facilitating change by the user is most important for decision support systems.

The fewest patterns are observed for heavily used configuration, end user efficiency, ease of installation, ease of operation, and multiple sites. The lack of pattern could mean that these have the greatest chance of giving useful variation between projects, and hence helping to explain variations in productivity. On the other hand, these tend to have the lowest scores, and so are the least important issues in a project.

Where patterns are observable across different types of project, they are generally most strongly associated with the application type. Application type is associated with consistent variations in the importance of performance, distribution, multiple sites, on-line update, and (especially) facilitating change.

Several patterns can also be seen when projects are grouped by project type. Fewer patterns emerge when projects are grouped by platform, language, or business area.

Dramatic variations can be seen when projects are grouped by type of organization, but there are few consistent patterns or easy explanations. In this data set, most categories are dominated by a few organizations. Differences between organizations, rather than between types of organization, probably cause the variation. An example is the apparent link between ease of installation and organization type. There is no obvious reason for the variations that were observed (for example, why ease of installation should be important in engineering but not in banking). This is likely to be a matter of organizational attitude rather than anything else.

 

3.4 Limitations

All of the differences described above, between GSC distributions for different groups of projects, are statistically significant in this data set. Care is needed nevertheless in interpreting them and drawing conclusions from them, for several reasons.

The projects are classified above on one attribute at a time. Sometimes the effect of several attributes may be confounded. For example, there are two blocks of projects which tend to vary together: one of Cobol/mainframe/banking projects, and one of legal/public administration projects. This can mean that a single underlying pattern is reported several times.

A second concern is that some groups are small. For example, when projects are grouped by business area most groups contain less than 20 projects. Small samples limit the strength of conclusions that can be drawn.

When attempting to draw general conclusions, how representative the projects are is a concern. For example, the group of banking projects appears quite large, with 66 projects. Many come from a single organization though, so the sample may not be representative of banking projects generally. The same comment applies to the legal projects.

 

 

4. Relationships between GSC’s

Examination of Tables 5-10 reveals some relationships between GSC’s. For example, transaction rate and complex processing tend to vary together. To a lesser extent, performance varies with them. These relationships suggest that a smaller number of underlying dimensions might be involved, with some being captured several times over by different GSC’s. To investigate this, factor analysis was used to study the common variation within the GSC’s.

Principal components analysis suggested six factors, as did factor analysis using the maximum likelihood method for estimating factor loadings. When six factors were used, however, no GSC loaded significantly on the sixth (loadings of less than 0.5 were not considered significant). The analysis was therefore performed using five factors.

Table 3 shows the factor loadings for each GSC. The highest loading for each GSC is highlighted in bold, provided its value is at least 0.5.

Between them the five factors account for just over half the total variation in the GSC’s. The first three factors each account for about 13% of the variation. The fourth and fifth factors explain less variation.

 

 

Characteristic

Factor 1

Factor 2

Factor 3

Factor 4

Factor 5

Data communication

.54

Distributed data processing

.73

Performance

.30

.46

.12

.37

Heavily used configuration

.60

.22

.48

.16

Transaction rate

.19

.70

.21

Online data entry

-.14

.82

End user efficiency

.13

.58

.45

Online update

.49

.50

.17

Complex processing

.22

.77

-.19

Reusability

.47

.17

.15

.17

.24

Ease of installation

.39

.20

.58

.11

Ease of operation

.26

.49

.24

Multiple sites

.60

.23

.14

Facilitate change

.12

.25

.19

.68

Variation explained

13.1 %

12.5 %

12.5 %

7.9 %

6.1 %

Table 3: Loadings of GSC’s on five factors

 

Several GSC’s load on each of the first three factors:

  1. distributed data processing, multiple sites, heavily used configuration.
  2. transaction rate, complex processing.
  3. data communication, on-line entry, on-line update, end user efficiency.

Each of these factors has a common theme: distribution, the difficulty of the problem to be solved, and interactivity respectively.

Three characteristics do not load significantly on any factor. Performance loads most strongly on factor two, strengthening that factor’s interpretation as one of problem difficulty. Ease of operation loads most strongly on factor four (ease of installation), suggesting ease of use as an interpretation for that factor. Reusability loads most strongly on factor one; this is difficult to interpret.

On-line update loads almost equally on factors two (problem difficulty) and three (interactivity). This makes sense, since high scores for this factor represent not just that most updates are performed on-line, but that complex processing is involved (eg for backups).

Separate factor analyses were performed for each of the different project groupings reported in Section 3. Details are not given here, because the results are unchanged. Although the order of importance of the factors varies from group to group, the same GSC’s always load on the same factors.

 

 

5. The Value Adjustment Factor

Sections 3 and 4 looked at the GSC’s in isolation, without regard to their purpose within function point analysis. Now we turn our attention to that purpose.

The GSC’s are used to construct a value adjustment factor ("VAF"). The result is a number from 0.65 to 1.35. It is used as a multiplier to adjust the basic function point count.

VAF = 0.65 + 0.01 x (sum of GSC’s)

In our view, the adjustment process in FPA is an attempt to explain variations in productivity - in other words, to improve the relationship between function points and project effort. In this section we investigate the relationships between function points and project effort, before and after adjustment with the VAF, to see whether the VAF serves this purpose.

 

5.1 Distribution of VAF

Table 4 summarizes the range of value adjustment factors, and Figure 1 shows their distribution.

Statistic

VAF

Minimum

0.73

1st Quartile

0.96

Median

1.00

3rd Quartile

1.07

Maximum

1.29

Mean

1.01

St.Dev.

0.10

Table 4: Summary of VAF

 

Figure 1: Distribution of VAF

The distribution is skewed slightly to the right, and peaks sharply at 1.00. Tests for normality indicate that the distribution is normal.

The median is exactly 1.00, and the mean 1.01.

The maximum VAF represents an increase of 29% in the function point count; the minimum represents a decrease of 27%. Since the variation is limited to plus or minus 35%, the extremes observed here approach the limits of possibility. Few adjustments are this great; half involve an adjustment of only about 5%.

Although the overall range of variation is quite large, for most projects the VAF does not result in much change to the function point value.

 

 

5.2 Value of VAF for effort prediction

To see if the adjustment process is effective effective for effort prediction, the strength of the relationship between function points and effort was investigated, using both adjusted and unadjusted function points as the independent variable.

Regression models were derived that relate each function point count to effort. The sample was divided randomly into a set of 157 projects (two thirds of them) from which the models were derived, and a set of 78 projects with which the models were evaluated. The accuracy of the models was assessed using R2 (which indicates the amount of variation in effort explained by function points), mean magnitude of relative error ("MMRE"), and the proportion of estimates that were within 25% of the actual effort ("Pred(.25)").

When adjusted or unadjusted function points were plotted against effort, the graphs were fan-shaped and dominated by small values for function points and effort. They were not suitable for linear regression. Taking the logarithms of both dependent and independent variable gave values much better suited to linear regression. The regressions were accordingly done on the transformed values. The residuals were normally distributed, and showed no pattern and no heteroscedasticity.

The resulting equation was: Effort = 17.2 x UFP .863

With this equation, the correlation between estimated and actual effort was 0.76. R2 was thus 0.58, meaning that unadjusted function points explained 58% of the variation in effort. MMRE was 1.28, meaning an average relative error of 128%. The largest relative error of all was 920%. 21% of estimates were within 25% of the actual values.

The equation derived using adjusted function points was: Effort = 21.0 x AFP .826

With this equation, the correlation between estimated and actual effort was 0.77, giving a value of 0.59 for R2. MMRE was 1.25, the maximum relative error was again 920%, and 17% of estimates were within 25% of the actual values.

The R2 values of 58-59% are comparable to Kitchenham’s 50-54% [3], Kemerer’s 55% [6], and Jeffery’s 58% [8].

Using adjusted function points instead of unadjusted function points as a predictor of effort makes almost no difference in any of R2, MMRE, or Pred(.25). Pred(.25) even gets slightly worse.

In 108 of the 235 projects, VAF points in the right direction for correcting estimation errors (eg effort is underestimated from unadjusted function points, but VAF is greater than 1.00 and so indicates that an upwards adjustment is needed). But in 73 projects VAF points in the wrong direction, and in 54 projects VAF is 1.00 and provides no clue. Thus one cannot even use VAF as a simple indicator of whether effort will be over-estimated or under-estimated from unadjusted function points.

In this data set, the VAF provides no assistance for estimating effort. This confirms the findings of other researchers [3,6,7,8]. We have studied a larger sample of projects, and used a wider set of criteria to assess the relationship, and still obtained the same results. This strengthens the statistical evidence that the adjustment process in function point analysis is not effective for effort prediction.

 

 

 

6. Conclusions

A collection of 235 projects has been analyzed, to see how the function point GSC’s are used in practice.

The first part of the analysis was largely descriptive. The GSC values were studied in isolation, without regard to their purpose within function point analysis.

The individual GSC’s may be viewed as categorical information about projects. Interesting trends can be seen when GSC values are compared for different collections of projects. Some GSC’s are more important than others for different types of projects.

Some GSC’s are defined in terms more suited to 1979-1984 than to today’s on-line world. They have less discriminative value now, and should perhaps be redefined.

Factor analysis indicates that the GSC’s reflect a smaller number of underlying dimensions: distribution, problem difficulty, interactivity, ease of use, and focus on the end user. Most of the fourteen GSC’s can be assigned to these factors in obvious ways. One characteristic (on-line update) appears to combine two issues, and should perhaps be redefined to separate the two concerns.

The last part of the analysis evaluated the VAF. The VAF was found not to improve the relationship between function points and effort. This confirms the findings of other researchers.

It seems clear that the value adjustment factor should not be used. Theoretical objections to how it is constructed might be overlooked if it had some practical benefit, but the evidence is that it does not.

Recording the values of the individual GSC’s may still be useful, both for historical comparisons and for understanding differences between projects.

Two avenues for future work are clear. A new formulation is needed if the GSC values are to be used in some way to improve the explanation of project effort. Some of the GSC’s themselves could be profitably redefined. The five underlying five factors identified here (distribution, problem difficulty, interactivity, ease of use, user focus) could provide a starting point for doing so.

 

Acknowledgements

I am grateful to Alain Abran for several valuable discussions early in this research, and for his comments on this paper.

 

References

[1] IFPUG. Function Point Counting Practices Manual, Release 4.0, International Function Point Users Group, Westerville Ohio (1994).

[2] N.E. Fenton, Software Metrics: a Rigorous Approach, Chapman and Hall (1991).

[3] B.A. Kitchenham, Empirical studies of assumptions that underlie software cost-estimation models, Information and Software Technology, Vol 34 no 4, 211-218 (1992).

[4] C.R. Symons, Function Point Analysis: Difficulties and improvements. IEEE Trans. Soft. Eng., Vol 14 no 1, 2-11 (1988).

[5] J.-M. Desharnais, Adjustment model for Function Points scope factors - a statistical study, Proc. IFPUG Spring Conference (1990).

[6] C.F. Kemerer, An empirical validation of software cost estimation models, Communications of the ACM, Vol 30 no 5, 416-429 (1987).

[7] A. Abran, Analysis of the Measurement Process of Function Point Analysis, PhD thesis, École Polytechnique de Montréal (1994).

[8] D.R. Jeffery, and J. Stathis, Function point sizing: Structure, validity and applicability, Journal of Empirical Software Engineering, Vol 1 no 1, 11-30 (1996).

[9] International Software Benchmarking Standards Group, Worldwide Software Development: The Benchmark, Release 4 (1997).

[10] C.R. Symons, Software Sizing and Estimating: Mk II FPA, Wiley (1991).

 

 

Appendix: Tables

Manufacturing (17 projects) Utilities (17 projects)

Characteristic

0

1

2

3

4

5

0

1

2

3

4

5

Data communication

6

0

0

18

18

59

6

0

6

0

76

12

Distributed data processing

53

18

0

0

12

18

47

6

0

6

41

0

Performance

0

35

29

24

0

12

12

12

6

6

24

41

Heavily used configuration

35

18

35

6

0

6

18

0

29

0

0

53

Transaction rate

41

35

6

12

0

6

59

18

6

6

12

0

Online data entry

6

0

0

12

0

82

0

0

6

6

0

88

End user efficiency

18

12

12

24

12

24

0

0

24

12

59

6

Online update

6

18

6

24

29

18

0

0

6

41

53

0

Complex processing

24

29

18

29

0

0

18

6

47

29

0

0

Reusability

47

18

12

18

0

6

6

24

41

18

6

6

Ease of installation

35

24

29

0

6

6

29

18

6

0

0

47

Ease of operation

35

24

18

6

18

0

18

41

0

24

18

0

Multiple sites

41

35

6

0

6

12

18

6

12

12

53

0

Facilitate change

47

12

18

12

0

12

29

0

41

6

12

12

Public admin (36 projects) Fin/Prop/Business (33 projects)

Characteristic

0

1

2

3

4

5

0

1

2

3

4

5

Data communication

6

0

0

33

25

36

3

3

12

18

45

18

Distributed data processing

47

6

8

28

8

3

24

12

12

9

42

0

Performance

3

31

8

39

11

8

6

21

6

48

12

6

Heavily used configuration

6

17

36

36

3

3

6

21

27

27

18

0

Transaction rate

22

6

8

50

8

6

18

12

15

27

24

3

Online data entry

0

3

0

33

0

64

9

0

0

9

3

79

End user efficiency

3

19

8

28

33

8

18

3

9

12

52

6

Online update

6

0

11

33

22

28

9

12

6

15

45

12

Complex processing

8

11

22

50

3

6

9

21

27

24

18

0

Reusability

6

28

25

42

0

0

9

33

6

15

27

9

Ease of installation

50

3

6

33

6

3

24

12

3

33

3

24

Ease of operation

22

19

22

25

8

3

21

3

36

18

6

15

Multiple sites

50

8

6

25

6

6

64

15

9

0

12

0

Facilitate change

11

14

8

47

6

14

24

12

15

30

12

6

Banking (39 projects) Other (65 projects)

Characteristic

0

1

2

3

4

5

0

1

2

3

4

5

Data communication

0

0

10

79

5

2

0

11

17

26

45

0

Distributed data processing

5

3

87

0

3

3

45

14

11

9

20

2

Performance

5

3

10

3

79

0

8

11

14

28

26

14

Heavily used configuration

0

79

15

3

0

3

11

12

46

18

3

9

Transaction rate

5

0

5

10

79

0

18

15

23

26

12

5

Online data entry

0

0

8

79

0

13

3

5

8

6

2

77

End user efficiency

0

3

85

8

0

5

5

6

5

23

31

31

Online update

0

3

5

8

85

0

0

6

9

48

25

12

Complex processing

0

0

5

13

79

3

11

26

25

17

20

2

Reusability

5

3

79

13

0

0

28

12

8

34

15

3

Ease of installation

8

3

79

10

0

0

9

18

22

18

15

17

Ease of operation

5

0

85

8

3

0

15

12

25

32

8

8

Multiple sites

3

3

85

8

3

0

37

14

18

14

12

5

Facilitate change

85

0

3

13

0

0

14

6

17

29

20

14

Table 5: Percent of projects with each GSC value, by organization type

 

 

Financial (21 projects) Personnel (11 projects)

Characteristic

0

1

2

3

4

5

0

1

2

3

4

5

Data communication

5

0

5

29

29

33

0

0

9

45

9

36

Distributed data processing

38

24

10

10

14

5

55

27

0

0

0

18

Performance

0

10

24

29

24

14

9

27

9

27

18

9

Heavily used configuration

10

14

52

10

10

5

9

0

82

0

0

9

Transaction rate

14

24

10

19

24

10

45

9

27

0

9

9

Online data entry

0

0

5

19

0

76

0

0

9

0

0

91

End user efficiency

5

0

5

24

52

14

9

9

9

18

27

27

Online update

0

10

10

24

52

5

18

9

18

18

18

18

Complex processing

5

5

19

48

19

5

9

18

27

36

9

0

Reusability

29

19

5

33

10

5

18

18

9

36

9

9

Ease of installation

19

29

24

14

10

5

18

27

18

9

9

18

Ease of operation

14

10

24

24

24

5

18

36

27

18

0

0

Multiple sites

33

24

14

5

24

0

36

27

9

0

9

18

Facilitate change

24

10

10

29

5

24

18

18

36

9

0

18

Manufacturing (18 projects) Banking (66 projects)

Characteristic

0

1

2

3

4

5

0

1

2

3

4

5

Data communication

6

0

0

6

28

61

0

2

12

50

24

12

Distributed data processing

50

6

0

17

17

11

12

3

56

5

23

2

Performance

0

11

28

22

11

28

6

9

8

24

48

5

Heavily used configuration

22

17

28

17

0

17

3

52

23

15

6

2

Transaction rate

28

17

11

28

17

0

9

3

11

20

56

2

Online data entry

17

6

6

0

0

72

5

0

5

50

2

39

End user efficiency

28

6

6

17

22

22

9

2

53

9

21

6

Online update

6

11

6

33

22

22

5

6

5

12

65

8

Complex processing

22

17

28

11

22

0

5

9

17

18

50

2

Reusability

33

22

11

11

17

6

6

15

48

14

12

5

Ease of installation

33

11

17

11

11

17

12

5

47

23

2

12

Ease of operation

33

0

33

17

6

11

12

2

62

12

3

9

Multiple sites

56

11

0

6

17

11

30

6

52

6

6

0

Facilitate change

44

17

22

11

0

6

59

5

9

21

5

2

Legal (13 projects) Engineering (16 projects)

Characteristic

0

1

2

3

4

5

0

1

2

3

4

5

Data communication

0

0

0

23

23

54

12

0

0

25

62

0

Distributed data processing

77

0

8

15

0

0

12

6

12

0

69

0

Performance

0

15

0

62

23

0

6

0

12

25

12

44

Heavily used configuration

0

38

31

31

0

0

0

25

6

25

0

44

Transaction rate

23

0

0

69

8

0

56

25

6

12

0

0

Online data entry

0

0

0

23

0

77

0

0

0

12

0

88

End user efficiency

0

0

8

23

62

8

0

0

0

12

62

25

Online update

0

0

8

23

46

23

0

0

12

38

50

0

Complex processing

0

23

15

54

8

0

12

6

62

6

12

0

Reusability

0

15

15

69

0

0

6

19

44

19

12

0

Ease of installation

77

0

8

15

0

0

19

6

6

19

6

44

Ease of operation

8

0

46

38

0

8

38

44

6

12

0

0

Multiple sites

77

0

8

15

0

0

0

19

12

12

56

0

Facilitate change

8

23

8

23

0

38

12

0

62

6

19

0

Table 6: Percent of projects with each GSC value, by business area

 

 

 

 

Decision Support Management information

(11 projects) (47 projects)

Characteristic

0

1

2

3

4

5

0

1

2

3

4

5

Data communication

0

0

18

64

9

9

2

2

9

38

28

21

Distributed data processing

27

0

9

45

18

0

40

17

6

26

6

4

Performance

9

0

9

64

18

0

6

34

9

17

23

11

Heavily used configuration

9

0

27

55

0

9

11

13

28

34

4

11

Transaction rate

18

18

9

36

18

0

28

13

15

30

9

6

Online data entry

0

0

18

27

0

55

2

0

2

32

2

62

End user efficiency

9

0

9

45

9

27

2

21

9

19

23

26

Online update

18

0

18

64

0

0

2

4

6

57

19

11

Complex processing

0

9

36

45

9

0

6

9

23

43

17

2

Reusability

18

9

0

45

9

18

15

17

21

34

6

6

Ease of installation

9

9

27

36

9

9

13

19

15

36

6

11

Ease of operation

27

0

9

45

9

9

11

30

15

26

15

4

Multiple sites

18

0

0

55

18

9

32

4

17

30

6

11

Facilitate change

0

9

9

45

27

9

11

0

11

45

15

19

 

Office Information Transaction/production

(23 projects) (74 projects)

Characteristic

0

1

2

3

4

5

0

1

2

3

4

5

Data communication

0

0

0

39

35

26

1

0

7

39

31

22

Distributed data processing

17

4

39

9

22

9

22

5

39

7

26

1

Performance

4

13

0

52

26

4

5

4

9

22

38

22

Heavily used configuration

9

39

26

22

0

4

3

34

35

9

4

15

Transaction rate

13

9

4

30

35

9

20

4

12

20

41

3

Online data entry

0

0

17

26

0

57

3

3

11

32

1

50

End user efficiency

4

4

26

43

9

13

4

3

36

18

30

9

Online update

4

4

17

39

30

4

0

3

11

12

59

15

Complex processing

17

13

13

26

26

4

4

7

27

20

39

3

Reusability

17

4

43

17

17

0

8

14

45

22

11

1

Ease of installation

26

0

30

35

9

0

15

7

35

19

4

20

Ease of operation

22

9

61

4

4

0

11

11

50

12

9

7

Multiple sites

13

22

35

22

4

4

26

9

34

8

19

4

Facilitate change

35

0

26

35

4

0

46

9

22

16

4

3

Table 7: Percent of projects with each GSC value, by application type

 

 

New development (142 projects)

Characteristic

0

1

2

3

4

5

Data communication

2

0

8

39

24

27

Distributed data processing

29

8

33

6

20

4

Performance

7

15

5

27

33

13

Heavily used configuration

9

31

32

14

6

8

Transaction rate

21

13

13

21

28

4

Online data entry

4

2

8

28

2

56

End user efficiency

8

3

28

21

20

20

Online update

2

7

11

31

37

13

Complex processing

9

15

20

22

33

1

Reusability

17

15

32

25

8

4

Ease of installation

15

13

33

16

8

15

Ease of operation

17

10

37

20

10

7

Multiple sites

25

11

35

13

12

4

Facilitate change

37

7

19

18

11

7

Enhancement (80 projects)

Characteristic

0

1

2

3

4

5

Data communication

4

1

6

29

26

34

Distributed data processing

41

9

11

21

16

1

Performance

2

15

21

38

16

8

Heavily used configuration

9

12

38

32

5

4

Transaction rate

12

6

15

44

18

5

Online data entry

2

0

10

24

0

64

End user efficiency

2

15

11

26

38

8

Online update

4

2

10

34

39

11

Complex processing

8

15

20

46

9

2

Reusability

14

19

18

30

15

5

Ease of installation

28

9

6

41

4

12

Ease of operation

15

11

32

31

4

6

Multiple sites

45

10

10

24

6

5

Facilitate change

18

6

12

42

6

15

Redevelopment (13 projects)

Characteristic

0

1

2

3

4

5

Data communication

8

0

0

8

62

23

Distributed data processing

31

8

8

15

31

8

Performance

8

15

8

15

15

38

Heavily used configuration

15

8

31

8

0

38

Transaction rate

46

15

0

15

8

15

Online data entry

0

8

0

15

0

77

End user efficiency

8

0

8

31

38

15

Online update

8

0

8

31

31

23

Complex processing

15

15

31

23

0

15

Reusability

8

31

31

23

0

8

Ease of installation

38

8

15

0

8

31

Ease of operation

31

31

15

15

8

0

Multiple sites

38

15

0

0

31

15

Facilitate change

15

8

31

23

15

8

Table 8: Percent of projects with each GSC value, by development type

 

 

3GL (94 projects)

Characteristic

0

1

2

3

4

5

Data communication

5

0

6

37

27

24

Distributed data processing

32

6

36

7

15

3

Performance

6

13

10

29

33

10

Heavily used configuration

11

31

35

11

10

3

Transaction rate

19

10

12

24

30

5

Online data entry

4

2

12

31

2

49

End user efficiency

11

5

33

22

18

11

Online update

3

10

14

26

39

9

Complex processing

14

12

13

32

29

1

Reusability

17

21

31

16

10

5

Ease of installation

24

11

27

18

7

13

Ease of operation

21

4

39

22

6

6

Multiple sites

27

15

36

11

9

3

Facilitate change

49

7

17

13

9

5

4GL (95 projects)

Characteristic

0

1

2

3

4

5

Data communication

2

1

3

33

33

28

Distributed data processing

34

12

14

15

24

2

Performance

7

20

8

31

19

15

Heavily used configuration

6

18

33

33

1

9

Transaction rate

24

11

9

32

21

3

Online data entry

2

2

3

24

1

67

End user efficiency

4

7

13

21

42

13

Online update

3

1

5

37

43

11

Complex processing

7

15

31

28

17

2

Reusability

8

16

25

37

11

3

Ease of installation

18

11

18

32

5

17

Ease of operation

15

21

31

21

6

6

Multiple sites

42

6

16

18

14

4

Facilitate change

14

6

17

39

9

15

Application generator (37 projects)

Characteristic

0

1

2

3

4

5

Data communication

0

0

19

22

19

41

Distributed data processing

35

8

22

8

22

5

Performance

0

5

19

27

32

16

Heavily used configuration

16

16

35

5

5

22

Transaction rate

14

11

24

27

16

8

Online data entry

3

0

11

11

0

76

End user efficiency

0

8

14

24

19

35

Online update

3

5

11

30

19

32

Complex processing

3

24

16

24

27

5

Reusability

24

14

22

22

14

5

Ease of installation

16

14

27

14

11

19

Ease of operation

16

8

27

27

14

8

Multiple sites

32

5

16

19

14

14

Facilitate change

24

8

22

22

16

8

Table 9: Percent of projects with each GSC value, by language type

 

Mainframe (164 projects)

Characteristic

0

1

2

3

4

5

Data communication

1

1

5

41

21

31

Distributed data processing

36

7

29

13

13

2

Performance

4

16

9

32

29

9

Heavily used configuration

9

24

36

22

4

4

Transaction rate

14

10

10

34

28

4

Online data entry

4

1

9

32

1

53

End user efficiency

8

8

25

23

24

12

Online update

4

5

9

29

41

12

Complex processing

7

15

16

35

26

1

Reusability

12

18

30

37

10

2

Ease of installation

21

9

24

29

5

12

Ease of operation

16

10

39

21

6

7

Multiple sites

35

9

26

19

6

5

Facilitate change

36

8

15

28

4

10

Midrange (39 projects)

Characteristic

0

1

2

3

4

5

Data communication

3

0

3

13

51

31

Distributed data processing

21

13

10

5

46

5

Performance

5

8

13

26

21

28

Heavily used configuration

8

8

33

13

10

28

Transaction rate

38

5

21

13

15

8

Online data entry

0

5

5

8

3

79

End user efficiency

0

5

15

23

38

18

Online update

0

0

8

36

44

13

Complex processing

3

18

44

18

13

5

Reusability

18

10

26

26

13

8

Ease of installation

10

15

18

18

10

28

Ease of operation

13

23

18

36

10

0

Multiple sites

28

8

21

13

28

3

Facilitate change

5

5

28

23

28

10

Microcomputer (30 projects)

Characteristic

0

1

2

3

4

5

Data communication

17

0

20

23

27

13

Distributed data processing

37

13

17

17

13

3

Performance

13

17

13

27

23

7

Heavily used configuration

13

40

20

20

3

3

Transaction rate

27

27

13

20

10

3

Online data entry

3

0

3

17

3

73

End user efficiency

3

3

7

27

30

30

Online update

0

10

20

43

10

17

Complex processing

27

17

10

20

23

3

Reusability

33

20

7

23

10

7

Ease of installation

30

17

20

3

13

17

Ease of operation

27

7

23

20

13

10

Multiple sites

27

20

23

7

13

10

Facilitate change

20

3

20

27

20

10

Table 10: Percent of projects with each GSC value, by platform type