Académique Documents
Professionnel Documents
Culture Documents
Counting Scope: Defines all functionality which will be Internal Logical File (ILF): File maintained by
included in a function point count. elementary process inside the project boundary.
Boundary: Defines the border between measured External Interface File (EIF): File not maintained by the
application and external applications (domain) and the applications but externally, outside the project boundary
user. by another application.
That will result in rating the function with one of the 3 levels of
complexity (low, average or high) by using the table in table 1.
Example:
Car Rental: The car rental is an External Output as it processes
In our car rental example figure 1 we have 2 logical files:
data from inside to outside the system boundary (it processes the
The Car Vehicle Database which is an Internal Logical File (ILF)
bank nr and car rental order information in order for the bank to
which in this very simple example has only 2 DET‟‟s namely
use). It uses 3 DET‟s (Car name, age and Bank nr.) and 2 FTR‟s
“name” and “age” and no RET‟s. Using the table in table 1 its
(bank and car/vehicle db) in table 2 it would also be rated low
complexity would be Low.
complexity.
The Bank Database is an External Interface File (EIF) and has one
DET “Bank Nr.” and 1 RET “User class” which according to table
1 makes it low complexity
3.6 Determine Unadjusted Function Point
Count
3.5 Count Transactional Functions When both the Data and Transactional functions have been counted
In similar fashion we will count the transactional functions. and rated a complexity we can calculate the Unadjusted Function
Transactional functions process data in an application. There are 3 Point count (UFP) in this stage. We do this by filling in a simple
types of transactional functions: table. The main principle behind this table is that each type of
function and their complexity have a relative weight. For instance
External Input (EI): Process data from outside boundary. an External Inquiry with High complexity is less effort to create
External Output (EO): Process data from inside to than a high complexity external output which also has to process
outside the boundary the data.
External Inquiry (EQ): Presents data from inside to
outside without processing
Measure Complexity:
In transactional functions we can measure the complexity also by
counting two types of elements used in the functions.
3.8 Calculate Adjusted Function Point Count Source code based FPA makes an attempt to bridge the gap
Finally we can calculate the Adjusted function point count (AFP) between the functional world and the world of source code. The
based on the type of system that we are developing. The basic term “source code based Function Point analysis” itself may sound
formula is simply the unadjusted function points (UFP step 5) * the like a dissonance, nevertheless it is just a more pragmatically
value adjustment factor (VAF step 6). approach. In this case, the input of the counting system would be a
collection of source codes, programs and if possible the data model,
which may significantly simplify the detection of logical files. By
Development (“new systems): analyzing different statements (I/O-statements, SQL-statements,
AFP = (UFP + CFP) * VAF various other calls), operations and variables, we are able to
Takes into account the extra CFP: Conversion Function identify counting boundary, determine logical files, transactional
points which is: functions and their element types and thereafter count the adjusted
“Conversion functionality consists of functions provided Function Point value.
only at installation to convert data and/or provide other
user-specified conversion requirements, such as special
conversion reports.” [2] 4.2 FPA Advantages and Disadvantages
Function Point Analysis is based on a logical point of view. The
Enhancement (“Add/Modify/Delete”): emphasis is put on analyzing the system from user's perspective.
AFP= [(ADD + CHGA + CFP) * VAFA] + (DEL* VAFB) This means that we focus on what the system does and not how it
Takes in to account Added (ADD) function points and does it. Moreover, the fact that we are interested in logic, not in the
Changed (CHGA), Conversion (CFP) which will be implementation makes the Function Point analysis platform
multiplied by the function points after the change is done independent - it is no longer relevant in what language the system
(VAFA) plus the Deleted functions points (DEL) multiplied has been implemented and what are other requirements.
by the functions points before the change is done (VAFB)
The International Function Point Users Group functional
Application measurement method is an ISO recognized software metric. The
AFP = ADD * VAF IFPUG FSM Method (ISO/IEC 20926 SOFTWARE
ADD is the unadjusted function point count of those ENGINEERING - FUNCTION POINT COUNTING
functions that were installed by the development project. PRACTICES MANUAL) is currently one of five recognized ISO
standards for functionally sizing software.
Using the FP count, we should be able to measure the project
effort. Project effort is dependent on two attributes: the project size
The one great advantage of FPA over LoC is that it is independent
and productivity. Project effort can be calculated by dividing the
of the language used for implementation. FPA is based on the
project size by the productivity. It is typically measured as person
logical point of view and it does not matter if a statement takes one
month or staff month.
or four lines code or what libraries it uses – the important thing
here is what this piece of code actually does.
Example:
The project size is 1000FP and the productivity is 10FP
Neither of the two metrics is applicable for the projects in every
per person month. Then by dividing 1000FP with 10FP
stage of development. Obviously, LoC cannot be used for
per person month, we will get 100 person months.
development projects, since there is simply no code to count. On
the other hand, FPA is hardly used for enhancement projects.
As we may observe, the Function Point analysis is relatively
complicated. As opposed to Lines of Codes, it requires the
infrastructure to fulfill certain requirements. It usually needs extra LoC seems to be very straightforward and clear method for
documentation and this documentation must be available, complete estimating how much effort has been put into creating a certain
and correct, which is not always the case, for example, with many piece of code and, as a consequence, a particular piece of software:
legacy systems (however, new approaches, like source code based simply, the more code has been written, the greater effort has been
FPA, may be applied in case of missing functional documentation). put. Yet, FPA might be of better credit when it comes to measuring
On the other hand, this could be perceived as an advantage as well - actual effectiveness of the code - the fact that some piece of code is
for the need of writing well-defined set of requirements may be small might not reflect its substantive capabilities and the whole
beneficial and result in well-organized and well-structured thinking process that stands behind it; nevertheless, if it is powerful
documentation, which, furthermore, may prevent some then the FP-count will show that.
misunderstandings and save time.
4.4 Backfiring
Unfortunately, this measurement method typically is not integrated A method called backfiring may seem a nice combination of the
into maintenance process, since it cannot be fully automated two measurement methods. Many FPA-counts have been analyzed
(although, again, source code based Function Point analysis, may in order to estimate a relation between the number of Lines of
be useful here and can be automated to some degree). Codes and unction Points for various languages.
Having this estimated factor and counting Lines of Codes, one can
extract the number of Function Points. For example, if we have a
program written in C which contains 100 000 Lines of Code, we
get approximate FP:
FP = LoC/(LoC/FP) = 100 000/128 ≈ 781.
Moreover, backfiring might come in handy if there is a need to
compare two projects which have been analysed each by using a
different of these two methods. Suppose we had an FP count for
As we have seen, Function Point analysis has developed some one project and LoC count for another; then we could estimate the
unified formalism, which includes definitions (for instance, logical FP count of the latter by backfiring and this way obtain some frame
files, transactional functions) and a well-formed algorithm, which of reference to contrast and compare the two projects.
consists of the list of steps one has to follow in order to perform the However, this solution is a bit hazardous and should be used
analysis. Whereas the case with the Lines of Codes is that it is carefully, in situations when the documentation is not available or
quite difficult and challenging to come up with the accurate and when the first order estimation is sufficient.
acceptable definition; however, ones such definition is provided,
counting becomes extremely easy and may be fully automated. As a
result, it is cheap and simple sizing method, therefore a tempting
alternative for the complicated and more expensive FPA.
5. CONCLUSION 6. REFERENCES
The Function Point analysis is one of the methods for estimating [1] “Source Code Based Function Point Analysis for
the size of a software project and, as such, can also indicate both Enhancement Projects”, Steven Klusener , Software
cost and development effort that has been put into the project. It Improvement Group, Vrije Universiteit.
has its formalism, which has been presented in this paper. FPA is a [2] “Function Point Counting Practices Manual - Release 4.1” -
useful measurement tool itself and can be combined with other or it International Function Point Users Group (IFPUG)
can be the basis of other methods. Therefore, we believe that FPA
may contribute greatly in field of software development and [3] http://www.kendrickhang.com/blog/?p=76
software management. We hope that this paper gives the reader an [4] http://www.softwaremetrics.com/fpafund.htm
idea of how the FPA works and how it can be applied.
[5] http://insidetech.monster.com/training/articles/1523-
estimating-the-size-of-software-projects