0% found this document useful (0 votes)
440 views

Software Engineering: Function Points

The document describes function points, which is a metric used to measure software functionality. Function points are derived based on counts of external inputs, outputs, inquiries, internal logical files, and external interface files. They can be used to estimate costs, errors, and size of a software project. The process involves counting these components, applying complexity weights, and adjusting for other factors to determine the unadjusted and adjusted function point counts. An example application of counting function points for a home security system is provided.

Uploaded by

Umme Kulsoom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
440 views

Software Engineering: Function Points

The document describes function points, which is a metric used to measure software functionality. Function points are derived based on counts of external inputs, outputs, inquiries, internal logical files, and external interface files. They can be used to estimate costs, errors, and size of a software project. The process involves counting these components, applying complexity weights, and adjusting for other factors to determine the unadjusted and adjusted function point counts. An example application of counting function points for a home security system is provided.

Uploaded by

Umme Kulsoom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

Software Engineering

Function Points
Function point metric

• Can be used effectively as a means for


measuring the functionality delivered by a
system.
• Using historical data, the FP can then be used
to
– Estimate the cost or effort required to design, code,
and test the software
– Predict the number of errors that will be
encountered during testing, and
– Forecast the number of components and/ or the
number of projected source lines in the
implemented system.
Function point metric

• Function points are derived using an


empirical relationship based on
countable (direct) measures of
software's information domain and
assessments of software complexity
Function point metric

• Information domain values are defined in


the following manner:
– number of external inputs (EIs)
– number of external outputs (EOs)
– number of external inquiries (EQs)
– number of internal logical files (ILFs)
– Number of external interface files (EIFs)
What is Function Point?
Steps in FP Counting

• Determine Type of Count


• Identify Counting Scope and Application
Boundary
• Count Data Functions
• Count Transactional Functions
• Determine Unadjusted Function Point Count
• Determine Value Adjustment Factor
• Calculate Adjusted Function Point Count
FP Overview: What Is Counted
The Five Components of Function Points

  Data Functions

• Internal Logical Files


• External Interface Files
 

Transactional Functions

• External Inputs
• External Outputs
• External Inquiries
Data Storage
• Internal Logical File
(ILF)
– Logical group of data
maintained by the
application (e.g.,
Employee file)
• External Interface File
(EIF)
– Logical group of data
referenced but not
maintained (e.g., Global
state table)
Transactions

• External Input (EI)


those items provided by the user
that describe distinct application-
oriented data (such as file names
and menu selections)
• External Output (EO)
those items provided to the user
that generate distinct application-
oriented data (such as reports and
messages, rather than the
individual components of these)
• External Query (EQ)
Formatted data sent out of
application without added value
External External External
Input Output Inquiry

Internal External
Logical File Interface File

External Input

External Output

Application Boundary Other Applications


Functional Size
(Unadjusted Function Size)

Information Weighting factor


Domain Value Count simple average complex

External Inputs ( EIs) 3 3 4 6 =

External Outputs ( EOs ) =


3 4 5 7

External Inquiries ( EQs) 3 3 4 6 =

Internal Logical Files ( ILFs) 3 7 10 15 =

3 5 7 10 =
External Interface Files ( EIFs)

Count total
Value Adjustment Factor

• Based on 14 General System


Characteristics (User
• Business Constraints
Independent of Technology)
• – Examples: data
communications, response
• times, end user efficiency,
multiple sites and
• flexibility
• • Adjusts FP count by up to + /
- 35%
Function Point
• Measure of the amount of functionality
in a product
• Can be estimated early in project
before a lot is known.
• Measure a software project by
quantifying processing functionality
associated with major external data or
control input, output or file types
Computing Function Points -
Step 1
• Establish count for information domain
values
• Number of User Inputs
• Number of User Outputs
• Number of User Inquiries
• Number of Files
• Number of External Interfaces (files)
Computing Function Points -
Step 2
• Associate complexity value with each
count
• Rate the function complexity for each
identified function as
• Simple, Average, Complex
• Compute count total
• Then count the function points for each
function, depending on its complexity
Computing Function Points -
Step 3
• Calculate complexity adjustment values (Fi, where
i[1..14])
• Does the system require reliable backup and recovery?
• Are data communications required?
• Are there distributed processing functions?
• Is performance critical?
• Will the system run in an existing, heavily utilised operating
environment?
• Does the system require on-line data entry?
• Does the on-line data entry require the input transaction to be
built over multiple screens or operations?
• Are the master files updated on-line
• Are the inputs, outputs, files or inquiries complex
Computing Function Points -
Step 3
• Is the internal processing complex?
• Is the code designed to be reusable?
• Are conversion and installation included in the design?
• Is the system designed for multiple installations in
different organisations?
• Is the application designed to facilitate change and
ease of use by the user?
• Answer Each Question using a scale of 0 (N/A) to
5 (Absolutely Essential)
• Sum the 14 complexity adjustment values Fi
Computing Function Points -
Step 4
• Calculate
FP = count total  (0.65 + 0.01Fi)

• 0.65 and 0.01 are empirically derived


constants
• Should calculate weighted average of FPs
also
Reconciling FP and LOC
• Most effort estimation models require LOC
• Example:
• LOC/FP for C is estimated at 128 LOC
• LOC/FP for C++ is estimated at 64 LOC
• LOC/FP for Assembly is estimated at 320 LOC
Example
• A data flow model for SafeHome Software:
– External inputs – password, panic button, and
activate/deactivate (3)
– External inquires – zone inquiry and sensor
inquiry (2)
– Internal logical file – system configuration file (1)
– External output – messages and sensor status
(2)
– External Interface Files – test sensor, zone
setting, activate/deactivate, and alarm alert (4)
Example

Information Weighting factor


Domain Value Count simple average complex

External Inputs ( EIs) 3 3 4 6 =

External Outputs ( EOs ) =


3 4 5 7

External Inquiries ( EQs) 3 3 4 6 =

Internal Logical Files ( ILFs) 3 7 10 15 =

3 5 7 10 =
External Interface Files ( EIFs)

Count total
Example
• Count total
FP = count total  (0.65 + 0.01Fi)
• Where count total is the sum of all FP
entries.
• Fi (I = 1 to 14) are value adjustment factor.
• For this example we assume that VAF =
46
• FP = 50 X [0.65 + (0.01 X 46)] = 56
Function Point
• Based on the projected FP value derived from the
analysis model:
– The project team can estimate the overall implemented
size of the safeHome user interaction function.
– Assume one FP translate 60 LOC (OOL is to be used)
– 12FP are produced for each person-month of effort
– An average 3 errors/FP during analysis and design
reviews
– 4 errors/FP during unit and integration testing
• One FP translate 60 LOC
• 56X60 = 3360 LOC or 3.360KLOC
• 12FP produced one person-month effort
• 56/12 = 4.67 ~ 5 person-month effort
Spell-Checker Specification
The checker accepts as input a document file and an
optional personal dictionary file. The checker lists all
words not contained in either of these files. The user can
query the number of words processed and the number of
spelling errors found at any stage during processing.

Errors Found # Words processed message


Words processes enquiry Spelling # errors message
User Document file Checker Report on misspelled words User
Personal dictionary

Dictionary
Spell-Checker Specification
A. The two external inputs: document filename, personal
dictionary-name
B. The three external outputs: misspelled word report,
number of words processed message, number of errors
so far message
C. The two external inquiries: words processed, errors so
far
D. The two external files: document file, personal
dictionary
E. The one internal file: dictionary A= # external inputs = 2
B= # external outputs = 3
C= # inquiries = 2
D= # external files = 2
E= # internal files = 1
Example

Information Weighting factor


Domain Value Count simple average complex

External Inputs ( EIs) 3 3 4 6 =

External Outputs ( EOs ) =


3 4 5 7

External Inquiries ( EQs) 3 3 4 6 =

Internal Logical Files ( ILFs) 3 7 10 15 =

3 5 7 10 =
External Interface Files ( EIFs)

Count total
Example
• Count total
FP = count total  (0.65 + 0.01Fi)
• Where count total is the sum of all FP
entries.
• Fi (I = 1 to 14) are value adjustment factor.
• For this example we assume that VAF =
28
• FP = 55 X [0.65 + (0.01 X 28)] = 51
Table 2. Components of the technical complexity factor.
F1 Reliable back-up and recovery F2 Data communications
F3 Distributed functions F4 Performance
F5 Heavily used configuration F6 Online data entry
F7 Operational ease F8 Online update
F9 Complex interface F10 Complex processing
F11 Reusability F12 Installation ease
F13 Multiple sites F14 Facilitate change

Each component is rated from 0 to 5, where 0 means the


component has no influence on the system and 5 means the
component is essential (Pressman, 1997). The Technical
Complexity Factor TCF can then be calculated as:

TCF = 0.65 + 0.01(SUM(Fi))

The factor varies from 0.65 (if each Fi is set to 0) to 1.35 (if each
Fi is set to 5) (Fenton, 1997). The final function point calculation
is:

FP = UFC x TCF
Language SLOC per Function Point

Language LOC Language LOC


1GL Default 320 2GL Default Language 107
Language
3GL Default 80 4GL Default Language 20
Language
Access 35 Assembler 62
C 337 C++ 162
COBOL 77 Excel 46
Java 63 JavaScript 58
JSP 59 Oracle 30
Perl 60 RPG II/III 61
Smalltalk 26 SQL 40
VBScript 36 Visual Basic 47

Java = 51 x 63
= 3.213 KLOC

You might also like