Riel, Chapter 11
Discussion Questions submitted for Chapter 11 of Riel
Data-Driven and Behavior-Driven Software
-
Is it better to have our project more data driven or more behaviour driven?
taha
-
Could you discuss the differences between data-driven and behavior-driven
analyses as they pertain to inheritance relationships? --Khong
-
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.
-
Please examine more carefully the problems associated with data-driven and
behavorial-driven design methods? Anthony
-
"In a decentralized system, the flow of control is started by something
outside the system." Could you please elaborate on this? ~yasir.
Wrappers
-
Can you explain the idea of a wrapper class that is used to wrap an entire
system. Why might this be useful?(Sam Vanderhyden)
-
Can you explain how a wrapper class can translate a functionality of a
system? Anthony
-
What does it mean to have a wrapper class? --Khong
Case Analysis
-
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)
-
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
-
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
-
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
-
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
-
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
-
What changes have their been in the use of the two design methodologies
since the publishing of the book? Patrick Dowd
-
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
-
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
-
Doesn't the ATM class act as a god class? Does that not violate a
heuristic? Steve F
-
I am not very clear with Riel's argument in the second paragraph on Chapter
11, could you explain it better. -George
-
What is a proxy class? - Elias Vafiadis
-
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)
-
What are the drawbacks of a circular uses relationship? Patrick Dowd
-
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
-
Why is it usually desirable to distribute the system intelligence away from
a containing class, leaving it with just coordination activities?
-
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
-
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
-
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)
-
What does he mean by an object in a different address space? (Sam
Vanderhyden)
-
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.
-
Another example of Heuristic 11.1 to clarify this maxim will be
nice. -George
-
What is a network class; is it related to the proxy class? - Elias Vafiadis
-
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
-
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)
-
Can you go over 11.6 more? -J. Kensler
-
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
-
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
http://www.cs.grinnell.edu/~walker/courses/223.sp02/read-riel-11.html