CSC 223 Grinnell College Fall, 2005
 
Software Design
 

Discussion Questions for Fowler, Chapters 4-5

Classes and Class Structure

  1. Why is it that a class must be a component of only one owner? What benefit is it to have class diagrams show multiple classes of potential owners if there can be only one? (Mike C)
  2. What are the limitations of sequence diagrams? Are there cases in which they might not exactly follow the model, and what do we as programmers/software designers use to go past these limitations? (Dimitar)

Control: Central versus Distributed, Synchronous versus Asynchronous

  1. Fowler talks about the advantages of using Distributed control, in what cases is it more advantageous to use Centralized control?(Gaurav)
  2. Is the difference between "centralized control" and "distributed control" based solely on individual preference, or is one style more efficient or less complex than the other? (Jonathan)
  3. Does "distributed control" help, hinder, or have no effect on using asynchronous calls? If it is possible to use asynchronous calls in a program, does it tend to make the program faster? (Jonathan)
  4. I'm still a little confused about the difference between Synchronus and Asynchronus calls. When should each type be used? (Dave V)
  5. On page 61, the author talks about synchronous and asynchronous calls. Can you give examples of each of those to make the concept more clear? (Saugar)

CRC Cards

  1. Do you suggest using CRC cards? (David D)
  2. The CRC method sounds really interesting. Can a demonstration of the method be arranged? (Saugar)

Associations, Aggregations, Composition

  1. Association classes seem pretty handy. Are there any non-graphical languages that provide them explicitly? (John)
  2. What exactly is an association class? How would promoting the Role association class to a full class allow the company to have multiple roles (pg 79)? This is especially confusing as I don't exactly see the difference in implementation, perhaps because Fowler doesn't actually give a complete example, but instead only a snippet of code from a single class. (Elijah)
  3. Fowler describes aggragation as meaningless. Why exactly is it meaningless? It may not be specific, but it is not without meaning. It seems to me that it might sometimes be beneficial to know that there is not a limit on the relationships between, for example, clubs and people. (Elijah)
  4. I dont quite understand the distinction Fowler makes between Aggregation and Composition.(Gaurav)
  5. Can you explain aggregation in more detail?(David D)

Other Questions

  1. Can you explain further the difference between dynamic classification and static classification? (monica)
  2. Which languages use multiple dynamic classification? Is this functionality uncommon because it is difficult to implement from the perspective of a compiler writer, or hard to use effectively as a coder? (John)
  3. I am confused about the definition of Participants in Chapter 4. Could you explain that in Java? (Sheng)
  4. What is the difference between something like a data tadpole and a get method? (Mike L.)
  5. The example they use in the book to describe Multiple and Dynamic classification seems useless. How do these concepts apply to actual computer science? In other words does this concept have an actual use, or is it just a good way to think about linking objects according to how they are classified? (Dave V)
  6. Do the responsibilities discussed in chapter 5 relate to the responsibilities in chapter 4? (Mike L.)
  7. How do we choose between single and multiple classification? What are the advantages/ disadvantages of each one of those? (Dimitar)
  8. Could you talk more about multi-thread-control? (Sheng)
  9. What is the difference between an active class and other classes? (monica)
  10. What are some situations when the {frozen} keyword would be used? Why was it dropped from UML 2 if it is a "very useful concept?" (72). (Mike C)


This document is available on the World Wide Web as

http://www.cs.grinnell.edu/~walker/courses/223.sp02/readings/fowler-4-5.shtml

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