Discussion Questions from CS 7390 Lecture
Date: 2/21/96 (Wed)
Presented by: Zhong Chen
Topic: Visualizing Object Oriented Systems
Questions related to both papers:
- What are the similarities/differences in the methods of GROOVE and those described by
De Pauw, et al, for presenting inter-object communication
- As pointed out in the paper, 800 x 800 pixels hardly suffices for displaying large sys
tems. I am somewhat hesitant to using 3D to solve this problem, however. Navigation and ob
ject manipulation in 3D is hard, and often leads to added confusion. Have any other ideas
been proposed to get around this problem?
- Visualization is presented as a useful way to understand complex OO systems, especiall
y if the designer is not present to explain. Is it enough? How useful is a good design vs
a good view?
- Which tool would be more useful in a real application?
- I would like to see visualizations in terms of Booch, OMT, etc. Are there systems whic
h support these?
- Does the style of programming for OOP, as compared to regular programming, make it mor
e necessary to be able to animate the program design or just easier?
- Is there any evidence to beleive that animation of OOP would make learning how to prog
ram object-oriented easier? Or are we likely to run into the same surprising lack of evide
nce that we have seen for learning algorithms with animation?
- How different are the designs for an OO vis system from that of a non OO system? The g
oals laid out by the QOCA designers could apply to any viz system. The same is true of the
architecture and instrumentation, communication, modeling, and presentation.
Questions related to GROOVE:
- When might the user take advantage of selecting the focus manually? Would providing mo
re sophisticated rules for autmatically selecting the focus be more useful?
- The idea of focussing on some objets might work in some cases, but when systems get la
rge, having to select objects sequentially to explore a single attribute could become a ve
ry tedious task. What if our we only want to view the class hierarchy graph?
- It appears that without automated display of objects and classes (ie minimal additonal
programming required), nobody would use GROOVE. It is in immediately clear to me how an a
nimation is created in GROOVE, with or without this capability. Also, where does the "
;continuous animation" come into play?
- In GROOVE, 'current focus' is used to deal with the complexity of information. Isn't i
t a danger to ignore important information by showing principally objects related to curre
nt focus?
- OOP uses a lot of dynamic dispatch (virtual functions). Is there any support in GROOVE
to recognize virtual function invocation in C++?
- GROOVE seems like it would be more useful as a tool to automate code generation for in
terfaces, objects, and their interactions. How could this be accomplished?
- How limited are the "partial implementations" generated by GROOVE? Could GRO
OVE be extended to be more useful in a visual programming sense? I think I would find GROO
VE very useful it if would allow me to build up a hierarchy of classes, specify variables
and methods, generate stubs and perfoms the presentations the paper focusses on.
- With GROOVE and other OO animation systems, wouldn't it be useful to show all the subo
rdinate instances that are contained in a particular class? In this way, you could determi
ne the class constructs far easier than just watching the animation and having to keep tra
ck of colored object.
Questions related to the IBM System (De Pauw, et al)
- How do visualizers request state information? You don't want the application to broadc
ast every single message (member function invocation) to all annoModels.
- The IBM system uses annotation to get all if its information for display. It should be
easy to go from here to annotation for animation. What kinds of animation would be useful
for an OO program?
- the different views described in the IBM paper seem quite useful, but they show mostly
statistical data. Could they benefit from the addition of animation to provide other, mor
e informative data? Would the animation add more overhead, and if so, would it be worthwhi
le?