Title: Function Points I EEE493 2000
1Function Points I EEE493 2000
Royal Military College of Canada Electrical and
Computer Engineering
- Major Greg Phillips
- greg.phillips_at_rmc.ca
- 1-613-541-6000 ext. 6190
Dr. Scott Knight knight-s_at_rmc.ca 1-613-541-6000
ext. 6190
2Refs
- Pressman, R.S., Software Engineering a
Practitioners Approach 5th Ed., McGraw-Hill,
2001, Chapter 4 - Capers Jones, What are Function Points,
www.spr.com/library/0funcmet.htm - Boehm, Ray, Function Point FAQ, Software
Composition Technologies, Inc., 1997,
http//ourworld.compuserve.com/homepages/softcomp/
fpfaq.htm - Dreger, J.D., Function Point Analysis,
Prentice-Hall, 1989
3Teaching Points
- The software productivity paradox
- Measuring by counting business functions
- Identifying different business function types
4Review
- What is the philosophy behind Wideband Delphi?
- What is a good unit of measure?
5What is a Good Unit of Measure?
- Consider lines of deliverable source code - LOC
- ProductivityGoods or services produced per
unit of labour and expense - Does moving to a higher-order language compiler
increase productivity?
6A Measure of Productivity
- "Goods or services produced per unit of labor and
expense."
7Consider This Estimate
ACTIVITY CASE A
CASE B
ASSEMBLER FORTRAN
VERSION
VERSION
(10,000 LINES) (3,000 LINES) DIFFERENCE
-------------- -------------- --------------
Requirements 2
Months 2 Months 0
Design 3 Months
3 Months 0
Coding 10 Months 3
Months - 7
Integration/Test 5 Months 3
Months - 2 User
Documentation 2 Months 2 Months
0
Management/Support 3 Months 2
Months - 1
-------------- --------------
-------------- Total
25 Months 15 Months -
10
-------------- -------------- --------------
Total Costs
125,000 75,000 - 50,000
Cost Per Source Line 12.50
25.00 12.50
Lines Per Person Month 400
200 - 200
8The Software Productivity Paradox
- Software involves a substantial number of
activities that behave like fixed or inelastic
costs that are not associated with coding. - Requirements analysis
- writing specifications (analysis/design)
- generating user documentation
- project planning/management
- configuration management/change control
- Increasing the efficiency of code generation
increases the cost per line of source code!
9A different Measure of Productivity
- In the late 1970's A.J. Albrecht of IBM took the
position that the economic output unit of
software projects should be valid for all
languages, and should represent topics of concern
to the users of the software. - Measure the functionality of software
- the external aspects of software visible to the
user - the users functional requirement
10Business Functions
- The external aspects/ units of functionality
visible to the user are - the inputs to the application
- the outputs from the application
- inquiries by users
- the data files that would be updated by the
application - the interfaces to other applications
11Weighting the Business Functions
- empirical weighting factors were developed for
the five business function types - e.g. if we had identified one function of each
type
FUNCTION RAW DATA
WEIGHTS POINTS
1 INPUT X 4 4
1 OUTPUT X 5
5 1 INQUIRY X 4
4 1 DATA FILE
X 10 10 1
INTERFACE X 7 7
----
UNADJUSTED TOTAL
30 COMPLEXITY
ADJUSTMENT NONE
ADJUSTED FUNCTION POINTS 30
12Now Consider This Estimate
ACTIVITY CASE A
CASE B
ASSEMBLER FORTRAN
VERSION
VERSION
(30 F.P.) (30 F.P.) DIFFERENCE
-------------- -------------- --------------
Requirements 2
Months 2 Months 0
Design 3 Months
3 Months 0
Coding 10 Months 3
Months - 7
Integration/Test 5 Months 3
Months - 2 User
Documentation 2 Months 2 Months
0
Management/Support 3 Months 2
Months - 1
-------------- --------------
-------------- Total
25 Months 15 Months -
10
-------------- -------------- --------------
Total Costs
125,000 75,000 - 50,000
Cost Per F.P. 4,166.67
2,500.00 - 1,666.67
F.P. Per Person Month 1.2
2.0 0.8
13Finding Business Functions
- We count only those business functions that are
approved - benefits to the end user
- Not
- job control/ operating system functions
- not temporary files
- nothing implementation specific
14Disclaimer
- Real function point counting systems are complex
- They require carefully defined function point
counting guides and practices - We will use a small example system to illustrate
the ideas underlying function point counting - The small example system used is not defined
precisely enough to be used to count real systems - For a real FP counting system see
- The International Function Points Users Group
15Finding Business Functions
End User
Transactions
Input
Output
Inquiry
Application A
Application B
Interface
Shared Interface
A Files
B Files
Interface
Output
Input
Transactions
Transactions
Inquiry
16The 5 Function Types
- Inputs - ITs
- Outputs - OTs
- Inqueries - QTs
- Files - FTs
- Interfaces - ETs
17How We Count
- Count business functions
- Identify business functions
- classify the identified functions
- Adjust raw FP total
- based on application characteristics
18Identifying Outputs
- Each unique user data or control output
- I.e. things that leave the context boundary
- Unique means
- it has a different format
- it has the same format but requires different
processing - Example a report that needs to be generated on a
daily, weekly and monthly bases in both a GUI
screen version and a printed version has 6
different outputs - Example Presenting a table of data on a screen
and a summary of the table at the bottom of the
screen are 2 different outputs
19Finding Business Functions
End User
Transactions
Input
Output
Inquiry
Application A
Application B
Interface
Shared Interface
A Files
B Files
Interface
Output
Input
Transactions
Transactions
Inquiry
20Identifying Inputs
- Each unique user data or control input
- I.e. things that enter the context boundary
- Unique means
- it has a different format
- it has the same format but requires different
processing - Example to screens appear identical but cause a
internal entities to be modified in different
ways or cause the update of different logical
internal files
21Identifying Inquiries
- Each unique user data or control input/output
combination in which on-line user-defined input
causes and generates an immediate on-line output - Unique means
- it has a different format in either the input or
output portion - it has different processing logic in either the
input or output portion
22Identifying Inquiries (contd)
- Must have a simple keythe output must be a
single record or group of related records - I.e.
not a range of records - The output response must be immediate
- The inquiry must not update/change any records
23Identifying Logical Files
- Each major logical group of user data or control
information maintained entirely within the
application boundary - Unique means
- master files that are lasting or permanent data
needed to recorded by the application - a logical collection of data as seen by the user
- NOT - files/groups of temporary transactions or
lists of events that may be used to update
another file
24Identifying Interfaces
- Each major logical file or other group of data or
control information within the application the
application boundary that is sent to, shared
with, or received from another application - This can include transaction files
- Files shared between applications are counted
both as FTs and ETs
25Identifying Interfaces (contd)
Consider Appln A
26When can we Count?
- In early product planning?
- During requirement specification?
- After requirement specification?
- After Design?
- After Delivery?
27Next ClassFunction Points II