SENG 365 — Software Engineering
2026-09-09
Reading: Robillard, Introduction to Software Design with Java, 3rd ed. — Ch. 1, Introduction (pp. 1–12).
Harassment and discrimination are not tolerated.
The course is about design thinking in software systems. Here we focus on design in the small; other courses, such as SENG 371, SENG 404, SENG 426 examine design in the large: questions around deployment, handling large data volumes, quality attribute tradeoffs, etc.
This is not a Java course.
Java is a strongly-typed object oriented language that is
Plus, with GenAI it is unlikely language familiarity is a determinative hiring feature.
In its basic form, software design concerns determining the abstraction structure of the intended software. However, the abstraction structures in software design tend to be deeper than those in other disciplines… the final design of a program is its source code, as even just minor variations in the code can radically alter its behavior. Because of this, the distinction between design and manufacture is blurred, making software design a highly interwoven process, with design and implementation in a continuous and close relationship.
— van der Hoek and Petre, 2014
Does this still hold?

Course home · Neil Ernst ©️