Computer Science 223 Discussion Questions

Riel, Chapter 11

Discussion Questions submitted for Chapter 11 of Riel

Data-Driven and Behavior-Driven Software

  1. Is it better to have our project more data driven or more behaviour driven? taha
  2. Could you discuss the differences between data-driven and behavior-driven analyses as they pertain to inheritance relationships? --Khong
  3. While reading this chapter, the first thing that came to my mind was how did we develop our scheduler project by adding the different functionality. I couldn't help but ask to may be go through our project from the beginning in the context of this chapter. ~yasir.
  4. Please examine more carefully the problems associated with data-driven and behavorial-driven design methods? Anthony
  5. "In a decentralized system, the flow of control is started by something outside the system." Could you please elaborate on this? ~yasir.


  1. Can you explain the idea of a wrapper class that is used to wrap an entire system. Why might this be useful?(Sam Vanderhyden)
  2. Can you explain how a wrapper class can translate a functionality of a system? Anthony
  3. What does it mean to have a wrapper class? --Khong

Case Analysis

  1. Chapter 11 reminded me that the message protocol used by the UserApplet, InputInterface and OutputInterface uses explicit case analysis in determining which message is being sent. Is there any way we could have avoided this? (Nick Wagner)
  2. There are several heuristics against explicit case analysis but it is implied in section 11.5 that in case of accidental complexity, explicit case analysis is OK as far as it is pushed outside the domain, right? Dessislava Dimova
  3. On page 210, Riel discusses explicit case analysis once again. Could heuristic 5.12 be used to avoid the case analysis he is discussing? -Peter Likarish

Object-Orientation and Problem Solving

  1. On page 202, the author says that in some MIS domains, the data-driven approach can work very well...when do you think it is appropriate to use oo (behavior model)? Todd
  2. Are there certain prominant types of software that tend to use one or the other of the main methodologies described in 11.2? -J. Kensler
  3. Why should one develop a distributed object oriented design without considering the distributed qualities until after the logical design is complete. Wont this lead to accidental complexity and redundancies? taha
  4. What changes have their been in the use of the two design methodologies since the publishing of the book? Patrick Dowd
  5. Seeing as how this chapter wraps our oo discussion up, could you speak a bit about the future of oo or any methodologies that might succeed it? Todd
  6. Why should object-oriented languages support a feature by which a class can limit the access to certain parts of its public interface to a given list of classes?

Other Questions

  1. Doesn't the ATM class act as a god class? Does that not violate a heuristic? Steve F
  2. I am not very clear with Riel's argument in the second paragraph on Chapter 11, could you explain it better. -George
  3. What is a proxy class? - Elias Vafiadis
  4. Doesn't the notion of different address spaces add a new kind of complexity to design? Because the network connection is an intermediary between two objects, and because network is a different entity by itself, the messaging between objects does not seem to be domain-inclusive. Is that or is that not bad? (Raz Magar)
  5. What are the drawbacks of a circular uses relationship? Patrick Dowd
  6. Reil's bank and atm proxies are equivalent to our input and output interfaces. Have we done a good job of meeting object oriented design specifications in dealing with objects in different name spaces? josh vickery
  7. Why is it usually desirable to distribute the system intelligence away from a containing class, leaving it with just coordination activities?
  8. In which designs the time efficiency problem arises when one tries to turn interrupted architecture into polled architecture? (the qn refers to the beginning of the fourth paragraph on p206) Dessislava Dimova
  9. Why cannot the associations in ATM system be captured without examining the behavior of the system? I think it is still possible to decide the relationship by looking at the data. --Hisako
  10. It seems that some members of the class (myself included) have at times confused the concept of a containing class with that of a god class, as Riel states on 205. How can we tell them apart? (Nick Wagner)
  11. What does he mean by an object in a different address space? (Sam Vanderhyden)
  12. How does the pin number verification pose such a problem? It seems to me that doing the comparison in any of the related classes would be a satisfactory design. Steve F.
  13. Another example of Heuristic 11.1 to clarify this maxim will be nice. -George
  14. What is a network class; is it related to the proxy class? - Elias Vafiadis
  15. Why are transactions set up as objects in diagram 11.2. Even in a data-oriented approach, wouldn't they be more easily thought of as methods? -Peter Likarish
  16. The ATM example is a very well-known example, so figuring out which one between data and behavior identification should be done first and the rest of the sequence might not be that difficult. However, what if we were asked to design a system which is not very often talked about or which is almost non-existant? Would the same strategy of data and behavior identification used for the ATM example work for this new system? (Raz Magar)
  17. Can you go over 11.6 more? -J. Kensler
  18. Riel's stance on "implementation classes" is that they should only be considered during physcial design. In our project, we never dealt with these implementation classes until we started writing Java. How much of "physical design" can be done without actually writing code. Should we have spent more time on physical design seperate from the actual programming in our project? josh vickery
  19. I think PIN_Varidator (p.208) can be created as a separated class, because it seems that it makes the system to act fast, although it might violate the heuristics. Why is it so important to keep data and behavior in one place? --Hisako

This document is available on the World Wide Web as

created April 26, 2002
last revised April 26, 2002
Valid HTML 3.2!
For more information, please contact Henry M. Walker at