CSC 223 Grinnell College Fall, 2005
 
Software Design
 

Discussion Questions for Fowler, Chapters 6-8

Object or Instance Diagrams

  1. What is the difference between instance specifications and true instances? (Mike L.)
  2. Are object/instance diagrams only useful as examples? Or do they also serve other purposes? (Jonathan)
  3. Why would one need to use an Object diagram? What is their functionality, and do they have any practical use? (Dimitar)

Packages

  1. When they talk about Packages in the book are they talking about Packages such as Java Packages? (Dave V)
  2. Fowler states that "Different programming environments have different rules about visibility between packaging constructs," (90). What are some examples of these different environments and what exactly is meant by a "programming environment"? (Mike C.)
  3. Does packaging in actual usage means grouping several class files in a folder (like in Java)? If so, is there anything more subtle that I missed? (Chayapan)
  4. Sometimes Packages seem identical to Objects in Chapter 7, is there a clear distinction between the two? (Dave V)
  5. "UML packages also define constructs to allow packages to import and merge classes from one package into another, using dependencies with keywords to notate tis." What are some examples of these keywords? (Eric)
  6. When should one create seperate diagrams for different package structures within a single package?
  7. Is the only difference between a package that is 'global' and a package that is not that the global package has a lot of dependencies? (Jonathan)
  8. Fowler says that package diagrams should be 'ideally' generated from the code base itself. I assume he means, if you have a bunch of existing code, you should use an automatic package diagram generator instead of making the diagrams by hand, not that you should wait until after you have code to make package diagrams. Is this correct? (John)

Dependencies

  1. Why there cannot be a double-direction dependency between two package? (Sheng)
  2. In Chapter 7, it says "Often, you can identify a clear flow because all the dependencies run in a single direction."
  3. What exactly does Fowler mean by keeping cycles in dependencies from crossing layers? (Lorelei)
  4. Could you give us more information about "the Stable Dependencies Principle"? (Sheng)

Deployment Diagrams

  1. Can you give an example of a good use of a Deployment Diagram that is related to our projects?(David D)
  2. Deployment Diagrams seem to have multiple functionality. What is their full functionality, and where can we find more examples of their use? (Dimitar)
  3. Is there a grey line that seperates devices and execution environments? How do you distinguish the two? OS? (Chayapan) What is a pattern Seperated interface? (Gaurav)

Visibility

  1. In C++ (and I think Java, too) classes and methods have their own scopes, so even if a class in the current package has the name XXX, while inside of a method you can define a new class called XXX and you won?t run into any trouble. Are there such local scopes in UML? (John)
  2. What kinds of variations would different languages have when referring to "public", "private", "package", and "protected"? (Alex)

Other Questions

  1. Can a set of mutually exclusive guards work with both synchronous and asynchronous calls? Is there an advantage to using one over the other? (Alex)
  2. What is an unstereotyped dependecy? (monica)
  3. What's an example of following the convention of your programming environment concerning different rules about visibility between packaging constructs even if it means bending UML's rules?(David D)
  4. Can we have some examples on the Common Closure Principle and the Common Reuse Principle and how they help deciding as to which classes do we put in which packages? (Gaurav)
  5. What are some examples of times that it would be a good idea to leave mandatory attributes empty? [the reading states that it is 'legal'] (Eric)
  6. Figure 7.3 on pg. 93 is a non standard UML diagram that separates the structure of layers in an application from the structure of subject areas. (Mike C.)
  7. What are the functions of a data mapper package? (monica)
  8. How can one tell from the UML notation that the two aspects of a package diagram are being split? For example, in the book Fowler splits the layers and the subject areas. (Mike L.)


This document is available on the World Wide Web as

http://www.cs.grinnell.edu/~walker/courses/223.sp05/readings/fowler-6-8.shtml

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