Discussion Questions for Fowler, Chapters 4-5
Classes and Class Structure
-
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)
-
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
-
Fowler talks about the advantages of using Distributed control, in what
cases is it more advantageous to use Centralized control?(Gaurav)
-
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)
-
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)
-
I'm still a little confused about the difference between Synchronus and
Asynchronus calls. When should each type be used? (Dave V)
-
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
-
Do you suggest using CRC cards? (David D)
-
The CRC method sounds really interesting. Can a demonstration of the method
be arranged? (Saugar)
Associations, Aggregations, Composition
-
Association classes seem pretty handy. Are there any non-graphical
languages that provide them explicitly? (John)
-
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)
-
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)
-
I dont quite understand the distinction Fowler makes between Aggregation
and Composition.(Gaurav)
-
Can you explain aggregation in more detail?(David D)
Other Questions
-
Can you explain further the difference between dynamic classification and
static classification? (monica)
-
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)
-
I am confused about the definition of Participants in Chapter 4. Could you
explain that in Java? (Sheng)
-
What is the difference between something like a data tadpole and a get
method? (Mike L.)
-
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)
-
Do the responsibilities discussed in chapter 5 relate to the
responsibilities in chapter 4? (Mike L.)
-
How do we choose between single and multiple classification? What are the
advantages/ disadvantages of each one of those? (Dimitar)
-
Could you talk more about multi-thread-control? (Sheng)
-
What is the difference between an active class and other classes? (monica)
-
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