A good software explanation tool should…
Provide multiple levels of detail
Present several aspects of the system
Not require extraordinary annotations by
the programmer
Scale with the knowledge available about
the design