Most programmers spend far more time understanding and modifying existing programs than they spend developing new programs. Current program views used for understanding programs seek to support understanding mainly at the program analysis level. That is, many views are often graphical representations of program analysis concepts, such as the program's data and control dependence graphs, abstract syntax trees or call graphs. However, it may be tedious to understand a program using only such analysis-centered views. We propose a new family of program views that support a more abstract level of program understanding, by describing plan-like program information. In this paper, we show how our views can succinctly present widely-scattered but logically-related program information to describe how certain program effects (e.g. the pattern of occurrence of a global variable) are implemented in a program, and how programmers can interactively manipulate these program views, through view composition and refinement.