This file contains useful pointers to existing projects which are available to NU students to do follow-on projects. Parties outside NU can get access to this source code by joining the Center for Software Sciences at NU. Send mail to demeter@acm.org if you are interested.

DemDraw: to manually draw class graphs.

The DemDraw tool (first version, done by one COM1205 class):
Written in C++ and Tcl/TK using Demeter/C++ and Isthmus.

The documentation of the DemDraw program is at URL:

http://www.ccs.neu.edu/research/demeter/course/projects/demdraw/www

Browse through the documentation first and then
go to a new directory and execute the command:

cp -rp /proj/lieber2/f95/com1205/tools/demdraw/demdraw-0.4/src/* .

After copying, type

run

to run the application.

A useful follow-on project is to rewrite the entire application
using Demeter/Java. Advantage: Only one programming language instead
of C++ and Tcl/Tk. 

DemAnneal: to automatically draw class graphs.

Independent Study Project 

Project:	Graph Placement Algorithm
Student:	Elan Riesman
Director:	Prof. Lieberherr
Submitted:	Fall 1995

demanneal converts Demeter class dictionaries into demdraw or
xcddraw files.  demanneal generates class dictionary
graphs using a simulated annealing algorithm which
minimizes edge length.  By default, demanneal runs under X
Windows and outputs files in cdx format, extended class
dictionaries.  Specifying the output file format on the
command line disables the window interface.

EXAMPLES:

Type the following to create a demdraw file from cd.cd:

	demanneal -dd -o cd.dd cd.cd

The tool can also read from and write to standard input and output:

	demanneal -dd > cd.dd < cd.cd

OPTIONS:

	-spacing num    set the minimum edge length to num pixels
	-bubbles num	make the graph contain num percent null nodes
	-steps num	anneal for num steps

	Some X Window options:

	-display dpy    use dpy for X display
	-fn font	set font
	-fg -bg -bfg -bbg   set foreground and background colors
			    for text and buttons

	The following options are for command line mode only,
	and implicitly disable the X Window interface:

	-n   no action, don't anneal just show graph statistics
	-nw  no windows
	-o filename   output the graph to filename
	-p   preserve initial position info, do not make grid, just swap
	-v   verbose mode, print the status of each annealing step
	     the USR1 signal toggles verbose mode
	     the -v flag does not disable X windows
	-scramble	permute graph, but do not anneal
	-da use demanneal format (default)
	-cd  use demeter format, drop position info
	-dd  use demdraw format
	-cdg use xcddraw format


The source is at

/proj/lieber2/f95/com1205/cd-drawing2/expanded

A useful follow-on project would be to draw class diagrams for
the Unified Modeling Language. Or to use genetic algorithms
instead of using simulated annealing.