You are on page 1of 40

Subject: SPM

Lecture 10
Software Metrics
Measuring Software Size:
Function Point (FP), Feature
Point, Object Point and Use-
case Point
Function-Oriented Metrics
Function Point (FP) is a weighted measure of software
functionality.
The idea is that a product with more functionality will be
larger in size.
Function-oriented metrics are indirect measures of software
which focus on functionality and utility.
The first function-oriented metrics was proposed by Albrecht
(1979~1983) who suggested a productivity measurement
approach called the Function Point (FP) method.
Function points (FPs) measure the amount of functionality in
a system based upon the system specification.
Function Point (FP) /1
Function Point (FP) /2
Function Point (FP) is a weighted measure of
software functionality.
FP is computed in two steps:
1) Calculating Unadjusted Function point Count (UFC).
2) Multiplying the UFC by a Value Adjustment Factor
(VAF)
The final (adjusted) Function Point
FP = UFC × VAF
1. External Inputs (EI)
External Inputs - IFPUG Definition:
An external input (EI) is an elementary
process that processes data or control
information that comes from outside
the application boundary
The primary intent of an EI is to
maintain one or more ILFs and/or to
alter the behavior of the system

Example:
Data entry by users
2. External Outputs (EO)
External Outputs - IFPUG Definition:
An external output (EO) is an elementary process
that sends data or control information outside the
application boundary
The primary intent of an external output is to present
information to a user through processing logic other
than, or in addition to, the retrieval of data or control
information

Example:
Reports created by the application being counted,
where the reports include derived information
3. External Inquiries (EQ)
External Inquiries - IFPUG Definition:
An external inquiry (EQ) is an elementary
process that sends data or control information
outside the application boundary
The primary intent of an external inquiry is to
present information to a user through the
retrieval of data or control information from an
ILF or EIF
The processing logic contains no mathematical
formulas or calculations, and creates no derived
data

Example:
Reports created by the application being
counted, where the report does not include any
derived data
4. Internal Logical Files (ILF)
Internal Logical Files - IFPUG
Definition:
An ILF is a user-identifiable group of logically
related data or control information maintained
within the boundary of the application
The primary intent of an ILF is to hold data
maintained through one or more elementary
processes of the application being counted

Example:
Tables in a relational database
Files
5. Ext. Interface Files (EIF)
External Interface files - IFPUG
Definition:
An external interface file (EIF) is a user
identifiable group of logically related data or
control information referenced by the
application, but maintained within the
boundary of another application
The primary intent of an EIF is to hold data
referenced through one or more elementary
processes within the boundary of the
application counted
This means an EIF counted for an application
must be in an ILF in another application

Example:
As for ILF, but maintained in a different system
FP Counting: Weighting of
Technical Complexity
Elements Complexity Weighting Factor

low average high Sum

External Inputs (EI)


__ x 3 = _____ __ x 4 = _____ __ x 6 = _____ _____

External Outputs (EO)


__ x 4 = _____ __ x 5 = _____ __ x 7 = _____ _____

External Inquiries
__x 3 = _____ __ x 4 = _____ __ x 6 = _____ _____
(EQ)
External Interface
__ x 5 = _____ __ x 7 = _____ __ x10 = _____ _____
Files (EIF)
Internal Logical Files
__ x 7 = _____ __ x10 = _____ __ x15 = _____ _____
(ILF)

Unadjusted Function Points (UFP)


DET: a data element type is a unique user recognizable, non-repeated field. For
example, an account number that is stored in multiple fields is counted as one
DET.

RET: A record element type is a user recognizable subgroup of data elements


within an ILF or EIF.

FTR: A file type referenced is An internal logical file read or maintained


by a transactional function or An external interface file read by a
transactional function
For EI
Low=3
Average=4
High=6

Complexity weight for EI=low


For EO & EQ
Low=4
Average=5
High=7
For ILF For ELF
Low=7 Low=5
Average=10 Average=7
High=15 High=10
Value Adjustment Factor (VAF) /1
Value Adjustment Factor (VAF) (aka. Technical
complexity factors) is a weighted sum of 14
components, given below:
F1 Data Communications F8 On-line Update
F2 Distributed Data Processing F9 Complex Processing
F3 Performance F10 Reusability
F4 Heavily Used Configuration F11 Installation Ease
F5 Transaction Rate F12 Operational Ease
F6 On-line Data Entry F13 Multiple Sites
F7 End-User Efficiency F14 Facilitate Change
Value Adjustment Factor (VAF)
1. Data Communications: The data and control information used in the application
are sent or received over communication facilities.
2. Distributed Data Processing: Distributed data or processing functions are a
characteristic of the application within the application boundary.
3. Performance: Application performance objectives, stated or approved by the
user, in either response or throughput, influence (or will influence) the design,
development, installation and support of the application.
4. Heavily Used Configuration: A heavily used operational configuration,
requiring special design considerations, is a characteristic of the application.
5. Transaction Rate: The transaction rate is high and influences the design,
development, installation and support.
6. On-line Data Entry: On-line data entry and control information functions are
provided in the application.
7. End-User Efficiency: The on-line functions provided emphasize a design for
end-user efficiency.
Value Adjustment Factor (VAF)
8. On-line Update: The application provides on-line update for the internal logical
files.
9. Complex Processing: Complex processing is a characteristic of the application.
10. Reusability: The application and the code in the application have been
specifically designed, developed and supported to be usable in other applications.
11. Installation Ease: Conversion and installation ease are characteristics of the
application. A conversion and installation plan and/or conversion tools were
provided and tested during the system test phase.
12. Operational Ease: Operational ease is a characteristic of the application.
Effective start-up, backup and recovery procedures were provided and tested
during the system test phase.
13. Multiple Sites: The application has been specifically designed, developed and
supported to be installed at multiple sites for multiple organizations.
14. Facilitate Change: The application has been specifically designed, developed
and supported to facilitate change.
Value Adjustment Factor (VAF) /2
Each component is rated from 0 to 5, where 0
means the component is not relevant to the system
and 5 means the component is essential.
VAF can then be calculated as:

VAF varies from 0.65 (if all Fj are set to 0) to 1.35


(if all Fj are set to 5)
Final Function Point is: FP = UFC × VAF
Solved the example (1 mark)
Example: Compute the function point, productivity, documentation, cost
per function for the following data:
1. Number of user inputs = 24
2. Number of user outputs = 46
3. Number of inquiries = 8
4. Number of files = 4
5. Number of external interfaces = 2
6. User documents = 122 pages
7. Cost = $7744/ month
Various processing complexity factors are: 4, 1, 0, 3, 3, 5, 4, 4, 3, 3, 2, 2, 4,
5.
Example 2
Example 2(Cont’d)
Example 2(Cont’d)
Example 2(Cont’d)

Unadjusted function
count=?
Example 2(Cont’d)

Calculate Adjusted Function Point=?


The size of the software is attained by multiplying the FP
counts with the average number of line of codes per
function point of the programming language used [1] to
transform the FP counts to number of line of codes (LOC).

LOC= FP * (No of statement/FP depending on Language)

The required effort is estimated using COCOMO cost


estimation model as follows: 1.05
Effort = c * (size in LOC) = 2.4 * (Size)
0.38
TDEV = 2.5 x (EFFORT) in months
FP: Advantages - Summary
Can be counted before design or code
documents exist
Can be used for estimating project cost,
effort, schedule early in the project life-cycle
Helps with contract negotiations
Is standardized (though several competing
standards exist)
FP: Critics

Reading Assignment
Software Quality Metrics
Measuring quality through
Correctness
It is degree to which software performs its required function
Common measure= defects per KLOC
For quality assessment defects are counted typically for 1 year
Maintainability
It is the ease with which a program can be
corrected if an error is found
Adapted if environment changes or
Enhanced if customer desires
Measured indirectly, e.g., Mean-time-to change (MTTC)
It measures when a error is found, how much time it takes to analyze the
change, design the modification, implement it and test it.
Maintainable programs -> lower MTTC
Software Quality Metrics
Integrity
System’s ability to withstand (accidental & intentional)
attacks
Two more attributes that help determine integrity
threat = probability of attack within a given time (that causes
failure)
security = probability that an attack will be
repelled/removed.
Integrity =  [1 – (threat * (1 – security))]
Usability
It quantifies ease of use and learning (time)
References

[1] C. Jones, Applied Software Measurement, Assuring Productivity and Quality,


2ed, McGraw-Hill, 1997.
[2]. http://www.softwaremetrics.com/fpafund.htm

You might also like