Unified Modeling Language (UML)

Students in prior classes have created overviews for the following UML diagrams:

Tools

Knowing how irritating it is to fix mistakes when drawing a diagram by hand, I encourage you to use a tool to create UML diagrams.

Some of the tools that I’ve used in the past are as follows:

  • ArgoUML: I believe that this tool was used last year in Comp Sci 350, but my “experience” with it was frustrating due to a requirement for Java 6 to run on macOS and it also targets the UML 1.4 specification (which is as almost as old as all of you!).
  • PlantUML: A text-based language for defining UML diagrams; although irritating when the automatic layout algorithms do a poor job, I’ve been mostly pleased with my recent experience using it. An online version is also available: http://www.plantuml.com/plantuml/.
  • OmniGraffle: Although I’ve never used it personally, every Mac user that I know swears by it.
  • Microsoft Visio: If available (e.g., thanks to a site license), then definitely worth checking out – the last time that I used Visio, it supported class, sequence, etc. diagrams.
  • yEd: Appears to be limited to class diagrams, but I’ve used this tool for a number of projects in the past and have been pleased with its ability to provide good graph layouts. An online version is also available: https://www.yworks.com/yed-live/.

You are also welcome to search for other UML diagramming tools. If you do use a tool, be sure to mention it in your documentation statement for this assignment (and I’d also be interested in what you thought of it – the good, the bad, and the ugly). I also will not count off for “sloppy” diagrams that have intersecting lines, etc. created using a UML tool as long as the diagram itself remains readable (e.g., PlantUML’s layouts can be very poor, but there’s no easy way to manually adjust what it produces).