Introduction#
Welcome to the course notes for SWEN90007 Software Design and Architecture at the University of Melbourne.
These notes are a practical companion for the semester — a place to look things up as you design, build, deploy, document, and operate your team’s enterprise application. They complement the lectures and the LMS rather than replacing them: lectures introduce the concepts and architectural patterns, while these notes give you the hands-on setup guides and worked examples you’ll use in workshops and on the project.
What you’ll find here#
The weekly sessions — team formation and the project overview, domain modelling, the development stack, architecture documentation (arc42 & C4), observability, and performance testing.
A step-by-step setup for the JSP / Servlet track: IntelliJ, Tomcat, PostgreSQL, GitHub, Docker, and deployment to Render.
A zero-to-deployed primer for the React + Servlet API track, built up across a series of milestones.
How to use these notes#
New to the subject? Start with Workshop 1 for the subject and project overview, the assessment breakdown, and the semester timeline — then follow the setup guide for your team’s chosen front-end (JSP or React).
Working through the project? Each workshop is aligned with the part of the assignment it supports. The semester timeline in Workshop 1 shows what’s taught when, and when each deliverable is due.
Looking for something specific? Use the search box (top-left), or jump between sections using the navigation sidebar.
A living guide#
Attention
These notes are a living guide. If you spot an error, or have a suggestion, please raise an issue using the GitHub button in the top right-hand corner of any page.

Contributors#
A big thank you to the contributors who created and maintain these course notes — you can get in touch with them via the project repository.
This work was supported by the University of Melbourne Chancellery Academic – Dual Delivery Contributions grant.