Riel, Chapter 9
Discussion Questions submitted for Chapter 9 of Riel
Logical and Physical Object-Oriented Design
-
I don't understand why object oriented designers shouldn't allow physical
design criteria to corrupt their logical designs. It seems that following
physical design is more cost effective in the real world. If the logical
design is corrupted and a new, correct logical design is created, I don't
see the need of Heuristic 9.1. - Elias Vafiadis
-
At what stage in the development process should logical design be
considered?
-
Shouldn't you keep the physical design criteria in mind when doing their
logical design, so it is sure that the logical design can be implemented?
-Jim Finnessy
-
Can you clarify the differences between logical and physical object
oriented design? Why do they differ?(Sam Vanderhyden)
-
Could we please discuss the proper transition from physical design to
logical design? ~yasir.
Wrappers
-
Could you explain wrappers more especially in the context of our
project. taha
-
Can you expand upon the definition of a wrapper? Patrick Dowd
-
What is a wrapper? (Sam Vanderhyden)
-
It is now clear to me when it is necessary to have a wrapper, but not how
to make wrappers. Could you explain it? --Hisako
-
Can you explain how one can use wrapping to ensure that heuristc 9.1 is
effective? Anthony Fynn
-
How much work is actually involved in wrappers? How much effort would it
have taken to use the database for our project?
Shallow and Deep Copies
Definitions
-
Shallow Copies: Variables or fields are pointers that refer to a single,
common object.
-
Deep Copies: Variables or fields specify distinct copies of objects.
-
Can you clarify the idea behind using flags to mark shallow copies? --Khong
-
How do we implement deep and shallow copying in Java? Steve F.
Active and Passive Objects
Definitions
-
Active Objects: In concurrent object-oriented programming, instances with
built-in mechanisms for concurrency.
-
Passive Objects are one of two types:
-
Concurrency has not been considered, and parallel threads may yield invalid
results or illegal object states.
-
Concurrency issues have been resolved through explicit implementation of
blocking mechanisms.
-
Can you go over the difference between passive and active objects more?
-Kensler
-
What are passive objects?
-
Could you clarify concurrent object programming?
-
Could you explain the ATM scenario a little more. -George
Memory Management Issues
-
What set of circumstances would require a programmer to use reference
counting? Patrick Dowd
-
Can you clarify reference counting?
-
How do we resolve the issues between garbage-collecting and
nongarbage-collecting languages concerning memory management? --Khong
-
Does one need destructors for most code that one writes and do we need a
destructor in the scheduler project? taha
-
Are deconstructors necessary or even possible in Java? - Jim Finnessy
-
What are the benefits of a destructor in coding? Anthony Fynn
-
I didn't understand the discussion of garbage collection too well. Could
you explain it in simpler terms? --Ben Kaiser
Object-Orientation with Non-OO Languages
-
In 9.8, how to implement O-O design in nonobject-oriented languages, but do
people actually still try to do this? what is the advantage of programming
O-O design in nonobject-oriented languages, if people still do? --Hisako
-
Are there any advantages in the present to use object-oriented design in
non-OO languages? Steve F
Other Questions
-
Could you describe CORBA architecture? Dessislava Dimova
-
What is the difference between object and record? (Raz Magar)
-
How might "persistence in space" be implemented? This sounds like a useful
idea... Todd
-
Can one safely apply an object-oriented attitude toward all real world
problems, or are there some limitations? -George
-
What are routing algorithms, how are they centralized, and why could
decentralization make them simpler? Dessislava Dimova
-
Section 9.5 suggest we create a minimal public interface for all classes
that are going to be reused. Is that for a physical or a logical design? -
Elias Vafiadis
-
Could you explain the implementation of polymorphism in nonobject-oriented
languages? (Raz Magar)
-
Can you tell me more about persistence in space (i.e. where it is currently
being used, what's currently being developed in the area, etc)? -Kenslerj
-
Could you speak a little more about object oriented databases... Todd
-
Could we please discuss heuristic 9.2 with an example from our project?
~yasir.
This document is available on the World Wide Web as
http://www.cs.grinnell.edu/~walker/courses/223.sp02/read-riel-9.html