CMU CS 15-675 Architectures for Software Systems Spring 1997


Information Hiding and Objects

Garlan & Shaw Questions on Readings for Lecture 8

Due: Wednesday, February 5, 1997


The papers:

[SG96]: Section 2.3

[PCW85]: The Modular Structure of Complex Systems

[Boo86]: Object-Oriented Development

Hints:

Read for the ideas about system organization, not for programming details or prescriptions for the process of creating the systems.

In a paper that you are not reading, Liskov pointed out that there are two major differences between abstract data types and "object-oriented" objects. The substantive difference is that objects include inheritance. The other, non-substantive, difference is terminology: different names for essentially the same things, such as abstract data type/object, procedure/method, package/class, and procedure call/message. You'll have to put up with the terminology differences. Note also that object-oriented systems generally use run-time binding of procedure names to bodies to accommodate the more flexible type structure that results from inheritance.

Questions:

  1. Contrast information hiding as described by Parnas, Clements, and Weiss with object-oriented systems as described by Booch.

  2. What does each of the two papers recommend as the primary criteria for decomposing systems into modules?

    What provisions are made by the two approaches for dealing with collections of related definitions.

  3. Contrast the "secrets" hidden by PCW's extended computer, physical model, data banker, and application data type module.

Email the Current Maintainer

Modified: 01/31/97