Resources
Students in prior classes have created the following resources for the course as a whole:
- Overview of Software Engineering (Helen Landwehr)
- How to do a Sprint (Teddy Drewes)
Additional resources for specific topics appear below.
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: This tool was used previously in Comp Sci 350, but my “experience” with it was frustrating: It requires 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!). Finally, it hasn’t seen active development since 2014.
- 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).