The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
UML::Sequence and its helpers produce UML sequence diagrams (they are probably
not compliant with any of the UML specifications, but I find them useful).

INSTALL

Do the standard things:
    perl Makefile.PL
    make
    make test
    make install
    make clean

COPYRIGHT and LICENSE

Copyright 2003-6, Philip Crow.  All rights reserved.  You may distribute
and/or modify these programs under the same terms as Perl 5.8 itself.

DESCRIPTION

There are samples in the samples directory in the distribution.  The
samples have the code and pictures (in svg and png formats).

Simple Sequences

You can create a sequence from an outline.  Type something like this:

At Home.Wash Car
    Garage.retrieve bucket
    Kitchen.prepare bucket
        Kitchen.pour soap in bucket
        Kitchen.fill bucket
    Garage.get sponge
    Garage.open door
    Driveway.apply soapy water
    Driveway.rinse
    Driveway.empty bucket
    Garage.close door
    Garage.replace sponge
    Garage.replace bucket

Then do this (to generate SVG output):

    genericseq.pl UML::Sequence::SimpleSeq inputfile | seq2svg.pl > output.svg

or this (to generate raster image output, e.g., PNG):

    genericseq.pl UML::Sequence::SimpleSeq inputfile | seq2rast.pl > output.png

Perl Sequences

To produce sequences of Perl programs, first make a list of the methods
you care about like this:

    DiePair::new
    Die::new
    DiePair::roll
    Die::roll
    DiePair::total
    DiePair::doubles
    DiePair::to_string

Then do this:

    genericseq.pl UML::Sequence::PerlSeq method_file program args | seq2svg.pl > output.svg

Java Sequences

You must have tools.jar in your classpath.  It must contain the Java Platform
Debugger Architecture.  The stars must properly align.  Then make a file
of classes (or methods) you want to hear about, like this:

    ALL
    Hello
    HelloHelper

The ALL means all methods.  The other lines are classes.  All the methods from
those classes will appear in the diagram.  To restrict the list of methods,
include full signatures.

After you make the methods file, do this:

    genericseq.pl UML::Sequence::JavaSeq method_file program args | seq2svg.pl > output.svg

For this to work, you must have Seq.class from the distribution and tools.jar
from sdk 1.3 or later in your java_home/lib directory.  I also found that
when my Linux system is not on the network, the Java Platform Debugger
Architecture (jpda) didn't want to run.

To build your own outliner, implement the same methods as
UML::Sequence::SimpleSeq.pm.  Then use genericseq.pl and seq2svg.pl.

Please send questions or comments to Phil Crow at philcrow2000@yahoo.com.