Question: in midterm 1996 question #4 part two http://www.ccs.neu.edu/research/demeter/course/exams/m-3360-f96/midterm we are asked to find the classes that the program defines a traversal function for, I don't know why Constructionclass = . Alternationclass = . are part of those classes If it was a propagation path would it be the same ? I know that traversal graph is the big brother of propagation graph is it possible to show it over here? =========== Answer: The traversal is "from Program to PlainSyntax". This is a strategy with one edge. So the glass graph is copied only once to get the traversal graph and therefore traversal graph = subgraph of class graph. Your question is which subgraph. You flatten the class graph: For example: ConstOrAltClass : ConstructionClass | AlternationClass *common* List(PartOrSyntax) ClassParents. ConstructionClass = "=". AlternationClass = ":" Barlist(Subclass). Turns into: ConstOrAltClass : ConstructionClass | AlternationClass. ConstructionClass = "=" List(PartOrSyntax) ClassParents. AlternationClass = ":" Barlist(Subclass) List(PartOrSyntax) ClassParents. An now you can clearly see that both Construction and Alternation are in the traversal scope. Always flatten your class graphs before you do the traversals. If you want to you can unflatten after you have found all the paths. The simple class graphs discussed in the lecture 4 are all flat. Review: http://www.ccs.neu.edu/research/demeter/course/f97/lectures/powerpoint/lec4.ppt Remember that in most cases you can just work with a subgraph of the class graph to visualize your paths. So the big brother is only needed in a small number of cases.