Exercise 5.1

Vitruvius, the Roman architectural theorist, set three goals of architecture:

  • Utilitas
  • Venustas
  • Firmitas

What are these and how do they apply to software design, if at all?

Exercise 5.2

Construct a class diagram that models the department website domain.

Exercise 5.3

Explain one of the following patterns by identifying the problem it solves, specifying its structure and giving an example of its use.

  • Iterator
  • Singleton
  • Adapter
  • Facade
  • Factory Method
  • Observer