CompSci 307
Fall 2021
Software Design and Implementation

Design Exercises

An important design skill is to be able to think about, discuss, and change how a program is organized before writing code and without worrying about exactly how it will be implemented. Thus, without writing any actual implementation code, these exercises will help you explore the trade-offs between several designs and describe the best one in enough detail that other programmers could implement it for you using any data structures, file format, or UI display they want.

Submitting Work

Design Exercises are due each week by 3:07am ET in the morning on the day after that given on the course Calendar (so it is effectively a few extra hours grace time past midnight).

Markdown is an industry standard, simple, plain text format for providing style guidelines that can be transformed into any other document format. IntelliJ includes a Markdown editor that provides a preview or there is a web-based editor that provides similar functionality.

Deliverables

  1. Objects (template)
  2. Use Cases (template)
  3. Changes (template)
  4. Analysis (template)