PSP Resources Page
at the
University of Karlsruhe
This page contains pointers to resources for supporting the Personal
Software Process (PSP).
PSP is a software engineering methodology by which an individual software
developer can continously improve his or her abilities, in particular:
-
learn to make accurate predictions of time required and quality obtained;
-
improve the quality of the software produced;
-
learn how to evaluate technology and methods.
Contents
-
Introduction
-
Documents describing PSP terms
-
Tools for automating PSP data collection/analysis
-
Forms in various formats for doing PSP
-
Misc tools, forms, and docs not directly tied to PSP
-
External resources and other people's PSP pages
Introduction
The IPD Software Engineering group
uses and teaches PSP, and now offers its PSP tools to all of you PSP users
out there.
Future extensions of this page might be
-
a collection of FAQs regarding the use of the PSP, the "Discipline" (Watts
Humphrey's book, "A Discipline for Software Engineering"), and related
topics,
-
errata to the "Discipline,"
-
a GQM collection providing you with many hints for improving your own PSP,
-
a collection of personalizations to the PSP,
-
a PSP database standard (to be discussed),
-
a PSP database with voluntarily contributed PSP data - hopefully according
to the standard,
-
even more links to internal and external PSP resources.
Of course, your contributions - data, tools, opinions, hints, remarks,
requests, corrections, questions, and answers - are welcome and necessary.
This PSP resource collection can work only if as many of you as possible
take part in building it up. Please feel free to
contact us.
The rest of this page links to all the tools and forms we use when doing
and teaching PSP. The forms differ somewhat from those in the "Discipline";
the changes are due to our experiences in using them for our own work and
using them in teaching PSP. So they are somewhat "personalized" but they
still are generic enough to be used (and adapted) by others. The reasoning
for our changes can be obtained here.
Versions compressed with gzip are for Unix users, and
versions compressed with pkzip are for PC users.
[Go to top of page.]
The Documents
Standards
The Defect Type Standard Explained
As printed in the "Discipline," the DTS (Defect Type Standard) falls short
in explaining which defect classes defects belong to. Although this might
seem obvious at first glance, or after reading the original sources, it
is not clear whether these classifications are appropriate for PSP purposes.
You always find a defect which could belong to one class as well as to
another. Here's the definition our group has agreed upon, available in
HTML,
ASCII,
MS Word 3.0, or
MS Word 7.0.
Alternatively, we suggest that you use a
better defect type standard.
Please remember: The definitions available here are not necessarily
the most appropriate ones for you.
They are quite reasonable, but you can (and should) adapt them to your
needs where necessary.
[Go to top of page.]
The Tools
Tools for Time and Defect Logging
Our Own tools
pplog-mode.el - A major mode
for GNU Emacs/XEmacs.
Supports logging of worktime,
defects, and interruptions. Arbitrary collections of workphases,
defect types, and interrupt types can be used, hence the tool is
useful beyond pure PSP use. Matches well with evalpplog for
evaluation of logfiles.
How to use it:
The mode defines some key to be the logging
key. Pressing it switches between the current buffer and a logging
buffer. There you are shown a current time stamp, and you can enter
a description of the event which took place at that time - typically
the start or end of a PSP phase, interruption, or defect removal.
Pressing the logging key again switches back
to the buffer you came from in the first place. You may have multiple
log buffers open at the same time. There is highlighting for
identifying open phases, errors, and interruptions. Entries are
syntax-checked. There is support for semi-automated timestamp corrections.
Just like PPLog Control, pplog-mode
produces pplog files compatible with evalpplog
(but not with evalpsp, which expects the default
Unix timestamp format instead of the more logical ISO timestamp format.).
Download pplog-mode.el
and insert the line
(load-file "<path>pplog-mode.el")
into your .emacs file, somewhere near the end.
Replace
<path> with the path where you put the file. (You may omit
the path if it is in the same directory as .emacs.)
Next time you start emacs, or after you say M-x
load-file <path>pplog-mode.el, you can use emacs
for time and defect logging. Use '.ppl' as the file extension
for your pplog files, then Emacs will recognize them automatically.
The default hotkey will be F8. Press it and then use 'C-h m' to view
the extensive mode help for details.
PPLog Control now PSPLog Control - time and
defect logging for MS-Windows users.
This program is a small but full-featured GUI application for Win32 operating
systems. For PSP time and defect logging, this application is clearly
better suited than Timmie (although I would
still recommend pplog-mode for Emacs users).
The extent of phases, defects, and interrupts is nicely highlighted by
graphical bars in the log. Timestamps can be corrected, entries
can be added normally at the end or can be deleted, modified, or
moved later. The core functions can be used from a mini-icon in
the task bar without opening the main window.
We wish to thank Andre Klein Kranenbarg who enhanced PPLog Control.
The newest Version is now 4.0.4.1. It is now called PSPLog Control.
makelog - a pplog-mode substitute for
Turbo Pascal Users and other command-line
PC Users by Stefan
Vogt
This program opens the log file from disk and guides you through entering
a single event. The event log looks nearly exactly the same as with
psp_log.el, so it can be fed into evalpsp, too
(see below.) When you download the source, you can
add it to your Turbo Pascal workbench and start it by pressing CTRL-F9.
The executable is stand-alone and doesn't need Turbo Pascal, but you can't
customize it, you must use the standard evalpsp/evalpplog
phase names.
A variant of it, makelogl, contains a loop which breaks
only after the end of the postmortem phase has been entered. This makes
it possible to have it stay around if run in a separate Command Prompt
window.
evalpsp - a Perl Script for Extracting Statistics
from Time and Defect Logs
Needs Perl version 5. Use evalpsp -h for help on command
line syntax.
Unix: Put it somewhere on your executable path (say echo
$PATH to find out), so your shell can find it. If you use a C
shell or a derivative thereof, you should say rehash so
caches are cleared. Then, make a link to it from evalpsp.1 within
some directory named man1 in the manual path (say
echo $MANPATH to find out.) The latter is necessary because both
the Perl script and the man page are contained within the
same file. Check that the path mentioned on the first line of the script
contains the perl executable. If not, change it to do so.
Then, you can invoke it by just saying evalpsp. You can
read the man page by saying man evalpsp.
MS DOS: Put it somewhere where you can easily find it or where you
need it most often. Invoke it by saying perl evalpsp when
you are in that directory. Or you may put it into the Perl packages directory
where Perl can find it wherever you are.
When supplied with the name of a PSP time and defect log file - as produced
by psp-log.el (see above) or
makelog, (see above), or Windows Notepad
(see below), for example - evalpsp will
spit out a listing of the defects logged, followed by a looooooooooong series
of statistics useful for filling out PSP forms and performing PSP analyses.
Among others, you no longer need to calculate phase durations or defect
statistics by hand! More information about using evalpsp can
be found in the man page here.
evalpplog - a Perl Script for
Extracting Statistics from Time and Defect Logs
evalpplog is the successor to evalpsp and
is usually prefered.
Most of what is said above about evalpsp does also apply to evalpplog.
Here is a summary of the main differences:
- You can have an arbitrary number of independent defect
classifications (e.g. type, reason, location, ...) instead of
just exactly two fixed ones.
- No assumptions about specific phases or phase orderings are made.
Hence you can use it for whatever kinds of processes you like.
Evalpsp was inflexible in this respect.
(The backside to this change is that a very few of the less
important statistics can no longer be computed).
- The structure of the tables is more regular.
- The command line options are simpler.
- Evalpplog supports the new, more logical time stamp format
produced by pplog-mode.el, namely yyyy-mm-dd hh:mm:ss (which
can easily be sorted) in addition to the odd ill-ordered old
one as produced by some of the older tools and by Unix 'date'
(e.g. Fri Sep 4 09:34:36 MET 1998).
- You can now get HTML and LaTeX output instead of just plain ASCII.
- The manual page has been improved.
- Evalpplog has been cleaned up and is more compact than evalpsp.
- etc.
Here is evalpplog itself,
plus a formatted version of its manual page
evalpplog.manual. The
nroff source of the manpage is also included in the evalpplog script proper.
Using Windows Notepad's Time Stamp Feature
(This is thanks to Stefan Vogt).
The Windows Notepad accessory can be productively used in combination with
evalpsp. It has a built-in time stamp feature which can be invoked
by pressing the F5 key. Because the format of the time stamp is slightly
different from that produced by emacs /psp-log.el,
you must patch evalpsp by changing the input splitting
lines in the process subroutine to read like this:
# here is where the line is being split into its fields. changes
are necessary only here!
( $time, $date, $event,
@rest ) = split;
( $day, $month, $year)
= split /./, $date;
( $hour, $minute
) = split /:/, $time;
$seconds = 1;
Timmie - Multi-day, multi-project time logging
and defect logging (Java application)
Timmie provides a window with a list of projects. When you click on a project,
time is counted for that project. You can add and remove projects as required
and can also change the time for a project by hand, much like titrax
(see below). But when you double-click a
project, a window opens where you can log events. Very useful in combination
with evalpsp (see above)! Needs
Java version 1.1. It comes as a set of classes, all within package
timmie. Put the directory named timmie somewhere
on your classpath. To invoke it, cd to a directory where
you want the log files stored, and say java timmie.Timmie.
Here's a short readme
file on how to use it; a more elaborate version is under way. Caveat
for German users: Java does not currently handle daylight saving time correctly.
This is due to the fact that the days when DST is switched on and off have
changed only recently. This only affects the display of the current time,
though, and will go away soon.
accumtimmie
- Extended Timmie Main Output Evaluation Perl Script
If you use Timmie (see above), and
do not need the full generality of evalpsp - especially
its defect logging evaluation features - you can use this script to get
summary reports on the main Timmie log files. It
is possible to group activities hierarchically into projects and to calculate
project totals. This is useful for getting an overview of other activities,
outside your core personal software process. For titrax (see
below) files, you can use this script to get more detailed and more
comprehensive evaluation output than with titrax's sumtitrax script, which
works only for weeks. Here's a (German) readme
file on how to use accumtimmie.
[Go to top of page.]
External Resources
The psp_log.el/evalpsp combination calculates
phase durations with seconds as units. If you don't need that exact time
data, you could use titrax (short for TimeTracker, formerly
known as timex) as time logging tool; it works on a minutes
base. It is written in C and runs under X, and because it is independent
of other programs, it can be used for different purposes at the same time.
It also provides a Perl script for simple analysis. Also consider using
accumtimmie (see above.) Download
titrax from the appropriate mirror in
America,
or Asia
(the last one currently unavailable.)
psptool is a tcl/tk script that runs under X/Unix or an
Win32S application. It provides time and defect logging in a convient fashion.
It also generates a PSP-2.1-like plan summary sheet giving LOC/h, Defects/KLOC
and so forth. You fill in a few fields as per the usual summary form, and
it calculates the rest from the logs. Maybe there will be a Windows version
in the future.
Download version 0.5 here - gzipped.
See documentation (for version
0.5, maybe outdated)
[Go to top of page.]
Tools for LOC Counting and Accounting
Our Own tools
Three programs; one to insert comment delimited tags into the source you
are working on, one to count LOC (base, modified, added, deleted) based
on these tags, and one to remove the tags from the source. Download here
- pkzipped
(use pkunzip
to decompress.) The sources are also available - pkzipped
(use pkunzip
to decompress.) Here's a (German) readme
file on how to use them.
locdelta
- Unix LOC Accounting
This perl script calls a program which converts your source code into a
"one logical line per physical line" representation (you must supply this
program.) Then, it calls diff with the transformed source
and evaluates the output to give base, modified, added, and deleted LOC
counts.
[Go to top of page.]
External Resources
Java LOC counter and Java diff on
Philip Johnson's course pages
[Go to top of page.]
The Forms
Please note that we've modified some of the forms - here's
why and how.
We offer the forms in three different formats: ASCII, PostScript, and
MS Excel. Any forms not included here do not differ from those in the "Discipline",
so you can either set up your own version (especially true for ASCII users)
or make copies from those in the book.
Abbreviations used in naming files: PPS (Project Plan Summary) - PMT
(Probe Method Template) - SET (Size Estimating Template) - TET (Time Estimating
Template) - TPT (Time Planning Template) - SPT (Schedule Planning Template)
ASCII
Quite useful if you are a Unix crack or an emacs addict
and already plan to use the psp.el emacs extension.
PostScript
The fastest and most portable way to get clean printouts of the forms.
These are only forms which we have modified.
MS Office
Using Excel as a DTP tool, with real spreadsheet functionality as a planned
extension. The PostScript versions really are just a printout of these
files.
-
Excel 7.0 (13 worksheets in one .xls file) - unzipped
without Defect Type Standard - pkzipped
(use pkunzip
to decompress) including the Defect Type Standard in MS Word 7.0
format.
-
Excel 4.0 (13 single worksheets) - pkzipped
(use pkunzip
to decompress) including the Defect Type Standard in MS Word 3.0
format.
The proposed Defect Type Standard can be obtained separately - see
above.
The following versions of the forms are meant
for participants of our IBK course. The only difference is that the Project
Plan Summary for PSP level 1.1 is missing.
ASCII
PostScript
MS Office
-
Excel 7.0 (12 worksheets in one .xls file) - unzipped
without Defect Type Standard - pkzipped
(use pkunzip
to decompress) including the Defect Type Standard in MS Word 7.0
format.
-
Excel 4.0 (12 single worksheets) - pkzipped
(use pkunzip
to decompress) including the Defect Type Standard in MS Word 3.0
format.
[Go to top of page.]
Other Things Useful for Participants of our PSP Course
Here's pkunzip
which you can use under MS DOS to unpack the archives.
Introduction
to UNIX, by the Karlsruhe University Computing Center. German; 215
kB - PLEASE DON'T PRINT! If you really want something to carry home,
there's better books available at the bookstores. (If you are new to Unix,
please consider using emacs as your editor. You might get
better tool support then. - Caveat: Our machines are Suns, so log-on and
GUI look somewhat different, and some commands may have different names
and/or options. Read the man pages!)
Things Useful for Teachers of PSP Courses
An MS Excel 7.0 spreadsheet for checking off student's homework.
An MS Excel 7.0 spreadsheet for checking student's data for consistency.
Humphrey's MS Excel 4.0 spreadsheet for analysing students' data.
[Go to top of page.]
External Resources
This is a rather up-to-date page containing literature references,
forms and tools download, links to even more pages relevant to PSP
users, and course announcements.
This mailing list has several hundred people on it.
Primary topics are PSP problems and experiences, PSP tools, and PSP data.
To join the list, send an email message to
psp-users-request@tqc.com.au,
with just the word subscribe in the subject field. You
will automatically be added to the list, and receive an introductory message.
There is an outdated archive
of this mailing list (no longer maintained by Lutz Prechelt)
which contains most messages that
appeared on the list since 1996-10-10 until 2000-03-14 (except for short-term stuff such as
course announcements etc.).
[Go to top of page.]
Back to homepage of the
institute, the
department, or the
university.
This page is maintained by
Matthias Müller
(muellerm @ ira.uka.de)
and (formerly)
Oliver Gramberg
(gramberg@ira.uka.de)
and
Lutz Prechelt
(prechelt@ira.uka.de)
Last modified:
2003-11-19 10:12:23, Matthias Müller
Comments to
muellerm at spam_protection ipd uka de
remove spam_protection, replace " at " with @, remove spaces with dots