M1 — Introduction and What is Design

SENG 365 — Software Engineering

Neil Ernst

University of Victoria

2026-09-09

Welcome and Bookkeeping

Reading: Robillard, Introduction to Software Design with Java, 3rd ed. — Ch. 1, Introduction (pp. 1–12).

A Plethora of Bookkeeping

  • Contact info; who am I
  • Teams / Gitlab
  • TAs
  • Key dates
  • Assignments and lab-test format
  • Assignments and plagiarism checking: 0 on the assignment if violating guideline.

Behaviour Expectations

Harassment and discrimination are not tolerated.

  • Lectures complement the course material with demonstrations, examples, discussions, and activities — they do not replace individual reading and practice.
  • Do the reading in advance. Class time is not used to read basic definitions; terms will otherwise seem to come out of nowhere.
  • Attendance is not monitored, but strongly recommended: lectures feature walk-throughs of design and implementation as decisions are made.
  • If you attend, avoid distracting use of devices.
  • Concessions for individual circumstances (medical, personal) are available but I encourage you to raise them proactively, before the assessment occurs (when possible).

AI Usage Guidelines / Syllabus

Why Java?

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

Java is a strongly-typed object oriented language that is

  • widely deployed (banks, tech firms, government IT)
  • very related to Go, C++, Javascript, etc
  • has a long history in OO teaching and exercises
  • actively maintained albeit losing popularity

Plus, with GenAI it is unlikely language familiarity is a determinative hiring feature.

What is Design

Software Problems 1-2-all

  • Find one well-known software disaster using AI/Web Search/Wikipedia.
  • Reflect silently on the design choices led to this disaster.
  • Turn to a neighbor and compare disasters.
  • Follow-up: how does that compare to non-software engineering projects?

What is Design?

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?

This Week

  1. Please complete the self-assessment.
  2. Do the readings for Friday.
  3. Prepare the readings for next week.