CSC 223 Grinnell College Fall, 2005
 
Software Design
 

Discussion Questions for Riel, Chapter 11

Comparison of the Data-Driven and Behavior-Driven Model

  1. in practice, which is the more common method, data driven model or behavior driven model?? I would think the behavior model, but...(dave v)
  2. Data-driven analysis tries to consider about operations later, but as Reil says that he does not believe a designer can find a complete object model without talking about behavior. How else can we think about behaviors when designing with data-driven methedology? (Chayapan)
  3. Why do some other people support only data-driven or behavior -driven methods instead of a hybrid of both? (monica)
  4. If we apply Iterative Model, it seems data-driven model solves problems efficiently at the beginning: just give the users what they need. But the more complex the system becomes, the more efficient the behavior-driven model is. Then the question is: What work should a group do to convince itself to apply the behavior-driven at the beginning, which has less efficiancy, especially when the group is given a deadline. (Sheng)
  5. The author talks about what method he would use; but in our group-design, sometimes,different members prefer different methods. e.g if one uses data-driven, another uses behavior-driven model, how can they come up with somewhat agreement? (Sheng)

The ATM Example

  1. Why is it usually desirable to distribute system intelligence away from a containing class (208)? What are some arguments about why the ATM should get the pin number from the card reader vs. the SuperKeypad? (Mike C) Why is it that natural aggregations can only be found during analysis time for data-driven models? (Jonathan)
  2. What would an ATM or Bank proxy look like? (monica)
  3. Even though we don't have to program a way for the ATM to dispense cash without checking, does that make the ATM vulnerable to a hack that can intercept the sending of the ATM information? (Alex)
  4. With the requirement like that makes the ATM unable to block the Bank Proxy, how does object-oriented design deals with these kind of conflicts in the actual implementation? (Chayapan)
  5. What does ATM do that SuperKeypad doesn't? (Alex)
  6. On page 205, Riel suggests the ATM should control the interactions between all its components. Would it be alright to have the various ATM components communicate directly to each other through generalized interfaces (in the same way Riel suggests the card reader could communicate to the ATM through the SecureDevice interface)? (Jonh)
  7. In making the card reader class more reusable, Riel creates a "secure object" class whose only purpose is to contain the card reader. Does this violate heuristics that ensure all classes have meaningful data and behavior? Is reusability always the more important design concern? (Lorelei)

Trade-offs in Design

  1. On Page 204 in section 11.4 Riel supports having a centralised system, which is contrary to the previous readings. Why so? (Gaurav)
  2. How do you know when you need another containing class such as the SuperKeypad class? (Mike L.)
  3. Can you clarify the difference between the two approaches to handling lists of accounts in the Tranfer transactions in section 11.7? (Lorelei)
  4. If it becomes clear during the course of a design implementation that no matter what some heuristics must be violated is there an order of precedence that some take over others, or should the designer just choose the implementation that violates the fewest number of heuristics? (dave v)

Other Design Issues

  1. It seems like the process of coming up with an appropriate object model takes a lot of trial and error kind of thinking? Does Riel think this is a process one should take or does he do this to point out flaws in other ideas to once again enforce the Heuristics? (David D)
  2. Should we always assume that natural aggregations are correct? (Mike L.) Can you elaborate on the Rumbaugh method? (Gaurav)
  3. In the section about "explicit case analysis due to accidental complexity" Riel says that the problem is caused by a non-object oriented interface. Is there anyway to create an object oriented interface, or do designers just have to wrap their interfaces? (Jonathan)

Other Questions

  1. How would Riel respond to the formalism of UML? He doesn?t use any in his book, and he kind of slams the design methodologies of the three creators (bottom of page 201). Is this because he has something against it, in principle, or just because UML wasn?t well known enough at the time he wrote the book (1996). (John)
  2. Wouldn't it be better if Riel started out the book with a big example and then throughout each chapter showed how the heuristics applied to the example? (David D)
  3. Riel seems to agree with the concept of object-oriented languages supporting a feature by which a class can limit access to parts of its public interface to a list of classes. However, he makes this a special case because of the great size of the development effort of a huge company. What is a good standard of judging when this concept is appropriate and when it hinders software reuse? (Mike C)


This document is available on the World Wide Web as

http://www.cs.grinnell.edu/~walker/courses/223.fa05/readings/riel-11.shtml

created 13 November 2005
last revised 14 November 2005
Valid HTML 4.01! Valid CSS!
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu.