Homework #3: CSE503, Spring 2006

Due: 10:30AM Tuesday, May 9, 2006

This homework should be done individually, although discussions beforehand are fine (using the "Gilligan's Island" rule).

  1. (30 points) The linked zip file contains Java code for a very simple currency management system. Analyze the design with respect to information hiding principles, focusing on what secrets are or are not hidden.
  2. (20 points total) In about one paragraph each, describe the degree to which you believe both software architectures and design patterns are stable (whether appropriately defined architectures/patterns will have a lifetime of 10+ years). Present evidence to support your views.
  3. (20 points) In about one paragraph: Is the notion of upcalls consistent or inconsistent with Parnas's view of layered systems? Why?
  4. (30 points) Karl Lieberherr defined the Law of Demeter. How does this Law apply, if at all, to (a) coupling and cohesion, (b) layered systems, and (c) implicit invocation?