CS330, Spring 2014

Library

Blackboard
Outline
Policies
Grades
Library
Forum
FAQ
Search

Reference Material:

Downloads:

Chart Drawing:
Please note that, no matter which of these you use, you should never turn in a chart as a separate file in the proprietary format laoded and saved by these programs. Instead, you should be using your favorite word processor to create a document, within which these charts appear as figures. For more info, see Turning in Non-Programming Assignments.
  • dia is an excellent tool, it's free, and it's probably the easiest thing to use to get good-quality UML class relationship diagrams.
  • SmartDraw is a commercial drawing program available at a special academic discount. (This is the program I use for the most of UML diagrams in the slides and lecture notes).
  • Visual Thought is "abandonware", a commercial drawing program that has been withdrawn from the market and is now available for free. I find its interface a little fussier than I like, but it handles labelled connectors better than any program I've worked with. The site linked above describes it, but it's easier to download from here.
  • The CS Dept PCs should all have Microsoft's Visio installed (as part of the Office suite). Although not as easy to use as the above-mentioned packages, this does have templates for UML diagrams.
  • The xfig family of tools provide a good, general-purpose drawing program, though the interface takes some getting used to. xfig predates MS Windows, so it's interface was designed long before the Microsoft world of applictions began establishing certain conventions on GUI style.
    xfig is available on our Unix network. Cygwin (see below) users install it on their PCs via the usual CygWin setup utility, if they are running an X server. A Java version, jfig, can be run on any platform with a Java engine (including the Java SDK below).
  • All of the above tools are good for UML class relationship diagrams, but can be very difficult to work with when doing UML sequence diagrams. For those, I recommend sdedit. This takes a very different approach by having you write a textual description of the elements in a chart and then producing the graphics from there. In essence, you are describing the sequence of calls in your diagram using a programming-language-like notation.
Compilers:
User interfaces for programming with Java (all are free downloads):
  • Eclipse is my hands-down favorite for "real" work.
    • OK on Windows (available on Dept lab PCs and virtual PC lab machines)
    • On our Unix (Solaris) machines, available as /home/zeil/src/eclipse/eclipse. You should only do this if your X connection is via an on-campus machine. It's much too slow for off-campus access.
  • You can get the Sun NetBeans IDE along with the J2SE download.
    • OK on Windows, probably not the easiest choice for beginners
    • Agonizingly slow when run remotely via X (on the CS Unix machines)
  • You can also use Unix/CygWin emacs as described in CS 252.
    • OK on Windows (if you have CygWin)
    • Works fine when run remotely via X
  • DrJava is an environment targeted at students or programmers new to Java.
    • OK on Windows (if you have CygWin)
    • OK when run remotely via X. Run it as
        ~zeil/bin/drjava &
      
  • jGrasp is also an educational environment with some support for UML.
    • OK on Windows
    • Annoyingly slow when run remotely via X (on the CS Unix machines)
Testing:
  • Get JUnit from http://junit.org. Note that JUnit is "built-in" to Eclipse, another reason why Eclipse is my preferred IDE.
Graphics:
  • Use Ghostscript and GSview to view Postscript (.ps and .eps) files and to convert Postscript to Portable Document Format (.pdf).
PDF generation
The following programs will allow you to generate PDF from any Windows program that allows printing. Generally, these create a special printer that writes to a file instead of to a physical output device. (Note that increasing numbers of Windows programs support options for direct generation of PDF. Such built-in generation is usually preferable to the fake printer appoach.