Document 7378854

Download Report

Transcript Document 7378854

CS 350: Introduction to
Software Engineering
Slide Set 2
Process Measurement
C. M. Overstreet
Old Dominion University
Fall 2005
Announcement
ACM Welcome back & officers
elections
 Time & place

Tues., Sept, 13, 12:30-1:30
 E&CS first floor auditorium


Refreshments!
Fall 2005
CS 350/ODU
2
Reading assignment

Chapters 3 & 4, PSP text
Fall 2005
CS 350/ODU
3
Lecture Topics



Process measurement
Planning overview
Software size




why measure size
size measurement criteria
the SEI size measurement framework
Counting program size


size counters
coding standards
Process Measurement
Principles

To be useful, measurements should be




gathered for a specific purpose
explicitly defined
properly managed
properly used
Measuring your process will not
improve it. You must make process
changes to achieve lasting improvement.

Process Measurement
Purposes

We measure to:
understand and manage change
 predict or plan for the future
 compare one product, process, or
organization with another
 determine adherence to standards
 provide a basis for control

Measurement Objectives


Measurements only produce numbers.
To be useful, they must:
 relate
to business objectives
 be properly interpreted
 lead to appropriate action
If the business purposes for the
measurements are not understood

 the
wrong data may be gathered
 data may not be properly used
Types of Measurements
We generally need objective and explicit
measures.
 To be useful, we need relationships that
correlate.

program size versus development hours
 cost distributions
 defect densities

We also seek a controlling or predictive
capability.

actions to reduce test defects
 steps to improve review quality
 means to improve productivity

The PSP Measurements

The basic PSP data are



program size
time spent by phase
defects found and injected by phase
Both actual and estimated data are
gathered on every item.
 Measures derived from these data



support planning
characterize process quality
PSP Size Measures

The goals of the PSP size measures are to
define a consistent size measure
 establish a basis for normalizing time and defect
data
 help make better size estimates

Some of the questions these data can help
to answer are

What size program did I plan to develop?
 How good was my size estimate?
 What was the completed size of the finished
program?

PSP Time Measures
The goals of the PSP time measures
are to

 determine
how much time you spend in
each PSP phase
 help you to make better time estimates
Typical questions these data can help
answer are

 How
much time did I spend by PSP phase?
 How much time did I plan to spend by PSP
phase?
PSP Defect Measures

The goals of the PSP defect measures are to
provide a historical baseline of defect data
 understand the numbers and types of defects
injected
 understand the relative costs of removing defects
in each PSP phase

Some questions these data can help answer
are

How many defects did I make in each phase?
 How many defects did I remove in each phase?
 How much time did it take to find and fix each
defect?

PSP Derived Measures

Some PSP derived measures are
 To
Date and To Date %
 Product size developed or reviewed per
hour
 CPI
 % Reuse and % New Reusable
 A/FR
 PQI
You will learn about these measures
in the rest of the PSP course.

Size Measurement
Criteria

Size measurements must be
related to development effort
 precise
 machine countable
 suitable for early planning

Size Versus Development
Effort


The principal requirement: If the size
measure is not directly related to
development cost, it is not worth using.
There are many possible measures.





database elements
lines of code (LOC)
function points
pages, screens, scripts, reports
The size measure should be sensitive to
language, design, and development
practice.
Text Pages Versus Time
120
Time (hours)
100
80
60
40
20
0
0
5
10
15
20
25
Text Pages
30
35
40
45
Script Size Versus Time
60
Time (hours)
50
40
30
20
10
0
0
100
200
300
400
Script Size
500
600
700
Report Size Versus Time
70
60
Time (hours)
50
40
30
20
10
0
0
1000
2000
3000
4000
5000
Report Size
6000
7000
8000
Screen Elements Versus
Time
100
90
80
Time (hours)
70
60
50
40
30
20
10
0
0
500
1000
1500
2000
2500
Screen Elements
3000
3500
4000
C++ LOC Versus Time
6000
Time (min.)
5000
4000
3000
2000
1000
0
0
100
200
300
400
C++ LOC
500
600
700
800
Pascal LOC Versus Time
14000
12000
Time (min.)
10000
8000
6000
4000
2000
0
0
200
400
600
800
1000
1200
Pascal LOC
1400
1600
1800
2000
Relationship to
Development



Pages are often an acceptable
measure for document development.
LOC is usually a good measure for
developing source programs like
Pascal and C++.
Other possible measures are function
points, screens, modules, database
elements, and maintenance fixes.
Precision and Accuracy
Imprecise and inaccurate
x
x x
x
x
x
Precise and inaccurate
xx x
xx x
x
x
Imprecise and accurate
x
x
x
x
x
x
x
Precise and accurate
x x
x x
x x
x
Measurement Precision



When two people measure the same thing,
will they get the same result?
To do so requires a precise measurement
definition.
The measure must also be properly applied.





Different people will likely have different
definitions of database elements.
Pascal LOC do not equate to assembler LOC.
New LOC are not the same as modified LOC.
Logical LOC do not equate to physical LOC.
One person’s C++ LOC may not relate to
someone else’s C++ LOC.
Machine Countable
Manual size counting is timeconsuming and inaccurate.
 Automated counters will only
work for defined product
characteristics.
 Counters can be complex,
depending on the

size definition selected
 counting method used

Suitable for Early
Planning - 1

For making initial project plans,
measures are needed that you can
visualize at the beginning of the job.




For a house, square feet predicts cost.
Few people can visualize a house in terms
of square feet of living space.
Numbers of rooms is more intuitive.
Intuitive size measures are usually
needed for initial plans.
Suitable for Early Planning
-2


Unfortunately, popular intuitive
measures are not often measurable,
and popular measurable measures are
often not intuitive.
Function points



intuitive
not directly measurable
LOC


not intuitive
directly measurable
Selecting a Size Measure
-1

Start with product development data.





resources required
product characteristic measures
any special development conditions
Rank products by resources required.
See what characteristics distinguish
those products that took the greatest
effort from those that took the least.
Selecting a Size Measure
-2

See if these differences are
measurable.



Correlate a selected measure for the
product set.
If there is no correlation, try again.
There may be no single best measure.


A combination of measures could be
needed.
Methods for handling multiple measures
are discussed later.
Selecting a Size Measure
-3


If you are better at estimating
resources than program size, size
estimation will not improve your
planning.
If you estimate resources directly, you
must



keep accurate records
build a large database
use an estimating guru
Counting Program Size

Logical lines





invariant to editing changes
correlate with development effort
uniquely definable
complex to count
Physical lines



are easy to count
are not invariant
must be precisely defined for each case
CS 350 LOC Measurement




The CS 350 LOC measure uses logical
(versus physical) lines of code.
Key advantage: it’s easy to apply
What matters is consistent measures
Count the number of lines containing
at least one semi-colon

Can use UNIX command:
grep “;” *.h *.cpp | wc –l

Assumes all source code for a module is in
a single directory
Size Accounting
For small products, size tracking
can be done manually, but it
requires care.
 For larger products, size tracking
requires an accounting system.
 Size accounting provides an
orderly and precise way of
tracking size changes through
multiple product versions.

Example of Size
Accounting - 1
Version 0
350 LOC
Enhance to version 1
+ 125 added and
modified LOC
Expected size
350+125=475 LOC
Measured size
450 LOC
What happened?
Example of Size
Accounting - 2
Added
Subtracted
Base V0
0
0
Deleted
Modified
0
Added
350
Base V1
350
Added
V1 Product
0
-0
350
0
Deleted
Modified
Base
25
25
100
125
Total Added and Modified LOC
-25
450
475
Messages to Remember





To effectively plan and manage your
work, you must measure product size.
For different types of work, use
different size measures.
For each measure, size must correlate
with development time.
If the size measure does not correlate
or is not automatically countable, it will
not be very useful.
Every size measure should be precisely
defined and automatically countable.
Personal Software
Process
Using PSP0.1
Tutorial Objectives

After this tutorial, you will
understand the PSP0.1 process
 know how to use the PSP0.1 process
scripts and forms
 be prepared to use PSP0.1 for program
2

PSP0.1 Objectives

The objectives of PSP0.1 are to help
you to
measure the size of the programs that
you produce
 perform size accounting for the
programs that you produce
 make accurate and precise size
measurements

New Process Elements

There are two new process elements.



process improvement proposal (PIP) form
size counting and coding standards
The project plan summary has been
expanded.


a Program Size Summary section has been
added
planned time in phase is calculated based on
historical time in phase percentage
PSP0.1 Process Script
Additions

The additions to the PSP0.1 process
scripts include new steps for
estimating and reporting software size
 distributing development time over
planned project phases
 using a size counting and coding
standard
 recording process problems and
improvement ideas

Process Improvement
Proposal - 1


To improve your process, you will need to
capture process problems and propose
improvements for future reference.
You will need to know



any problems you have encountered in using
the process
any suggestions you have for process
improvements
your observations and findings from doing the
assignments
Process Improvement
Proposal - 2


You should complete a PIP form for
each assignment.
The PIP holds process improvement
information.




date
problem description
proposed solution
notes and comments
Coding and Counting
Standards


Coding and size counting standards are
needed to write the PSP programs.
These standards are



tailored to your language and needs
designed to make size counting easier
The coding standard defines qualityoriented exit criteria for the code phase.
PSP Software Size Measures

In the PSP, software size measures are
used to






relate the amount of product produced with
effort expended to project total effort
calculate productivity
normalize defects
project the total defects
Software size is measured in LOC.
To accurately relate size to effort, the
different types of LOC in your program
are counted separately.
PSP0.1 Project Plan
Summary


PSP0.1 adds the Program Size
Summary for estimated and actual size
data.
The types of size include







base [B]
deleted [D]
modified [M]
added [A]
reused [R]
added and modified [A+M]
new reusable
Program Size Type
Relationships
Base program
New program
New
Reusable
Modified
Added &
Modified
Added
Deleted
Untouched
Fall 2005
Reused
CS 350/ODU
47
Estimating Size

1.
2.
During planning
If this is an enhancement, measure the
size of the base program and enter this
in the Base (B) space under Actual.
Estimate the added and modified size
and enter this in the Total Added and
Modified (A+M) space under Plan.
Estimating Development
Time

1.
2.
During planning
Enter estimated development time
Planned time in phase is then calculated
based on the percentage of time in
phase for all completed projects
Recording Size - 1

1.
2.
3.
During postmortem
Measure total program size and enter
this in the Total Size (T) space under
Actual.
Count the deleted size and enter this in
the Deleted (D) space under Actual.
Count the modified size and enter this in
the Modified (M) space under Actual.
Recording Size - 2

1.
2.
During postmortem
Count the reused size and enter this in
the Reused (R) space under Actual.
Count or estimate the number of new
and changed size that will be added to
the reuse library and in the New
Reusable space und Actual
Message to Remember

Your principal objective is to
measure and estimate the size of
the programs that you produce so
that you can effectively plan and
manage your work.