Title: EE493'09 Function Points References:HvV 7'3'5
1EE493.09Function Points
ReferencesHvV 7.3.5
Royal Military College of Canada Electrical and
Computer Engineering
- Professor Greg Phillips
- Greg.Phillips_at_rmc.ca
- 1-613-541-6000 ext. 6656
Major JW Paul Jeff.Paul_at_rmc.ca 1-613-541-6000
ext. 6091
2There are two ways of constructing a software
design One way is to make it so simple that
there are obviously no deficiencies The
other way is to make it so complicated that
there are no obvious deficiencies. The first
method is far more difficult. -- C.A.R.
Hoare
3How do you count function points?
- Release 4.0 of the IFPUG Function Point Counting
Practices Manual is about 200 pages long. Many
people feel that it does not adequately explain
the function point counting process six page
magazine articles or summaries in more general
textbooks do not accomplish this either..... - But - it is NOT complicated (YMMV)
4Software Paradox
- ProductivityGoods or services produced per
unit of labour and expense - What is productivity in software?
- SLOC?
- Completed Applications?
- User Stories?
- UML use cases?
5Remember 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
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
6Comparison
http//www.csee.umbc.edu/mikeg/cmsc645/function_p
oint.html
7What do you count
- Functionality from a user perspective
- ie what does the application do
- Look at
- Logical Data Grouping
- Logical Transactions
- (complicating aside - algorithims)
8Functions Points at a glance
9Types of Function Points
- Transaction
- external inputs IT (EI)
- external outputs OT (EO)
- external inquiries QT (EQ)
- Data
- internal Logical Files FT (ILF)
- external interface files ET (EIF)
10Internal Logical File (ILF)
- a group of logically related data or control
information that is maintained by the application
itself. Must - be logical grouping user identifiable
- maintained through an elementary process within
the application boundary
11External Logical File (ELF)
- logically related, user identifiable data or
control information that is not maintained within
the application boundary - be logical grouping user identifiable
- be external to the application
- maintained through an elementary process outside
the application boundary (ie is an ILF of another
app).
12External Output
- an elementary process in which derived data
passes across the boundary from inside to
outside. Additionally, an EO may update an ILF.
13External Inquiries
- an elementary process with both input and output
components that result in data retrieval from one
or more internal logical files and external
interface files. The input process does not
update or maintain any FTRs (Internal Logical
Files or External Interface Files) and the output
side does not contain derived data. .
14External Inputs (EI)
- an elementary process in which data crosses the
boundary from outside to inside. - This data may come from a data input screen or
another application. - The data may be used to maintain one or more
internal logical files. - The data can be either control information or
business information. - If the data is control information it does not
have to maintain an internal logical file
15To determine weighting
- Raw Count
- Type of Function Point Complexity
- FTR (File Types Referenced)
- DET (Data Element Types)
- Adjusted Count
- Based on organizational factors
16Adjusting the raw value
of data elements of file
types 1-4 5-15 gt15 0-1 simple
simple average 2-3
simple average complex gt3
average complex complex
An ongoing research effort The International
Function Points Users Group
17Relative weighting
- function point simple average complex
- input 3 4 6
- output 4 5 7
- inquiry 3 4 6
- files 7 10 15
- interfaces 5 7 10
- If all were average complexity
UFP 4IT 5OT 4QT 10FT 7ET
18Organizational/Environment Adjustment Factors
- fpadj fpraw (0.65 .01 TDI)
19(No Transcript)
20Example
21The Weather Application
- The following application was designed to capture
temperature and rainfall by city and state.
There is only one input screen, one file and one
report. Each field on the following input screen
can be modified (add, changed or deleted). The
add and change functions are different. All
previous entries viewed by using the scroll bar.
Assume a VAF of 1.0.
22Weather Application Example
23Questions?
24What are they good for...
- Defining When and What to Re-Engineer
- Estimating Test Cases
- Understanding Wide Productivity Ranges
- Understanding Scope Creep
- Calculating the True Cost of Software
- Estimating Overall Project Costs, Schedule and
Effort - Understanding Maintenance Costs
- Help with contract negotiations
- Understanding the appropriate set of metrics
25What are they not good for...
- Performance tuning
- related to interaction of function
- Web Design
- high graphic intensity
- Small projects
- individual skill is confounding factor
- Maintenance
- primarily detective work on internal relations
26So what is the point of this class
- If you want to measure productivity, SLOC is a
poor measure - Function Points (and similar systems) can provide
a better estimate - Why do we want a better estimate?
27Questions?
28On Computers
- For a long time it puzzled me how something so
expensive, so leading edge, could be so useless - and then it occurred to me that a computer is a
stupid machine with the ability to do incredibly
smart things, - while computer programmers are smart people with
the ability to do incredibly stupid things. - They are, in short, a perfect match.
- Bill Bryson, Notes from a Big Country