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:



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

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


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

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 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: 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

    titrax - Time Tracker v1.98 by Harald T. Alvestrand

    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 by Andrew M. Worsley

    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

    PC LOC Accounting Tools by Christian Segor

    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)


    Quite useful if you are a Unix crack or an emacs addict and already plan to use the psp.el emacs extension.


    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. 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.



    MS Office


    [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

    PSP Resource and Link Page by Patrick O'Beirne at Systems Modelling, Ltd.

    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.

    PSP Mailing list - maintained by Andrew M. Worsley

    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, 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 @ and (formerly) Oliver Gramberg ( and Lutz Prechelt (

    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