Computer Science 223 Discussion Questions

Alhir, Pages 57-68

Discussion questions submitted for pages 57-68 of Alhir:

Types of Relationships

  1. What are specific distinctions between associations, aggregations, and compositions? Patrick Dowd
  2. What purpose do links serve, and what is an example of a link? (Sam Vanderhyden)
  3. For which type(s) of entities do aggregations abstract relationships? (Sam Vanderhyden)
  4. How can an association (a class) describe a link (an object)? -Peter Likarish
  5. Links and associations seem to be a good way to relate objects, but how does that become helpful in object-oriented design?
  6. Can you better explain the relationship between links, associations, aggregations, compositions, and generalizations? - Jim Finnessy
  7. What is the relationship/differences between links and associations? Elias Vafiadis
  8. What does it mean that aggregations are "abstractions of concrete or conceptual whole part relationships among entities"? Desi Dimova
  9. The language used to describe links and associations was a bit hard to understand. Could you give some real world examples, and perhaps a slightly clearer definition?
  10. Are compositions symmetric and nontransitive? Could you elaborate on the concepts of transitivity and symmetry and how they relate to the different level of abstractions (links, associations, aggregations, compositions, and generalizations)? Desi Dimova

Inheritance and Polymorphism

  1. what is a difference between abstract classes and concrete classes?
  2. Would generalizations be clarified? They sound like inheritance of any sort from the way the book describes them.
  3. What is the difference between having a treelike hierchy and a lattice like hierchy when utilizing inheritence? Taha
  4. In what situation can you effectively use abstract classes? (Raz Magar)
  5. What is the basic difference in parameteric polymorphism and pure polymorphism and what are the advantages and disadvantages of each? Taha
  6. How beneficial is polymorphism during the runtime of a program designed with UML? George Yeboah
  7. What are the major differences between the different types of polymorphism, namely ad hoc, parametric and pure? George Yeboah
  8. How does message exchanging differ from objects sending flag-like parameters?
  9. what does polymorphism exactly mean and can you clarify the terms pure polymorphism, parmetrized polymorphism and inclusion polymorphism?
  10. Can you give examples of different types of polymorphism? -Jonathan Kensler
  11. How is inheritence in UML different, if at all, from that in Java?
  12. How different are Metaclasses from superordinate classes? --Hisako

Scenarios and Interactions

  1. How similar is the concept of delegation to that of a scenario? Delegation appears to be the ability to issue messages, how does a scenario relate to this? Patrick Dowd
  2. should we be using the vocab in the book to describe software systems to be more accurate? Is it really wrong to say interaction instead of scenario?
  3. Are scenarios essential code for objects to communicate with one another? -Todd

Miscellaneous Questions

  1. The chapter informs us that types "define a specification or one or more interfaces for classes" (57). If a class defines an interface that extends multiple interfaces, what do we know about the class' inheritance? --Khong
  2. Could you please expand on the descriptions of the one-level, two-level, and three-level models, I'm not clear on the advantages of each. -Todd
  3. Could you elaborate on n level instantiation, or at least the 3-level one? (Raz Magar)
  4. Can you give more details on how a society should be defined? -Jonathan Kensler
  5. If classes/types are antisymmetric, what does that mean? The author uses it in two different ways, on pages 59 and 60. -Peter Likarish
  6. When do we use synchronous and when do we use asynchronous communication?
  7. Syncronous communication does not require that the receiver is an active object. Why does it have to be active in asyncronous communication? Elias Vafiadis
  8. This chapter described the specific parts of the Object-Oriented paradigm, and the figure 3-23 (the summary) does not describes the details. I am confused and lost now. Could you please explain this paradigm with another diagram, which consists of most of the jargons we learned in this chapter? --Hisako
  9. In Riel, it was emphasized that work needs to be diffused, and not go through a central object, but in Alhir a hierarchical organization of object-oriented programming seems to be dominate. Did I misinterpret it, or is it a difference in opinion between the two authors?
  10. What are the more important reasons for using encapsulation or information hiding? --Khong
  11. Where does Java fit in the descriptions of Object-Oriented Variations? What are some examples of languages from the other variations? Are there variations other than the ones discussed in the book?


This document is available on the World Wide Web as

http://www.walker.cs.grinnell.edu/courses/223.sp02/read-alhir1-3b.html

created February 6, 2002
last revised February 6, 2002
Valid HTML 3.2!
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu.