Software Process and Project Metrics
1
Normalization for Metrics
Normalized data are used to evaluate the process
and the product (but never individual people)
size-oriented normalization —the line of code approach
function-oriented normalization —the function point
approach
2
Typical Size-Oriented Metrics
errors per KLOC (thousand lines of code)
or FP
defects per KLOC or FP
$ per LOC or FP
page of documentation per KLOC or FP
errors / person-month
LOC per person-month
$ / page of documentation
3
Why Opt for Function Point (FP)
Measures?
independent of programming language
uses readily countable characteristics of the
"information domain" of the problem
does not "penalize" inventive implementations that
require fewer LOC than others
makes it easier to accommodate reuse and the
trend toward object-oriented approaches
4
Analyzing the Information Domain
m easurement param eter
count
weighting factor
s im ple avg. com plex
num ber of user inputs
X 3
4
6
=
num ber of user outputs
X 4
5
7
=
num ber of user inquiries
X 3
4
6
=
num ber of files
X 7
10
15
=
num ber of ext.interfaces
X 5
7
10
=
count-total
complexity multiplier
function points
5
Taking Complexity into Account
Factors are rated on a scale of 0 (not important)
to 5 (very important):
data communications
distributed functions
heavily used configuration
transaction rate
on-line data entry
end user efficiency
on-line update
complex processing
installation ease
operational ease
multiple sites
facilitate change
6
LOC per Function Point
Assembly language
C
COBOL
Fortran
C++
Visual Basic
Smalltalk
SQL
320
128
106
106
64
32
22
12
7
Criticism of Function Point
measurement
The weighting factor makes the FP number
highly dependent on the developer’s
experience:
The developer can essentially set the FP
number to what the developer wants
8
(All? Most?) Projects are Late
Project estimation is difficult
Effort is not progress
Management sets unrealistic goals
Schedules poorly monitored
Brooks law: adding persons to a late project
makes it later
NOTE: Your project will note be late!
9
Partitioning Tasks
Perfectly partitionable task
Unpartitionable task
Partitionable task requiring communication
Task with complex interelelationships
10
Programmers are Optimists
All will go well (Murphy’s Law doesn’t apply to our
project)
Each task will only take as long as it ought to
take
No one (on our project) will ever get sick, take
vacation time, or have family emergencies
Programmers get to spend all their time
programming (never in meetings, conferences,
travel)
11
Brooks Scheduling Rule of Thumb
1/3 Planning
1/6 Coding
1/4 component and early system test
1/4 system test
40-20-40 rule (40% design, 20% code, 40% test)
“Testing is usually the most mis-scheduled part of
programming”
12
Piwowarski Scheduling Algorithm
Estimate all tasks assuming the experience of the
person doing it (not yourself)
Add 25% to this for overhead (meetings,
vacation, travel, etc.)
Add 25% of the previous step for contingency
(nothing ever goes right)
If you do the above ….
13
You still may be late!
14
Scheduling Example
All tasks to be done by your team (including
testing documentation, etc.) 160 PM
Add 25% for overhead 200 PM
Add 25% for contingency 250 PM
The final number is over 50% greater than the
original estimate of “actual” work that needs to be
done
15
Programmer Productivity
Is lower (in LOC per PM) than you think!
Studies and models (Brooks, Pressman) vary
widely
Some projects at IBM used a rule of thumb of
100-200 lines per person month
16
Productivity
Reasons for low LOC/PM: (see Programmers are
Optimists)
Productivity highly dependent on the task:
System Code vs. application code
New programs vs. modification to current programs
Experience of programmers
10 to 1 difference in programmer productivity
No “formula” will work
You must make adjustments for your project
17
Brooks Advice for Late Projects
DON’T ADD PERSONS TO A LATE PROJECT
But you can:
Reschedule (but “take no small slips”) – Can’t be
done for your project
Trim the task (drop the unneeded features - the
“bells and whistles”)
18
What can be done for
CS499 projects
START ON TIME AND KEEP TO YOUR
SCHEDULE
Have project checkpoints during the semester to
keep you to your schedule
Drop the “bells and whistles” (but check with your
customer first), BUT:
Make sure essential customer requirements are
met
19