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).
- (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.
- (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.
- (20 points) In about one paragraph: Is the notion of upcalls consistent or
inconsistent with Parnas's view of layered systems? Why?
- (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?