- What is the purpose and form of a DCD? How does it relate to a Domain Model?
- Invent an example and use it to demonstrate three different ways of showing an attribute in a UML
- What information can you attach to an operation in a UML DCD?
- How do you document the code for an operation in a UML DCD?
- Explain "keyword", "constraint", and "stereotype" as used in the UML.
- Draw a diagram that illustrates (using your own invented example) "generalization".
- What is an "abstract" class?
- How do you show that class A depends on class B. Give an two examples
of a dependency between A and B.
- How do you show an "interface" in the UML? (several answers needed).
- Does aggregation <>----- mean anything -- discuss.
- What does "composition" mean in the standard for the UML?
- What does an association class do?
- On facebook you can specify that you are in a relationship and its status.
How doe you use an assoication class "Relationship" to track the connections
between Facebook "Users"?
- What is a singleton class?
- How do you show templatized classes in the UML?
- Give an example from C++ STL or Java.
- What is an "active class".
- Explain the following diagams and their parts...
- A Widget has method called zark with data knobs:Number
Draw a sequence diagram and a communication diagram showng
that when a Widget gets a zark(knobs) message it creates a Wodget
called kid with parameter knobs and then sends kid a foobar message.
-- draw a partial DCD that supports this interaction.
- An object a:A gets a message m1 and as a result sends message m2 to
b:B. Draw a sequence diagram
that shows this. What does this tell us about the
classes A and B -- list all the facts you can deduce from this interaction.
Sketch a partial DCD that supports this interaction and shows as many facts as
- How do DCDs and interaction diagrams relate?
- Translate given communication diagram to a sequence diagram.
and vice versa.... and draw part of a DCD for both.
[ 11XY.png ]
- Use interaction diagrams to develop a class diagram that supports
- Use a pair of a communication and a sequence diagram of the same
collaboration to fill in blanks.
[ 11Exs.png ]
- Here is a domain model and a communication diagram from the last class
[ 10ExGetUnfilledInteract.html ]
(thank you Visio). Redraw the Domain class diagram as a Design Class Diagram that
supports the communications shown.
- Time to recall or reconstruct the domain model of the objects in a classroom for
an inventory of the CSUSB campus. Add some generalizations and more general classes.
. . . . . . . . . ( end of section Review Questions 11 -- UML Design Class Diagrams) <<Contents | End>>
- Artifact::="Anything that is created in the course of a project".
- artifact::=see above.
- DCD::diagram="Design Class Diagram", shows the classes that will be implemented in code.
- Deliverables::="A packet of artifacts that must be prepared by a deadline for review or distribution".
- Glossary::= See http://cse.csusb.edu/dick/cs375/uml.glossary.html.
- GoF::="Gang of Four",
[ patterns.html#GoF ]
- 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.
[ patterns.html#GRASP -- General Responsibility Assignment Software Patterns ]
- Grades::= See http://cse.csusb.edu/dick/cs375/grading/.
- 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.
- OOAD::="Object-Oriented Analysis and Design", See chapter 1 in text.
- patterns::="Documented families of problems and matching solutions", see
- Patterns::= See http://cse.csusb.edu/dick/cs375/patterns.html.
- Process::="How to develop software".
- RJB::=The author of this document,
RJB="Richard J Botting, Comp Sci Dept, CSUSB".
- RUP::Process="Rational UP", a proprietary version of UP.
- SSD::="System Sequence Diagrams", see chapter 10.
- TBA::="To Be Announced".
- UML::="Unified Modeling Language".
[ Unified_Modeling_Language ]
- UP::="Unified Process", an iterative, risk-driven, and evolutionary way to develop OO software.
- 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".
- XP::="Extreme Programming", the ultimate iterative, code-centric, user-involved