Abstract. The precise specification of software models is a major concern in model-driven design of object-oriented software. In this paper, we investigate how program graphs, a language-independent model of object-oriented programs, can be specified precisely, with a focus on static structure rather than behavior. Graph grammars are a natural candidate for specifying the structure of a class of graphs. However, neither star grammars--which are equivalent to the well-known hyperedge replacement grammars--nor the recently proposed adaptive star grammars allow all relevant properties of program graphs to be specified. So we extend adaptive star rules by positive and negative application conditions, and show that the resulting conditional adaptive star grammars are powerful enough to generate program graphs.