[Skip Navigation] [ CSUSB ] / [CNS] / [CSE] / [R J Botting] / [CS375] [Search ]
[About] [Contact] [Grades] [Objectives] [Patterns] [Projects] [Schedule] [Syllabus]
Session: [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
[Text Version] 12x.html Wed Jan 11 07:25:49 PST 2012


    Review Questions 12 -- GRASP

  1. UML class diagram notations. (Prep for quiz next time) Example:


    1. Does every A have a D?
    2. Does every B Have a C?
    3. Does every B have a D?
    4. Does every A have a C?

  2. Name and describe the two kinds of responsibilities of an object.
  3. What does the acronym GRASP mean?
  4. List the names of the GRASP patterns.
  5. What UML diagram helps you work out where responsibilities are place in an OO Design?
  6. What is a pattern?
  7. Briefly describe the Creator pattern. Give an example from the book of its use.
  8. Briefly describe the Information Expert pattern. Give an example from the book of its use.
  9. Briefly describe the low Coupling pattern. Give an example from the book of its use.
  10. Briefly describe the Controller pattern. Give an example from the book of its use.
  11. Briefly describe the High Cohesion pattern. Give an example from the book of its use.
  12. Define and distinguish: Coupling and Cohesion?

    Standard Definitions

  13. Artifact::="Anything that is created in the course of a project".
  14. artifact::=see above.
  15. DCD::diagram="Design Class Diagram", shows the classes that will be implemented in code.
  16. Deliverables::="A packet of artifacts that must be prepared by a deadline for review or distribution".
  17. Glossary::= See http://cse.csusb.edu/dick/cs375/uml.glossary.html.
  18. GoF::="Gang of Four", [ patterns.html#GoF ]
  19. GRASP::patterns="General Responsibility Assignment Software Patterns", a set of guidelines for designing objects and classes. They take a single event that the system must handle and determine a good class to carry it out. See [ patterns.html#GRASP -- General Responsibility Assignment Software Patterns ]
  20. Grades::= See http://cse.csusb.edu/dick/cs375/grading/.

  21. KISS::Folk_law="Keep It Simple, Stupid", in agile processes this means never drawing a diagram or preparing a document that doesn't provide value to the clients and stakeholders. In all processes it means never designing or coding what is not needed, see YAGNI.

  22. OO::shorthand="Object-Oriented".

  23. OOAD::="Object-Oriented Analysis and Design", See chapter 1 in text.
  24. patterns::="Documented families of problems and matching solutions", see Patterns.
  25. Patterns::= See http://cse.csusb.edu/dick/cs375/patterns.html.

  26. Process::="How to develop software".

  27. RJB::=The author of this document, RJB="Richard J Botting, Comp Sci Dept, CSUSB".
  28. RUP::Process="Rational UP", a proprietary version of UP.

  29. SSD::="System Sequence Diagrams", see chapter 10.

  30. TBA::="To Be Announced".

  31. UML::="Unified Modeling Language". [ Unified_Modeling_Language ]

  32. UP::="Unified Process", an iterative, risk-driven, and evolutionary way to develop OO software.

  33. YAGNI::XP="You Ain't Gonna Need It", an XP slogan that stops you planning and coding for things that are not yet needed. As a rule the future is not predictable enough to program a feature until the stakeholders actually need now. In this class it also means "It won't be on the final or in quizzes".

  34. XP::="Extreme Programming", the ultimate iterative, code-centric, user-involved process.